blob: fcd51c9f79c80dad8f3f61f831c262506ecbbb96 [file] [log] [blame]
Avi Drissman4a8573c2022-09-09 19:35:541// Copyright 2022 The Chromium Authors
Tom Andersond5044f52022-05-02 21:52:212// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "chrome/browser/obsolete_system/obsolete_system.h"
6
7#include "base/linux_util.h"
8#include "base/strings/string_util.h"
Henrique Ferreirod78ab262023-09-13 11:21:439#include "chrome/grit/branded_strings.h"
Tom Andersond5044f52022-05-02 21:52:2110#include "ui/base/l10n/l10n_util.h"
11
12const char kLinuxObsoleteUrl[] =
13 "https://support.google.com/chrome/?p=unsupported_linux";
14
Tom Anderson6ed9ec802024-08-23 00:46:4015// This list contains the most recently obsoleted distros.
Tom Andersond5044f52022-05-02 21:52:2116const char* const kObsoleteDistros[] = {
Tom Anderson6ed9ec802024-08-23 00:46:4017 // Prevent clang-format from adding multiple entries per line.
18 // clang-format off
19 "Debian 8",
20 "Debian 9",
21 "Debian 10",
22 "Fedora 30",
23 "Fedora 31",
24 "Fedora 32",
25 "Fedora 33",
26 "Fedora 34",
27 "Fedora 35",
28 "Fedora 36",
29 "Fedora 37",
30 "Fedora 38",
31 "Ubuntu 14.04",
32 "Ubuntu 16.04",
33 "Ubuntu 18.04",
34 "openSUSE Leap 15.0",
35 "openSUSE Leap 15.1",
36 "openSUSE Leap 15.2",
37 "openSUSE Leap 15.3",
38 "openSUSE Leap 15.4",
39 // clang-format on
Tom Andersond5044f52022-05-02 21:52:2140};
41
Avi Drissmanc58a7362023-01-25 23:12:5542namespace ObsoleteSystem {
43
44bool IsObsoleteNowOrSoon() {
Tom Andersond5044f52022-05-02 21:52:2145 auto distro = base::GetLinuxDistro();
46 for (const char* obsolete : kObsoleteDistros) {
Avi Drissmanc58a7362023-01-25 23:12:5547 if (base::StartsWith(distro, obsolete)) {
Tom Andersond5044f52022-05-02 21:52:2148 return true;
Avi Drissmanc58a7362023-01-25 23:12:5549 }
Tom Andersond5044f52022-05-02 21:52:2150 }
51 return false;
52}
53
Avi Drissmanc58a7362023-01-25 23:12:5554std::u16string LocalizedObsoleteString() {
Tom Andersond5044f52022-05-02 21:52:2155 return l10n_util::GetStringUTF16(IDS_LINUX_OBSOLETE);
56}
57
Avi Drissmanc58a7362023-01-25 23:12:5558bool IsEndOfTheLine() {
Tom Andersond5044f52022-05-02 21:52:2159 return false;
60}
61
Avi Drissmanc58a7362023-01-25 23:12:5562const char* GetLinkURL() {
Tom Andersond5044f52022-05-02 21:52:2163 return kLinuxObsoleteUrl;
64}
Avi Drissmanc58a7362023-01-25 23:12:5565
66} // namespace ObsoleteSystem