From f24661737e4dc89bf9d10a5743160783b8eb0588 Mon Sep 17 00:00:00 2001 From: Peter Bui Date: Sun, 19 Jul 2020 12:59:50 -0400 Subject: [PATCH] chromium: update to 84.0.4147.89. [ci skip] - Built for i686, x86_64, x86_64-musl. - Tested on x86_64. - Removed yasm (upstream uses nasm). - Added xcb-proto (and some symlink hacking to make it build with Python2) - Update musl-fixes patch (some changes have been upstreamed). --- .../files/musl-patches/musl-fixes.patch | 33 ++--- ...chromium-84-crashpad-include-cstring.patch | 90 ++++++++++++ ...chromium-84-gcc-DCHECK_EQ-unique_ptr.patch | 29 ++++ .../chromium-84-std-vector-const.patch | 49 +++++++ .../patches/clean-up-a-call-to-set_utf8.patch | 34 ----- ...remove-unsupported-compiler-warnings.patch | 14 +- .../upstream-AXObject-stl-iterator.patch | 36 +++++ ...-ListContainerHelper-include-cstring.patch | 30 ++++ ...pstream-add-missing-algorithm-header.patch | 29 ---- .../upstream-add-missing-limits-header.patch | 32 ---- .../upstream-add-missing-memory-header.patch | 32 ---- ...teForCurrentDocument-from-destructor.patch | 71 +++++++++ ...struction-of-ServiceWorkerObjectHost.patch | 138 ------------------ ...mplete-type-in-AXTree-for-NodeSetSiz.patch | 62 -------- ...link-custom-iterators-STL-compatible.patch | 95 ------------ ...calls-and-just-send-a-normal-message.patch | 42 ++++++ srcpkgs/chromium/template | 15 +- 17 files changed, 373 insertions(+), 458 deletions(-) create mode 100644 srcpkgs/chromium/patches/chromium-84-crashpad-include-cstring.patch create mode 100644 srcpkgs/chromium/patches/chromium-84-gcc-DCHECK_EQ-unique_ptr.patch create mode 100644 srcpkgs/chromium/patches/chromium-84-std-vector-const.patch delete mode 100644 srcpkgs/chromium/patches/clean-up-a-call-to-set_utf8.patch create mode 100644 srcpkgs/chromium/patches/upstream-AXObject-stl-iterator.patch create mode 100644 srcpkgs/chromium/patches/upstream-ListContainerHelper-include-cstring.patch delete mode 100644 srcpkgs/chromium/patches/upstream-add-missing-algorithm-header.patch delete mode 100644 srcpkgs/chromium/patches/upstream-add-missing-limits-header.patch delete mode 100644 srcpkgs/chromium/patches/upstream-add-missing-memory-header.patch create mode 100644 srcpkgs/chromium/patches/upstream-avoid-calling-DeleteForCurrentDocument-from-destructor.patch delete mode 100644 srcpkgs/chromium/patches/upstream-avoid-double-destruction-of-ServiceWorkerObjectHost.patch delete mode 100644 srcpkgs/chromium/patches/upstream-libstdc-fix-incomplete-type-in-AXTree-for-NodeSetSiz.patch delete mode 100644 srcpkgs/chromium/patches/upstream-make-some-of-blink-custom-iterators-STL-compatible.patch create mode 100644 srcpkgs/chromium/patches/upstream-remove-NotifyError-calls-and-just-send-a-normal-message.patch diff --git a/srcpkgs/chromium/files/musl-patches/musl-fixes.patch b/srcpkgs/chromium/files/musl-patches/musl-fixes.patch index f29d66b98c..6b50f61fcb 100644 --- a/srcpkgs/chromium/files/musl-patches/musl-fixes.patch +++ b/srcpkgs/chromium/files/musl-patches/musl-fixes.patch @@ -26,17 +26,6 @@ namespace google_breakpad { // Wraps platform-dependent implementations of accessors to ucontext_t structs. ---- ./third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h.orig -+++ ./third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h -@@ -48,7 +48,7 @@ - #if defined(__aarch64__) - typedef struct fpsimd_context fpstate_t; - #elif !defined(__ARM_EABI__) && !defined(__mips__) --typedef struct _libc_fpstate fpstate_t; -+typedef struct _fpstate fpstate_t; - #endif - - // These entries store a list of memory regions that the client wants included --- ./third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h.orig +++ ./third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h @@ -36,6 +36,7 @@ @@ -47,18 +36,6 @@ #include "common/memory_range.h" -@@ -51,9 +52,9 @@ - typedef ElfW(Phdr) Phdr; - typedef ElfW(Word) Word; - typedef ElfW(Addr) Addr; --#if __WORDSIZE == 32 -+#if ULONG_MAX == 0xffffffff - static const int kClass = ELFCLASS32; --#elif __WORDSIZE == 64 -+#elif ULONG_MAX == 0xffffffffffffffff - static const int kClass = ELFCLASS64; - #else - #error "Unsupported __WORDSIZE for ElfCoreDump." --- ./sandbox/linux/suid/process_util.h.orig +++ ./sandbox/linux/suid/process_util.h @@ -11,6 +11,14 @@ @@ -213,3 +190,13 @@ diff --git a/third_party/ots/include/opentype-sanitiser.h b/third_party/ots/incl /* * GNU-specific, but avoids the realpath(..., NULL) +--- mojo/public/cpp/platform/named_platform_channel_posix.cc.orig 2020-07-19 13:26:10.696171063 -0400 ++++ mojo/public/cpp/platform/named_platform_channel_posix.cc 2020-07-19 13:26:43.680151714 -0400 +@@ -5,6 +5,7 @@ + #include "mojo/public/cpp/platform/named_platform_channel.h" + + #include ++#include + #include + #include + #include diff --git a/srcpkgs/chromium/patches/chromium-84-crashpad-include-cstring.patch b/srcpkgs/chromium/patches/chromium-84-crashpad-include-cstring.patch new file mode 100644 index 0000000000..2cdd9e702f --- /dev/null +++ b/srcpkgs/chromium/patches/chromium-84-crashpad-include-cstring.patch @@ -0,0 +1,90 @@ +From effd506ce070d58e731bd6086681b9cded8573ed Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Sun, 10 May 2020 07:24:38 +0000 +Subject: [PATCH] IWYU: add a bunch of missing cstring includes + +--- + .../crashpad/snapshot/minidump/minidump_context_converter.cc | 2 ++ + third_party/crashpad/crashpad/util/linux/ptrace_client.cc | 1 + + .../crashpad/crashpad/util/net/http_multipart_builder.cc | 1 + + third_party/crashpad/crashpad/util/net/http_transport_socket.cc | 2 ++ + third_party/crashpad/crashpad/util/process/process_memory.cc | 1 + + third_party/crashpad/crashpad/util/stream/log_output_stream.cc | 1 + + 6 files changed, 8 insertions(+) + +diff --git a/third_party/crashpad/crashpad/snapshot/minidump/minidump_context_converter.cc b/third_party/crashpad/crashpad/snapshot/minidump/minidump_context_converter.cc +index 0c840deac..1d163b42f 100644 +--- third_party/crashpad/crashpad/snapshot/minidump/minidump_context_converter.cc ++++ third_party/crashpad/crashpad/snapshot/minidump/minidump_context_converter.cc +@@ -14,6 +14,8 @@ + + #include "snapshot/minidump/minidump_context_converter.h" + ++#include ++ + #include "base/stl_util.h" + #include "minidump/minidump_context.h" + +diff --git a/third_party/crashpad/crashpad/util/linux/ptrace_client.cc b/third_party/crashpad/crashpad/util/linux/ptrace_client.cc +index f097ad985..e91ce2eca 100644 +--- third_party/crashpad/crashpad/util/linux/ptrace_client.cc ++++ third_party/crashpad/crashpad/util/linux/ptrace_client.cc +@@ -17,6 +17,7 @@ + #include + #include + ++#include + #include + + #include "base/logging.h" +diff --git a/third_party/crashpad/crashpad/util/net/http_multipart_builder.cc b/third_party/crashpad/crashpad/util/net/http_multipart_builder.cc +index 267960b27..8ed7edc2f 100644 +--- third_party/crashpad/crashpad/util/net/http_multipart_builder.cc ++++ third_party/crashpad/crashpad/util/net/http_multipart_builder.cc +@@ -16,6 +16,7 @@ + + #include + ++#include + #include + #include + +diff --git a/third_party/crashpad/crashpad/util/net/http_transport_socket.cc b/third_party/crashpad/crashpad/util/net/http_transport_socket.cc +index 4dd01b6e7..60cd60c17 100644 +--- third_party/crashpad/crashpad/util/net/http_transport_socket.cc ++++ third_party/crashpad/crashpad/util/net/http_transport_socket.cc +@@ -19,6 +19,8 @@ + #include + #include + ++#include ++ + #include "base/logging.h" + #include "base/macros.h" + #include "base/numerics/safe_conversions.h" +diff --git a/third_party/crashpad/crashpad/util/process/process_memory.cc b/third_party/crashpad/crashpad/util/process/process_memory.cc +index ab87b940f..e02bcea81 100644 +--- third_party/crashpad/crashpad/util/process/process_memory.cc ++++ third_party/crashpad/crashpad/util/process/process_memory.cc +@@ -15,6 +15,7 @@ + #include "util/process/process_memory.h" + + #include ++#include + + #include "base/logging.h" + #include "util/numeric/safe_assignment.h" +diff --git a/third_party/crashpad/crashpad/util/stream/log_output_stream.cc b/third_party/crashpad/crashpad/util/stream/log_output_stream.cc +index 03c0a5a02..45d823aa4 100644 +--- third_party/crashpad/crashpad/util/stream/log_output_stream.cc ++++ third_party/crashpad/crashpad/util/stream/log_output_stream.cc +@@ -15,6 +15,7 @@ + #include "util/stream/log_output_stream.h" + + #include ++#include + + #include "base/logging.h" + +-- +2.26.2 diff --git a/srcpkgs/chromium/patches/chromium-84-gcc-DCHECK_EQ-unique_ptr.patch b/srcpkgs/chromium/patches/chromium-84-gcc-DCHECK_EQ-unique_ptr.patch new file mode 100644 index 0000000000..3245a0b10d --- /dev/null +++ b/srcpkgs/chromium/patches/chromium-84-gcc-DCHECK_EQ-unique_ptr.patch @@ -0,0 +1,29 @@ +From 9b749dc5c7fdb0f4b1bd0df5901beb6af1b81ff1 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Sat, 9 May 2020 16:46:07 +0000 +Subject: [PATCH] GCC: fix DCHECK_EQ in NGInlineNode::SegmentScriptRuns + +data->segments is a std::unique_ptr, but underlying CheckOpValueStr +has no overloaded function for std::unique_ptr. +However, overloaded function with const void* exists and can be +used with std::unique_ptr::get(). +--- + .../blink/renderer/core/layout/ng/inline/ng_inline_node.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc +index 55ca9e3..ee691df 100644 +--- third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc ++++ third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc +@@ -891,7 +891,7 @@ void NGInlineNode::SegmentText(NGInlineNodeData* data) { + + // Segment NGInlineItem by script, Emoji, and orientation using RunSegmenter. + void NGInlineNode::SegmentScriptRuns(NGInlineNodeData* data) { +- DCHECK_EQ(data->segments, nullptr); ++ DCHECK_EQ(data->segments.get(), nullptr); + + String& text_content = data->text_content; + if (text_content.IsEmpty()) { +-- +2.26.2 + diff --git a/srcpkgs/chromium/patches/chromium-84-std-vector-const.patch b/srcpkgs/chromium/patches/chromium-84-std-vector-const.patch new file mode 100644 index 0000000000..9df09f1367 --- /dev/null +++ b/srcpkgs/chromium/patches/chromium-84-std-vector-const.patch @@ -0,0 +1,49 @@ +From df982a547c5e88777a6134e5d18a1482d933f1cf Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Wed, 27 May 2020 10:38:26 +0000 +Subject: [PATCH] libstdc++: std::vector must have non-const value_type + +Bug: 957519 +Change-Id: I535b3bcf318f98cecbf4be1520ffe4126abcacd8 +--- + +diff --git a/extensions/common/features/feature_flags.cc b/extensions/common/features/feature_flags.cc +index 5b63764..7efa308 100644 +--- extensions/common/features/feature_flags.cc ++++ extensions/common/features/feature_flags.cc +@@ -19,7 +19,7 @@ + constexpr base::Feature kFeatureFlags[] = { + {"DeclarativeNetRequest", base::FEATURE_ENABLED_BY_DEFAULT}}; + +-const std::vector* g_feature_flags_test_override = nullptr; ++const std::vector* g_feature_flags_test_override = nullptr; + + template + const base::Feature* GetFeature(T begin, +@@ -52,8 +52,8 @@ + } + + ScopedFeatureFlagsOverride CreateScopedFeatureFlagsOverrideForTesting( +- const std::vector* features) { +- return base::AutoReset*>( ++ const std::vector* features) { ++ return base::AutoReset*>( + &g_feature_flags_test_override, features); + } + +diff --git a/extensions/common/features/feature_flags.h b/extensions/common/features/feature_flags.h +index d1a5dd3..b57740b 100644 +--- extensions/common/features/feature_flags.h ++++ extensions/common/features/feature_flags.h +@@ -25,9 +25,9 @@ + // in scope. Clients must ensure that |features| remains alive (non-dangling) + // while the returned value is in scope. + using ScopedFeatureFlagsOverride = +- base::AutoReset*>; ++ base::AutoReset*>; + ScopedFeatureFlagsOverride CreateScopedFeatureFlagsOverrideForTesting( +- const std::vector* features); ++ const std::vector* features); + + } // namespace extensions + diff --git a/srcpkgs/chromium/patches/clean-up-a-call-to-set_utf8.patch b/srcpkgs/chromium/patches/clean-up-a-call-to-set_utf8.patch deleted file mode 100644 index 382601db10..0000000000 --- a/srcpkgs/chromium/patches/clean-up-a-call-to-set_utf8.patch +++ /dev/null @@ -1,34 +0,0 @@ -From ede390a0b18e4565abf8ac1e1ff717e1d43fc320 Mon Sep 17 00:00:00 2001 -From: Paul Wankadia -Date: Tue, 14 Apr 2020 16:54:51 +0000 -Subject: [PATCH] Clean up a call to set_utf8(). - -This is part of an effort to rewrite calls to utf8() and set_utf8() -(in RE2::Options) as calls to encoding() and set_encoding(), -respectively. utf8() and set_utf8() have been marked as the "legacy" -interface since 2008, so it is long past time that we get rid of them. - -R=parastoog@google.com - -Change-Id: I62c48cd575a55b519d5264ed857f927c163068b2 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2145261 -Reviewed-by: Parastoo Geranmayeh -Commit-Queue: Paul Wankadia -Cr-Commit-Position: refs/heads/master@{#758886} ---- - components/autofill/core/browser/address_rewriter.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/components/autofill/core/browser/address_rewriter.cc b/components/autofill/core/browser/address_rewriter.cc -index 1b85a50974c..030a5aba146 100644 ---- components/autofill/core/browser/address_rewriter.cc -+++ components/autofill/core/browser/address_rewriter.cc -@@ -57,7 +57,7 @@ void CompileRulesFromData(const std::string& data_string, - CompiledRuleVector* compiled_rules) { - base::StringPiece data = data_string; - re2::RE2::Options options; -- options.set_utf8(true); -+ options.set_encoding(RE2::Options::EncodingUTF8); - options.set_word_boundary(true); - - size_t token_end = 0; diff --git a/srcpkgs/chromium/patches/llvm-remove-unsupported-compiler-warnings.patch b/srcpkgs/chromium/patches/llvm-remove-unsupported-compiler-warnings.patch index 73042bc38e..c601f372a8 100644 --- a/srcpkgs/chromium/patches/llvm-remove-unsupported-compiler-warnings.patch +++ b/srcpkgs/chromium/patches/llvm-remove-unsupported-compiler-warnings.patch @@ -1,12 +1,12 @@ ---- build/config/compiler/BUILD.gn.orig 2020-05-20 09:34:53.358598296 -0400 -+++ build/config/compiler/BUILD.gn 2020-05-20 09:35:40.589648947 -0400 -@@ -1508,9 +1508,6 @@ +--- build/config/compiler/BUILD.gn.orig 2020-07-18 09:24:00.272560391 -0400 ++++ build/config/compiler/BUILD.gn 2020-07-18 10:09:09.225465782 -0400 +@@ -1495,9 +1495,6 @@ + # TODO(https://crbug.com/1028110): Evaluate and possible enable. "-Wno-deprecated-copy", - +- - # TODO(https://crbug.com/1050281): Clean up, enable. - "-Wno-non-c-typedef-for-linkage", -- - # TODO(https://crbug.com/1059231): Clean up, enable. - "-Wno-pointer-to-int-cast", ] + + cflags_c += [ diff --git a/srcpkgs/chromium/patches/upstream-AXObject-stl-iterator.patch b/srcpkgs/chromium/patches/upstream-AXObject-stl-iterator.patch new file mode 100644 index 0000000000..f0eef29d33 --- /dev/null +++ b/srcpkgs/chromium/patches/upstream-AXObject-stl-iterator.patch @@ -0,0 +1,36 @@ +From f3dfe39f9fd3091cf1a7146b936d9de77a459435 Mon Sep 17 00:00:00 2001 +From: Piotr Tworek +Date: Mon, 18 May 2020 15:24:35 +0000 +Subject: [PATCH] Make blink::AXObject::AncestorsIterator STL compatible. + +Commit 31e5188ffc9a04295997d22bfdb68fc367bef047, "Used some methods from +AXRoleProperties in AXObject" started using std::any_of with this custom +iterator type. Unfortunately this iterator does not provide traits +mandated by the standard. This works fine for libcxx, but fails when +compiling the code against libstdc++. + +Bug: 819294 +Change-Id: I78fe25475593d73ce255f1de955aa41e936dff86 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2207112 +Reviewed-by: Kentaro Hara +Commit-Queue: Piotr Tworek +Cr-Commit-Position: refs/heads/master@{#769713} +--- + +diff --git a/third_party/blink/renderer/modules/accessibility/ax_object.h b/third_party/blink/renderer/modules/accessibility/ax_object.h +index 841715b..fbb87bf 100644 +--- third_party/blink/renderer/modules/accessibility/ax_object.h ++++ third_party/blink/renderer/modules/accessibility/ax_object.h +@@ -274,6 +274,12 @@ + class MODULES_EXPORT AncestorsIterator final + : public GarbageCollected { + public: ++ using iterator_category = std::forward_iterator_tag; ++ using value_type = AXObject; ++ using difference_type = ptrdiff_t; ++ using pointer = value_type*; ++ using reference = value_type&; ++ + ~AncestorsIterator() = default; + + AncestorsIterator(const AncestorsIterator& other) diff --git a/srcpkgs/chromium/patches/upstream-ListContainerHelper-include-cstring.patch b/srcpkgs/chromium/patches/upstream-ListContainerHelper-include-cstring.patch new file mode 100644 index 0000000000..8d605b38d3 --- /dev/null +++ b/srcpkgs/chromium/patches/upstream-ListContainerHelper-include-cstring.patch @@ -0,0 +1,30 @@ +From 408bded3befc625e16ef18f2ff5467e040b203e7 Mon Sep 17 00:00:00 2001 +From: Raphael Kubo da Costa +Date: Wed, 27 May 2020 16:34:56 +0000 +Subject: [PATCH] ListContainerHelper: Include for memcpy() + +IWYU. This fixes the libstdc++ build after commit 41989bd89 ("Remove/replace +unnecessary logging.h includes in .cc files (cc)"). + +Bug: 957519 +Change-Id: I1e782e8310ca548947b2d541af6a2159d928d1f3 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2218090 +Reviewed-by: vmpstr +Commit-Queue: vmpstr +Commit-Queue: Raphael Kubo da Costa +Auto-Submit: Raphael Kubo da Costa +Cr-Commit-Position: refs/heads/master@{#772267} +--- + +diff --git a/cc/base/list_container_helper.cc b/cc/base/list_container_helper.cc +index afd386e..7b594b4 100644 +--- cc/base/list_container_helper.cc ++++ cc/base/list_container_helper.cc +@@ -7,6 +7,7 @@ + #include + + #include ++#include + #include + + #include "base/check_op.h" diff --git a/srcpkgs/chromium/patches/upstream-add-missing-algorithm-header.patch b/srcpkgs/chromium/patches/upstream-add-missing-algorithm-header.patch deleted file mode 100644 index 0de478ce40..0000000000 --- a/srcpkgs/chromium/patches/upstream-add-missing-algorithm-header.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 2b9d6daa0ab5ce45ec5555466d5a5a583a020ea8 Mon Sep 17 00:00:00 2001 -From: Daniel Playfair Cal -Date: Sat, 18 Apr 2020 00:27:38 +0000 -Subject: [PATCH] Add missing algorithm header in crx_install_error.cc - -This is needed for the use of std::find. - -Change-Id: I2dc43b3887c467986c5346be5a9e27a987e1e5b3 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2152333 -Reviewed-by: Ken Rockot -Commit-Queue: Ken Rockot -Cr-Commit-Position: refs/heads/master@{#760272} ---- - extensions/browser/install/crx_install_error.cc | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/extensions/browser/install/crx_install_error.cc b/extensions/browser/install/crx_install_error.cc -index a9765bb0a5a..bd0d3e35a16 100644 ---- extensions/browser/install/crx_install_error.cc -+++ extensions/browser/install/crx_install_error.cc -@@ -4,6 +4,8 @@ - - #include "extensions/browser/install/crx_install_error.h" - -+#include -+ - #include "base/logging.h" - #include "extensions/browser/install/sandboxed_unpacker_failure_reason.h" - diff --git a/srcpkgs/chromium/patches/upstream-add-missing-limits-header.patch b/srcpkgs/chromium/patches/upstream-add-missing-limits-header.patch deleted file mode 100644 index 1972056d36..0000000000 --- a/srcpkgs/chromium/patches/upstream-add-missing-limits-header.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 74f76a6be385ef056b0be2362c32c728141cca16 Mon Sep 17 00:00:00 2001 -From: Stephan Hartmann -Date: Fri, 17 Apr 2020 16:04:12 +0000 -Subject: [PATCH] IWYU: std::numeric_limits is defined in limits -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Change-Id: Ifbc379adc5bb7242c21e7da0bcfc28f49e4dd06f -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2153111 -Reviewed-by: François Doray -Commit-Queue: François Doray -Cr-Commit-Position: refs/heads/master@{#760075} ---- - .../graph/policies/background_tab_loading_policy_helpers.cc | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.cc b/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.cc -index 4881c010bb9..593501d16a7 100644 ---- chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.cc.orig 2020-05-20 09:08:05.395896528 -0400 -+++ chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.cc 2020-05-20 09:12:27.367172702 -0400 -@@ -3,6 +3,10 @@ - // found in the LICENSE file. - - #include "chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.h" -+ -+#include -+#include -+ - #include "base/logging.h" - - namespace performance_manager { diff --git a/srcpkgs/chromium/patches/upstream-add-missing-memory-header.patch b/srcpkgs/chromium/patches/upstream-add-missing-memory-header.patch deleted file mode 100644 index b3c0b25634..0000000000 --- a/srcpkgs/chromium/patches/upstream-add-missing-memory-header.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 40d994e4aa2e4d5077c1810e4623549618a19c05 Mon Sep 17 00:00:00 2001 -From: Piotr Tworek -Date: Mon, 27 Apr 2020 16:31:46 +0000 -Subject: [PATCH] Include "memory" header to get the definition of - std::unique_ptr. - -Right now the code im the affected fails to build when using libstdc++ -instead of bundled libcxx. Apparently libcxx pulls the necessary header -indirectly. - -Change-Id: Ie5e86f228434ab16d622ae7a912d9ce607258931 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2164645 -Reviewed-by: Jochen Eisinger -Commit-Queue: Jochen Eisinger -Cr-Commit-Position: refs/heads/master@{#762881} ---- - .../blink/renderer/core/html/trust_token_attribute_parsing.h | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/third_party/blink/renderer/core/html/trust_token_attribute_parsing.h b/third_party/blink/renderer/core/html/trust_token_attribute_parsing.h -index f5a7ab03892..ef19cfaf680 100644 ---- third_party/blink/renderer/core/html/trust_token_attribute_parsing.h -+++ third_party/blink/renderer/core/html/trust_token_attribute_parsing.h -@@ -5,6 +5,8 @@ - #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_HTML_TRUST_TOKEN_ATTRIBUTE_PARSING_H_ - #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_TRUST_TOKEN_ATTRIBUTE_PARSING_H_ - -+#include -+ - #include "base/optional.h" - #include "services/network/public/mojom/trust_tokens.mojom-blink-forward.h" - #include "third_party/blink/renderer/core/core_export.h" diff --git a/srcpkgs/chromium/patches/upstream-avoid-calling-DeleteForCurrentDocument-from-destructor.patch b/srcpkgs/chromium/patches/upstream-avoid-calling-DeleteForCurrentDocument-from-destructor.patch new file mode 100644 index 0000000000..812c9c163b --- /dev/null +++ b/srcpkgs/chromium/patches/upstream-avoid-calling-DeleteForCurrentDocument-from-destructor.patch @@ -0,0 +1,71 @@ +From 128869693a2519578896b41765df029d7adc4ae0 Mon Sep 17 00:00:00 2001 +From: Yuzu Saijo +Date: Tue, 2 Jun 2020 04:51:11 +0000 +Subject: [PATCH] [content] Avoid calling DeleteForCurrentDocument from + destructor + +This CL removes the call to DeleteForCurrentDocument from the destructor +of ManifestManagerHost. + +This intends to fix a crash which happens from time to time using +RenderDocumentHostUserData. + +Change-Id: I1336fb62328dcb0cf9991499f399bf3665d29b75 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2224737 +Reviewed-by: Rakina Zata Amni +Reviewed-by: Alexander Timin +Reviewed-by: Sreeja Kamishetty +Reviewed-by: Kinuko Yasuda +Commit-Queue: Yuzu Saijo +Cr-Commit-Position: refs/heads/master@{#774006} +--- + content/browser/manifest/manifest_manager_host.cc | 7 +++++-- + content/browser/manifest/manifest_manager_host.h | 2 ++ + 2 files changed, 7 insertions(+), 2 deletions(-) + +diff --git a/content/browser/manifest/manifest_manager_host.cc b/content/browser/manifest/manifest_manager_host.cc +index 3a2efba889a..1bd88d91edc 100644 +--- content/browser/manifest/manifest_manager_host.cc ++++ content/browser/manifest/manifest_manager_host.cc +@@ -22,7 +22,7 @@ ManifestManagerHost::ManifestManagerHost(RenderFrameHost* render_frame_host) + } + + ManifestManagerHost::~ManifestManagerHost() { +- OnConnectionError(); ++ DispatchPendingCallbacks(); + } + + void ManifestManagerHost::BindObserver( +@@ -55,7 +55,7 @@ blink::mojom::ManifestManager& ManifestManagerHost::GetManifestManager() { + return *manifest_manager_; + } + +-void ManifestManagerHost::OnConnectionError() { ++void ManifestManagerHost::DispatchPendingCallbacks() { + std::vector callbacks; + for (CallbackMap::iterator it(&callbacks_); !it.IsAtEnd(); it.Advance()) { + callbacks.push_back(std::move(*it.GetCurrentValue())); +@@ -63,7 +63,10 @@ void ManifestManagerHost::OnConnectionError() { + callbacks_.Clear(); + for (auto& callback : callbacks) + std::move(callback).Run(GURL(), blink::Manifest()); ++} + ++void ManifestManagerHost::OnConnectionError() { ++ DispatchPendingCallbacks(); + if (GetForCurrentDocument(manifest_manager_frame_)) { + DeleteForCurrentDocument(manifest_manager_frame_); + } +diff --git a/content/browser/manifest/manifest_manager_host.h b/content/browser/manifest/manifest_manager_host.h +index 96951ae30bc..f706c20bdb8 100644 +--- content/browser/manifest/manifest_manager_host.h ++++ content/browser/manifest/manifest_manager_host.h +@@ -55,6 +55,8 @@ class ManifestManagerHost + using CallbackMap = base::IDMap>; + + blink::mojom::ManifestManager& GetManifestManager(); ++ ++ void DispatchPendingCallbacks(); + void OnConnectionError(); + + void OnRequestManifestResponse(int request_id, diff --git a/srcpkgs/chromium/patches/upstream-avoid-double-destruction-of-ServiceWorkerObjectHost.patch b/srcpkgs/chromium/patches/upstream-avoid-double-destruction-of-ServiceWorkerObjectHost.patch deleted file mode 100644 index 14c59582e6..0000000000 --- a/srcpkgs/chromium/patches/upstream-avoid-double-destruction-of-ServiceWorkerObjectHost.patch +++ /dev/null @@ -1,138 +0,0 @@ -From bd59ce32629ef684624821419c43967b73d2989e Mon Sep 17 00:00:00 2001 -From: Hiroki Nakagawa -Date: Fri, 8 May 2020 08:25:31 +0000 -Subject: [PATCH] ServiceWorker: Avoid double destruction of - ServiceWorkerObjectHost on connection error - -This CL avoids the case where ServiceWorkerObjectHost is destroyed twice -on ServiceWorkerObjectHost::OnConnectionError() when Chromium is built -with the GCC build toolchain. - -> How does the issue happen? - -ServiceWorkerObjectHost has a cyclic reference like this: - -ServiceWorkerObjectHost - --([1] scoped_refptr)--> ServiceWorkerVersion - --([2] std::unique_ptr)--> ServiceWorkerProviderHost - --([3] std::unique_ptr)--> ServiceWorkerContainerHost - --([4] std::unique_ptr)--> ServiceWorkerObjectHost - -Note that ServiceWorkerContainerHost manages ServiceWorkerObjectHost in -map>. - -When ServiceWorkerObjectHost::OnConnectionError() is called, the -function removes the reference [4] from the map, and destroys -ServiceWorkerObjectHost. If the object host has the last reference [1] -to ServiceWorkerVersion, the destruction also cuts off the references -[2] and [3], and destroys ServiceWorkerProviderHost and -ServiceWorkerContainerHost. - -This seems to work well on the Chromium's default toolchain, but not -work on the GCC toolchain. According to the report, destruction of -ServiceWorkerContainerHost happens while the map owned by the container -host is erasing the ServiceWorkerObjectHost, and this results in crash -due to double destruction of the object host. - -I don't know the reason why this happens only on the GCC toolchain, but -I suspect the order of object destruction on std::map::erase() could be -different depending on the toolchains. - -> How does this CL fix this? - -The ideal fix is to redesign the ownership model of -ServiceWorkerVersion, but it's not feasible in the short term. - -Instead, this CL avoids destruction of ServiceWorkerObjectHost on -std::map::erase(). The new code takes the ownership of the object host -from the map first, and then erases the entry from the map. This -separates timings to erase the map entry and to destroy the object host, -so the crash should no longer happen. - -Bug: 1056598 -Change-Id: Id30654cb575bc557c42044d6f0c6f1f9bfaed613 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2094496 -Reviewed-by: Makoto Shimazu -Commit-Queue: Hiroki Nakagawa -Cr-Commit-Position: refs/heads/master@{#766770} ---- - .../service_worker_container_host.cc | 10 +++++ - .../service_worker_object_host_unittest.cc | 38 +++++++++++++++++++ - 2 files changed, 48 insertions(+) - -diff --git a/content/browser/service_worker/service_worker_container_host.cc b/content/browser/service_worker/service_worker_container_host.cc -index ec7fb1449af..98c62093b0e 100644 ---- content/browser/service_worker/service_worker_container_host.cc -+++ content/browser/service_worker/service_worker_container_host.cc -@@ -669,6 +669,16 @@ void ServiceWorkerContainerHost::RemoveServiceWorkerObjectHost( - int64_t version_id) { - DCHECK_CURRENTLY_ON(ServiceWorkerContext::GetCoreThreadId()); - DCHECK(base::Contains(service_worker_object_hosts_, version_id)); -+ -+ // ServiceWorkerObjectHost to be deleted may have the last reference to -+ // ServiceWorkerVersion that indirectly owns this ServiceWorkerContainerHost. -+ // If we erase the object host directly from the map, |this| could be deleted -+ // during the map operation and may crash. To avoid the case, we take the -+ // ownership of the object host from the map first, and then erase the entry -+ // from the map. See https://crbug.com/1056598 for details. -+ std::unique_ptr to_be_deleted = -+ std::move(service_worker_object_hosts_[version_id]); -+ DCHECK(to_be_deleted); - service_worker_object_hosts_.erase(version_id); - } - -diff --git a/content/browser/service_worker/service_worker_object_host_unittest.cc b/content/browser/service_worker/service_worker_object_host_unittest.cc -index 408d7c1f9d1..6eab59040ab 100644 ---- content/browser/service_worker/service_worker_object_host_unittest.cc -+++ content/browser/service_worker/service_worker_object_host_unittest.cc -@@ -200,6 +200,19 @@ class ServiceWorkerObjectHostTest : public testing::Test { - return registration_info; - } - -+ void CallOnConnectionError(ServiceWorkerContainerHost* container_host, -+ int64_t version_id) { -+ // ServiceWorkerObjectHost has the last reference to the version. -+ ServiceWorkerObjectHost* object_host = -+ GetServiceWorkerObjectHost(container_host, version_id); -+ EXPECT_TRUE(object_host->version_->HasOneRef()); -+ -+ // Make sure that OnConnectionError induces destruction of the version and -+ // the object host. -+ object_host->receivers_.Clear(); -+ object_host->OnConnectionError(); -+ } -+ - BrowserTaskEnvironment task_environment_; - std::unique_ptr helper_; - scoped_refptr registration_; -@@ -409,5 +422,30 @@ TEST_F(ServiceWorkerObjectHostTest, DispatchExtendableMessageEvent_FromClient) { - events[0]->source_info_for_client->client_type); - } - -+// This is a regression test for https://crbug.com/1056598. -+TEST_F(ServiceWorkerObjectHostTest, OnConnectionError) { -+ const GURL scope("https://www.example.com/"); -+ const GURL script_url("https://www.example.com/service_worker.js"); -+ Initialize(std::make_unique(base::FilePath())); -+ SetUpRegistration(scope, script_url); -+ -+ // Create the provider host. -+ ASSERT_EQ(blink::ServiceWorkerStatusCode::kOk, -+ StartServiceWorker(version_.get())); -+ -+ // Set up the case where the last reference to the version is owned by the -+ // service worker object host. -+ ServiceWorkerContainerHost* container_host = -+ version_->provider_host()->container_host(); -+ ServiceWorkerVersion* version_rawptr = version_.get(); -+ version_ = nullptr; -+ ASSERT_TRUE(version_rawptr->HasOneRef()); -+ -+ // Simulate the connection error that induces the object host destruction. -+ // This shouldn't crash. -+ CallOnConnectionError(container_host, version_rawptr->version_id()); -+ base::RunLoop().RunUntilIdle(); -+} -+ - } // namespace service_worker_object_host_unittest - } // namespace content diff --git a/srcpkgs/chromium/patches/upstream-libstdc-fix-incomplete-type-in-AXTree-for-NodeSetSiz.patch b/srcpkgs/chromium/patches/upstream-libstdc-fix-incomplete-type-in-AXTree-for-NodeSetSiz.patch deleted file mode 100644 index 0306d14ab2..0000000000 --- a/srcpkgs/chromium/patches/upstream-libstdc-fix-incomplete-type-in-AXTree-for-NodeSetSiz.patch +++ /dev/null @@ -1,62 +0,0 @@ -From aeef68888d4c00b69facead2b934095a8cd17329 Mon Sep 17 00:00:00 2001 -From: Stephan Hartmann -Date: Mon, 20 Apr 2020 18:21:43 +0000 -Subject: [PATCH] libstdc++: fix incomplete-type in AXTree for - NodeSetSizePosInSetInfo - -has only forward declaration of NodeSetSizePosInSetInfo. Therefore, -move declaration from ax_tree.cc. - -std: :unordered_map requires U to be fully declared. ax_tree.h -Bug: 957519 -Change-Id: Ic1f4bf3ebfea229ece84251e46d4461b31873868 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2132403 -Reviewed-by: David Tseng -Commit-Queue: David Tseng -Cr-Commit-Position: refs/heads/master@{#760588} ---- - ui/accessibility/ax_tree.cc | 10 ++-------- - ui/accessibility/ax_tree.h | 9 ++++++++- - 2 files changed, 10 insertions(+), 9 deletions(-) - -diff --git a/ui/accessibility/ax_tree.cc b/ui/accessibility/ax_tree.cc -index 7b8d9b1b161..e9154028d66 100644 ---- ui/accessibility/ax_tree.cc -+++ ui/accessibility/ax_tree.cc -@@ -567,14 +567,8 @@ struct AXTreeUpdateState { - const AXTree& tree; - }; - --struct AXTree::NodeSetSizePosInSetInfo { -- NodeSetSizePosInSetInfo() = default; -- ~NodeSetSizePosInSetInfo() = default; -- -- int32_t pos_in_set = 0; -- int32_t set_size = 0; -- base::Optional lowest_hierarchical_level; --}; -+AXTree::NodeSetSizePosInSetInfo::NodeSetSizePosInSetInfo() = default; -+AXTree::NodeSetSizePosInSetInfo::~NodeSetSizePosInSetInfo() = default; - - struct AXTree::OrderedSetContent { - explicit OrderedSetContent(const AXNode* ordered_set = nullptr) -diff --git a/ui/accessibility/ax_tree.h b/ui/accessibility/ax_tree.h -index a51ca8de4c8..8c1c57517ac 100644 ---- ui/accessibility/ax_tree.h -+++ ui/accessibility/ax_tree.h -@@ -328,7 +328,14 @@ class AX_EXPORT AXTree : public AXNode::OwnerTree { - bool enable_extra_mac_nodes_ = false; - - // Contains pos_in_set and set_size data for an AXNode. -- struct NodeSetSizePosInSetInfo; -+ struct NodeSetSizePosInSetInfo { -+ NodeSetSizePosInSetInfo(); -+ ~NodeSetSizePosInSetInfo(); -+ -+ int32_t pos_in_set = 0; -+ int32_t set_size = 0; -+ base::Optional lowest_hierarchical_level; -+ }; - - // Represents the content of an ordered set which includes the ordered set - // items and the ordered set container if it exists. diff --git a/srcpkgs/chromium/patches/upstream-make-some-of-blink-custom-iterators-STL-compatible.patch b/srcpkgs/chromium/patches/upstream-make-some-of-blink-custom-iterators-STL-compatible.patch deleted file mode 100644 index de162e18a6..0000000000 --- a/srcpkgs/chromium/patches/upstream-make-some-of-blink-custom-iterators-STL-compatible.patch +++ /dev/null @@ -1,95 +0,0 @@ -From d3cabbc7321d349a9bffda482df5afc0d4df1ac2 Mon Sep 17 00:00:00 2001 -From: Piotr Tworek -Date: Thu, 30 Apr 2020 21:33:47 +0000 -Subject: [PATCH] Make some of blink custom iterators STL compatible. - -Blink has recently started using functions like std::any_of with some of -the custom iterators it provides. On Linux this works in the default -setup using libcxx, but fails with even the most recent versions of -libstdc++. In all cases the error message (text in bug report) complains -about lack of matching std::__iterator_category definition. - -From what I understand the error message is basically saying those -iterators are not STL compatible due to missing traits as described -in https://en.cppreference.com/w/cpp/iterator/iterator_traits. Such -traits are provided by custom iterators defined in //base, or //cc. - -This patch adds the necessary traits to iterators that are currently -affected by this problem. - -Bug: 1076869 -Change-Id: I9950a7100c32499ba96647317fa70b87dc22eaf9 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2174199 -Reviewed-by: Kentaro Hara -Commit-Queue: Piotr Tworek -Cr-Commit-Position: refs/heads/master@{#764426} ---- - .../core/layout/ng/ng_physical_container_fragment.h | 6 ++++++ - .../blink/renderer/platform/wtf/hash_iterators.h | 12 ++++++++++++ - third_party/blink/renderer/platform/wtf/hash_table.h | 6 ++++++ - 3 files changed, 24 insertions(+) - -diff --git a/third_party/blink/renderer/core/layout/ng/ng_physical_container_fragment.h b/third_party/blink/renderer/core/layout/ng/ng_physical_container_fragment.h -index 1256e77c146..8b93107f2fc 100644 ---- third_party/blink/renderer/core/layout/ng/ng_physical_container_fragment.h -+++ third_party/blink/renderer/core/layout/ng/ng_physical_container_fragment.h -@@ -38,6 +38,12 @@ class CORE_EXPORT NGPhysicalContainerFragment : public NGPhysicalFragment { - STACK_ALLOCATED(); - - public: -+ using iterator_category = std::bidirectional_iterator_tag; -+ using value_type = NGLink; -+ using difference_type = ptrdiff_t; -+ using pointer = value_type*; -+ using reference = value_type&; -+ - ConstIterator(const NGLink* current) : current_(current) {} - - const NGLink& operator*() const { return *PostLayoutOrCurrent(); } -diff --git a/third_party/blink/renderer/platform/wtf/hash_iterators.h b/third_party/blink/renderer/platform/wtf/hash_iterators.h -index f8e66e6be85..6003d02c509 100644 ---- third_party/blink/renderer/platform/wtf/hash_iterators.h -+++ third_party/blink/renderer/platform/wtf/hash_iterators.h -@@ -53,6 +53,12 @@ struct HashTableConstIteratorAdapter - ValuesIterator; - -+ using iterator_category = std::bidirectional_iterator_tag; -+ using value_type = HashTableType; -+ using difference_type = ptrdiff_t; -+ using pointer = value_type*; -+ using reference = value_type&; -+ - HashTableConstIteratorAdapter() = default; - HashTableConstIteratorAdapter( - const typename HashTableType::const_iterator& impl) -@@ -94,6 +100,12 @@ struct HashTableIteratorAdapter - ValuesIterator; - -+ using iterator_category = std::bidirectional_iterator_tag; -+ using value_type = HashTableType; -+ using difference_type = ptrdiff_t; -+ using pointer = value_type*; -+ using reference = value_type&; -+ - HashTableIteratorAdapter() = default; - HashTableIteratorAdapter(const typename HashTableType::iterator& impl) - : impl_(impl) {} -diff --git a/third_party/blink/renderer/platform/wtf/hash_table.h b/third_party/blink/renderer/platform/wtf/hash_table.h -index f596fb5d41e..5a4468d6bd1 100644 ---- third_party/blink/renderer/platform/wtf/hash_table.h -+++ third_party/blink/renderer/platform/wtf/hash_table.h -@@ -2204,6 +2204,12 @@ struct HashTableConstIteratorAdapter { - STACK_ALLOCATED(); - - public: -+ using iterator_category = std::bidirectional_iterator_tag; -+ using value_type = HashTableType; -+ using difference_type = ptrdiff_t; -+ using pointer = value_type*; -+ using reference = value_type&; -+ - HashTableConstIteratorAdapter() = default; - HashTableConstIteratorAdapter( - const typename HashTableType::const_iterator& impl) diff --git a/srcpkgs/chromium/patches/upstream-remove-NotifyError-calls-and-just-send-a-normal-message.patch b/srcpkgs/chromium/patches/upstream-remove-NotifyError-calls-and-just-send-a-normal-message.patch new file mode 100644 index 0000000000..c9d259b007 --- /dev/null +++ b/srcpkgs/chromium/patches/upstream-remove-NotifyError-calls-and-just-send-a-normal-message.patch @@ -0,0 +1,42 @@ +From 3bfec15358b788a2b7e1beefaa177ba84a6da328 Mon Sep 17 00:00:00 2001 +From: Ted Meyer +Date: Mon, 1 Jun 2020 19:31:18 +0000 +Subject: [PATCH] Remove NotifyError calls and just send a normal message + instead + +rewrote the TODO as well. + +Bug: 1088055 +Change-Id: If83ceeb3a786a1813e41bd3ac6c7309791e92400 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2223010 +Auto-Submit: Ted Meyer +Commit-Queue: Dale Curtis +Reviewed-by: Dale Curtis +Cr-Commit-Position: refs/heads/master@{#773776} +--- + media/filters/decoder_selector.cc | 12 +++++------- + 1 file changed, 5 insertions(+), 7 deletions(-) + +diff --git a/media/filters/decoder_selector.cc b/media/filters/decoder_selector.cc +index bb06378b92d..9f510bb578c 100644 +--- media/filters/decoder_selector.cc ++++ media/filters/decoder_selector.cc +@@ -165,13 +165,11 @@ void DecoderSelector::OnDecoderInitializeDone(Status status) { + DCHECK(task_runner_->BelongsToCurrentThread()); + + if (!status.is_ok()) { +- // TODO(tmathmeyer) this might be noisy in media log. Consider batching +- // all failures as causes to a single Status object and only surfacing it if +- // decoder selection fails entirely. +- media_log_->NotifyError( +- Status(StatusCode::kDecoderFailedInitialization) +- .WithData("Decoder name", decoder_->GetDisplayName()) +- .AddCause(std::move(status))); ++ // TODO(tmathmeyer) this was too noisy in media log. Batch all the logs ++ // together and then send them as an informational notice instead of ++ // using NotifyError. ++ MEDIA_LOG(INFO, media_log_) ++ << "Failed to initialize " << decoder_->GetDisplayName(); + + // Try the next decoder on the list. + decoder_.reset(); diff --git a/srcpkgs/chromium/template b/srcpkgs/chromium/template index 5295224da8..96a8953d33 100644 --- a/srcpkgs/chromium/template +++ b/srcpkgs/chromium/template @@ -1,7 +1,7 @@ # Template file for 'chromium' pkgname=chromium # See http://www.chromium.org/developers/calendar for the latest version -version=83.0.4103.116 +version=84.0.4147.89 revision=1 archs="i686 x86_64*" short_desc="Google's attempt at creating a safer, faster, and more stable browser" @@ -9,7 +9,7 @@ maintainer="Enno Boland " license="BSD-3-Clause" homepage="https://www.chromium.org/" distfiles="https://commondatastorage.googleapis.com/chromium-browser-official/${pkgname}-${version}.tar.xz" -checksum=bb0c7e8dfee9f3a5e30eca7f34fc9f21caefa82a86c058c552f52b1ae2da2ac3 +checksum=17970d998c125b40765141f2cd346d1674f05dbd4a28fdcf31f9e3540890c679 lib32disabled=yes nodebug=yes @@ -22,7 +22,7 @@ desc_option_vaapi="Enable support for VA-API" desc_option_pulseaudio="Enable support for PulseAudio" desc_option_sndio="Enable support for sndio" -hostmakedepends="$(vopt_if clang clang) yasm python pkgconf perl gperf bison ninja nodejs hwids +hostmakedepends="$(vopt_if clang clang) python pkgconf perl gperf bison ninja nodejs hwids libatomic-devel libevent-devel libglib-devel $(vopt_if js_optimize openjdk)" makedepends="libpng-devel gtk+-devel gtk+3-devel nss-devel pciutils-devel libXi-devel libgcrypt-devel libgnome-keyring-devel cups-devel elfutils-devel @@ -33,7 +33,7 @@ makedepends="libpng-devel gtk+-devel gtk+3-devel nss-devel pciutils-devel libjpeg-turbo-devel libevent-devel json-c-devel harfbuzz-devel minizip-devel jsoncpp-devel zlib-devel libcap-devel libXdamage-devel re2-devel fontconfig-devel freetype-devel opus-devel - ffmpeg-devel libva-devel python-setuptools $(vopt_if sndio sndio-devel)" + ffmpeg-devel libva-devel python-setuptools xcb-proto $(vopt_if sndio sndio-devel)" depends="libexif hwids desktop-file-utils hicolor-icon-theme xdg-utils" build_options_default="clang pulseaudio vaapi" @@ -73,6 +73,9 @@ post_extract() { sed -i '/config("compiler")/ a cflags_cc = [ "-fno-delete-null-pointer-checks" ]' \ build/config/linux/BUILD.gn fi + + # Make xcbgen available to ui/gfx/x/gen_xproto.py running under Python 2 + ln -s /usr/lib/python3.*/site-packages/xcbgen "${wrksrc}" } do_configure() { local system="" conf=() @@ -111,7 +114,6 @@ do_configure() { opus re2 snappy - yasm " # remove build scripts for system provided dependencies - basically does the @@ -124,7 +126,6 @@ do_configure() { \! -path './base/third_party/icu/*' \ \! -path './third_party/pdfium/third_party/freetype/include/pstables.h' \ \! -path './third_party/harfbuzz-ng/utils/hb_scoped.h' \ - \! -path './third_party/yasm/run_yasm.py' \ \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \ -delete done @@ -240,6 +241,8 @@ do_configure() { out/Release/gn gen out/Release --args="${conf[*]}" } do_build() { + export PYTHONPATH=${wrksrc} + ninja -C out/Release ${makejobs} chrome chromedriver mksnapshot } do_install() {