From 3d00647fec2600e217d690a64ba45a41f1a2fa0c Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sat, 10 Jun 2023 09:50:45 +0100 Subject: gentoo auto-resync : 10:06:2023 - 09:50:45 --- .../chromium/files/chromium-112-compiler.patch | 256 --------------------- .../files/chromium-112-gcc-mno-outline.patch | 29 --- .../chromium/files/chromium-112-libstdc++-1.patch | 59 ----- .../chromium/files/chromium-112-libstdc++.patch | 63 ----- .../chromium/files/chromium-112-sql-relax.patch | 46 ---- .../chromium/files/chromium-112-swiftshader.patch | 122 ---------- .../chromium/files/chromium-114-compiler.patch | 171 ++++++++++++++ www-client/chromium/files/chromium-114-gcc12.patch | 30 +++ .../chromium/files/chromium-114-sigsegv-dom.patch | 73 ++++++ 9 files changed, 274 insertions(+), 575 deletions(-) delete mode 100644 www-client/chromium/files/chromium-112-compiler.patch delete mode 100644 www-client/chromium/files/chromium-112-gcc-mno-outline.patch delete mode 100644 www-client/chromium/files/chromium-112-libstdc++-1.patch delete mode 100644 www-client/chromium/files/chromium-112-libstdc++.patch delete mode 100644 www-client/chromium/files/chromium-112-sql-relax.patch delete mode 100644 www-client/chromium/files/chromium-112-swiftshader.patch create mode 100644 www-client/chromium/files/chromium-114-compiler.patch create mode 100644 www-client/chromium/files/chromium-114-gcc12.patch create mode 100644 www-client/chromium/files/chromium-114-sigsegv-dom.patch (limited to 'www-client/chromium/files') diff --git a/www-client/chromium/files/chromium-112-compiler.patch b/www-client/chromium/files/chromium-112-compiler.patch deleted file mode 100644 index 8d4237379b27..000000000000 --- a/www-client/chromium/files/chromium-112-compiler.patch +++ /dev/null @@ -1,256 +0,0 @@ -From 307a0f63dd9b118f4b8470ed3d7567e81fdb7a6d Mon Sep 17 00:00:00 2001 -From: Mike Gilbert -Date: Tue, 15 Nov 2022 10:27:58 +0000 -Subject: [PATCH] Disable various compiler configs - ---- - build/config/compiler/BUILD.gn | 134 +++++---------------------------- - 1 file changed, 17 insertions(+), 117 deletions(-) - -diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn -index bd039fc..4d3759a 100644 ---- a/build/config/compiler/BUILD.gn -+++ b/build/config/compiler/BUILD.gn -@@ -276,9 +276,7 @@ config("compiler") { - - configs += [ - # See the definitions below. -- ":clang_revision", - ":rustc_revision", -- ":compiler_cpu_abi", - ":compiler_codegen", - ":compiler_deterministic", - ] -@@ -529,37 +527,6 @@ config("compiler") { - ldflags += [ "-Wl,-z,keep-text-section-prefix" ] - } - -- if (is_clang && !is_nacl && current_os != "zos") { -- cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ] -- if (save_reproducers_on_lld_crash && use_lld) { -- ldflags += [ -- "-fcrash-diagnostics=all", -- "-fcrash-diagnostics-dir=" + clang_diagnostic_dir, -- ] -- } -- -- # TODO(hans): Remove this once Clang generates better optimized debug info -- # by default. https://crbug.com/765793 -- cflags += [ -- "-mllvm", -- "-instcombine-lower-dbg-declare=0", -- ] -- if (!is_debug && use_thin_lto && is_a_target_toolchain) { -- if (is_win) { -- ldflags += [ "-mllvm:-instcombine-lower-dbg-declare=0" ] -- } else { -- ldflags += [ "-Wl,-mllvm,-instcombine-lower-dbg-declare=0" ] -- } -- } -- -- # TODO(crbug.com/1235145): Investigate why/if this should be needed. -- if (is_win) { -- cflags += [ "/clang:-ffp-contract=off" ] -- } else { -- cflags += [ "-ffp-contract=off" ] -- } -- } -- - # Rust compiler setup (for either clang or rustc). - if (enable_rust) { - defines += [ "RUST_ENABLED" ] -@@ -1301,46 +1268,6 @@ config("compiler_deterministic") { - } - } - -- # Makes builds independent of absolute file path. -- if (is_clang && strip_absolute_paths_from_debug_symbols) { -- # If debug option is given, clang includes $cwd in debug info by default. -- # For such build, this flag generates reproducible obj files even we use -- # different build directory like "out/feature_a" and "out/feature_b" if -- # we build same files with same compile flag. -- # Other paths are already given in relative, no need to normalize them. -- if (is_nacl) { -- # TODO(https://crbug.com/1231236): Use -ffile-compilation-dir= here. -- cflags += [ -- "-Xclang", -- "-fdebug-compilation-dir", -- "-Xclang", -- ".", -- ] -- } else { -- # -ffile-compilation-dir is an alias for both -fdebug-compilation-dir= -- # and -fcoverage-compilation-dir=. -- cflags += [ "-ffile-compilation-dir=." ] -- swiftflags += [ "-file-compilation-dir=." ] -- } -- if (!is_win) { -- # We don't use clang -cc1as on Windows (yet? https://crbug.com/762167) -- asmflags = [ "-Wa,-fdebug-compilation-dir,." ] -- } -- -- if (is_win && use_lld) { -- if (symbol_level == 2 || (is_clang && using_sanitizer)) { -- # Absolutize source file paths for PDB. Pass the real build directory -- # if the pdb contains source-level debug information and if linker -- # reproducibility is not critical. -- ldflags += [ "/PDBSourcePath:" + rebase_path(root_build_dir) ] -- } else { -- # Use a fake fixed base directory for paths in the pdb to make the pdb -- # output fully deterministic and independent of the build directory. -- ldflags += [ "/PDBSourcePath:o:\fake\prefix" ] -- } -- } -- } -- - # Tells the compiler not to use absolute paths when passing the default - # paths to the tools it invokes. We don't want this because we don't - # really need it and it can mess up the goma cache entries. -@@ -1359,27 +1286,6 @@ config("compiler_deterministic") { - } - } - --config("clang_revision") { -- if (is_clang && clang_base_path == default_clang_base_path) { -- update_args = [ -- "--print-revision", -- "--verify-version=$clang_version", -- ] -- if (llvm_force_head_revision) { -- update_args += [ "--llvm-force-head-revision" ] -- } -- clang_revision = exec_script("//tools/clang/scripts/update.py", -- update_args, -- "trim string") -- -- # This is here so that all files get recompiled after a clang roll and -- # when turning clang on or off. (defines are passed via the command line, -- # and build system rebuild things when their commandline changes). Nothing -- # should ever read this define. -- defines = [ "CR_CLANG_REVISION=\"$clang_revision\"" ] -- } --} -- - config("rustc_revision") { - if (enable_rust && defined(rustc_version)) { - # Similar to the above config, this is here so that all files get -@@ -1669,7 +1575,7 @@ config("chromium_code") { - defines = [ "_HAS_NODISCARD" ] - } - } else { -- cflags = [ "-Wall" ] -+ cflags = [] - if (treat_warnings_as_errors) { - cflags += [ "-Werror" ] - -@@ -1678,10 +1584,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. -@@ -1690,16 +1592,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" && -- current_cpu != "riscv64" && current_cpu != "loong64") { -- # 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" ] -@@ -2092,7 +1984,8 @@ config("default_stack_frames") { - } - - # Default "optimization on" config. --config("optimize") { -+config("optimize") { } -+config("xoptimize") { - if (is_win) { - if (chrome_pgo_phase != 2) { - # Favor size over speed, /O1 must be before the common flags. -@@ -2137,7 +2030,8 @@ config("optimize") { - } - - # Turn off optimizations. --config("no_optimize") { -+config("no_optimize") { } -+config("xno_optimize") { - if (is_win) { - cflags = [ - "/Od", # Disable optimization. -@@ -2177,7 +2071,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: -@@ -2210,7 +2105,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: -@@ -2236,7 +2132,8 @@ config("optimize_speed") { - } - } - --config("optimize_fuzzing") { -+config("optimize_fuzzing") { } -+config("xoptimize_fuzzing") { - cflags = [ "-O1" ] + common_optimize_on_cflags - rustflags = [ "-Copt-level=1" ] - ldflags = common_optimize_on_ldflags -@@ -2356,7 +2253,8 @@ config("win_pdbaltpath") { - } - - # Full symbols. --config("symbols") { -+config("symbols") { } -+config("xsymbols") { - if (is_win) { - if (is_clang) { - cflags = [ -@@ -2495,7 +2393,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 = [] -@@ -2568,7 +2467,8 @@ config("minimal_symbols") { - # This configuration contains function names only. That is, the compiler is - # told to not generate debug information and the linker then just puts function - # names in the final debug information. --config("no_symbols") { -+config("no_symbols") { } -+config("xno_symbols") { - if (is_win) { - ldflags = [ "/DEBUG" ] - --- -2.37.4 - diff --git a/www-client/chromium/files/chromium-112-gcc-mno-outline.patch b/www-client/chromium/files/chromium-112-gcc-mno-outline.patch deleted file mode 100644 index 9ebaf1720a90..000000000000 --- a/www-client/chromium/files/chromium-112-gcc-mno-outline.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 428afabde5f20bc91ad1166b983b9975188be737 Mon Sep 17 00:00:00 2001 -From: Jose Dapena Paz -Date: Tue, 07 Mar 2023 17:46:30 +0000 -Subject: [PATCH] GCC: do not disable outlining with -mno-outline - -GCC build fails in arm64 because -mno-outline is passed. This build -option is only supported in Clang. - -Bug: 819294 -Change-Id: Ied5cf194c26fd284aa66477cf0cd381b8cd26607 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4316542 -Reviewed-by: Hans Wennborg -Commit-Queue: José Dapena Paz -Cr-Commit-Position: refs/heads/main@{#1114023} ---- - -diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn -index 4e6708b..6ca2924 100644 ---- a/build/config/compiler/BUILD.gn -+++ b/build/config/compiler/BUILD.gn -@@ -1304,7 +1304,7 @@ - configs += [ "//build/config/nacl:compiler_codegen" ] - } - -- if (current_cpu == "arm64" && !is_win) { -+ if (current_cpu == "arm64" && !is_win && is_clang) { - # Disable outlining everywhere on arm64 except Win. For more information see - # crbug.com/931297 for Android and crbug.com/1410297 for iOS. - # TODO(crbug.com/1411363): Enable this on Windows if possible. diff --git a/www-client/chromium/files/chromium-112-libstdc++-1.patch b/www-client/chromium/files/chromium-112-libstdc++-1.patch deleted file mode 100644 index 36a1f94252c3..000000000000 --- a/www-client/chromium/files/chromium-112-libstdc++-1.patch +++ /dev/null @@ -1,59 +0,0 @@ -From aaeaf2a563682f2f63196f924a842dcca42be8ef Mon Sep 17 00:00:00 2001 -From: Jose Dapena Paz -Date: Tue, 07 Mar 2023 16:54:09 +0000 -Subject: [PATCH] IWYU: libstdc++ unique_ptr cast from nullptr requires declaration of type - -fallback_linux_ui.cc returns a nullptr as a result of several -calls returning a std::unique_ptr of a type that has not been declared -and that's not allowed in libstdc++ implementation. - -Fix build errors: - /usr/include/c++/12/bits/unique_ptr.h: In instantiation of ‘void std::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = ui::LinuxInputMethodContext]’: - /usr/include/c++/12/bits/unique_ptr.h:396:17: required from ‘std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = ui::LinuxInputMethodContext; _Dp = std::default_delete]’ - ../../ui/linux/fallback_linux_ui.cc:35:10: required from here - /usr/include/c++/12/bits/unique_ptr.h:93:23: error: invalid application of ‘sizeof’ to incomplete type ‘ui::LinuxInputMethodContext’ - 93 | static_assert(sizeof(_Tp)>0, - | ^~~~~~~~~~~ - /usr/include/c++/12/bits/unique_ptr.h: In instantiation of ‘void std::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = ui::NavButtonProvider]’: - /usr/include/c++/12/bits/unique_ptr.h:396:17: required from ‘std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = ui::NavButtonProvider; _Dp = std::default_delete]’ - ../../ui/linux/fallback_linux_ui.cc:133:10: required from here - /usr/include/c++/12/bits/unique_ptr.h:93:23: error: invalid application of ‘sizeof’ to incomplete type ‘ui::NavButtonProvider’ - -Bug: 957519 -Change-Id: I5e7f096003d8f5de8f5be36137ac4427799bf7a5 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4310671 -Reviewed-by: Thomas Anderson -Commit-Queue: Thomas Anderson -Cr-Commit-Position: refs/heads/main@{#1113983} ---- - -diff --git a/ui/linux/BUILD.gn b/ui/linux/BUILD.gn -index eb72461..8662261 100644 ---- a/ui/linux/BUILD.gn -+++ b/ui/linux/BUILD.gn -@@ -52,6 +52,7 @@ - deps = [ - "//base", - "//ui/base:buildflags", -+ "//ui/base/ime/linux:linux", - "//ui/events:dom_keyboard_layout", - "//ui/gfx", - "//ui/native_theme", -diff --git a/ui/linux/fallback_linux_ui.cc b/ui/linux/fallback_linux_ui.cc -index ee3e7b9..5f5abee 100644 ---- a/ui/linux/fallback_linux_ui.cc -+++ b/ui/linux/fallback_linux_ui.cc -@@ -5,11 +5,13 @@ - #include "ui/linux/fallback_linux_ui.h" - - #include "base/time/time.h" -+#include "ui/base/ime/linux/linux_input_method_context.h" - #include "ui/events/keycodes/dom/dom_keyboard_layout_map.h" - #include "ui/gfx/color_palette.h" - #include "ui/gfx/geometry/size.h" - #include "ui/gfx/image/image.h" - #include "ui/gfx/platform_font.h" -+#include "ui/linux/nav_button_provider.h" - #include "ui/native_theme/native_theme.h" - #include "ui/shell_dialogs/select_file_policy.h" - #include "ui/views/controls/textfield/textfield.h" diff --git a/www-client/chromium/files/chromium-112-libstdc++.patch b/www-client/chromium/files/chromium-112-libstdc++.patch deleted file mode 100644 index bef364e0b5e0..000000000000 --- a/www-client/chromium/files/chromium-112-libstdc++.patch +++ /dev/null @@ -1,63 +0,0 @@ -From f2ea90d9cf667612b2913a6f30636a4773bad026 Mon Sep 17 00:00:00 2001 -From: Jose Dapena Paz -Date: Tue, 28 Feb 2023 18:38:25 +0000 -Subject: [PATCH] IWYU: include blink::URLLoader for unique_ptr usage in WebLocalFrameClient - -Recent refactor broke again libstdc++ build by not including URLLoader -header. But the reason for that change was removing in public code -includes of non public code, as URLLoader. - -To fix the problem, move the implementation exposing the problem -to the .cc file. - -Fixes build error with libstdc++: - /usr/include/c++/12/bits/unique_ptr.h: In instantiation of ‘void std::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = blink::URLLoader]’: - /usr/include/c++/12/bits/unique_ptr.h:396:17: required from ‘std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = blink::URLLoader; _Dp = std::default_delete]’ - ../../third_party/blink/public/web/web_local_frame_client.h:678:12: required from here - /usr/include/c++/12/bits/unique_ptr.h:93:23: error: invalid application of ‘sizeof’ to incomplete type ‘blink::URLLoader’ - -Bug: 957519 -Change-Id: I0db2f86603fba4fe8f10d6c4370ad1ff4c9ca70b -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4276241 -Reviewed-by: Daniel Cheng -Commit-Queue: José Dapena Paz -Cr-Commit-Position: refs/heads/main@{#1111077} ---- - -diff --git a/third_party/blink/public/web/web_local_frame_client.h b/third_party/blink/public/web/web_local_frame_client.h -index d6bb896..246d2ff 100644 ---- a/third_party/blink/public/web/web_local_frame_client.h -+++ b/third_party/blink/public/web/web_local_frame_client.h -@@ -674,9 +674,7 @@ - return nullptr; - } - -- virtual std::unique_ptr CreateURLLoaderForTesting() { -- return nullptr; -- } -+ virtual std::unique_ptr CreateURLLoaderForTesting(); - - virtual void OnStopLoading() {} - -diff --git a/third_party/blink/renderer/core/frame/web_local_frame_client.cc b/third_party/blink/renderer/core/frame/web_local_frame_client.cc -index a3617af..3adcd7c 100644 ---- a/third_party/blink/renderer/core/frame/web_local_frame_client.cc -+++ b/third_party/blink/renderer/core/frame/web_local_frame_client.cc -@@ -7,6 +7,7 @@ - #include "mojo/public/cpp/bindings/pending_remote.h" - #include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h" - #include "third_party/blink/public/common/browser_interface_broker_proxy.h" -+#include "third_party/blink/renderer/platform/loader/fetch/url_loader/url_loader.h" - - namespace blink { - -@@ -25,4 +26,9 @@ - // have this implementation in the base class. - return AssociatedInterfaceProvider::GetEmptyAssociatedInterfaceProvider(); - } -+ -+std::unique_ptr WebLocalFrameClient::CreateURLLoaderForTesting() { -+ return nullptr; -+} -+ - } // namespace blink diff --git a/www-client/chromium/files/chromium-112-sql-relax.patch b/www-client/chromium/files/chromium-112-sql-relax.patch deleted file mode 100644 index 2510d1000034..000000000000 --- a/www-client/chromium/files/chromium-112-sql-relax.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 7d1394bd639e3bcf68082ac3fc33eeed6a00d2e6 Mon Sep 17 00:00:00 2001 -From: Elly Fong-Jones -Date: Thu, 02 Mar 2023 00:15:11 +0000 -Subject: [PATCH] sql: relax constraints on VirtualCursor layout - -VirtualCursor::FromSqliteCursor required that VirtualCursor had a -standard layout, but in fact VirtualCursor shouldn't have a standard -layout, and the fact that it does with libc++ is a deviation from the -C++ standard. This change: - -1. Relaxes the requirement that VirtualCursor has a standard layout, and -2. Relaxes the requirement that the sqlite_cursor_ field has to be at - offset 0 - -by use of offsetof() and pointer subtraction. This change both improves -standards compliance and makes this code build with libstdc++. - -Bug: 1380656 -Change-Id: I9c47abd9197b187da0360ca5619ccf7dadab4f33 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4292313 -Reviewed-by: Austin Sullivan -Commit-Queue: Elly Fong-Jones -Cr-Commit-Position: refs/heads/main@{#1111925} ---- - -diff --git a/sql/recover_module/cursor.h b/sql/recover_module/cursor.h -index 1970bdca..4cb0655 100644 ---- a/sql/recover_module/cursor.h -+++ b/sql/recover_module/cursor.h -@@ -63,12 +63,10 @@ - // |sqlite_cursor| must have been returned by VirtualTable::SqliteCursor(). - static inline VirtualCursor* FromSqliteCursor( - sqlite3_vtab_cursor* sqlite_cursor) { -- static_assert(std::is_standard_layout::value, -- "needed for the reinterpret_cast below"); -- static_assert(offsetof(VirtualCursor, sqlite_cursor_) == 0, -- "sqlite_cursor_ must be the first member of the class"); -- VirtualCursor* result = reinterpret_cast(sqlite_cursor); -- DCHECK_EQ(sqlite_cursor, &result->sqlite_cursor_); -+ VirtualCursor* result = reinterpret_cast( -+ (reinterpret_cast(sqlite_cursor) - -+ offsetof(VirtualCursor, sqlite_cursor_))); -+ CHECK_EQ(sqlite_cursor, &result->sqlite_cursor_); - return result; - } - diff --git a/www-client/chromium/files/chromium-112-swiftshader.patch b/www-client/chromium/files/chromium-112-swiftshader.patch deleted file mode 100644 index 9d67841a1dea..000000000000 --- a/www-client/chromium/files/chromium-112-swiftshader.patch +++ /dev/null @@ -1,122 +0,0 @@ -https://bugs.gentoo.org/904725 -https://bugs.gentoo.org/904850 - -From 451fb9470e4e1cd183ff05d5e171dc21bae6e47c Mon Sep 17 00:00:00 2001 -From: Jose Dapena Paz -Date: Thu, 16 Mar 2023 13:29:48 +0100 -Subject: [PATCH] Another C++20 fix for GCC - -This is a direct backport of commit 95d0d8e9e9d10da3cfa503fbba405e740aea3cc1 -from Richard Smith: - From: Richard Smith - Date: Tue, 23 Feb 2021 14:07:13 -0800 - Subject: Fix constructor declarations that are invalid in C++20 onwards. - - Fix constructor declarations that are invalid in C++20 onwards. - - Under C++ CWG DR 2237, the constructor for a class template C must be - written as 'C(...)' not as 'C(...)'. This fixes a build failure with - GCC in C++20 mode. - - In passing, remove some other redundant '' qualification from the - affected classes. - -Bug: chromium:819294 -Change-Id: I51a7f069d355d4932f4b50640fedbba1d5773f0b -Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/71088 -Kokoro-Result: kokoro -Reviewed-by: Shahbaz Youssefi -Tested-by: Shahbaz Youssefi -Commit-Queue: Shahbaz Youssefi ---- - ---- a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/ADT/STLExtras.h -+++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/ADT/STLExtras.h -@@ -1415,9 +1415,9 @@ - result_pair(std::size_t Index, IterOfRange Iter) - : Index(Index), Iter(Iter) {} - -- result_pair(const result_pair &Other) -+ result_pair(const result_pair &Other) - : Index(Other.Index), Iter(Other.Iter) {} -- result_pair &operator=(const result_pair &Other) { -+ result_pair &operator=(const result_pair &Other) { - Index = Other.Index; - Iter = Other.Iter; - return *this; -@@ -1451,22 +1451,22 @@ - result_type &operator*() { return Result; } - const result_type &operator*() const { return Result; } - -- enumerator_iter &operator++() { -+ enumerator_iter &operator++() { - assert(Result.Index != std::numeric_limits::max()); - ++Result.Iter; - ++Result.Index; - return *this; - } - -- bool operator==(const enumerator_iter &RHS) const { -+ bool operator==(const enumerator_iter &RHS) const { - // Don't compare indices here, only iterators. It's possible for an end - // iterator to have different indices depending on whether it was created - // by calling std::end() versus incrementing a valid iterator. - return Result.Iter == RHS.Result.Iter; - } - -- enumerator_iter(const enumerator_iter &Other) : Result(Other.Result) {} -- enumerator_iter &operator=(const enumerator_iter &Other) { -+ enumerator_iter(const enumerator_iter &Other) : Result(Other.Result) {} -+ enumerator_iter &operator=(const enumerator_iter &Other) { - Result = Other.Result; - return *this; - } -From e4dea744b7838470757f010fc2ff4b92f02b3fac Mon Sep 17 00:00:00 2001 -From: Jose Dapena Paz -Date: Thu, 16 Mar 2023 13:29:54 +0100 -Subject: [PATCH] More C++20 fixes - -Partial backport of llvm-project patch: - commit 2ccf0b76bcaf0895e04f14e3ff53c59dd96f9f0f - Author: Evgeny Mandrikov - Date: Thu Jan 6 17:01:05 2022 +0100 - - Fix build failure with GCC 11 in C++20 mode - - See https://wg21.link/cwg2237 - - Reviewed By: shafik, dexonsmith - - Differential Revision: https://reviews.llvm.org/D115355 - -Bug: chromium:819294 -Change-Id: I90d58b6fc601f9a4f615e2f6edc13a73ce848e4f -Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/71089 -Reviewed-by: Shahbaz Youssefi -Tested-by: Shahbaz Youssefi -Kokoro-Result: kokoro -Commit-Queue: Shahbaz Youssefi ---- - ---- a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/CodeGen/LiveInterval.h -+++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/CodeGen/LiveInterval.h -@@ -718,7 +718,7 @@ - T *P; - - public: -- SingleLinkedListIterator(T *P) : P(P) {} -+ SingleLinkedListIterator(T *P) : P(P) {} - - SingleLinkedListIterator &operator++() { - P = P->Next; ---- a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Support/BinaryStreamArray.h -+++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Support/BinaryStreamArray.h -@@ -324,7 +324,7 @@ - FixedStreamArrayIterator(const FixedStreamArray &Array, uint32_t Index) - : Array(Array), Index(Index) {} - -- FixedStreamArrayIterator(const FixedStreamArrayIterator &Other) -+ FixedStreamArrayIterator(const FixedStreamArrayIterator &Other) - : Array(Other.Array), Index(Other.Index) {} - FixedStreamArrayIterator & - operator=(const FixedStreamArrayIterator &Other) { diff --git a/www-client/chromium/files/chromium-114-compiler.patch b/www-client/chromium/files/chromium-114-compiler.patch new file mode 100644 index 000000000000..f6a6b708da6f --- /dev/null +++ b/www-client/chromium/files/chromium-114-compiler.patch @@ -0,0 +1,171 @@ +This patches the compiler settings for chromium to remove +clang-specific settings, among other things. + +Just do a `git apply --reject` to the unpacked chromium source when +it inevitably needs to be updated between versions. + +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -289,9 +289,7 @@ config("compiler") { + + configs += [ + # See the definitions below. +- ":clang_revision", + ":rustc_revision", +- ":compiler_cpu_abi", + ":compiler_codegen", + ":compiler_deterministic", + ] +@@ -732,7 +730,6 @@ config("compiler") { + # toolchain has this flag. + # We only use one version of LLVM within a build so there's no need to + # upgrade debug info, which can be expensive since it runs the verifier. +- ldflags += [ "-Wl,-mllvm,-disable-auto-upgrade-debug-info" ] + } + } + +@@ -1406,27 +1403,6 @@ config("compiler_deterministic") { + } + } + +-config("clang_revision") { +- if (is_clang && clang_base_path == default_clang_base_path) { +- update_args = [ +- "--print-revision", +- "--verify-version=$clang_version", +- ] +- if (llvm_force_head_revision) { +- update_args += [ "--llvm-force-head-revision" ] +- } +- clang_revision = exec_script("//tools/clang/scripts/update.py", +- update_args, +- "trim string") +- +- # This is here so that all files get recompiled after a clang roll and +- # when turning clang on or off. (defines are passed via the command line, +- # and build system rebuild things when their commandline changes). Nothing +- # should ever read this define. +- defines = [ "CR_CLANG_REVISION=\"$clang_revision\"" ] +- } +-} +- + config("rustc_revision") { + if (rustc_revision != "") { + # Similar to the above config, this is here so that all files get recompiled +@@ -1716,7 +1692,7 @@ config("chromium_code") { + defines = [ "_HAS_NODISCARD" ] + } + } else { +- cflags = [ "-Wall" ] ++ cflags = [] + if (treat_warnings_as_errors) { + cflags += [ "-Werror" ] + +@@ -1725,10 +1701,6 @@ config("chromium_code") { + # well. + ldflags = [ "-Werror" ] + } +- if (is_clang) { +- # Enable extra warnings for chromium_code when we control the compiler. +- cflags += [ "-Wextra" ] +- } + + if (treat_warnings_as_errors) { + # Turn rustc warnings into the "deny" lint level, which produce compiler +@@ -1746,16 +1718,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" && +- current_cpu != "riscv64" && current_cpu != "loong64") { +- # 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_apple) { + cflags_objc = [ "-Wimplicit-retain-self" ] + cflags_objcc = [ "-Wimplicit-retain-self" ] +@@ -2120,7 +2082,8 @@ config("default_stack_frames") { + } + + # Default "optimization on" config. +-config("optimize") { ++config("optimize") { } ++config("xoptimize") { + if (is_win) { + if (chrome_pgo_phase != 2) { + # Favor size over speed, /O1 must be before the common flags. +@@ -2179,7 +2142,8 @@ config("optimize") { + } + + # Turn off optimizations. +-config("no_optimize") { ++config("no_optimize") { } ++config("xno_optimize") { + if (is_win) { + cflags = [ + "/Od", # Disable optimization. +@@ -2219,7 +2183,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: +@@ -2252,7 +2217,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: +@@ -2278,7 +2244,8 @@ config("optimize_speed") { + } + } + +-config("optimize_fuzzing") { ++config("optimize_fuzzing") { } ++config("xoptimize_fuzzing") { + cflags = [ "-O1" ] + common_optimize_on_cflags + rustflags = [ "-Copt-level=1" ] + ldflags = common_optimize_on_ldflags +@@ -2403,7 +2370,8 @@ config("win_pdbaltpath") { + } + + # Full symbols. +-config("symbols") { ++config("symbols") { } ++config("xsymbols") { + rustflags = [] + if (is_win) { + if (is_clang) { +@@ -2546,7 +2514,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 = [] +@@ -2620,7 +2589,8 @@ config("minimal_symbols") { + # This configuration contains function names only. That is, the compiler is + # told to not generate debug information and the linker then just puts function + # names in the final debug information. +-config("no_symbols") { ++config("no_symbols") { } ++config("xno_symbols") { + if (is_win) { + ldflags = [ "/DEBUG" ] + diff --git a/www-client/chromium/files/chromium-114-gcc12.patch b/www-client/chromium/files/chromium-114-gcc12.patch new file mode 100644 index 000000000000..5070135c6117 --- /dev/null +++ b/www-client/chromium/files/chromium-114-gcc12.patch @@ -0,0 +1,30 @@ +https://chromium.googlesource.com/chromium/src/+/a1fec6273f3ad7c73b35bb420a5540355df35b74 +controlledframe: Fix start up crash + +This commit applies a fix from mail@maciej.szmigiero.name to prevent a +null reference error in GetControlledFrameFeatureList(). The fix is to +add static to `feature_list` so that the object lives past this +function. + +BUG=1447422 + +Change-Id: I22879831ec879ce7d6a178760540f88106b3ded4 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4555985 +Commit-Queue: Ovidio Ruiz-Henríquez +Reviewed-by: David Roger +Reviewed-by: Chase Phillips +Auto-Submit: Ovidio Ruiz-Henríquez +Cr-Commit-Position: refs/heads/main@{#1149296} + +--- a/chrome/common/initialize_extensions_client.cc ++++ b/chrome/common/initialize_extensions_client.cc + +@@ -19,7 +19,7 @@ + + // This list should stay in sync with GetExpectedDelegatedFeaturesForTest(). + base::span GetControlledFrameFeatureList() { +- constexpr const char* feature_list[] = { ++ static constexpr const char* feature_list[] = { + "controlledFrameInternal", "chromeWebViewInternal", "guestViewInternal", + "webRequestInternal", "webViewInternal", + }; diff --git a/www-client/chromium/files/chromium-114-sigsegv-dom.patch b/www-client/chromium/files/chromium-114-sigsegv-dom.patch new file mode 100644 index 000000000000..fe4c2809693c --- /dev/null +++ b/www-client/chromium/files/chromium-114-sigsegv-dom.patch @@ -0,0 +1,73 @@ +https://chromium.googlesource.com/chromium/src.git/+/2af2d08972d14d5bdd91e0515eb5b15b4444aee9 +blink::HTMLMediaElement::ShouldReusePlayer: avoid dereferencing a potentally NULL domWindow + +The domWindow() method of the Document class can potentially return nullptr +as noted in renderer/core/dom/document.h + +> // A document may or may not have a browsing context +> // (https://html.spec.whatwg.org/#browsing-context). A document with a browsing +> // context is created by navigation, and has a non-null domWindow(), GetFrame(), +> // Loader(), etc., and is visible to the user. It will have a valid +> // GetExecutionContext(), which will be equal to domWindow(). If the Document +> // constructor receives a DocumentInit created WithDocumentLoader(), it will +> // have a browsing context. +> // Documents created by all other APIs do not have a browsing context. These +> // Documents still have a valid GetExecutionContext() (i.e., the domWindow() of +> // the Document in which they were created), so they can still access +> // script, but return null for domWindow(), GetFrame() and Loader(). Generally, +> // they should not downcast the ExecutionContext to a LocalDOMWindow and access +> // the properties of the window directly. + +Upon checking further, the offending document returns null for GetFrame() and +Loader() aswell so this was likely just an oversight and no invariants are being +violated + +Introduced in https://chromium-review.googlesource.com/c/chromium/src/+/4202152 + +More details https://bugs.chromium.org/p/chromium/issues/detail?id=1447388 + +Fixed: 1447388 +Change-Id: I85a6ef52baaac0ec7f5ec188d5d5bb2c518a8ecd +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4546610 +Reviewed-by: Fredrik Söderquist +Commit-Queue: Fredrik Söderquist +Cr-Commit-Position: refs/heads/main@{#1147184} + +--- a/AUTHORS ++++ b/AUTHORS + +@@ -1012,6 +1012,7 @@ + Prashant Hiremath + Prashant Nevase + Prashant Patil ++Pratham + Praveen Akkiraju + Preeti Nayak + Pritam Nikam + +--- a/third_party/blink/renderer/core/html/media/html_media_element.cc ++++ b/third_party/blink/renderer/core/html/media/html_media_element.cc + +@@ -648,6 +648,11 @@ + + bool HTMLMediaElement::ShouldReusePlayer(Document& old_document, + Document& new_document) const { ++ // A NULL frame implies a NULL domWindow, so just check one of them ++ if (!old_document.GetFrame() || !new_document.GetFrame()) { ++ return false; ++ } ++ + // Don't reuse player if the Document Picture-in-Picture API is disabled for + // both documents. + if (!RuntimeEnabledFeatures::DocumentPictureInPictureAPIEnabled( +@@ -657,10 +662,6 @@ + return false; + } + +- if (!old_document.GetFrame() || !new_document.GetFrame()) { +- return false; +- } +- + auto* new_origin = new_document.GetFrame() + ->LocalFrameRoot() + .GetSecurityContext() -- cgit v1.2.3