diff options
Diffstat (limited to 'www-client/chromium')
-rw-r--r-- | www-client/chromium/Manifest | 3 | ||||
-rw-r--r-- | www-client/chromium/chromium-73.0.3683.86.ebuild | 1 | ||||
-rw-r--r-- | www-client/chromium/files/chromium-73-xdg-current-desktop.patch | 124 |
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)); |