summaryrefslogtreecommitdiff
path: root/www-client/chromium
diff options
context:
space:
mode:
Diffstat (limited to 'www-client/chromium')
-rw-r--r--www-client/chromium/Manifest11
-rw-r--r--www-client/chromium/chromium-79.0.3945.130.ebuild2
-rw-r--r--www-client/chromium/chromium-81.0.4029.3.ebuild (renamed from www-client/chromium/chromium-79.0.3945.117.ebuild)43
-rw-r--r--www-client/chromium/files/chromium-81-clang.patch13
-rw-r--r--www-client/chromium/files/chromium-81-gcc-dav1d.patch12
-rw-r--r--www-client/chromium/files/chromium-81-gcc-noexcept.patch13
-rw-r--r--www-client/chromium/files/chromium-81-gcc-template.patch32
-rw-r--r--www-client/chromium/files/chromium-compiler-r11.patch192
8 files changed, 298 insertions, 20 deletions
diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 627c7e269e55..c6836796023d 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -14,16 +14,21 @@ AUX chromium-80-gcc-permissive.patch 1990 BLAKE2B 2aab6ec5beb470a220d53592f6e86b
AUX chromium-80-gcc-quiche.patch 1351 BLAKE2B 7bd967a9f3cd544368c623d3612632cd2bade48ac2c099c4570d5ead62ba28487e1fa222ee0bfe108f3d4f853744d799d2860f703eae3b7d6d36af77cd328508 SHA512 2f147e77d0737370c5dea8b575c0e631476bbce54a7b1c46d0bffeb56706d6ab695b8a9a7e61402430c57ec1f28668dd6682aa5d32d32762fc3ba1735f37542b
AUX chromium-80-include.patch 1495 BLAKE2B a5ed4a0df55a24498b3e88c191ecf8f87873b6a8d826f5daa6df3234593d5996257d31c5ce116b078990010633e8e8bbac0e66027329afea3355959d8fae3fa8 SHA512 c73c7af2612b80b110e10fe887cab442aebc1e23bc87cc5819384be9aa0283475fb957e3fd637d6b890411adde38c8206b1f1d998127938808c307bee0636e94
AUX chromium-80-unbundle-libxml.patch 2990 BLAKE2B 63068fef2333d9d111bfe66a78efd71088c76b08b4e5014b244012df682024ceb0db8441254481189fc449f16cbeab7f650c8cab30f9d37dedf89c2dbea1bae9 SHA512 87ef07a35a103c5b4293301705a09a60199d569fceeab1e3188c7b96067d39f237441209f4448a791dc5675321f609ee5c02fdda1081af38e50adcd15de4e0b6
+AUX chromium-81-clang.patch 692 BLAKE2B da65ab208f0afc82a6fb2e1061cffc700bfef25f0821b34b1d50e7be3f573f2bd629850e74e26a1b1f5ee7bb037d4b9caaef083b07d68bf0d3dd88770db577ed SHA512 ee006e4a8c98576ecfba0b2b76927d1b559d56da19539b3d4f0b630eba64a22a1d9c158724b5b4437cf4bd432f113de7308ab402a5c286a5899a2b1928a78fbe
+AUX chromium-81-gcc-dav1d.patch 326 BLAKE2B 960240ef22c8200ee4a69ed6619628a72702d03bade9af9f500e90893141b7fe003be1f8ca2db90a79f9b42e5ccecb4178c15444dce0497cd5a7f72287b95635 SHA512 d5eea8e139aeec887d78ec944b13f18ad83427e50e74e26dedbd7f1ed5e0efe7cc6a5a072ef39b439380a8b492e7d9f77b06346b36cd7c6248f4537cd742e540
+AUX chromium-81-gcc-noexcept.patch 804 BLAKE2B fde20835e046808b3066b53d57ba754752a1594aef3a153f28c2831721edd832295edb32daa41d27944e48e0bdc4b649b4de5bd6a97d6791be5b5d8a73b77476 SHA512 5708156098e80dd439514273315eeab39fc24938e92b5887a6bb69cd93613ec6814c66a2f24b88f85a83436c2f2a8fca445a368cbf2658cba7d74001ddc30e5b
+AUX chromium-81-gcc-template.patch 1126 BLAKE2B 41f04c54bd9eb7dbc9c995beeac3c485990ccff950867d19171cc2c79bf29f2e9b27aad41dbbd62592113ab446e74d6389995972b92feb8ab742a662dc55ed38 SHA512 2c2e4cb57fc2d3eb67cc864f2aaabaad5861c4433a5d99a9b41a8bc4e2790bf8736b251f18dba9844dbe83180a117a0861fc5c826457472a0956dc8e8746432b
AUX chromium-browser.xml 407 BLAKE2B 168d78b0855546ca559cfb51aff0bc85d5e6ae974c25eb76e4a02f6d11659489c6e40397a0b2f7bc1fda336fd2c6dd8c863fccc3340719210b41c7fef51927f4 SHA512 b767fb4fd1925029d95560fc14cb7ab12ae43b2fe923e92d75e733b9723cbe1dcdf6df041a2b62554e98b79b47ef3f6028c773e72e6fd53166a021d49657aeca
AUX chromium-compiler-r10.patch 5917 BLAKE2B a16ea6a1eee56a7de06f82e161536dab19a507f675fe8268b5a455bf36b9f5e6c1df02de73b303ab61e33153f06f118e22623d01f654d4a7c88ca8c3f8326401 SHA512 e64f9f75e685868cb8da8851e84362952a18e5dbca674c853a41feb582bdd4dc59219727f2c77440ec2030e21d7b436f144c552c30b2a4960cbe0da32c6f6c5e
+AUX chromium-compiler-r11.patch 6237 BLAKE2B 5c0519f5d851184d5fc43871aac2be45f19d8883ca600575ea6d807e2d4731319e7bcf16c5ad36347cc66d99ee938cfe0be664e7c3023fa92d9c94f80d246839 SHA512 b1047ca03b0014f161d93dd53118f0ff54ab86dfdd5ae6f7412cf54c899c425c4475f3b3309805e7b3c2647b8cab34648c3c9a553e0481b790b33973b4ead7f0
AUX chromium-fix-char_traits.patch 355 BLAKE2B 5269c43c4d36dc1cd190aedc04e3172fbef0048484ac7e4db15fffd69009c8ba02f0ed786c64b292fbbcd2409ad70545817cd7d45a2cb51fd76bf72250ca0018 SHA512 85ab70f168f56c01e01bdf210d107bebd7c344e95dcb692a19a0f7883ed6aec5325b38c35cd3c9b37c1915820d5e8d401e8ee92c289436fb8bc8341c3c6007a8
AUX chromium-launcher-r3.sh 1199 BLAKE2B 85f57b380cdc25bd000cf57d3c129b67f6e55d96dd958190040b0680f8d4d358ac777e0c1ebd6a1b32dd3821a377bcf9f598e073584528d0480460978c4c1fb1 SHA512 f1909314ae74985c85740d26c9bfab694f3202de8ccc392a1c4ec5c8760db21b6cc46146c78a9abebd09e6d24f37e19466f0c4d2d61815400b48d859f8ce154d
AUX chromium-unbundle-zlib-r1.patch 515 BLAKE2B f3263f7450a940449d7edc0aef46a888248e0245a71797435a985fda8ef3c1abb8823a5a363cff1db0e2d09715942322e5d5ae9ab3554a5a3aeb2db748102a97 SHA512 89d62431e11cf8f3b48afdf9a133a8532916d445676de12acb48b0aaca3aa45106e25de399e7ee37a6220b0766c0ea65f10da219d4bb9a7a02275b4364e493ad
AUX chromium.default 148 BLAKE2B 5ee5b582c59a6e4bef87bbb0e232e2470ad412b1fbbb3b9af6ef7153edb55c5b9080cc16a5a115b0c5b3c381aa87ce57a7b12bdd2070e67dac10a6c2995ddbaf SHA512 0d4849e03592fb58b05e62a43021eca7e61615616c8907c3b2e445402e03adaf9e8fa25b0a745d6c31eb037456215cc02b59e345a3a06d932e76cf990c92d739
-DIST chromium-79.0.3945.117.tar.xz 778215364 BLAKE2B 0803710f12bbaa65c186927068feffb7a8028203b93c1bc7e77f967fad0ad25188e1b0fd76b2b3adc256bfcd0f838fa79c6a93720b453875ee103b7d544fe684 SHA512 bba4f52eec8011f92e3098d29269d978b6e2571593b66c93bf6767bab00f7984e733e6df5fde883b9f643e86b1ad527c3ec7d43ba381b48935512ad82e931e26
DIST chromium-79.0.3945.130.tar.xz 778319112 BLAKE2B ac6d7c08c34afc4de8383964f76a5eabc9209de185535a27eff2d6934a77d01fd6b07d5c5afb16e9dd936b2650da76d460e8a485ab16f8300144c7de9b3be2bb SHA512 4b5d4769b068f20b8028085a148cbaf31311eeffad0a22c5c0909af273a8e57e077b33cc93331bbeff9165477262eed2e345b2224ac4f76d8bdb79f983596a81
DIST chromium-80.0.3987.53.tar.xz 798716580 BLAKE2B 922023deb0662b50b09db0261a56cfe124e8d15f5ae3e87bb0ac27206821f1a1c7fc223402d5ac8744fb88b00ff677aef21c9b09240d9f9ba4812d7f74d20ec2 SHA512 585501363c1e46d710a3ced89a91ae94e6e876a5cde9db3d0cc83a887f174f61a05d489274a62a832c30862ef5121e2838fc90b69d8ad17895afad94147d2b3f
-EBUILD chromium-79.0.3945.117.ebuild 22703 BLAKE2B c69e08a9bfdd3ec572888a740198cf3a810fa772c024cc42532cfa21ee578d9e28d7bf60b6b092b658663e432cdf355564a57594f50b02f33b8c0398252edccc SHA512 a94ba1b8cff2712134d77f502b9ae33f6125a899e8a894b0bf4141c68f6d12b8ae9cefad38d5056b688079052f021d3a1b71bec6cf89f8eb97ef38ff13d74965
-EBUILD chromium-79.0.3945.130.ebuild 22704 BLAKE2B a910aca9be810afed0c9fd8a62c05566b6afaf543b293ae8194b4520962aa637ae166cbd573b8e09eb52b645536063090194724b8f8f6d03b1b04a038897b57e SHA512 6b08a5bed92e96d0a405b695e82276038307cf7d6a7581191d25f0298121992f11b8db451b77db47d47a9cf0c48a04e98d35ba376d33f5b848e71b8b4e044481
+DIST chromium-81.0.4029.3.tar.xz 884456176 BLAKE2B 56a409e024cafb96db807080aeed0a3a7f21cade7ab797e3dba7ca0628c17997630955b84fe3eb90089738c167ac88398f8d0d24871f7c16ca4382ac141f3a3d SHA512 0b64c45e6c5febcb142a1fe89f94c352db8b57459937511f7e0d010105d94223ba3cb07d5f16fe1cc0534cbdf28bd6badcd8404da65a6d78d3bcc5131ecd9bc5
+EBUILD chromium-79.0.3945.130.ebuild 22703 BLAKE2B c69e08a9bfdd3ec572888a740198cf3a810fa772c024cc42532cfa21ee578d9e28d7bf60b6b092b658663e432cdf355564a57594f50b02f33b8c0398252edccc SHA512 a94ba1b8cff2712134d77f502b9ae33f6125a899e8a894b0bf4141c68f6d12b8ae9cefad38d5056b688079052f021d3a1b71bec6cf89f8eb97ef38ff13d74965
EBUILD chromium-80.0.3987.53.ebuild 22828 BLAKE2B 902ce746f3cc07107fef5443a7ea600b9f7c5e04415db743846e2dc4247c96340f19973de551e6fd5e5aad00a42c5c5b528b49f6e393d72837561ca704b36bc7 SHA512 36c4baa9b1b31b9d5f38bd8db425d59c018378ca277968f27fb0ab060caf067a05d7b03ba4582eeb039be42590f105e48a7d51352d9ef914ef26fe7adf2528a7
+EBUILD chromium-81.0.4029.3.ebuild 23136 BLAKE2B ad4dc059565aa08cd8554a9f4fed09cf784b833e7eee167a509504dba8cea6467a34747e9a95d6c1fd6022202dc613163025ff775b651997c6478ab4ef15395a SHA512 bf1ae22a27c2e537277823f4d3246d8593ddf13b9908d578bda9868bbe84c236961c4b8e0d7889d1180fb7893fea3225077e0928dbaca15acdfad782fedf79f9
MISC metadata.xml 1456 BLAKE2B cf9ade50335e564cd481d2a9da288ee97d9fe086a948f3226459acc918e9b25d1f61e8384cb4300f9ae253cdd1ea250cdd308784e7cf8fff4b443193e84906d5 SHA512 b0abba4bb13d33ca955db05411a135a66389099ee623c84dcc2ba6f4cd7fe222d5976adbf297767f4bd1e311b765c4500bf43713e5e6daaf0ef45d4fe8894ca7
diff --git a/www-client/chromium/chromium-79.0.3945.130.ebuild b/www-client/chromium/chromium-79.0.3945.130.ebuild
index 0649c208858b..76a0f4f0682a 100644
--- a/www-client/chromium/chromium-79.0.3945.130.ebuild
+++ b/www-client/chromium/chromium-79.0.3945.130.ebuild
@@ -16,7 +16,7 @@ SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 ~arm64 ~x86"
IUSE="+closure-compile component-build cups cpu_flags_arm_neon gnome-keyring +hangouts kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
REQUIRED_USE="component-build? ( !suid )"
diff --git a/www-client/chromium/chromium-79.0.3945.117.ebuild b/www-client/chromium/chromium-81.0.4029.3.ebuild
index 76a0f4f0682a..cc849adeafa8 100644
--- a/www-client/chromium/chromium-79.0.3945.117.ebuild
+++ b/www-client/chromium/chromium-81.0.4029.3.ebuild
@@ -16,7 +16,7 @@ SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 ~arm64 ~x86"
+KEYWORDS="~amd64 ~arm64 ~x86"
IUSE="+closure-compile component-build cups cpu_flags_arm_neon gnome-keyring +hangouts kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
REQUIRED_USE="component-build? ( !suid )"
@@ -33,7 +33,7 @@ COMMON_DEPEND="
dev-libs/libxslt:=
dev-libs/nspr:=
>=dev-libs/nss-3.26:=
- >=dev-libs/re2-0.2016.11.01:=
+ >=dev-libs/re2-0.2019.08.01:=
gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
>=media-libs/alsa-lib-1.0.19:=
media-libs/fontconfig:=
@@ -51,7 +51,7 @@ COMMON_DEPEND="
>=net-fs/samba-4.5.10-r1[-debug(-)]
)
!=net-fs/samba-4.5.12-r0
- media-libs/opus:=
+ >=media-libs/opus-1.3.1:=
)
sys-apps/dbus:=
sys-apps/pciutils:=
@@ -140,18 +140,19 @@ For native file dialogs in KDE, install kde-apps/kdialog.
"
PATCHES=(
- "${FILESDIR}/chromium-compiler-r10.patch"
+ "${FILESDIR}/chromium-compiler-r11.patch"
"${FILESDIR}/chromium-fix-char_traits.patch"
"${FILESDIR}/chromium-unbundle-zlib-r1.patch"
- "${FILESDIR}/chromium-77-system-icu.patch"
"${FILESDIR}/chromium-78-protobuf-export.patch"
- "${FILESDIR}/chromium-79-system-hb.patch"
- "${FILESDIR}/chromium-79-include.patch"
- "${FILESDIR}/chromium-79-icu-65.patch"
- "${FILESDIR}/chromium-79-gcc-ambiguous-nodestructor.patch"
- "${FILESDIR}/chromium-79-gcc-name-clash.patch"
- "${FILESDIR}/chromium-79-gcc-permissive.patch"
"${FILESDIR}/chromium-79-gcc-alignas.patch"
+ "${FILESDIR}/chromium-80-unbundle-libxml.patch"
+ "${FILESDIR}/chromium-80-gcc-quiche.patch"
+ "${FILESDIR}/chromium-80-gcc-blink.patch"
+ "${FILESDIR}/chromium-80-gcc-abstract.patch"
+ "${FILESDIR}/chromium-81-gcc-dav1d.patch"
+ "${FILESDIR}/chromium-81-gcc-template.patch"
+ "${FILESDIR}/chromium-81-gcc-noexcept.patch"
+ "${FILESDIR}/chromium-81-clang.patch"
)
pre_build_checks() {
@@ -164,6 +165,11 @@ pre_build_checks() {
if has usersandbox ${FEATURES} && use tcmalloc && use component-build; then
die "Component build with tcmalloc requires FEATURES=-usersandbox."
fi
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
+ if use component-build; then
+ die "Component build with clang requires fuzzer headers."
+ fi
+ fi
fi
# Check build requirements, bug #541816 and bug #471810 .
@@ -224,6 +230,7 @@ src_prepare() {
third_party/angle/src/third_party/compiler
third_party/angle/src/third_party/libXNVCtrl
third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
third_party/angle/third_party/glslang
third_party/angle/third_party/spirv-headers
third_party/angle/third_party/spirv-tools
@@ -236,9 +243,6 @@ src_prepare() {
third_party/blink
third_party/boringssl
third_party/boringssl/src/third_party/fiat
- third_party/boringssl/src/third_party/sike
- third_party/boringssl/linux-aarch64/crypto/third_party/sike
- third_party/boringssl/linux-x86_64/crypto/third_party/sike
third_party/breakpad
third_party/breakpad/breakpad/src/third_party/curl
third_party/brotli
@@ -269,11 +273,15 @@ src_prepare() {
third_party/dawn
third_party/depot_tools
third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/fabricjs
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/third_party
third_party/dom_distiller_js
third_party/emoji-segmenter
third_party/flatbuffers
- third_party/flot
third_party/freetype
+ third_party/libgifcodec
third_party/glslang
third_party/google_input_tools
third_party/google_input_tools/third_party/closure_library
@@ -341,7 +349,6 @@ src_prepare() {
third_party/skia
third_party/skia/include/third_party/skcms
third_party/skia/include/third_party/vulkan
- third_party/skia/third_party/gif
third_party/skia/third_party/skcms
third_party/skia/third_party/vulkan
third_party/smhasher
@@ -369,6 +376,7 @@ src_prepare() {
third_party/webrtc/rtc_base/third_party/sigslot
third_party/widevine
third_party/woff2
+ third_party/wuffs
third_party/zlib/google
tools/grit/third_party/six
url/third_party/mozilla
@@ -595,6 +603,9 @@ src_configure() {
popd > /dev/null || die
fi
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
# Explicitly disable ICU data file support for system-icu builds.
if use system-icu; then
myconf_gn+=" icu_use_data_file=false"
diff --git a/www-client/chromium/files/chromium-81-clang.patch b/www-client/chromium/files/chromium-81-clang.patch
new file mode 100644
index 000000000000..8f69b34a0ed3
--- /dev/null
+++ b/www-client/chromium/files/chromium-81-clang.patch
@@ -0,0 +1,13 @@
+diff --git a/chrome/browser/enterprise_reporting/notification/extension_request_notification.cc b/chrome/browser/enterprise_reporting/notification/extension_request_notification.cc
+index 659efac..38f6ebc 100644
+--- a/chrome/browser/enterprise_reporting/notification/extension_request_notification.cc
++++ b/chrome/browser/enterprise_reporting/notification/extension_request_notification.cc
+@@ -46,7 +46,7 @@ constexpr int kNotificationBodies[] = {
+
+ } // namespace
+
+-ExtensionRequestNotification::ExtensionRequestNotification() = default;
++ExtensionRequestNotification::ExtensionRequestNotification() {}
+
+ ExtensionRequestNotification::ExtensionRequestNotification(
+ Profile* profile,
diff --git a/www-client/chromium/files/chromium-81-gcc-dav1d.patch b/www-client/chromium/files/chromium-81-gcc-dav1d.patch
new file mode 100644
index 000000000000..00586fd929ce
--- /dev/null
+++ b/www-client/chromium/files/chromium-81-gcc-dav1d.patch
@@ -0,0 +1,12 @@
+diff --git a/third_party/dav1d/BUILD.gn b/third_party/dav1d/BUILD.gn
+index 63f12f8..f8f0b40 100644
+--- a/third_party/dav1d/BUILD.gn
++++ b/third_party/dav1d/BUILD.gn
+@@ -99,6 +99,7 @@ config("dav1d_config") {
+ dav1d_copts = [
+ "-D_FILE_OFFSET_BITS=64",
+ "-D_POSIX_C_SOURCE=200112L",
++ "-D_GNU_SOURCE",
+ ]
+
+ if (is_win) {
diff --git a/www-client/chromium/files/chromium-81-gcc-noexcept.patch b/www-client/chromium/files/chromium-81-gcc-noexcept.patch
new file mode 100644
index 000000000000..90ecb2257091
--- /dev/null
+++ b/www-client/chromium/files/chromium-81-gcc-noexcept.patch
@@ -0,0 +1,13 @@
+diff --git a/components/paint_preview/browser/paint_preview_client.cc b/components/paint_preview/browser/paint_preview_client.cc
+index fc3b5a4..8689acf 100644
+--- a/components/paint_preview/browser/paint_preview_client.cc
++++ b/components/paint_preview/browser/paint_preview_client.cc
+@@ -79,7 +79,7 @@ PaintPreviewClient::PaintPreviewParams::~PaintPreviewParams() = default;
+ PaintPreviewClient::PaintPreviewData::PaintPreviewData() = default;
+ PaintPreviewClient::PaintPreviewData::~PaintPreviewData() = default;
+ PaintPreviewClient::PaintPreviewData& PaintPreviewClient::PaintPreviewData::
+-operator=(PaintPreviewData&& rhs) noexcept = default;
++operator=(PaintPreviewData&& rhs) = default;
+ PaintPreviewClient::PaintPreviewData::PaintPreviewData(
+ PaintPreviewData&& other) noexcept = default;
+
diff --git a/www-client/chromium/files/chromium-81-gcc-template.patch b/www-client/chromium/files/chromium-81-gcc-template.patch
new file mode 100644
index 000000000000..8553d5f603b3
--- /dev/null
+++ b/www-client/chromium/files/chromium-81-gcc-template.patch
@@ -0,0 +1,32 @@
+diff --git a/third_party/blink/renderer/platform/wtf/list_hash_set.h b/third_party/blink/renderer/platform/wtf/list_hash_set.h
+index 7856b7b..76534f6 100644
+--- a/third_party/blink/renderer/platform/wtf/list_hash_set.h
++++ b/third_party/blink/renderer/platform/wtf/list_hash_set.h
+@@ -308,21 +308,16 @@ class ListHashSetNodeBasePointer {
+ NodeType& operator*() const { return *Get(); }
+
+ private:
+- template <bool = Allocator::kIsGarbageCollected>
+ void SetSafe(NodeType* node) {
+- AsAtomicPtr(&node_)->store(node, std::memory_order_relaxed);
+- }
+- template <>
+- void SetSafe<false>(NodeType* node) {
+- node_ = node;
++ if ( Allocator::kIsGarbageCollected )
++ AsAtomicPtr(&node_)->store(node, std::memory_order_relaxed);
++ else
++ node_ = node;
+ }
+
+- template <bool = Allocator::kIsGarbageCollected>
+ NodeType* GetSafe() const {
+- return AsAtomicPtr(&node_)->load(std::memory_order_relaxed);
+- }
+- template <>
+- NodeType* GetSafe<false>() const {
++ if ( Allocator::kIsGarbageCollected )
++ return AsAtomicPtr(&node_)->load(std::memory_order_relaxed);
+ return node_;
+ }
+
diff --git a/www-client/chromium/files/chromium-compiler-r11.patch b/www-client/chromium/files/chromium-compiler-r11.patch
new file mode 100644
index 000000000000..1d99927e5dec
--- /dev/null
+++ b/www-client/chromium/files/chromium-compiler-r11.patch
@@ -0,0 +1,192 @@
+From b29cbcb0ff75b564f83ad93273e881e242f08caf Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Sat, 16 Jun 2019 15:43:27 +0100
+Subject: [PATCH] Disable various compiler configs
+
+---
+ build/config/compiler/BUILD.gn | 71 ++++++++++++----------------------
+ 1 file changed, 25 insertions(+), 46 deletions(-)
+
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 2ac6e8e..b3e760d 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -269,8 +269,6 @@ config("compiler") {
+
+ configs += [
+ # See the definitions below.
+- ":clang_revision",
+- ":compiler_cpu_abi",
+ ":compiler_codegen",
+ ":compiler_deterministic",
+ ]
+@@ -495,27 +493,6 @@ config("compiler") {
+ }
+ }
+
+- if (is_clang && !is_nacl && !use_xcode_clang) {
+- cflags += [ "-fcrash-diagnostics-dir=" +
+- rebase_path("//tools/clang/crashreports", root_build_dir) ]
+-
+- cflags += [
+- # TODO(hans): Remove this once Clang generates better optimized debug info
+- # by default. https://crbug.com/765793
+- "-Xclang",
+- "-mllvm",
+- "-Xclang",
+- "-instcombine-lower-dbg-declare=0",
+- ]
+-
+- if (llvm_force_head_revision) {
+- # Before Clang 10, lax vector conversions were allowed by default.
+- # Chromium currently relies on this behavior.
+- # TODO(crbug.com/1042470): Fix the code and remove this flag.
+- cflags += [ "-flax-vector-conversions=all" ]
+- }
+- }
+-
+ # C11/C++11 compiler flags setup.
+ # ---------------------------
+ if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") {
+@@ -1462,6 +1439,12 @@ config("default_warnings") {
+ cflags_cc += [ "-Wno-class-memaccess" ]
+ }
+
++ # -Wno-class-memaccess warns about hash table and vector in blink.
++ # But the violation is intentional.
++ if (!is_nacl) {
++ cflags_cc += [ "-Wno-class-memaccess" ]
++ }
++
+ # -Wunused-local-typedefs is broken in gcc,
+ # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63872
+ cflags += [ "-Wno-unused-local-typedefs" ]
+@@ -1587,7 +1570,7 @@ config("chromium_code") {
+ defines = [ "_HAS_NODISCARD" ]
+ }
+ } else {
+- cflags = [ "-Wall" ]
++ cflags = []
+ if (treat_warnings_as_errors) {
+ cflags += [ "-Werror" ]
+
+@@ -1596,10 +1579,6 @@ config("chromium_code") {
+ # well.
+ ldflags = [ "-Werror" ]
+ }
+- if (is_clang) {
+- # Enable extra warnings for chromium_code when we control the compiler.
+- cflags += [ "-Wextra" ]
+- }
+
+ # In Chromium code, we define __STDC_foo_MACROS in order to get the
+ # C99 macros on Mac and Linux.
+@@ -1608,15 +1587,6 @@ config("chromium_code") {
+ "__STDC_FORMAT_MACROS",
+ ]
+
+- if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
+- current_cpu != "s390" && current_cpu != "ppc64" &&
+- current_cpu != "mips" && current_cpu != "mips64") {
+- # Non-chromium code is not guaranteed to compile cleanly with
+- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+- # disabled, so only do that for Release build.
+- defines += [ "_FORTIFY_SOURCE=2" ]
+- }
+-
+ if (is_mac) {
+ cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+ cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -2020,7 +1990,8 @@ config("default_stack_frames") {
+ }
+
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+ if (is_win) {
+ # TODO(thakis): Remove is_clang here, https://crbug.com/598772
+ if (is_official_build && full_wpo_on_official && !is_clang) {
+@@ -2046,7 +2017,8 @@ config("optimize") {
+ }
+
+ # Same config as 'optimize' but without the WPO flag.
+-config("optimize_no_wpo") {
++config("optimize_no_wpo") { }
++config("xoptimize_no_wpo") {
+ if (is_win) {
+ # Favor size over speed, /O1 must be before the common flags. The GYP
+ # build also specifies /Os and /GF but these are implied by /O1.
+@@ -2069,7 +2041,8 @@ config("optimize_no_wpo") {
+ }
+
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+ if (is_win) {
+ cflags = [
+ "/Od", # Disable optimization.
+@@ -2103,7 +2076,8 @@ config("no_optimize") {
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2142,7 +2116,8 @@ config("optimize_max") {
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2172,7 +2147,8 @@ config("optimize_speed") {
+ }
+ }
+
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+ cflags = [ "-O1" ] + common_optimize_on_cflags
+ ldflags = common_optimize_on_ldflags
+ visibility = [ ":default_optimization" ]
+@@ -2288,7 +2264,8 @@ config("win_pdbaltpath") {
+ }
+
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+ if (is_win) {
+ if (use_goma || is_clang) {
+ # Note that with VC++ this requires is_win_fastlink, enforced elsewhere.
+@@ -2398,7 +2375,8 @@ config("symbols") {
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+ if (is_win) {
+ # Functions, files, and line tables only.
+ cflags = []
+@@ -2453,7 +2431,8 @@ config("minimal_symbols") {
+ }
+
+ # No symbols.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+ if (!is_win) {
+ cflags = [ "-g0" ]
+ asmflags = cflags
+--
+2.24.1
+