summaryrefslogtreecommitdiff
path: root/www-client/chromium
diff options
context:
space:
mode:
Diffstat (limited to 'www-client/chromium')
-rw-r--r--www-client/chromium/Manifest3
-rw-r--r--www-client/chromium/chromium-73.0.3683.86.ebuild1
-rw-r--r--www-client/chromium/files/chromium-73-xdg-current-desktop.patch124
3 files changed, 127 insertions, 1 deletions
diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 1dd13ddb9d15..7a8c2266847d 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -5,6 +5,7 @@ AUX chromium-73-gcc-3.patch 3683 BLAKE2B 5da3b1a107a67afe837a6baefd74e68e1f643e5
AUX chromium-73-gcc-4.patch 3500 BLAKE2B 0446dc3d5a073d0960fee4338a59452002734dd0f7bb9afcc9a8e56f70ae5bf755e3a5e772a2682df2734e928f87906630ed87d2a1ba4c3114a9665983ead970 SHA512 c3f505fe943460774a4f5269cad878b37cae45edae2838e6fec8228f5d7c77cb0435a1952fe0230a33e57798ebcc5cd5f0640ae67c301d9983224bb7f81ff70a
AUX chromium-73-gcc-5.patch 3388 BLAKE2B e8a2940ad9e6e23fe62d0897e5f24c38e9e9b75a08326ea0109eace1f3be8afba269d207a208289e0c9bfbf5be165e345594b97f2733ff0d895c6e054105b714 SHA512 524b3a0f9fdcb5a78a9e94a1e6ba8bfaa632471cb3cf3b2d4d32704744154ebec2b81178234259e2d1486694395c707050696874527375290564672417e64daf
AUX chromium-73-gcc-6.patch 4452 BLAKE2B 0798c713701fcf438a388e47d89de454e27e7376494192630cc7bbf9edd4690163ba3ed450e52629a4adff67ce36a09c01dc95f450a5bb603bfcb02582a2c164 SHA512 f5d8ab6bd3e4cdb4aee6a7b7ecb552b675893c8902425b2451032372a2905ef2aef983e1a0660ca891dfaf5603c7ce79d979068ba8aafa2c5735d9051f7dc58e
+AUX chromium-73-xdg-current-desktop.patch 5300 BLAKE2B 3825ce2b899fdeffad17b86b537285fd96f59dff958668670c4dbc14aa40732fa98979a4fefaea19378170b516279ba02fe878d103640a9c7bdfd977c2119a21 SHA512 f15495d9a33132aa8f384a463dc42f91a59bbb5b230f5fc6c212c7d7624ddaf22c8a242f81fe67aa5e36d02fe6403e10e8fb890b0b3d40091670ff6fdedcbd92
AUX chromium-browser.xml 407 BLAKE2B 168d78b0855546ca559cfb51aff0bc85d5e6ae974c25eb76e4a02f6d11659489c6e40397a0b2f7bc1fda336fd2c6dd8c863fccc3340719210b41c7fef51927f4 SHA512 b767fb4fd1925029d95560fc14cb7ab12ae43b2fe923e92d75e733b9723cbe1dcdf6df041a2b62554e98b79b47ef3f6028c773e72e6fd53166a021d49657aeca
AUX chromium-compiler-r7.patch 5729 BLAKE2B 66e7b417d685a3371684a4e173bfa2e6fa49415311ccbd16b60806c3b9f70c805db13c973861033444336d6f714270e5953f961bc54d42fca645c940ba30b706 SHA512 5c6ec5bae53c7b2a1b409a9b4ce8f2e7b1cf95421647b3c1ab49e6f3886aefdb858980065cd7a214e89dfe348f4a5b557c304a94bd7681f5bf4c73c74328d1d7
AUX chromium-fix-char_traits.patch 355 BLAKE2B 5269c43c4d36dc1cd190aedc04e3172fbef0048484ac7e4db15fffd69009c8ba02f0ed786c64b292fbbcd2409ad70545817cd7d45a2cb51fd76bf72250ca0018 SHA512 85ab70f168f56c01e01bdf210d107bebd7c344e95dcb692a19a0f7883ed6aec5325b38c35cd3c9b37c1915820d5e8d401e8ee92c289436fb8bc8341c3c6007a8
@@ -14,5 +15,5 @@ AUX chromium.default 148 BLAKE2B 5ee5b582c59a6e4bef87bbb0e232e2470ad412b1fbbb3b9
DIST chromium-73.0.3683.75.tar.xz 710439908 BLAKE2B 23ed7facf2f67e9bbfc2f1baf434892773d9d63dab10cebab350c3b0b2c75a07f84a4f677e01563a441cc3bae0d42212b3eb28b6d7c573b0137d25e478064a3b SHA512 52bd1dac782a2f7960eba48446d4dfc4c6c13c8e9de21bbee250fad2802beb222cff7bea9878c7338926030aa3aa7ffd2dd1238d35e261a0d766b2d9974fdaf6
DIST chromium-73.0.3683.86.tar.xz 710449412 BLAKE2B 87b4d15440e88be506920813a52e7a503ac81458aa3f2818490c28f6bb5cfc0ca24b316072e5a0664a8bfe6444be23e565579bc232cdfcef42acf8eeca9f216f SHA512 5dd450640c1ea30f7941231e8c459aec0312c18e089b2c8b9104c4ee835a8fa389f5fb9b301b46d87ce260956eaf3e3bd6aff6ae54c279a303aa757537cace15
EBUILD chromium-73.0.3683.75.ebuild 21719 BLAKE2B a30038651590e33a60d116a3e16bc6273dd516bbee60c18112cfa713d88dde2718d7fea6f9891b067244e6dda5e66c02712ec3b9b36b8c4c3e72a42599c500e4 SHA512 f1c52cc5a79f009b437cd5c934597bf43ac41acfebe40fe97648e78b61e0b5f3974768810bf64af852aac06670e7b4a5ec391f23c78d19c4de5cf88e760b3e55
-EBUILD chromium-73.0.3683.86.ebuild 21720 BLAKE2B 1619b78a3e83c9ea2f0ebf4c900d60de8cdab514610f443f57710b76b8ac8e002b8d42202eb63adc4dd780510ce8f2480317240fa2a89649adf5fd4fcb4e6740 SHA512 7da6f01ffcd9e3497dbcdb7e75ae6dd27820a53045caff6a7f0e8b02fa50c3fbc9b390a14ecb7b6d0dd5bffa8c3a0c1139c5b2510eec0a4aef18f87d5b765f51
+EBUILD chromium-73.0.3683.86.ebuild 21773 BLAKE2B 287e89011724cb11aac93b9bfe3b2d06643a2a112b1183a817984084bcb751709cadb14f4e95a0a10cd8ce2262fb744d3c986495edd05c1e32b369ef60102265 SHA512 8ccbf62ad59423d28a55db423912831f141ba3aa7ef309235580e67b1e48585af95f93d93ab68cd687a3860040f9faeebbc9824ee569ff3cade6ffc940720b43
MISC metadata.xml 1538 BLAKE2B 6c68f673e2892063f4b7a5afc8314356e3e8182d8765a193c36be7ed6b61e7680dbd0a58e2386904ff2877c81ad45cdae07754996f706f986f16f3a159500930 SHA512 16e98f9dc01cfdce307dd17fc2ba83ff1eff10eaeb65aaf9154b0dedfc61086334d56f50b6ce1d673715148e29e045eb0eed21495efef942ef56e4ba4e514187
diff --git a/www-client/chromium/chromium-73.0.3683.86.ebuild b/www-client/chromium/chromium-73.0.3683.86.ebuild
index e02966e7154b..9131002b4479 100644
--- a/www-client/chromium/chromium-73.0.3683.86.ebuild
+++ b/www-client/chromium/chromium-73.0.3683.86.ebuild
@@ -149,6 +149,7 @@ PATCHES=(
"${FILESDIR}/chromium-73-gcc-4.patch"
"${FILESDIR}/chromium-73-gcc-5.patch"
"${FILESDIR}/chromium-73-gcc-6.patch"
+ "${FILESDIR}/chromium-73-xdg-current-desktop.patch"
)
pre_build_checks() {
diff --git a/www-client/chromium/files/chromium-73-xdg-current-desktop.patch b/www-client/chromium/files/chromium-73-xdg-current-desktop.patch
new file mode 100644
index 000000000000..09e3b1d2aec2
--- /dev/null
+++ b/www-client/chromium/files/chromium-73-xdg-current-desktop.patch
@@ -0,0 +1,124 @@
+Correct the parsing of the XDG_CURRENT_DESKTOP
+
+The XDG_CURRENT_DESKTOP could contain multiple values in priority order
+separated by colon. Go through them in the loop and return on the first
+one that we recognize/support.
+
+The previous state was causing problems with Chrome on the GNOME Classic
+mode (used in Red Hat Enterprise Linux 7) where the users with multiple
+Google accounts set in Chrome couldn't switch between them - only one was
+shown in the account switcher in i.e. GMail. The reason for that was that
+the XDG_CURRENT_DESKTOP's value GNOME:GNOME-Classic was parsed as
+not as base::nix::DesktopEnvironment::DESKTOP_ENVIRONMENT_GNOME.
+
+base: :nix::DesktopEnvironment::DESKTOP_ENVIRONMENT_OTHER and
+Change-Id: I122f24fd1cf5a0f932c3fccd5220152a9944609d
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1541077
+Reviewed-by: Lei Zhang <thestig@chromium.org>
+Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
+Commit-Queue: Tomáš Popela <tomas.popela@gmail.com>
+Cr-Commit-Position: refs/heads/master@{#645224}
+diff --git a/base/nix/xdg_util.cc b/base/nix/xdg_util.cc
+index 9ff4d88..f051080 100644
+--- a/base/nix/xdg_util.cc
++++ b/base/nix/xdg_util.cc
+@@ -11,6 +11,7 @@
+ #include "base/files/file_path.h"
+ #include "base/files/file_util.h"
+ #include "base/path_service.h"
++#include "base/strings/string_split.h"
+ #include "base/strings/string_util.h"
+ #include "base/third_party/xdg_user_dirs/xdg_user_dir_lookup.h"
+
+@@ -57,35 +58,37 @@
+ // XDG_CURRENT_DESKTOP is the newest standard circa 2012.
+ std::string xdg_current_desktop;
+ if (env->GetVar("XDG_CURRENT_DESKTOP", &xdg_current_desktop)) {
+- // Not all desktop environments set this env var as of this writing.
+- if (base::StartsWith(xdg_current_desktop, "Unity",
+- base::CompareCase::SENSITIVE)) {
+- // gnome-fallback sessions set XDG_CURRENT_DESKTOP to Unity
+- // DESKTOP_SESSION can be gnome-fallback or gnome-fallback-compiz
+- std::string desktop_session;
+- if (env->GetVar("DESKTOP_SESSION", &desktop_session) &&
+- desktop_session.find("gnome-fallback") != std::string::npos) {
+- return DESKTOP_ENVIRONMENT_GNOME;
+- }
+- return DESKTOP_ENVIRONMENT_UNITY;
+- }
+- if (xdg_current_desktop == "GNOME")
+- return DESKTOP_ENVIRONMENT_GNOME;
+- if (xdg_current_desktop == "X-Cinnamon")
+- return DESKTOP_ENVIRONMENT_CINNAMON;
+- if (xdg_current_desktop == "KDE") {
+- std::string kde_session;
+- if (env->GetVar(kKDESessionEnvVar, &kde_session)) {
+- if (kde_session == "5") {
+- return DESKTOP_ENVIRONMENT_KDE5;
++ // It could have multiple values separated by colon in priority order.
++ for (const auto& value : SplitStringPiece(
++ xdg_current_desktop, ":", TRIM_WHITESPACE, SPLIT_WANT_NONEMPTY)) {
++ if (value == "Unity") {
++ // gnome-fallback sessions set XDG_CURRENT_DESKTOP to Unity
++ // DESKTOP_SESSION can be gnome-fallback or gnome-fallback-compiz
++ std::string desktop_session;
++ if (env->GetVar("DESKTOP_SESSION", &desktop_session) &&
++ desktop_session.find("gnome-fallback") != std::string::npos) {
++ return DESKTOP_ENVIRONMENT_GNOME;
+ }
++ return DESKTOP_ENVIRONMENT_UNITY;
+ }
+- return DESKTOP_ENVIRONMENT_KDE4;
++ if (value == "GNOME")
++ return DESKTOP_ENVIRONMENT_GNOME;
++ if (value == "X-Cinnamon")
++ return DESKTOP_ENVIRONMENT_CINNAMON;
++ if (value == "KDE") {
++ std::string kde_session;
++ if (env->GetVar(kKDESessionEnvVar, &kde_session)) {
++ if (kde_session == "5") {
++ return DESKTOP_ENVIRONMENT_KDE5;
++ }
++ }
++ return DESKTOP_ENVIRONMENT_KDE4;
++ }
++ if (value == "Pantheon")
++ return DESKTOP_ENVIRONMENT_PANTHEON;
++ if (value == "XFCE")
++ return DESKTOP_ENVIRONMENT_XFCE;
+ }
+- if (xdg_current_desktop == "Pantheon")
+- return DESKTOP_ENVIRONMENT_PANTHEON;
+- if (xdg_current_desktop == "XFCE")
+- return DESKTOP_ENVIRONMENT_XFCE;
+ }
+
+ // DESKTOP_SESSION was what everyone used in 2010.
+diff --git a/base/nix/xdg_util_unittest.cc b/base/nix/xdg_util_unittest.cc
+index e195303..ad81836 100644
+--- a/base/nix/xdg_util_unittest.cc
++++ b/base/nix/xdg_util_unittest.cc
+@@ -34,6 +34,7 @@
+ const char* const kDesktopXFCE = "xfce";
+ const char* const kXdgDesktopCinnamon = "X-Cinnamon";
+ const char* const kXdgDesktopGNOME = "GNOME";
++const char* const kXdgDesktopGNOMEClassic = "GNOME:GNOME-Classic";
+ const char* const kXdgDesktopKDE = "KDE";
+ const char* const kXdgDesktopPantheon = "Pantheon";
+ const char* const kXdgDesktopUnity = "Unity";
+@@ -110,6 +111,15 @@
+ EXPECT_EQ(DESKTOP_ENVIRONMENT_GNOME, GetDesktopEnvironment(&getter));
+ }
+
++TEST(XDGUtilTest, GetXdgDesktopGnomeClassic) {
++ MockEnvironment getter;
++ EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
++ EXPECT_CALL(getter, GetVar(Eq(kXdgDesktop), _))
++ .WillOnce(DoAll(SetArgPointee<1>(kXdgDesktopGNOMEClassic), Return(true)));
++
++ EXPECT_EQ(DESKTOP_ENVIRONMENT_GNOME, GetDesktopEnvironment(&getter));
++}
++
+ TEST(XDGUtilTest, GetXdgDesktopGnomeFallback) {
+ MockEnvironment getter;
+ EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));