diff --git a/chromium-80.0.3987.87-missing-cstdint-header.patch b/chromium-80.0.3987.87-missing-cstdint-header.patch index 755bff52..abeafa56 100644 --- a/chromium-80.0.3987.87-missing-cstdint-header.patch +++ b/chromium-80.0.3987.87-missing-cstdint-header.patch @@ -1,14 +1,3 @@ -diff -up chromium-80.0.3987.106/third_party/perfetto/include/perfetto/base/task_runner.h.missing-cstdint chromium-80.0.3987.106/third_party/perfetto/include/perfetto/base/task_runner.h ---- chromium-80.0.3987.106/third_party/perfetto/include/perfetto/base/task_runner.h.missing-cstdint 2020-02-21 12:29:43.393191877 -0500 -+++ chromium-80.0.3987.106/third_party/perfetto/include/perfetto/base/task_runner.h 2020-02-21 12:29:43.393191877 -0500 -@@ -17,6 +17,7 @@ - #ifndef INCLUDE_PERFETTO_BASE_TASK_RUNNER_H_ - #define INCLUDE_PERFETTO_BASE_TASK_RUNNER_H_ - -+#include - #include - - #include "perfetto/base/export.h" diff -up chromium-80.0.3987.106/third_party/webrtc/call/rtx_receive_stream.h.missing-cstdint chromium-80.0.3987.106/third_party/webrtc/call/rtx_receive_stream.h --- chromium-80.0.3987.106/third_party/webrtc/call/rtx_receive_stream.h.missing-cstdint 2020-02-21 12:30:30.739332871 -0500 +++ chromium-80.0.3987.106/third_party/webrtc/call/rtx_receive_stream.h 2020-02-21 12:30:30.747332725 -0500 diff --git a/chromium-82-gcc-incomplete-type.patch b/chromium-82-gcc-incomplete-type.patch new file mode 100644 index 00000000..a3393405 --- /dev/null +++ b/chromium-82-gcc-incomplete-type.patch @@ -0,0 +1,53 @@ +From c0b32910da192edf1b41eb52c088d0213ab2807a Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Sun, 05 Apr 2020 08:29:21 +0000 +Subject: [PATCH] libstdc++: fix incomplete-type in AXTree for NodeSetSizePosInSetInfo + +std::unordered_map requires U to be fully declared. ax_tree.h +has only forward declaration of NodeSetSizePosInSetInfo. Therefore, +move declaration from ax_tree.cc. +Bug: 957519 +Change-Id: Ic1f4bf3ebfea229ece84251e46d4461b31873868 +--- + +diff --git a/ui/accessibility/ax_tree.cc b/ui/accessibility/ax_tree.cc +index 7b8d9b1..e915402 100644 +--- a/ui/accessibility/ax_tree.cc ++++ b/ui/accessibility/ax_tree.cc +@@ -567,14 +567,8 @@ + 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 a51ca8d..8c1c575 100644 +--- a/ui/accessibility/ax_tree.h ++++ b/ui/accessibility/ax_tree.h +@@ -328,7 +328,14 @@ + 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/chromium-82-gcc-iterator.patch b/chromium-82-gcc-iterator.patch new file mode 100644 index 00000000..6405d52b --- /dev/null +++ b/chromium-82-gcc-iterator.patch @@ -0,0 +1,23 @@ +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 b3c7624..85936aa 100644 +--- 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 +@@ -5,6 +5,8 @@ + #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_NG_PHYSICAL_CONTAINER_FRAGMENT_H_ + #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_NG_PHYSICAL_CONTAINER_FRAGMENT_H_ + ++#include ++ + #include "base/containers/span.h" + #include "third_party/blink/renderer/core/core_export.h" + #include "third_party/blink/renderer/core/layout/geometry/physical_rect.h" +@@ -31,7 +33,8 @@ class CORE_EXPORT NGPhysicalContainerFragment : public NGPhysicalFragment { + PostLayoutChildLinkList(wtf_size_t count, const NGLink* buffer) + : count_(count), buffer_(buffer) {} + +- class ConstIterator { ++ class ConstIterator : public std::iterator { + STACK_ALLOCATED(); + + public: diff --git a/chromium-82-gcc-noexcept.patch b/chromium-82-gcc-noexcept.patch new file mode 100644 index 00000000..1c7de53d --- /dev/null +++ b/chromium-82-gcc-noexcept.patch @@ -0,0 +1,35 @@ +diff --git a/ui/color/color_set.cc b/ui/color/color_set.cc +index 56564d7..2798a3c 100644 +--- a/ui/color/color_set.cc ++++ b/ui/color/color_set.cc +@@ -11,7 +11,7 @@ ColorSet::ColorSet(ColorSetId id, ColorMap&& colors) + + ColorSet::ColorSet(ColorSet&&) noexcept = default; + +-ColorSet& ColorSet::operator=(ColorSet&&) noexcept = default; ++ColorSet& ColorSet::operator=(ColorSet&&) = default; + + ColorSet::~ColorSet() = default; + +diff --git a/third_party/blink/public/platform/cross_variant_mojo_util.h b/third_party/blink/public/platform/cross_variant_mojo_util.h +index dee0b95..0c83580 100644 +--- a/third_party/blink/public/platform/cross_variant_mojo_util.h ++++ b/third_party/blink/public/platform/cross_variant_mojo_util.h +@@ -124,7 +124,7 @@ class CrossVariantMojoAssociatedReceiver { + ~CrossVariantMojoAssociatedReceiver() = default; + + CrossVariantMojoAssociatedReceiver( +- CrossVariantMojoAssociatedReceiver&&) noexcept = default; ++ CrossVariantMojoAssociatedReceiver&&) = default; + CrossVariantMojoAssociatedReceiver& operator=( + CrossVariantMojoAssociatedReceiver&&) noexcept = default; + +@@ -155,7 +155,7 @@ class CrossVariantMojoAssociatedRemote { + ~CrossVariantMojoAssociatedRemote() = default; + + CrossVariantMojoAssociatedRemote( +- CrossVariantMojoAssociatedRemote&&) noexcept = default; ++ CrossVariantMojoAssociatedRemote&&) = default; + CrossVariantMojoAssociatedRemote& operator=( + CrossVariantMojoAssociatedRemote&&) noexcept = default; + diff --git a/chromium-82-gcc-template.patch b/chromium-82-gcc-template.patch new file mode 100644 index 00000000..90909c56 --- /dev/null +++ b/chromium-82-gcc-template.patch @@ -0,0 +1,50 @@ +diff --git a/content/public/browser/web_ui.h b/content/public/browser/web_ui.h +index 4e6aa0e..fa6f10c 100644 +--- a/content/public/browser/web_ui.h ++++ b/content/public/browser/web_ui.h +@@ -138,22 +138,6 @@ class CONTENT_EXPORT WebUI { + template + static T GetValue(const base::Value& value); + +- template <> +- inline bool GetValue(const base::Value& value) { +- return value.GetBool(); +- } +- +- template <> +- inline int GetValue(const base::Value& value) { +- return value.GetInt(); +- } +- +- template <> +- inline const std::string& GetValue( +- const base::Value& value) { +- return value.GetString(); +- } +- + template + struct Call; + +@@ -169,6 +153,22 @@ class CONTENT_EXPORT WebUI { + }; + }; + ++template <> ++inline bool WebUI::GetValue(const base::Value& value) { ++ return value.GetBool(); ++} ++ ++template <> ++inline int WebUI::GetValue(const base::Value& value) { ++ return value.GetInt(); ++} ++ ++template <> ++inline const std::string& WebUI::GetValue( ++ const base::Value& value) { ++ return value.GetString(); ++} ++ + } // namespace content + + #endif // CONTENT_PUBLIC_BROWSER_WEB_UI_H_ diff --git a/chromium-83-gcc-include.patch b/chromium-83-gcc-include.patch new file mode 100644 index 00000000..9c405e84 --- /dev/null +++ b/chromium-83-gcc-include.patch @@ -0,0 +1,75 @@ +From 3681c96f54b34f60493cbbf5ec830f158e469799 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Thu, 2 Apr 2020 14:35:44 +0000 +Subject: [PATCH] IWYU: std::find is defined in algorithm + +--- + 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 a9765bb..bd0d3e3 100644 +--- a/extensions/browser/install/crx_install_error.cc ++++ b/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" + +-- +2.24.1 + +From 80044e30e0014c4c322178e4b56ddbb10eede304 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Thu, 9 Apr 2020 17:58:06 +0000 +Subject: [PATCH] IWYU: std::unique_ptr is defined in memory + +--- + .../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 f5a7ab0..ef19cfa 100644 +--- a/third_party/blink/renderer/core/html/trust_token_attribute_parsing.h ++++ b/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" +-- +2.24.1 + +From 4f4d0a6d453bc22a6397dadaf6d866b4eb2d6b95 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Fri, 10 Apr 2020 08:31:08 +0000 +Subject: [PATCH] IWYU: std::numeric_limits is defined in limits + +--- + .../graph/policies/background_tab_loading_policy_helpers.cc | 2 ++ + 1 file changed, 2 insertions(+) + +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 6ab117b..43aa602 100644 +--- 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 +@@ -2,6 +2,8 @@ + // Use of this source code is governed by a BSD-style license that can be + // found in the LICENSE file. + ++#include ++ + #include "chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.h" + #include "base/logging.h" + +-- +2.24.1 + diff --git a/chromium-83-gcc-iterator.patch b/chromium-83-gcc-iterator.patch new file mode 100644 index 00000000..3df03275 --- /dev/null +++ b/chromium-83-gcc-iterator.patch @@ -0,0 +1,41 @@ +From 4abcf0a76a7cb5c343be7d17c60cb908f3673c3d Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Thu, 9 Apr 2020 17:03:38 +0000 +Subject: [PATCH] libstdc++: replace std::any_of in blink::SerializedScriptValue + +Use of std::any_of requires STL compliant iterator. However, +HashTableIterator does not define iterator_tag and therefore +is no STL iterator. +--- + .../core/v8/serialization/serialized_script_value.h | 13 +++++++++---- + 1 file changed, 9 insertions(+), 4 deletions(-) + +diff --git a/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h b/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h +index bbf10ef..53d98c9 100644 +--- a/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h ++++ b/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h +@@ -268,12 +268,17 @@ class CORE_EXPORT SerializedScriptValue + MessagePortChannelArray& GetStreamChannels() { return stream_channels_; } + + bool IsLockedToAgentCluster() const { ++ auto AnyOfIsLockedToAgentCluster = [&]() { ++ for (auto entry = attachments_.begin(); ++ entry != attachments_.end(); ++entry) { ++ if (entry->value->IsLockedToAgentCluster()) ++ return true; ++ } ++ return false; ++ }; + return !wasm_modules_.IsEmpty() || + !shared_array_buffers_contents_.IsEmpty() || +- std::any_of(attachments_.begin(), attachments_.end(), +- [](const auto& entry) { +- return entry.value->IsLockedToAgentCluster(); +- }); ++ AnyOfIsLockedToAgentCluster(); + } + + // Returns true after serializing script values that remote origins cannot +-- +2.24.1 + diff --git a/chromium-83-gcc-permissive.patch b/chromium-83-gcc-permissive.patch new file mode 100644 index 00000000..a87f1c44 --- /dev/null +++ b/chromium-83-gcc-permissive.patch @@ -0,0 +1,31 @@ +From fdf2767e8dc54727c9536a4d39d230a959e3698c Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Thu, 2 Apr 2020 16:16:14 +0000 +Subject: [PATCH] GCC: add missing apps namespace to BrowserAppLauncher + +GCC does not get namespace of BrowserAppLauncher right and +fails like this: + +chrome/browser/apps/app_service/app_service_proxy.h:82:23: error: +declaration of 'apps::BrowserAppLauncher& +apps::AppServiceProxy::BrowserAppLauncher()' changes meaning of +'BrowserAppLauncher' [-fpermissive] +--- + chrome/browser/apps/app_service/app_service_proxy.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/chrome/browser/apps/app_service/app_service_proxy.h b/chrome/browser/apps/app_service/app_service_proxy.h +index b7fff63..1ecd49d 100644 +--- a/chrome/browser/apps/app_service/app_service_proxy.h ++++ b/chrome/browser/apps/app_service/app_service_proxy.h +@@ -79,7 +79,7 @@ class AppServiceProxy : public KeyedService, + apps::InstanceRegistry& InstanceRegistry(); + #endif + +- BrowserAppLauncher& BrowserAppLauncher(); ++ apps::BrowserAppLauncher& BrowserAppLauncher(); + + apps::PreferredAppsList& PreferredApps(); + +-- +2.24.1 diff --git a/chromium-83-gcc-serviceworker.patch b/chromium-83-gcc-serviceworker.patch new file mode 100644 index 00000000..a836e7fc --- /dev/null +++ b/chromium-83-gcc-serviceworker.patch @@ -0,0 +1,130 @@ +From 0914a38252f205fc04fa50e858b24fa5f535ab11 Mon Sep 17 00:00:00 2001 +From: Hiroki Nakagawa +Date: Wed, 29 Apr 2020 11:46:54 +0900 +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 +--- + +diff --git a/content/browser/service_worker/service_worker_container_host.cc b/content/browser/service_worker/service_worker_container_host.cc +index c631bcd..ff917f8 100644 +--- a/content/browser/service_worker/service_worker_container_host.cc ++++ b/content/browser/service_worker/service_worker_container_host.cc +@@ -717,6 +717,16 @@ + 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 238cb8b..f60c7a2 100644 +--- a/content/browser/service_worker/service_worker_object_host_unittest.cc ++++ b/content/browser/service_worker/service_worker_object_host_unittest.cc +@@ -200,6 +200,19 @@ + 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 @@ + 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/chromium-83-gcc-template.patch b/chromium-83-gcc-template.patch new file mode 100644 index 00000000..27365220 --- /dev/null +++ b/chromium-83-gcc-template.patch @@ -0,0 +1,69 @@ +From 8d115ddda495d0d2e1e1447392db6e9e6a8a1b32 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Tue, 07 Apr 2020 00:23:57 +0000 +Subject: [PATCH] GCC: fix template specialization in WTF::VectorMover + +GCC complains that explicit specialization in non-namespace scope +is happening for MoveOverlappingImpl. However, secialization is +not really necessary here with templates and can be moved +into MoveOverlappingImpl method without changing generated code. + +Bug: 819294 +Change-Id: I90b893b9701748302f7b900fbcc2c341685fe0d3 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2126290 +Reviewed-by: Kent Tamura +Commit-Queue: Kent Tamura +Cr-Commit-Position: refs/heads/master@{#756880} +--- + +diff --git a/third_party/blink/renderer/platform/wtf/vector.h b/third_party/blink/renderer/platform/wtf/vector.h +index 632d308..82aaf96 100644 +--- a/third_party/blink/renderer/platform/wtf/vector.h ++++ b/third_party/blink/renderer/platform/wtf/vector.h +@@ -205,30 +205,23 @@ + } + } + +- template +- static void MoveOverlappingImpl(const T* src, const T* src_end, T* dst); +- template <> +- static void MoveOverlappingImpl(const T* src, +- const T* src_end, +- T* dst) { +- memmove(dst, src, +- reinterpret_cast(src_end) - +- reinterpret_cast(src)); +- } +- template <> +- static void MoveOverlappingImpl(const T* src, +- const T* src_end, +- T* dst) { +- if (src == dst) +- return; +- if (dst < src) { +- for (; src < src_end; ++src, ++dst) +- AtomicWriteMemcpy(dst, src); ++ static void MoveOverlappingImpl(const T* src, const T* src_end, T* dst) { ++ if (Allocator::kIsGarbageCollected) { ++ if (src == dst) ++ return; ++ if (dst < src) { ++ for (; src < src_end; ++src, ++dst) ++ AtomicWriteMemcpy(dst, src); ++ } else { ++ --src_end; ++ T* dst_end = dst + (src_end - src); ++ for (; src_end >= src; --src_end, --dst_end) ++ AtomicWriteMemcpy(dst_end, src_end); ++ } + } else { +- --src_end; +- T* dst_end = dst + (src_end - src); +- for (; src_end >= src; --src_end, --dst_end) +- AtomicWriteMemcpy(dst_end, src_end); ++ memmove(dst, src, ++ reinterpret_cast(src_end) - ++ reinterpret_cast(src)); + } + } + diff --git a/chromium-83.0.4103.61-disable-fontconfig-cache-magic.patch b/chromium-83.0.4103.61-disable-fontconfig-cache-magic.patch new file mode 100644 index 00000000..d1a496ba --- /dev/null +++ b/chromium-83.0.4103.61-disable-fontconfig-cache-magic.patch @@ -0,0 +1,13 @@ +diff -up chromium-83.0.4103.61/base/test/BUILD.gn.nofontconfigcache chromium-83.0.4103.61/base/test/BUILD.gn +--- chromium-83.0.4103.61/base/test/BUILD.gn.nofontconfigcache 2020-05-29 12:30:03.409707011 -0400 ++++ chromium-83.0.4103.61/base/test/BUILD.gn 2020-05-29 12:30:22.593275137 -0400 +@@ -188,9 +188,6 @@ static_library("test_support") { + sources += [ "test_file_util_linux.cc" ] + public_deps += [ ":fontconfig_util_linux" ] + data_deps = [ "//third_party/test_fonts" ] +- if (current_toolchain == host_toolchain) { +- data_deps += [ ":do_generate_fontconfig_caches" ] +- } + } + + if (is_mac) { diff --git a/chromium-83.0.4103.61-missing-cstddef-header.patch b/chromium-83.0.4103.61-missing-cstddef-header.patch new file mode 100644 index 00000000..bd7d51d5 --- /dev/null +++ b/chromium-83.0.4103.61-missing-cstddef-header.patch @@ -0,0 +1,34 @@ +diff -up chromium-83.0.4103.61/chrome/browser/search/background/ntp_backgrounds.h.missing-cstddef chromium-83.0.4103.61/chrome/browser/search/background/ntp_backgrounds.h +--- chromium-83.0.4103.61/chrome/browser/search/background/ntp_backgrounds.h.missing-cstddef 2020-05-18 14:39:11.000000000 -0400 ++++ chromium-83.0.4103.61/chrome/browser/search/background/ntp_backgrounds.h 2020-05-29 15:37:52.370693881 -0400 +@@ -6,6 +6,7 @@ + #define CHROME_BROWSER_SEARCH_BACKGROUND_NTP_BACKGROUNDS_H_ + + #include ++#include + + class GURL; + +diff -up chromium-83.0.4103.61/media/cdm/supported_cdm_versions.h.missing-cstddef chromium-83.0.4103.61/media/cdm/supported_cdm_versions.h +diff -up chromium-83.0.4103.61/third_party/angle/include/platform/Platform.h.missing-cstddef chromium-83.0.4103.61/third_party/angle/include/platform/Platform.h +--- chromium-83.0.4103.61/third_party/angle/include/platform/Platform.h.missing-cstddef 2020-05-29 15:37:52.374693782 -0400 ++++ chromium-83.0.4103.61/third_party/angle/include/platform/Platform.h 2020-05-29 15:39:47.343874233 -0400 +@@ -12,6 +12,7 @@ + #include + #include + #include ++#include + + #define EGL_PLATFORM_ANGLE_PLATFORM_METHODS_ANGLEX 0x3482 + +diff -up chromium-83.0.4103.61/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h.missing-cstddef chromium-83.0.4103.61/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h +--- chromium-83.0.4103.61/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h.missing-cstddef 2020-05-18 14:42:43.000000000 -0400 ++++ chromium-83.0.4103.61/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h 2020-05-29 15:37:52.376693733 -0400 +@@ -12,6 +12,7 @@ + #define MODULES_AUDIO_PROCESSING_AEC3_CLOCKDRIFT_DETECTOR_H_ + + #include ++#include + + namespace webrtc { + diff --git a/chromium-83.0.4103.61-norar.patch b/chromium-83.0.4103.61-norar.patch new file mode 100644 index 00000000..91809335 --- /dev/null +++ b/chromium-83.0.4103.61-norar.patch @@ -0,0 +1,79 @@ +diff -up chromium-83.0.4103.61/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-83.0.4103.61/chrome/common/safe_browsing/BUILD.gn +--- chromium-83.0.4103.61/chrome/common/safe_browsing/BUILD.gn.nounrar 2020-05-29 12:21:53.249790785 -0400 ++++ chromium-83.0.4103.61/chrome/common/safe_browsing/BUILD.gn 2020-05-29 12:22:27.825004615 -0400 +@@ -57,39 +57,6 @@ if (safe_browsing_mode == 1) { + public_deps = [ "//components/safe_browsing/core:csd_proto" ] + } + +- source_set("rar_analyzer") { +- sources = [ +- "rar_analyzer.cc", +- "rar_analyzer.h", +- ] +- +- deps = [ +- ":archive_analyzer_results", +- ":download_type_util", +- "//base", +- "//base:i18n", +- "//components/safe_browsing/core:features", +- "//components/safe_browsing/core:file_type_policies", +- "//third_party/unrar:unrar", +- ] +- +- defines = [ +- "_FILE_OFFSET_BITS=64", +- "LARGEFILE_SOURCE", +- "RAR_SMP", +- "SILENT", +- +- # The following is set to disable certain macro definitions in the unrar +- # source code. +- "CHROMIUM_UNRAR", +- +- # Disables exceptions in unrar, replaces them with process termination. +- "UNRAR_NO_EXCEPTIONS", +- ] +- +- public_deps = [ "//components/safe_browsing/core:csd_proto" ] +- } +- + source_set("disk_image_type_sniffer_mac") { + sources = [ + "disk_image_type_sniffer_mac.cc", +@@ -156,7 +123,6 @@ source_set("safe_browsing") { + ":archive_analyzer_results", + ":binary_feature_extractor", + ":download_type_util", +- ":rar_analyzer", + "//components/safe_browsing/core:features", + ] + +diff -up chromium-83.0.4103.61/chrome/common/safe_browsing/DEPS.nounrar chromium-83.0.4103.61/chrome/common/safe_browsing/DEPS +--- chromium-83.0.4103.61/chrome/common/safe_browsing/DEPS.nounrar 2020-05-18 14:39:13.000000000 -0400 ++++ chromium-83.0.4103.61/chrome/common/safe_browsing/DEPS 2020-05-29 12:21:08.563806866 -0400 +@@ -1,6 +1,5 @@ + include_rules = [ + "+components/safe_browsing", + "+third_party/protobuf", +- "+third_party/unrar", + "+third_party/zlib", + ] +diff -up chromium-83.0.4103.61/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-83.0.4103.61/chrome/services/file_util/safe_archive_analyzer.cc +--- chromium-83.0.4103.61/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2020-05-18 14:39:13.000000000 -0400 ++++ chromium-83.0.4103.61/chrome/services/file_util/safe_archive_analyzer.cc 2020-05-29 12:21:08.565806820 -0400 +@@ -46,10 +46,14 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile + void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file, + base::File temporary_file, + AnalyzeRarFileCallback callback) { ++#if 0 + DCHECK(rar_file.IsValid()); + + safe_browsing::ArchiveAnalyzerResults results; + safe_browsing::rar_analyzer::AnalyzeRarFile( + std::move(rar_file), std::move(temporary_file), &results); + std::move(callback).Run(results); ++#else ++ NOTREACHED(); ++#endif + } diff --git a/chromium.spec b/chromium.spec index 5c1c3fb7..bfb87760 100644 --- a/chromium.spec +++ b/chromium.spec @@ -156,14 +156,14 @@ BuildRequires: libicu-devel >= 5.4 %global chromoting_client_id %nil %endif -%global majorversion 81 +%global majorversion 83 %if %{freeworld} Name: chromium%{chromium_channel}%{nsuffix} %else Name: chromium%{chromium_channel} %endif -Version: %{majorversion}.0.4044.138 +Version: %{majorversion}.0.4103.61 Release: 1%{?dist} %if %{?freeworld} %if %{?shared} @@ -196,12 +196,12 @@ Patch5: chromium-60.0.3112.78-jpeg-nomangle.patch # Do not mangle zlib Patch6: chromium-77.0.3865.75-no-zlib-mangle.patch # Do not use unrar code, it is non-free -Patch7: chromium-81.0.4044.92-norar.patch +Patch7: chromium-83.0.4103.61-norar.patch # Use Gentoo's Widevine hack # https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/chromium-widevine-r3.patch Patch8: chromium-71.0.3578.98-widevine-r3.patch # Disable fontconfig cache magic that breaks remoting -Patch9: chromium-81.0.4044.92-disable-fontconfig-cache-magic.patch +Patch9: chromium-83.0.4103.61-disable-fontconfig-cache-magic.patch # drop rsp clobber, which breaks gcc9 (thanks to Jeff Law) Patch10: chromium-78.0.3904.70-gcc9-drop-rsp-clobber.patch # Try to load widevine from other places @@ -229,27 +229,37 @@ Patch57: chromium-78-protobuf-export.patch Patch59: chromium-77-clang.patch # /../../ui/base/cursor/ozone/bitmap_cursor_factory_ozone.cc:53:15: error: 'find_if' is not a member of 'std'; did you mean 'find'? Patch63: chromium-79.0.3945.56-fix-find_if.patch -# https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files/chromium-80-gcc-blink.patch -Patch68: chromium-80-gcc-blink.patch # https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files/chromium-80-gcc-quiche.patch Patch70: chromium-80-gcc-quiche.patch -# ../../base/trace_event/trace_event_memory_overhead.h:15:1: note: 'std::string' is defined in header ''; did you forget to '#include '? -Patch71: chromium-80.0.3987.87-missing-string-header.patch # ../../third_party/perfetto/include/perfetto/base/task_runner.h:48:55: error: 'uint32_t' has not been declared Patch72: chromium-80.0.3987.87-missing-cstdint-header.patch # ../../third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h:34:3: error: 'size_t' does not name a type -Patch73: chromium-80.0.3987.106-missing-cstddef-header.patch +Patch73: chromium-83.0.4103.61-missing-cstddef-header.patch # Missing (thanks c++17) Patch75: chromium-80.0.3987.106-missing-cstring-header.patch -# https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files/chromium-81-gcc-constexpr.patch -Patch76: chromium-81-gcc-constexpr.patch # prepare for using system ffmpeg (clean) # http://svnweb.mageia.org/packages/cauldron/chromium-browser-stable/current/SOURCES/chromium-53-ffmpeg-no-deprecation-errors.patch?view=markup Patch77: chromium-53-ffmpeg-no-deprecation-errors.patch -# https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files/chromium-81-gcc-noexcept.patch -Patch78: chromium-81-gcc-noexcept.patch +# https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files/chromium-82-gcc-noexcept.patch +Patch78: chromium-82-gcc-noexcept.patch # ../../base/test/icu_test_util.h:12:1: note: 'std::unique_ptr' is defined in header ''; did you forget to '#include '? Patch79: chromium-81.0.4044.92-missing-memory-header.patch +# https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files/chromium-82-gcc-incomplete-type.patch +Patch80: chromium-82-gcc-incomplete-type.patch +# https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files/chromium-82-gcc-template.patch +Patch81: chromium-82-gcc-template.patch +# https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files/chromium-82-gcc-iterator.patch +Patch82: chromium-82-gcc-iterator.patch +# https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files/chromium-83-gcc-template.patch +Patch83: chromium-83-gcc-template.patch +# https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files/chromium-83-gcc-include.patch +Patch84: chromium-83-gcc-include.patch +# https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files/chromium-83-gcc-permissive.patch +Patch85: chromium-83-gcc-permissive.patch +# https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files/chromium-83-gcc-iterator.patch +Patch86: chromium-83-gcc-iterator.patch +# https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files/chromium-83-gcc-serviceworker.patch +Patch87: chromium-83-gcc-serviceworker.patch # Use lstdc++ on EPEL7 only Patch101: chromium-75.0.3770.100-epel7-stdc++.patch @@ -261,9 +271,6 @@ Patch102: chromium-80.0.3987.132-el7-noexcept.patch Patch202: enable-vaapi.patch Patch203: chromium-80.0.3987.122-vaapi-i686-fpermissive.patch Patch205: chromium-81.0.4044.92-fix-vaapi-on-intel.patch -# upstream backports to fix vaapi, thanks rpmfusion -Patch206: chromium-81-vaapi-r737459.patch -Patch207: chromium-81-vaapi-r738595.patch # Apply these patches to work around EPEL8 issues Patch300: chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch @@ -811,16 +818,21 @@ udev. %patch57 -p1 -b .protobuf-export %patch59 -p1 -b .clang-supports-location-builtins %patch63 -p1 -b .fix-find_if -%patch68 -p1 -b .gcc-blink %patch70 -p1 -b .gcc-quiche -%patch71 -p1 -b .missing-string %patch72 -p1 -b .missing-cstdint %patch73 -p1 -b .missing-cstddef %patch75 -p1 -b .missing-cstring -%patch76 -p1 -b .gcc-constexpr %patch77 -p1 -b .ffmpeg-deprecations %patch78 -p1 -b .gcc-noexcept %patch79 -p1 -b .missing-memory +%patch80 -p1 -b .gcc-incomplete-type +%patch81 -p1 -b .gcc-template +%patch82 -p1 -b .gcc-iterator +%patch83 -p1 -b .gcc-template2 +%patch84 -p1 -b .gcc-include +%patch85 -p1 -b .gcc-permissive +%patch86 -p1 -b .gcc-iterator2 +%patch87 -p1 -b .gcc-serviceworker # Fedora branded user agent %if 0%{?fedora} @@ -840,8 +852,6 @@ udev. %patch203 -p1 -b .i686permissive %endif %patch205 -p1 -b .vaapi-intel-fix -%patch206 -p1 -b .r737459 -%patch207 -p1 -b .r738595 %endif %if 0%{?rhel} == 8 @@ -1761,6 +1771,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %changelog +* Tue Jun 2 2020 Tom Callaway - 83.0.4103.61-1 +- update to 83.0.4103.61 + * Thu May 7 2020 Tom Callaway - 81.0.4044.138-1 - update to 81.0.4044.138 diff --git a/enable-vaapi.patch b/enable-vaapi.patch index f31122a5..5fe02e2c 100644 --- a/enable-vaapi.patch +++ b/enable-vaapi.patch @@ -1,7 +1,7 @@ -diff -up chromium-81.0.4044.92/chrome/browser/about_flags.cc.vaapi chromium-81.0.4044.92/chrome/browser/about_flags.cc ---- chromium-81.0.4044.92/chrome/browser/about_flags.cc.vaapi 2020-04-03 00:11:28.000000000 -0400 -+++ chromium-81.0.4044.92/chrome/browser/about_flags.cc 2020-04-13 15:09:02.982509507 -0400 -@@ -1920,7 +1920,7 @@ const FeatureEntry kFeatureEntries[] = { +diff -up chromium-83.0.4103.61/chrome/browser/about_flags.cc.vaapi chromium-83.0.4103.61/chrome/browser/about_flags.cc +--- chromium-83.0.4103.61/chrome/browser/about_flags.cc.vaapi 2020-05-18 14:40:20.000000000 -0400 ++++ chromium-83.0.4103.61/chrome/browser/about_flags.cc 2020-05-29 15:50:25.144232561 -0400 +@@ -2153,7 +2153,7 @@ const FeatureEntry kFeatureEntries[] = { "disable-accelerated-video-decode", flag_descriptions::kAcceleratedVideoDecodeName, flag_descriptions::kAcceleratedVideoDecodeDescription, @@ -10,9 +10,9 @@ diff -up chromium-81.0.4044.92/chrome/browser/about_flags.cc.vaapi chromium-81.0 SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode), }, { -@@ -2352,12 +2352,12 @@ const FeatureEntry kFeatureEntries[] = { - FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)}, - #endif // !defined(OS_ANDROID) +@@ -2585,12 +2585,12 @@ const FeatureEntry kFeatureEntries[] = { + flag_descriptions::kWebXrForceRuntimeDescription, kOsDesktop, + MULTI_VALUE_TYPE(kWebXrForceRuntimeChoices)}, #endif // ENABLE_VR -#if defined(OS_CHROMEOS) +#if defined(OS_CHROMEOS) || defined(OS_LINUX) @@ -22,14 +22,14 @@ diff -up chromium-81.0.4044.92/chrome/browser/about_flags.cc.vaapi chromium-81.0 + flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux, SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)}, -#endif // OS_CHROMEOS -+#endif // OS_CHROMEOS | OS_LINUX ++#endif // OS_CHROMEOS || OS_LINUX {"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName, flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop, FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)}, -diff -up chromium-81.0.4044.92/chrome/browser/flag_descriptions.cc.vaapi chromium-81.0.4044.92/chrome/browser/flag_descriptions.cc ---- chromium-81.0.4044.92/chrome/browser/flag_descriptions.cc.vaapi 2020-04-03 00:11:29.000000000 -0400 -+++ chromium-81.0.4044.92/chrome/browser/flag_descriptions.cc 2020-04-13 15:09:02.983509488 -0400 -@@ -2999,16 +2999,19 @@ const char kMetalDescription[] = +diff -up chromium-83.0.4103.61/chrome/browser/flag_descriptions.cc.vaapi chromium-83.0.4103.61/chrome/browser/flag_descriptions.cc +--- chromium-83.0.4103.61/chrome/browser/flag_descriptions.cc.vaapi 2020-05-18 14:40:21.000000000 -0400 ++++ chromium-83.0.4103.61/chrome/browser/flag_descriptions.cc 2020-05-29 15:47:52.347979793 -0400 +@@ -2980,16 +2980,19 @@ const char kMetalDescription[] = #endif @@ -52,10 +52,10 @@ diff -up chromium-81.0.4044.92/chrome/browser/flag_descriptions.cc.vaapi chromiu const char kAggregatedMlAppRankingName[] = "Rank suggested apps with ML."; const char kAggregatedMlAppRankingDescription[] = "Use the aggregated ML model to rank the suggested apps."; -diff -up chromium-81.0.4044.92/chrome/browser/flag_descriptions.h.vaapi chromium-81.0.4044.92/chrome/browser/flag_descriptions.h ---- chromium-81.0.4044.92/chrome/browser/flag_descriptions.h.vaapi 2020-04-03 00:11:29.000000000 -0400 -+++ chromium-81.0.4044.92/chrome/browser/flag_descriptions.h 2020-04-13 15:09:02.983509488 -0400 -@@ -1730,13 +1730,19 @@ extern const char kMetalDescription[]; +diff -up chromium-83.0.4103.61/chrome/browser/flag_descriptions.h.vaapi chromium-83.0.4103.61/chrome/browser/flag_descriptions.h +--- chromium-83.0.4103.61/chrome/browser/flag_descriptions.h.vaapi 2020-05-18 14:40:21.000000000 -0400 ++++ chromium-83.0.4103.61/chrome/browser/flag_descriptions.h 2020-05-29 15:47:52.348979768 -0400 +@@ -1711,13 +1711,19 @@ extern const char kMetalDescription[]; #endif // defined(OS_MACOSX) @@ -77,9 +77,9 @@ diff -up chromium-81.0.4044.92/chrome/browser/flag_descriptions.h.vaapi chromium extern const char kAggregatedMlAppRankingName[]; extern const char kAggregatedMlAppRankingDescription[]; -diff -up chromium-81.0.4044.92/gpu/config/software_rendering_list.json.vaapi chromium-81.0.4044.92/gpu/config/software_rendering_list.json ---- chromium-81.0.4044.92/gpu/config/software_rendering_list.json.vaapi 2020-04-13 15:09:02.988509396 -0400 -+++ chromium-81.0.4044.92/gpu/config/software_rendering_list.json 2020-04-13 15:19:03.380353582 -0400 +diff -up chromium-83.0.4103.61/gpu/config/software_rendering_list.json.vaapi chromium-83.0.4103.61/gpu/config/software_rendering_list.json +--- chromium-83.0.4103.61/gpu/config/software_rendering_list.json.vaapi 2020-05-18 14:40:24.000000000 -0400 ++++ chromium-83.0.4103.61/gpu/config/software_rendering_list.json 2020-05-29 15:47:52.349979744 -0400 @@ -337,11 +337,12 @@ }, { diff --git a/sources b/sources index 6391e4df..6377866a 100644 --- a/sources +++ b/sources @@ -18,3 +18,4 @@ SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb874 SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd SHA512 (node-v10.15.3-linux-x64.tar.gz) = 5eb544ef706562981340a82acc79e2162c6a3e4049b4a95f69ce353ee5b0f929c60b1fc457e8249b3fb0696f82fc28c5f543f5947db19fae4e9d5c21b906bb20 SHA512 (chromium-81.0.4044.138-clean.tar.xz) = 24c52a2b5973896ff823e989e92747fb3d71fed74a38eb970efd74492d1f980c9135334ec2c74cdafb1edc91d66d7195e66bb6ac38cb201cb3e08386e26665eb +SHA512 (chromium-83.0.4103.61-clean.tar.xz) = 8a7c31e5de0dae571b402afac81eaa8ed21886f20a4f463ea2ed6e1007a6e80aa8334e001370f7245d46e94839dd249fc4bebab055b1e315bf98d26f57191d03