diff --git a/chromium-78-gcc-noexcept.patch b/chromium-78-gcc-noexcept.patch new file mode 100644 index 00000000..8ddb53fe --- /dev/null +++ b/chromium-78-gcc-noexcept.patch @@ -0,0 +1,32 @@ +From d16cda8fc3476cc534a756873cc8aa2692a57054 Mon Sep 17 00:00:00 2001 +From: Jose Dapena Paz +Date: Thu, 22 Aug 2019 13:13:36 +0200 +Subject: [PATCH] GCC: declare noexcept move constructor/assign operators of V8StackTraceId + +blink::BlinkCloneableMessage declares default implementation of +move operator/assign operator that requires v8_inspector::V8StackTraceId +to declare its move constructor/assign operator too. + +Bug: chromium:819294 +Change-Id: Iaf626ee8245efcba372a17cdf2de448e691d41d6 +Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1796062 +Commit-Queue: José Dapena Paz +Reviewed-by: Yang Guo +Cr-Commit-Position: refs/heads/master@{#63799} +--- + +diff --git a/v8/include/v8-inspector.h b/v8/include/v8-inspector.h +index ce5b777..ed4cdec 100644 +--- a/v8/include/v8-inspector.h ++++ b/v8/include/v8-inspector.h +@@ -231,7 +231,10 @@ struct V8_EXPORT V8StackTraceId { + std::pair debugger_id; + + V8StackTraceId(); ++ V8StackTraceId(const V8StackTraceId&) = default; + V8StackTraceId(uintptr_t id, const std::pair debugger_id); ++ V8StackTraceId& operator=(const V8StackTraceId&) = default; ++ V8StackTraceId& operator=(V8StackTraceId&&) noexcept = default; + ~V8StackTraceId() = default; + + bool IsInvalid() const; diff --git a/chromium-78-include.patch b/chromium-78-include.patch new file mode 100644 index 00000000..3db38eac --- /dev/null +++ b/chromium-78-include.patch @@ -0,0 +1,40 @@ +From bbfe2665923225b4a7c436ba2b6c7e5f695f2e52 Mon Sep 17 00:00:00 2001 +From: David Landell +Date: Fri, 13 Sep 2019 12:24:13 +0000 +Subject: [PATCH] Add missing include for unique_ptr + +Change-Id: I614d2f42868d563eb6a92dfb2aae08286e20d687 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1803137 +Reviewed-by: Henrik Boström +Commit-Queue: Henrik Boström +Cr-Commit-Position: refs/heads/master@{#696355} +--- + +diff --git a/third_party/blink/public/platform/web_rtc_rtp_source.h b/third_party/blink/public/platform/web_rtc_rtp_source.h +index 959440f..c3fd542 100644 +--- a/third_party/blink/public/platform/web_rtc_rtp_source.h ++++ b/third_party/blink/public/platform/web_rtc_rtp_source.h +@@ -5,6 +5,8 @@ + #ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_RTC_RTP_SOURCE_H_ + #define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_RTC_RTP_SOURCE_H_ + ++#include ++ + #include "base/optional.h" + #include "third_party/blink/public/platform/web_common.h" + +Missing include due to reverting ProfileManagerObserver +--- + +diff --git a/chrome/browser/web_applications/extensions/bookmark_app_util.cc b/chrome/browser/web_applications/extensions/bookmark_app_util.cc +index ee4b70a..b31e5f5 100644 +--- a/chrome/browser/web_applications/extensions/bookmark_app_util.cc ++++ b/chrome/browser/web_applications/extensions/bookmark_app_util.cc +@@ -7,6 +7,7 @@ + #include "base/strings/string_piece.h" + #include "base/values.h" + #include "chrome/browser/extensions/extension_service.h" ++#include "chrome/browser/profiles/profile.h" + #include "chrome/browser/web_applications/components/app_registrar.h" + #include "chrome/browser/web_applications/components/web_app_provider_base.h" + #include "chrome/common/chrome_features.h" diff --git a/chromium-78-pm-crash.patch b/chromium-78-pm-crash.patch new file mode 100644 index 00000000..ada26612 --- /dev/null +++ b/chromium-78-pm-crash.patch @@ -0,0 +1,43 @@ +From e73aed9a5ef15102f29ac31b70290faf5c90f9fe Mon Sep 17 00:00:00 2001 +From: Evan Stade +Date: Wed, 16 Oct 2019 16:01:32 +0000 +Subject: [PATCH] Fix shutdown crash in ProfileManager. + +OnProfileMarkedForPermanentDeletion should move from +ProfileManagerObserver to ProfileObserver, which would also +fix this bug. However, changing the order of members is the +quickest and most cherry-pick-able way to avoid the crash. + +Bug: 1005244 +Change-Id: If2db68c846dd418cd02864b57b9b543687fa1e03 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1863518 +Auto-Submit: Evan Stade +Reviewed-by: David Roger +Commit-Queue: Evan Stade +Cr-Commit-Position: refs/heads/master@{#706467} +--- + +diff --git a/chrome/browser/profiles/profile_manager.h b/chrome/browser/profiles/profile_manager.h +index b60df76d..7d02af7 100644 +--- a/chrome/browser/profiles/profile_manager.h ++++ b/chrome/browser/profiles/profile_manager.h +@@ -409,6 +409,10 @@ class ProfileManager : public content::NotificationObserver, + const base::FilePath& profile_dir); + #endif // !defined(OS_ANDROID) + ++ // Destroy after |profile_info_cache_| since Profile destruction may trigger ++ // some observers to unregister themselves. ++ base::ObserverList observers_; ++ + // Object to cache various information about profiles. Contains information + // about every profile which has been created for this instance of Chrome, + // if it has not been explicitly deleted. It must be destroyed after +@@ -450,8 +454,6 @@ class ProfileManager : public content::NotificationObserver, + // Controls whether to initialize some services. Only disabled for testing. + bool do_final_services_init_ = true; + +- base::ObserverList observers_; +- + // TODO(chrome/browser/profiles/OWNERS): Usage of this in profile_manager.cc + // should likely be turned into DCHECK_CURRENTLY_ON(BrowserThread::UI) for + // consistency with surrounding code in the same file but that wasn't trivial diff --git a/chromium-78-protobuf-export.patch b/chromium-78-protobuf-export.patch new file mode 100644 index 00000000..ddb9e80e --- /dev/null +++ b/chromium-78-protobuf-export.patch @@ -0,0 +1,13 @@ +diff --git a/third_party/protobuf/src/google/protobuf/repeated_field.h b/third_party/protobuf/src/google/protobuf/repeated_field.h +index b5b193c..4434854 100644 +--- a/third_party/protobuf/src/google/protobuf/repeated_field.h ++++ b/third_party/protobuf/src/google/protobuf/repeated_field.h +@@ -804,7 +804,7 @@ class StringTypeHandler { + // RepeatedPtrField is like RepeatedField, but used for repeated strings or + // Messages. + template +-class RepeatedPtrField final : private internal::RepeatedPtrFieldBase { ++class PROTOBUF_EXPORT RepeatedPtrField final : private internal::RepeatedPtrFieldBase { + public: + RepeatedPtrField(); + explicit RepeatedPtrField(Arena* arena); diff --git a/chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch b/chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch index 6ffe5805..cb436ecd 100644 --- a/chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch +++ b/chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch @@ -1,7 +1,7 @@ diff -up chromium-78.0.3904.70/net/dns/dns_util.cc.gcc-DohUpgradeEntry-nonconst chromium-78.0.3904.70/net/dns/dns_util.cc ---- chromium-78.0.3904.70/net/dns/dns_util.cc.gcc-DohUpgradeEntry-nonconst 2019-10-23 11:21:55.805646136 -0400 -+++ chromium-78.0.3904.70/net/dns/dns_util.cc 2019-10-23 11:23:52.693140706 -0400 -@@ -139,11 +139,11 @@ struct DohUpgradeEntry { +--- chromium-78.0.3904.70/net/dns/dns_util.cc.gcc-DohUpgradeEntry-nonconst 2019-10-21 15:06:38.000000000 -0400 ++++ chromium-78.0.3904.70/net/dns/dns_util.cc 2019-10-23 12:55:27.886546918 -0400 +@@ -139,12 +139,12 @@ struct DohUpgradeEntry { const DnsConfig::DnsOverHttpsServerConfig dns_over_https_config; }; @@ -11,10 +11,12 @@ diff -up chromium-78.0.3904.70/net/dns/dns_util.cc.gcc-DohUpgradeEntry-nonconst // DohProviderId histogram suffix list in // tools/metrics/histograms/histograms.xml. - static const base::NoDestructor> +- upgradable_servers({ + static const base::NoDestructor> - upgradable_servers({ ++ upgradable_servers(std::initializer_list{ DohUpgradeEntry( "CleanBrowsingAdult", + {"185.228.168.10", "185.228.169.11", "2a0d:2a00:1::1", @@ -222,8 +222,7 @@ const std::vector std::vector GetDohUpgradeEntriesFromNameservers( const std::vector& dns_servers, diff --git a/chromium.spec b/chromium.spec index bfa6fe8f..764e85d8 100644 --- a/chromium.spec +++ b/chromium.spec @@ -222,6 +222,14 @@ Patch59: chromium-78.0.3904.70-gcc-mark-CheckOpResult-constexpr.patch Patch60: chromium-78.0.3904.70-gcc-sizet-fix.patch # https://chromium.googlesource.com/chromium/src/+/f4c3c329588b78af63aad8b401da767242b86709 Patch61: chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch +# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/chromium-78-gcc-noexcept.patch +Patch62: chromium-78-gcc-noexcept.patch +# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/chromium-78-pm-crash.patch +Patch63: chromium-78-pm-crash.patch +# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/chromium-78-protobuf-export.patch +Patch64: chromium-78-protobuf-export.patch +# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/chromium-78-include.patch +Patch65: chromium-78-include.patch # Use lstdc++ on EPEL7 only Patch101: chromium-75.0.3770.100-epel7-stdc++.patch @@ -747,6 +755,10 @@ udev. %patch59 -p1 -b .gcc-mark-CheckOpResult-constexpr %patch60 -p1 -b .gcc-sizet %patch61 -p1 -b .gcc-DohUpgradeEntry-nonconst +%patch62 -p1 -b .gcc-v8-noexcept +%patch63 -p1 -b .pm-crash +%patch64 -p1 -b .protobuf-export +%patch65 -p1 -b .missing-includes # Fedora branded user agent %if 0%{?fedora}