From 4f31ec8a715640d2c02850a28db1a13f2812bc21 Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Wed, 15 Jul 2020 12:13:12 -0400 Subject: [PATCH] 84 --- ...-78-protobuf-RepeatedPtrField-export.patch | 0 ... => chromium-79-gcc-protobuf-alignas.patch | 15 +- ...ium-79.0.3945.56-base-gcc-no-alignas.patch | 56 --- ...mSendBuffer-deleted-move-constructor.patch | 0 ...-80.0.3987.87-missing-cstdint-header.patch | 11 - chromium-82-gcc-incomplete-type.patch | 53 --- chromium-82-gcc-iterator.patch | 23 -- chromium-82-gcc-noexcept.patch | 35 -- ...83-WebUI-fix-template-specialization.patch | 21 +- chromium-83-gcc-include.patch | 75 ---- chromium-83-gcc-permissive.patch | 31 -- chromium-83-gcc-serviceworker.patch | 130 ------ chromium-83-gcc-template.patch | 69 ---- chromium-83.0.4103.97-epel7-no-kcmp-h.patch | 14 - ...-83.0.4103.97-vaapi-i686-fpermissive.patch | 2 +- chromium-84-AXObject-stl-iterator.patch | 36 ++ chromium-84-FilePath-add-noexcept.patch | 55 +++ ...-ListContainerHelper-include-cstring.patch | 30 ++ ...ionTrait-fix-template-specialization.patch | 114 +++++ ...orBuffer-fix-template-specialization.patch | 34 ++ chromium-84-blink-disable-clang-format.patch | 33 ++ chromium-84-crashpad-include-cstring.patch | 90 ++++ ...ss_variant_mojo_util-remove-noexcept.patch | 37 ++ chromium-84-fix-decltype.patch | 65 +++ ...m-84-flat_map-flat_tree-add-noexcept.patch | 66 +++ chromium-84-gcc-DCHECK_EQ-unique_ptr.patch | 29 ++ chromium-84-gcc-DOMRect-constexpr.patch | 29 ++ chromium-84-gcc-use-brace-initializer.patch | 39 ++ chromium-84-ozone-include.patch | 24 ++ ...age-ManifestManagerHost-per-document.patch | 391 ++++++++++++++++++ chromium-84-std-vector-const.patch | 49 +++ chromium-84.0.4147.89-epel7-no-kcmp-h.patch | 14 + ...chromium-84.0.4147.89-epel7-old-cups.patch | 38 +- chromium-blink-gcc-diagnostic-pragma.patch | 32 ++ chromium-clang_lto_visibility_public.patch | 53 +++ chromium-fix-char_traits.patch | 14 + chromium-quiche-invalid-offsetof.patch | 57 +++ chromium-skia-no_sanitize.patch | 61 +++ chromium.spec | 232 ++++++----- clean_ffmpeg.sh | 1 - sources | 3 +- 41 files changed, 1537 insertions(+), 624 deletions(-) rename chromium-78-protobuf-export.patch => chromium-78-protobuf-RepeatedPtrField-export.patch (100%) rename chromium-79-gcc-alignas.patch => chromium-79-gcc-protobuf-alignas.patch (83%) delete mode 100644 chromium-79.0.3945.56-base-gcc-no-alignas.patch rename chromium-80-gcc-quiche.patch => chromium-80-QuicStreamSendBuffer-deleted-move-constructor.patch (100%) delete mode 100644 chromium-82-gcc-incomplete-type.patch delete mode 100644 chromium-82-gcc-iterator.patch delete mode 100644 chromium-82-gcc-noexcept.patch rename chromium-82-gcc-template.patch => chromium-83-WebUI-fix-template-specialization.patch (61%) delete mode 100644 chromium-83-gcc-include.patch delete mode 100644 chromium-83-gcc-permissive.patch delete mode 100644 chromium-83-gcc-serviceworker.patch delete mode 100644 chromium-83-gcc-template.patch delete mode 100644 chromium-83.0.4103.97-epel7-no-kcmp-h.patch create mode 100644 chromium-84-AXObject-stl-iterator.patch create mode 100644 chromium-84-FilePath-add-noexcept.patch create mode 100644 chromium-84-ListContainerHelper-include-cstring.patch create mode 100644 chromium-84-TraceInCollectionTrait-fix-template-specialization.patch create mode 100644 chromium-84-VectorBuffer-fix-template-specialization.patch create mode 100644 chromium-84-blink-disable-clang-format.patch create mode 100644 chromium-84-crashpad-include-cstring.patch create mode 100644 chromium-84-cross_variant_mojo_util-remove-noexcept.patch create mode 100644 chromium-84-fix-decltype.patch create mode 100644 chromium-84-flat_map-flat_tree-add-noexcept.patch create mode 100644 chromium-84-gcc-DCHECK_EQ-unique_ptr.patch create mode 100644 chromium-84-gcc-DOMRect-constexpr.patch create mode 100644 chromium-84-gcc-use-brace-initializer.patch create mode 100644 chromium-84-ozone-include.patch create mode 100644 chromium-84-revert-manage-ManifestManagerHost-per-document.patch create mode 100644 chromium-84-std-vector-const.patch create mode 100644 chromium-84.0.4147.89-epel7-no-kcmp-h.patch rename chromium-83.0.4103.97-epel7-old-cups.patch => chromium-84.0.4147.89-epel7-old-cups.patch (75%) create mode 100644 chromium-blink-gcc-diagnostic-pragma.patch create mode 100644 chromium-clang_lto_visibility_public.patch create mode 100644 chromium-fix-char_traits.patch create mode 100644 chromium-quiche-invalid-offsetof.patch create mode 100644 chromium-skia-no_sanitize.patch diff --git a/chromium-78-protobuf-export.patch b/chromium-78-protobuf-RepeatedPtrField-export.patch similarity index 100% rename from chromium-78-protobuf-export.patch rename to chromium-78-protobuf-RepeatedPtrField-export.patch diff --git a/chromium-79-gcc-alignas.patch b/chromium-79-gcc-protobuf-alignas.patch similarity index 83% rename from chromium-79-gcc-alignas.patch rename to chromium-79-gcc-protobuf-alignas.patch index 1e031e2a..20180c47 100644 --- a/chromium-79-gcc-alignas.patch +++ b/chromium-79-gcc-protobuf-alignas.patch @@ -1,5 +1,15 @@ -Re-use chromium alignas workaround in protobuf. +From 5d66d5907ac3e76d1e382b8a8e8afe653bd00f4c Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Sun, 31 May 2020 13:59:15 +0000 +Subject: [PATCH] Fix GCC build with PROTOBUF_USE_DLLS enabled + +GCC does not allow mixing __attribute__(()) syntax and alignas() +syntax. Re-use approach from chromium base/compiler_specific.h --- + .../protobuf/src/google/protobuf/arena.h | 2 +- + .../protobuf/src/google/protobuf/port_def.inc | 29 +++++++++++++++++++ + .../src/google/protobuf/port_undef.inc | 1 + + 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/third_party/protobuf/src/google/protobuf/arena.h b/third_party/protobuf/src/google/protobuf/arena.h index dedc221..a8515ce 100644 @@ -66,3 +76,6 @@ index b7e67fe..ba1fffc 100644 +-- +2.26.2 + diff --git a/chromium-79.0.3945.56-base-gcc-no-alignas.patch b/chromium-79.0.3945.56-base-gcc-no-alignas.patch deleted file mode 100644 index acb46acf..00000000 --- a/chromium-79.0.3945.56-base-gcc-no-alignas.patch +++ /dev/null @@ -1,56 +0,0 @@ ---- a/third_party/protobuf/src/google/protobuf/arena.h -+++ b/third_party/protobuf/src/google/protobuf/arena.h -@@ -245,7 +245,7 @@ struct ArenaOptions { - // well as protobuf container types like RepeatedPtrField and Map. The protocol - // is internal to protobuf and is not guaranteed to be stable. Non-proto types - // should not rely on this protocol. --class PROTOBUF_EXPORT alignas(8) Arena final { -+class PROTOBUF_EXPORT PROTOBUF_ALIGNAS(8) Arena final { - public: - // Arena constructor taking custom options. See ArenaOptions below for - // descriptions of the options available. ---- a/third_party/protobuf/src/google/protobuf/port_def.inc -+++ b/third_party/protobuf/src/google/protobuf/port_def.inc -@@ -528,6 +528,35 @@ PROTOBUF_EXPORT_TEMPLATE_TEST(DEFAULT, __declspec(dllimport)); - #undef IN - #endif // _MSC_VER - -+// Specify memory alignment for structs, classes, etc. -+// Use like: -+// class PROTOBUF_ALIGNAS(16) MyClass { ... } -+// PROTOBUF_ALIGNAS(16) int array[4]; -+// -+// In most places you can use the C++11 keyword "alignas", which is preferred. -+// -+// But compilers have trouble mixing __attribute__((...)) syntax with -+// alignas(...) syntax. -+// -+// Doesn't work in clang or gcc: -+// struct alignas(16) __attribute__((packed)) S { char c; }; -+// Works in clang but not gcc: -+// struct __attribute__((packed)) alignas(16) S2 { char c; }; -+// Works in clang and gcc: -+// struct alignas(16) S3 { char c; } __attribute__((packed)); -+// -+// There are also some attributes that must be specified *before* a class -+// definition: visibility (used for exporting functions/classes) is one of -+// these attributes. This means that it is not possible to use alignas() with a -+// class that is marked as exported. -+#if defined(_MSC_VER) -+#define PROTOBUF_ALIGNAS(byte_alignment) __declspec(align(byte_alignment)) -+#elif defined(__GNUC__) -+#define PROTOBUF_ALIGNAS(byte_alignment) __attribute__((aligned(byte_alignment))) -+#else -+#define PROTOBUF_ALIGNAS(byte_alignment) alignas(byte_alignment) -+#endif -+ - #if defined(__clang__) - #pragma clang diagnostic push - // TODO(gerbens) ideally we cleanup the code. But a cursory try shows many ---- a/third_party/protobuf/src/google/protobuf/port_undef.inc -+++ b/third_party/protobuf/src/google/protobuf/port_undef.inc -@@ -80,6 +80,7 @@ - #undef PROTOBUF_EXPORT_TEMPLATE_STYLE_MATCH_foj3FJo5StF0OvIzl7oMxA__declspec - #undef PROTOBUF_EXPORT_TEMPLATE_STYLE_MATCH_DECLSPEC_dllexport - #undef PROTOBUF_EXPORT_TEMPLATE_STYLE_MATCH_DECLSPEC_dllimport -+#undef PROTOBUF_ALIGNAS diff --git a/chromium-80-gcc-quiche.patch b/chromium-80-QuicStreamSendBuffer-deleted-move-constructor.patch similarity index 100% rename from chromium-80-gcc-quiche.patch rename to chromium-80-QuicStreamSendBuffer-deleted-move-constructor.patch diff --git a/chromium-80.0.3987.87-missing-cstdint-header.patch b/chromium-80.0.3987.87-missing-cstdint-header.patch index abeafa56..ba94672f 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/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 -@@ -11,6 +11,7 @@ - #ifndef CALL_RTX_RECEIVE_STREAM_H_ - #define CALL_RTX_RECEIVE_STREAM_H_ - -+#include - #include - - #include "call/rtp_packet_sink_interface.h" diff -up chromium-80.0.3987.106/third_party/webrtc/common_video/h264/pps_parser.h.missing-cstdint chromium-80.0.3987.106/third_party/webrtc/common_video/h264/pps_parser.h --- chromium-80.0.3987.106/third_party/webrtc/common_video/h264/pps_parser.h.missing-cstdint 2020-02-21 12:30:31.564317903 -0500 +++ chromium-80.0.3987.106/third_party/webrtc/common_video/h264/pps_parser.h 2020-02-21 12:30:31.561317957 -0500 diff --git a/chromium-82-gcc-incomplete-type.patch b/chromium-82-gcc-incomplete-type.patch deleted file mode 100644 index a3393405..00000000 --- a/chromium-82-gcc-incomplete-type.patch +++ /dev/null @@ -1,53 +0,0 @@ -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 deleted file mode 100644 index 6405d52b..00000000 --- a/chromium-82-gcc-iterator.patch +++ /dev/null @@ -1,23 +0,0 @@ -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 deleted file mode 100644 index 1c7de53d..00000000 --- a/chromium-82-gcc-noexcept.patch +++ /dev/null @@ -1,35 +0,0 @@ -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-83-WebUI-fix-template-specialization.patch similarity index 61% rename from chromium-82-gcc-template.patch rename to chromium-83-WebUI-fix-template-specialization.patch index 90909c56..884e45b2 100644 --- a/chromium-82-gcc-template.patch +++ b/chromium-83-WebUI-fix-template-specialization.patch @@ -1,8 +1,25 @@ +From aa4ba19043db1f41bb0982d4b50f4f00151930f4 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Tue, 26 May 2020 15:29:49 +0000 +Subject: [PATCH] GCC: fix template specialization in content::WebUI + +GCC complains that explicit specialization in non-namespace scope +is happening for GetValue. Move the methods outside +the class definition. + +Bug: 819294 +Change-Id: I109472a0b6fa7ddab3529bc92bba680252b40f67 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2128307 +Reviewed-by: Camille Lamy +Commit-Queue: Camille Lamy +Cr-Commit-Position: refs/heads/master@{#771818} +--- + 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 { +@@ -138,22 +138,6 @@ template static T GetValue(const base::Value& value); @@ -25,7 +42,7 @@ index 4e6aa0e..fa6f10c 100644 template struct Call; -@@ -169,6 +153,22 @@ class CONTENT_EXPORT WebUI { +@@ -169,6 +153,22 @@ }; }; diff --git a/chromium-83-gcc-include.patch b/chromium-83-gcc-include.patch deleted file mode 100644 index 9c405e84..00000000 --- a/chromium-83-gcc-include.patch +++ /dev/null @@ -1,75 +0,0 @@ -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-permissive.patch b/chromium-83-gcc-permissive.patch deleted file mode 100644 index a87f1c44..00000000 --- a/chromium-83-gcc-permissive.patch +++ /dev/null @@ -1,31 +0,0 @@ -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 deleted file mode 100644 index a836e7fc..00000000 --- a/chromium-83-gcc-serviceworker.patch +++ /dev/null @@ -1,130 +0,0 @@ -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 deleted file mode 100644 index 27365220..00000000 --- a/chromium-83-gcc-template.patch +++ /dev/null @@ -1,69 +0,0 @@ -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.97-epel7-no-kcmp-h.patch b/chromium-83.0.4103.97-epel7-no-kcmp-h.patch deleted file mode 100644 index 134156d8..00000000 --- a/chromium-83.0.4103.97-epel7-no-kcmp-h.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -up chromium-83.0.4103.97/services/service_manager/sandbox/linux/bpf_cros_amd_gpu_policy_linux.cc.epel7-kcmp chromium-83.0.4103.97/services/service_manager/sandbox/linux/bpf_cros_amd_gpu_policy_linux.cc ---- chromium-83.0.4103.97/services/service_manager/sandbox/linux/bpf_cros_amd_gpu_policy_linux.cc.epel7-kcmp 2020-06-10 09:02:52.693899311 -0400 -+++ chromium-83.0.4103.97/services/service_manager/sandbox/linux/bpf_cros_amd_gpu_policy_linux.cc 2020-06-10 09:04:14.692102541 -0400 -@@ -5,7 +5,9 @@ - #include "services/service_manager/sandbox/linux/bpf_cros_amd_gpu_policy_linux.h" - - #include --#include -+#ifndef KCMP_FILE -+#define KCMP_FILE 0 -+#endif - #include - - // Some arch's (arm64 for instance) unistd.h don't pull in symbols used here diff --git a/chromium-83.0.4103.97-vaapi-i686-fpermissive.patch b/chromium-83.0.4103.97-vaapi-i686-fpermissive.patch index 74fbb7d4..98eed65d 100644 --- a/chromium-83.0.4103.97-vaapi-i686-fpermissive.patch +++ b/chromium-83.0.4103.97-vaapi-i686-fpermissive.patch @@ -19,5 +19,5 @@ diff -up chromium-83.0.4103.97/media/gpu/vaapi/BUILD.gn.i686permissive chromium- + configs += [ ":vaapi_permissive" ] + if (use_x11) { - configs += [ "//build/config/linux:x11" ] deps += [ "//ui/gfx/x" ] + sources += [ diff --git a/chromium-84-AXObject-stl-iterator.patch b/chromium-84-AXObject-stl-iterator.patch new file mode 100644 index 00000000..befb8230 --- /dev/null +++ b/chromium-84-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 +--- a/third_party/blink/renderer/modules/accessibility/ax_object.h ++++ b/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/chromium-84-FilePath-add-noexcept.patch b/chromium-84-FilePath-add-noexcept.patch new file mode 100644 index 00000000..41e8c34e --- /dev/null +++ b/chromium-84-FilePath-add-noexcept.patch @@ -0,0 +1,55 @@ +From c65b4d03c76da607b6b678c4a46baa75ca0cf7b3 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Wed, 27 May 2020 18:46:40 +0000 +Subject: [PATCH] GCC: make base::FilePath move assignment operator noexcept + +The move assignment operator in PaintPreviewClient::PaintPreviewData is +noexcept. Because this class has a member of type base::FilePath, the +move assignment operator of base::FilePath must be noexcept too. + +Otherwise GCC fails like this: + +../../components/paint_preview/browser/paint_preview_client.cc:107:1: + +error: function 'paint_preview::PaintPreviewClient::PaintPreviewData& +paint_preview::PaintPreviewClient::PaintPreviewData::operator= +(paint_preview::PaintPreviewClient::PaintPreviewData&&)' defaulted on +its redeclaration with an exception-specification that differs from +the implicit exception-specification '' + 107 | PaintPreviewClient::PaintPreviewData::operator=( + | ^~~~~~~~~~~~~~~~~~ + +Bug: 819294 +Change-Id: I87b88a81e8af6b7e61f0d1a8c8444fd6707e50d2 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2218168 +Commit-Queue: Lei Zhang +Reviewed-by: Lei Zhang +Cr-Commit-Position: refs/heads/master@{#772348} +--- + +diff --git a/base/files/file_path.cc b/base/files/file_path.cc +index 6dc6854..56c02d2b 100644 +--- a/base/files/file_path.cc ++++ b/base/files/file_path.cc +@@ -186,7 +186,7 @@ + + FilePath& FilePath::operator=(const FilePath& that) = default; + +-FilePath& FilePath::operator=(FilePath&& that) = default; ++FilePath& FilePath::operator=(FilePath&& that) noexcept = default; + + bool FilePath::operator==(const FilePath& that) const { + #if defined(FILE_PATH_USES_DRIVE_LETTERS) +diff --git a/base/files/file_path.h b/base/files/file_path.h +index 4e23f71a..2160fda 100644 +--- a/base/files/file_path.h ++++ b/base/files/file_path.h +@@ -193,7 +193,7 @@ + FilePath(FilePath&& that) noexcept; + // Replaces the contents with those of |that|, which is left in valid but + // unspecified state. +- FilePath& operator=(FilePath&& that); ++ FilePath& operator=(FilePath&& that) noexcept; + + bool operator==(const FilePath& that) const; + diff --git a/chromium-84-ListContainerHelper-include-cstring.patch b/chromium-84-ListContainerHelper-include-cstring.patch new file mode 100644 index 00000000..d977774a --- /dev/null +++ b/chromium-84-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 +--- a/cc/base/list_container_helper.cc ++++ b/cc/base/list_container_helper.cc +@@ -7,6 +7,7 @@ + #include + + #include ++#include + #include + + #include "base/check_op.h" diff --git a/chromium-84-TraceInCollectionTrait-fix-template-specialization.patch b/chromium-84-TraceInCollectionTrait-fix-template-specialization.patch new file mode 100644 index 00000000..20aa606c --- /dev/null +++ b/chromium-84-TraceInCollectionTrait-fix-template-specialization.patch @@ -0,0 +1,114 @@ +From bc9a96ef9eeab89276d67929f4a8a7d88f5dbc02 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Wed, 27 May 2020 13:37:25 +0000 +Subject: [PATCH] GCC: fix template specialization in TraceInCollectionTrait + +GCC complains that explicit specialization in non-namespace scope +is happening for TraceImpl. Move TraceImpl implementations into +different nested classes and select implementation using +std::conditional. + +Bug: 819294 +Change-Id: I8feea5f2aa6e1f87daad61f496d6b53b1bbc49ac +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2217887 +Reviewed-by: Michael Lippautz +Commit-Queue: Michael Lippautz +Cr-Commit-Position: refs/heads/master@{#772215} +--- + +diff --git a/third_party/blink/renderer/platform/heap/collection_support/heap_hash_table_backing.h b/third_party/blink/renderer/platform/heap/collection_support/heap_hash_table_backing.h +index 31e7888..2c0583f 100644 +--- a/third_party/blink/renderer/platform/heap/collection_support/heap_hash_table_backing.h ++++ b/third_party/blink/renderer/platform/heap/collection_support/heap_hash_table_backing.h +@@ -241,50 +241,52 @@ + + static void Trace(blink::Visitor* visitor, + const KeyValuePair& self) { +- TraceImpl(visitor, self); ++ TraceImpl::Trace(visitor, self); + } + + private: +- template +- static void TraceImpl(blink::Visitor* visitor, +- const KeyValuePair& self); +- +- // Strongification of ephemerons, i.e., Weak/Strong and Strong/Weak. +- template <> +- static void TraceImpl(blink::Visitor* visitor, +- const KeyValuePair& self) { ++ struct TraceImplEphemerons { + // Strongification of ephemerons, i.e., Weak/Strong and Strong/Weak. +- // The helper ensures that helper.key always refers to the weak part and +- // helper.value always refers to the dependent part. +- // We distinguish ephemeron from Weak/Weak and Strong/Strong to allow users +- // to override visitation behavior. An example is creating a heap snapshot, +- // where it is useful to annotate values as being kept alive from keys +- // rather than the table. +- EphemeronHelper helper(&self.key, &self.value); +- // Strongify the weak part. +- blink::TraceCollectionIfEnabled< +- kNoWeakHandling, typename EphemeronHelper::KeyType, +- typename EphemeronHelper::KeyTraits>::Trace(visitor, helper.key); +- // Strongify the dependent part. +- visitor->TraceEphemeron( +- *helper.key, helper.value, +- blink::TraceCollectionIfEnabled< +- kNoWeakHandling, typename EphemeronHelper::ValueType, +- typename EphemeronHelper::ValueTraits>::Trace); +- } ++ static void Trace(blink::Visitor* visitor, ++ const KeyValuePair& self) { ++ // Strongification of ephemerons, i.e., Weak/Strong and Strong/Weak. ++ // The helper ensures that helper.key always refers to the weak part and ++ // helper.value always refers to the dependent part. ++ // We distinguish ephemeron from Weak/Weak and Strong/Strong to allow ++ // users to override visitation behavior. An example is creating a heap ++ // snapshot, where it is useful to annotate values as being kept alive ++ // from keys rather than the table. ++ EphemeronHelper helper(&self.key, &self.value); ++ // Strongify the weak part. ++ blink::TraceCollectionIfEnabled< ++ kNoWeakHandling, typename EphemeronHelper::KeyType, ++ typename EphemeronHelper::KeyTraits>::Trace(visitor, helper.key); ++ // Strongify the dependent part. ++ visitor->TraceEphemeron( ++ *helper.key, helper.value, ++ blink::TraceCollectionIfEnabled< ++ kNoWeakHandling, typename EphemeronHelper::ValueType, ++ typename EphemeronHelper::ValueTraits>::Trace); ++ } ++ }; + +- template <> +- static void TraceImpl(blink::Visitor* visitor, +- const KeyValuePair& self) { +- // Strongification of non-ephemeron KVP, i.e., Strong/Strong or Weak/Weak. +- // Order does not matter here. +- blink::TraceCollectionIfEnabled< +- kNoWeakHandling, Key, typename Traits::KeyTraits>::Trace(visitor, +- &self.key); +- blink::TraceCollectionIfEnabled< +- kNoWeakHandling, Value, +- typename Traits::ValueTraits>::Trace(visitor, &self.value); +- } ++ struct TraceImplDefault { ++ static void Trace(blink::Visitor* visitor, ++ const KeyValuePair& self) { ++ // Strongification of non-ephemeron KVP, i.e., Strong/Strong or Weak/Weak. ++ // Order does not matter here. ++ blink::TraceCollectionIfEnabled< ++ kNoWeakHandling, Key, typename Traits::KeyTraits>::Trace(visitor, ++ &self.key); ++ blink::TraceCollectionIfEnabled< ++ kNoWeakHandling, Value, ++ typename Traits::ValueTraits>::Trace(visitor, &self.value); ++ } ++ }; ++ ++ using TraceImpl = typename std::conditional::type; + }; + + template diff --git a/chromium-84-VectorBuffer-fix-template-specialization.patch b/chromium-84-VectorBuffer-fix-template-specialization.patch new file mode 100644 index 00000000..64a4b120 --- /dev/null +++ b/chromium-84-VectorBuffer-fix-template-specialization.patch @@ -0,0 +1,34 @@ +From 93b66919d34f977a7d437afc1691f2d8762a350f Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Mon, 04 May 2020 07:46:46 +0000 +Subject: [PATCH] GCC: fix template specialization in WTF::VectorBuffer + +GCC complains that explicit specialization in non-namespace scope +is happening for InitInlinedBuffer. However, specialization is +not really necessary here with templates and can be moved +into InitInlinedBuffer method without changing generated code. + +Bug: 819294 +Change-Id: Ia8060152bf4ba21c85dfc4d99cd7cc64983de077 +--- + +diff --git a/third_party/blink/renderer/platform/wtf/vector.h b/third_party/blink/renderer/platform/wtf/vector.h +index 81a4e7b..8a879a0 100644 +--- a/third_party/blink/renderer/platform/wtf/vector.h ++++ b/third_party/blink/renderer/platform/wtf/vector.h +@@ -950,11 +950,10 @@ + return unsafe_reinterpret_cast_ptr(inline_buffer_); + } + +- template +- void InitInlinedBuffer() {} +- template <> +- void InitInlinedBuffer() { +- memset(&inline_buffer_, 0, kInlineBufferSize); ++ void InitInlinedBuffer() { ++ if (Allocator::kIsGarbageCollected) { ++ memset(&inline_buffer_, 0, kInlineBufferSize); ++ } + } + + alignas(T) char inline_buffer_[kInlineBufferSize]; diff --git a/chromium-84-blink-disable-clang-format.patch b/chromium-84-blink-disable-clang-format.patch new file mode 100644 index 00000000..c573db82 --- /dev/null +++ b/chromium-84-blink-disable-clang-format.patch @@ -0,0 +1,33 @@ +From 08ac7188f414218ac9d764e29e7aa64a6bfc2f96 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Sun, 31 May 2020 10:02:03 +0000 +Subject: [PATCH] disable clang-format for generated code in blink + +For GCC builds clang-format might be not available. Additionally, +current scripts look for clang-format within chromium sources and +don't consider system clang-format. +--- + .../bindings/scripts/bind_gen/codegen_utils.py | 10 +--------- + 1 file changed, 1 insertion(+), 9 deletions(-) + +diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py b/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py +index 7021f1a..33bf5bf 100644 +--- a/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py ++++ b/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py +@@ -150,12 +150,4 @@ def write_code_node_to_file(code_node, filepath): + + rendered_text = render_code_node(code_node) + +- format_result = style_format.auto_format(rendered_text, filename=filepath) +- if not format_result.did_succeed: +- raise RuntimeError("Style-formatting failed: filename = {filename}\n" +- "---- stderr ----\n" +- "{stderr}:".format( +- filename=format_result.filename, +- stderr=format_result.error_message)) +- +- web_idl.file_io.write_to_file_if_changed(filepath, format_result.contents) ++ web_idl.file_io.write_to_file_if_changed(filepath, rendered_text) +-- +2.26.2 + diff --git a/chromium-84-crashpad-include-cstring.patch b/chromium-84-crashpad-include-cstring.patch new file mode 100644 index 00000000..28e5e4f4 --- /dev/null +++ b/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 +--- a/third_party/crashpad/crashpad/snapshot/minidump/minidump_context_converter.cc ++++ b/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 +--- a/third_party/crashpad/crashpad/util/linux/ptrace_client.cc ++++ b/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 +--- a/third_party/crashpad/crashpad/util/net/http_multipart_builder.cc ++++ b/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 +--- a/third_party/crashpad/crashpad/util/net/http_transport_socket.cc ++++ b/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 +--- a/third_party/crashpad/crashpad/util/process/process_memory.cc ++++ b/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 +--- a/third_party/crashpad/crashpad/util/stream/log_output_stream.cc ++++ b/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/chromium-84-cross_variant_mojo_util-remove-noexcept.patch b/chromium-84-cross_variant_mojo_util-remove-noexcept.patch new file mode 100644 index 00000000..968c5540 --- /dev/null +++ b/chromium-84-cross_variant_mojo_util-remove-noexcept.patch @@ -0,0 +1,37 @@ +From e174cb4af7a47b891dcaa114f0a95fd4a64a9761 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Mon, 04 May 2020 11:09:20 +0000 +Subject: [PATCH] GCC: remove noexcept on definition of move constructor + +ScopedInterfaceEndpointHandle move constructor does not have noexcept specifier. However, noexcept can't be added there, because the move constructor uses new operator which can throw. + +Bug: 819294 +Change-Id: I61806b7aa6f1d77ed0668df7de5ef6cda5da97a5 +--- + +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 a3a6d80..bb1095a 100644 +--- a/third_party/blink/public/platform/cross_variant_mojo_util.h ++++ b/third_party/blink/public/platform/cross_variant_mojo_util.h +@@ -127,8 +127,8 @@ + CrossVariantMojoAssociatedReceiver() = default; + ~CrossVariantMojoAssociatedReceiver() = default; + +- CrossVariantMojoAssociatedReceiver( +- CrossVariantMojoAssociatedReceiver&&) noexcept = default; ++ CrossVariantMojoAssociatedReceiver(CrossVariantMojoAssociatedReceiver&&) = ++ default; + CrossVariantMojoAssociatedReceiver& operator=( + CrossVariantMojoAssociatedReceiver&&) noexcept = default; + +@@ -160,8 +160,8 @@ + CrossVariantMojoAssociatedRemote() = default; + ~CrossVariantMojoAssociatedRemote() = default; + +- CrossVariantMojoAssociatedRemote( +- CrossVariantMojoAssociatedRemote&&) noexcept = default; ++ CrossVariantMojoAssociatedRemote(CrossVariantMojoAssociatedRemote&&) = ++ default; + CrossVariantMojoAssociatedRemote& operator=( + CrossVariantMojoAssociatedRemote&&) noexcept = default; + diff --git a/chromium-84-fix-decltype.patch b/chromium-84-fix-decltype.patch new file mode 100644 index 00000000..9d178ae0 --- /dev/null +++ b/chromium-84-fix-decltype.patch @@ -0,0 +1,65 @@ +From df413313083a9dabdc573545aaf70343aa0830ca Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Wed, 27 May 2020 17:03:03 +0000 +Subject: [PATCH] GCC: fix decltype to get a valid function pointer + +The decltype() passed as template parameter to +CBBFunctionToVector does not return a function pointer +and GCC complains like this: + +../../device/fido/virtual_fido_device.cc:104:68: error: + 'int(struct cbb_st*, const struct evp_pkey_st*)' is not a valid type + for a template non-type parameter + 104 | EVP_marshal_private_key>(pkey_.get()); + | ^ + +Fix this by passing decltype(&). + +Bug: 819294 +Change-Id: I8114c3d75c9865779d58c0b6a6c48e6affd3175b +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2217414 +Reviewed-by: Adam Langley +Commit-Queue: Adam Langley +Cr-Commit-Position: refs/heads/master@{#772283} +--- + +diff --git a/device/fido/virtual_fido_device.cc b/device/fido/virtual_fido_device.cc +index 0256c6a..72423d3 100644 +--- a/device/fido/virtual_fido_device.cc ++++ b/device/fido/virtual_fido_device.cc +@@ -51,7 +51,7 @@ + + // CBBFunctionToVector converts a BoringSSL function that writes to a CBB to one + // that returns a std::vector. Invoke for a function, f, with: +-// CBBFunctionToVector(args, to, f); ++// CBBFunctionToVector(args, to, f); + template + std::vector CBBFunctionToVector(Args&&... args) { + uint8_t* der = nullptr; +@@ -102,7 +102,7 @@ + } + + std::vector GetPKCS8PrivateKey() const override { +- return CBBFunctionToVector(pkey_.get()); + } + +@@ -122,7 +122,7 @@ + + std::vector GetX962PublicKey() const override { + const EC_KEY* ec_key = EVP_PKEY_get0_EC_KEY(pkey_.get()); +- return CBBFunctionToVector( + EC_KEY_get0_group(ec_key), EC_KEY_get0_public_key(ec_key), + POINT_CONVERSION_UNCOMPRESSED, /*ctx=*/nullptr); +@@ -172,7 +172,7 @@ + cbor::Writer::Write(cbor::Value(std::move(map)))); + + std::vector der_bytes( +- CBBFunctionToVector(pkey_.get())); + + return std::make_unique( diff --git a/chromium-84-flat_map-flat_tree-add-noexcept.patch b/chromium-84-flat_map-flat_tree-add-noexcept.patch new file mode 100644 index 00000000..56918cdf --- /dev/null +++ b/chromium-84-flat_map-flat_tree-add-noexcept.patch @@ -0,0 +1,66 @@ +From 911bdcd8cc5475be4ec4228cfbc85fc38f52857e Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Wed, 27 May 2020 10:00:41 +0000 +Subject: [PATCH] GCC: make base::{flat_map,flat_tree} move assignement operators noexcept + +Move assigment operator in ui::ColorSet is noexcept. Because this +class has a member of type base::flat_map, move assignment operators +of base::flat_map and base::flat_tree must be noexcept too. +base::flat_tree noexcept is conditional to avoid build failure with +NaCl. + +Otherwise GCC fails like this: + +../../ui/color/color_set.cc:14:11: error: function +'ui::ColorSet& ui::ColorSet::operator=(ui::ColorSet&&)' defaulted on its +redeclaration with an exception-specification that differs from the +implicit exception-specification '' + 14 | ColorSet& ColorSet::operator=(ColorSet&&) noexcept = default; + | ^~~~~~~~ + +Bug: 819294 +Change-Id: I10ce31851effc9ce78f2b5cbbb7148c339f065a7 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2179245 +Commit-Queue: Jan Wilken Dörrie +Reviewed-by: Daniel Cheng +Cr-Commit-Position: refs/heads/master@{#772175} +--- + +diff --git a/base/containers/flat_map.h b/base/containers/flat_map.h +index ed82c5d..1af6b40 100644 +--- a/base/containers/flat_map.h ++++ b/base/containers/flat_map.h +@@ -202,7 +202,7 @@ + ~flat_map() = default; + + flat_map& operator=(const flat_map&) = default; +- flat_map& operator=(flat_map&&) = default; ++ flat_map& operator=(flat_map&&) noexcept = default; + // Takes the first if there are duplicates in the initializer list. + flat_map& operator=(std::initializer_list ilist); + +diff --git a/base/containers/flat_tree.h b/base/containers/flat_tree.h +index 9412ff6..ce6e92b 100644 +--- a/base/containers/flat_tree.h ++++ b/base/containers/flat_tree.h +@@ -125,7 +125,8 @@ + // Assume that move assignment invalidates iterators and references. + + flat_tree& operator=(const flat_tree&); +- flat_tree& operator=(flat_tree&&); ++ flat_tree& operator=(flat_tree&&) noexcept( ++ std::is_nothrow_move_assignable::value); + // Takes the first if there are duplicates in the initializer list. + flat_tree& operator=(std::initializer_list ilist); + +@@ -518,7 +519,9 @@ + const flat_tree&) -> flat_tree& = default; + + template +-auto flat_tree::operator=(flat_tree &&) ++auto flat_tree:: ++operator=(flat_tree&&) noexcept( ++ std::is_nothrow_move_assignable::value) + -> flat_tree& = default; + + template diff --git a/chromium-84-gcc-DCHECK_EQ-unique_ptr.patch b/chromium-84-gcc-DCHECK_EQ-unique_ptr.patch new file mode 100644 index 00000000..4fa443bb --- /dev/null +++ b/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 +--- 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 +@@ -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/chromium-84-gcc-DOMRect-constexpr.patch b/chromium-84-gcc-DOMRect-constexpr.patch new file mode 100644 index 00000000..f93381f8 --- /dev/null +++ b/chromium-84-gcc-DOMRect-constexpr.patch @@ -0,0 +1,29 @@ +From 62f633b8ca2b2376ca3273e6df910feb4bd93578 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Wed, 27 May 2020 19:23:12 +0000 +Subject: [PATCH] GCC: DOMRect constexpr equal operator depends on non constexpr operators + +Make operators 'inline' only. + +Bug: 819294 +Change-Id: If07442258b4ebce26c013c4dff830c1d61dff9e3 +--- + +diff --git a/third_party/blink/renderer/core/geometry/dom_rect.h b/third_party/blink/renderer/core/geometry/dom_rect.h +index fede005..058c60a 100644 +--- a/third_party/blink/renderer/core/geometry/dom_rect.h ++++ b/third_party/blink/renderer/core/geometry/dom_rect.h +@@ -34,11 +34,11 @@ + void setHeight(double height) { height_ = height; } + }; + +-constexpr bool operator==(const DOMRect& lhs, const DOMRect& rhs) { ++inline bool operator==(const DOMRect& lhs, const DOMRect& rhs) { + return lhs.x() == rhs.x() && lhs.y() == rhs.y() && + lhs.width() == rhs.width() && lhs.height() == rhs.height(); + } +-constexpr bool operator!=(const DOMRect& lhs, const DOMRect& rhs) { ++inline bool operator!=(const DOMRect& lhs, const DOMRect& rhs) { + return !(lhs == rhs); + } + } // namespace blink diff --git a/chromium-84-gcc-use-brace-initializer.patch b/chromium-84-gcc-use-brace-initializer.patch new file mode 100644 index 00000000..72e8da5c --- /dev/null +++ b/chromium-84-gcc-use-brace-initializer.patch @@ -0,0 +1,39 @@ +From fff3279bcf904673d312893b09bfc53811028490 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Thu, 28 May 2020 03:17:09 +0000 +Subject: [PATCH] GCC: use brace-initializer for QuotaClientType base::flat_set + +Constructing base::flat_set of QuotaClientType with parenthesis +constructor is ambiguous in GCC. Use brace-initializer to avoid +that problem. + +Bug: 819294 +Change-Id: Id33256a25d2af98d7be6ee570e2535a8b7bdf031 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2217554 +Reviewed-by: Kinuko Yasuda +Commit-Queue: Kinuko Yasuda +Cr-Commit-Position: refs/heads/master@{#772542} +--- + +diff --git a/storage/browser/quota/quota_client_type.cc b/storage/browser/quota/quota_client_type.cc +index b9e9f62..a2daaa2 100644 +--- a/storage/browser/quota/quota_client_type.cc ++++ b/storage/browser/quota/quota_client_type.cc +@@ -9,7 +9,7 @@ + namespace storage { + + const QuotaClientTypes& AllQuotaClientTypes() { +- static base::NoDestructor all({ ++ static base::NoDestructor all{{ + QuotaClientType::kFileSystem, + QuotaClientType::kDatabase, + QuotaClientType::kAppcache, +@@ -17,7 +17,7 @@ + QuotaClientType::kServiceWorkerCache, + QuotaClientType::kServiceWorker, + QuotaClientType::kBackgroundFetch, +- }); ++ }}; + return *all; + } + diff --git a/chromium-84-ozone-include.patch b/chromium-84-ozone-include.patch new file mode 100644 index 00000000..a69ac6de --- /dev/null +++ b/chromium-84-ozone-include.patch @@ -0,0 +1,24 @@ +From 70ea8ba2c50be2a4bc476261e7640d824b938c99 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Sat, 13 Jun 2020 18:16:27 +0000 +Subject: [PATCH] IWYU: add missing include for memset + +--- + ui/events/ozone/evdev/event_device_info.cc | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/ui/events/ozone/evdev/event_device_info.cc b/ui/events/ozone/evdev/event_device_info.cc +index efbc258..0c5f0a3 100644 +--- a/ui/events/ozone/evdev/event_device_info.cc ++++ b/ui/events/ozone/evdev/event_device_info.cc +@@ -5,6 +5,7 @@ + #include "ui/events/ozone/evdev/event_device_info.h" + + #include ++#include + + #include "base/files/file_path.h" + #include "base/logging.h" +-- +2.26.2 + diff --git a/chromium-84-revert-manage-ManifestManagerHost-per-document.patch b/chromium-84-revert-manage-ManifestManagerHost-per-document.patch new file mode 100644 index 00000000..df20b356 --- /dev/null +++ b/chromium-84-revert-manage-ManifestManagerHost-per-document.patch @@ -0,0 +1,391 @@ +commit fce18322d66ea6e67275e13242dae2a8c06d3ae2 +Author: Yuzu Saijo +Date: Thu May 14 05:02:09 2020 +0000 + + [content] Manage ManifestManagerHost per-document + + This CL converts ManifestManagerHost class away from being owned by + WebContents and makes it a part of RenderDocumentHostUserData. + + We used to create an instance per-WebContents, but now it is created for + document, and only for main-frame. + + Bug: 1077170 + Change-Id: I2a185a6cd6f290d3b904d359b55638bf09eaa79f + Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2147485 + Commit-Queue: Yuzu Saijo + Reviewed-by: Kinuko Yasuda + Reviewed-by: Kentaro Hara + Reviewed-by: Sreeja Kamishetty + Reviewed-by: Alexander Timin + Cr-Commit-Position: refs/heads/master@{#768647} + +diff --git b/content/browser/devtools/protocol/page_handler.cc a/content/browser/devtools/protocol/page_handler.cc +index b1821434b975..929b63ab875e 100644 +--- b/content/browser/devtools/protocol/page_handler.cc ++++ a/content/browser/devtools/protocol/page_handler.cc +@@ -961,14 +961,14 @@ Response PageHandler::SetDownloadBehavior(const std::string& behavior, + + void PageHandler::GetAppManifest( + std::unique_ptr callback) { +- if (!host_) { ++ WebContentsImpl* web_contents = GetWebContents(); ++ if (!web_contents || !web_contents->GetManifestManagerHost()) { + callback->sendFailure(Response::ServerError("Cannot retrieve manifest")); + return; + } +- ManifestManagerHost::GetOrCreateForCurrentDocument(host_->GetMainFrame()) +- ->RequestManifestDebugInfo(base::BindOnce(&PageHandler::GotManifest, +- weak_factory_.GetWeakPtr(), +- std::move(callback))); ++ web_contents->GetManifestManagerHost()->RequestManifestDebugInfo( ++ base::BindOnce(&PageHandler::GotManifest, weak_factory_.GetWeakPtr(), ++ std::move(callback))); + } + + WebContentsImpl* PageHandler::GetWebContents() { +diff --git b/content/browser/frame_host/render_document_host_user_data_browsertest.cc a/content/browser/frame_host/render_document_host_user_data_browsertest.cc +index 09dff7842517..290e5509b448 100644 +--- b/content/browser/frame_host/render_document_host_user_data_browsertest.cc ++++ a/content/browser/frame_host/render_document_host_user_data_browsertest.cc +@@ -88,7 +88,7 @@ class RenderDocumentHostUserDataTest : public ContentBrowserTest { + + // Test basic functionality of RenderDocumentHostUserData. + IN_PROC_BROWSER_TEST_F(RenderDocumentHostUserDataTest, +- GetCreateAndDeleteForCurrentDocument) { ++ GetAndCreateForCurrentDocument) { + ASSERT_TRUE(embedded_test_server()->Start()); + GURL url_a(embedded_test_server()->GetURL("a.com", "/title1.html")); + +@@ -104,14 +104,8 @@ IN_PROC_BROWSER_TEST_F(RenderDocumentHostUserDataTest, + // 3) Create Data and check that GetForCurrentDocument shouldn't return null + // now. + Data::CreateForCurrentDocument(rfh_a); +- base::WeakPtr created_data = +- Data::GetForCurrentDocument(rfh_a)->GetWeakPtr(); +- EXPECT_TRUE(created_data); +- +- // 4) Delete Data and check that GetForCurrentDocument should return null. +- Data::DeleteForCurrentDocument(rfh_a); +- EXPECT_FALSE(created_data); +- EXPECT_FALSE(Data::GetForCurrentDocument(rfh_a)); ++ data = Data::GetForCurrentDocument(rfh_a); ++ EXPECT_TRUE(data); + } + + // Tests that RenderDocumentHostUserData objects are different for each +diff --git b/content/browser/frame_host/render_frame_host_impl.cc a/content/browser/frame_host/render_frame_host_impl.cc +index 30bc648d74ef..d10d99df7f1f 100644 +--- b/content/browser/frame_host/render_frame_host_impl.cc ++++ a/content/browser/frame_host/render_frame_host_impl.cc +@@ -75,7 +75,6 @@ + #include "content/browser/loader/navigation_url_loader_impl.h" + #include "content/browser/loader/prefetch_url_loader_service.h" + #include "content/browser/log_console_message.h" +-#include "content/browser/manifest/manifest_manager_host.h" + #include "content/browser/media/capture/audio_mirroring_manager.h" + #include "content/browser/media/media_interface_proxy.h" + #include "content/browser/media/webaudio/audio_context_manager_impl.h" +@@ -6146,15 +6145,6 @@ void RenderFrameHostImpl::SetUpMojoIfNeeded() { + std::make_unique(impl)); + }, + base::Unretained(this))); +- +- associated_registry_->AddInterface(base::BindRepeating( +- [](RenderFrameHostImpl* impl, +- mojo::PendingAssociatedReceiver< +- blink::mojom::ManifestUrlChangeObserver> receiver) { +- ManifestManagerHost::GetOrCreateForCurrentDocument(impl) +- ->BindObserver(std::move(receiver)); +- }, +- base::Unretained(this))); + } + + associated_registry_->AddInterface(base::BindRepeating( +diff --git b/content/browser/frame_host/render_frame_host_impl.h a/content/browser/frame_host/render_frame_host_impl.h +index bfd421386795..2bba134e0dc0 100644 +--- b/content/browser/frame_host/render_frame_host_impl.h ++++ a/content/browser/frame_host/render_frame_host_impl.h +@@ -1595,10 +1595,6 @@ class CONTENT_EXPORT RenderFrameHostImpl + document_associated_data_.SetUserData(key, std::move(data)); + } + +- void RemoveRenderDocumentHostUserData(const void* key) { +- document_associated_data_.RemoveUserData(key); +- } +- + // Returns the child RenderFrameHostImpl if |child_frame_routing_id| is an + // immediate child of this FrameTreeNode. |child_frame_routing_id| is + // considered untrusted, so the renderer process is killed if it refers to a +diff --git b/content/browser/manifest/manifest_manager_host.cc a/content/browser/manifest/manifest_manager_host.cc +index 68ea016c62eb..b063e0d1e98e 100644 +--- b/content/browser/manifest/manifest_manager_host.cc ++++ a/content/browser/manifest/manifest_manager_host.cc +@@ -9,34 +9,25 @@ + #include "base/bind.h" + #include "content/browser/web_contents/web_contents_impl.h" + #include "content/public/browser/render_frame_host.h" ++#include "content/public/browser/web_contents.h" + #include "services/service_manager/public/cpp/interface_provider.h" + #include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h" + #include "third_party/blink/public/common/manifest/manifest.h" + + namespace content { + +-ManifestManagerHost::ManifestManagerHost(RenderFrameHost* render_frame_host) +- : manifest_manager_frame_(render_frame_host) { +- // Check that |manifest_manager_frame_| is a main frame. +- DCHECK(!manifest_manager_frame_->GetParent()); +-} ++ManifestManagerHost::ManifestManagerHost(WebContents* web_contents) ++ : WebContentsObserver(web_contents), ++ manifest_url_change_observer_receivers_(web_contents, this) {} + + ManifestManagerHost::~ManifestManagerHost() { + OnConnectionError(); + } + +-void ManifestManagerHost::BindObserver( +- mojo::PendingAssociatedReceiver +- receiver) { +- manifest_url_change_observer_receiver_.Bind(std::move(receiver)); +-} +- +-ManifestManagerHost* ManifestManagerHost::GetOrCreateForCurrentDocument( +- RenderFrameHostImpl* rfh) { +- DCHECK(rfh->is_main_frame()); +- if (!GetForCurrentDocument(rfh)) +- CreateForCurrentDocument(rfh); +- return GetForCurrentDocument(rfh); ++void ManifestManagerHost::RenderFrameDeleted( ++ RenderFrameHost* render_frame_host) { ++ if (render_frame_host == manifest_manager_frame_) ++ OnConnectionError(); + } + + void ManifestManagerHost::GetManifest(GetManifestCallback callback) { +@@ -54,7 +45,11 @@ void ManifestManagerHost::RequestManifestDebugInfo( + } + + blink::mojom::ManifestManager& ManifestManagerHost::GetManifestManager() { ++ if (manifest_manager_frame_ != web_contents()->GetMainFrame()) ++ OnConnectionError(); ++ + if (!manifest_manager_) { ++ manifest_manager_frame_ = web_contents()->GetMainFrame(); + manifest_manager_frame_->GetRemoteInterfaces()->GetInterface( + manifest_manager_.BindNewPipeAndPassReceiver()); + manifest_manager_.set_disconnect_handler(base::BindOnce( +@@ -64,6 +59,8 @@ blink::mojom::ManifestManager& ManifestManagerHost::GetManifestManager() { + } + + void ManifestManagerHost::OnConnectionError() { ++ manifest_manager_frame_ = nullptr; ++ manifest_manager_.reset(); + std::vector callbacks; + for (CallbackMap::iterator it(&callbacks_); !it.IsAtEnd(); it.Advance()) { + callbacks.push_back(std::move(*it.GetCurrentValue())); +@@ -71,10 +68,6 @@ void ManifestManagerHost::OnConnectionError() { + callbacks_.Clear(); + for (auto& callback : callbacks) + std::move(callback).Run(GURL(), blink::Manifest()); +- +- if (GetForCurrentDocument(manifest_manager_frame_)) { +- DeleteForCurrentDocument(manifest_manager_frame_); +- } + } + + void ManifestManagerHost::OnRequestManifestResponse( +@@ -88,16 +81,12 @@ void ManifestManagerHost::OnRequestManifestResponse( + + void ManifestManagerHost::ManifestUrlChanged( + const base::Optional& manifest_url) { +- if (!manifest_manager_frame_->IsCurrent()) ++ if (manifest_url_change_observer_receivers_.GetCurrentTargetFrame() != ++ web_contents()->GetMainFrame()) { + return; +- +- // TODO(yuzus): |NotifyManifestUrlChanged| should start taking a +- // |RenderFrameHost| parameter. +- WebContents* web_contents = +- WebContents::FromRenderFrameHost(manifest_manager_frame_); +- static_cast(web_contents) ++ } ++ static_cast(web_contents()) + ->NotifyManifestUrlChanged(manifest_url); + } + +-RENDER_DOCUMENT_HOST_USER_DATA_KEY_IMPL(ManifestManagerHost) + } // namespace content +diff --git b/content/browser/manifest/manifest_manager_host.h a/content/browser/manifest/manifest_manager_host.h +index 57f51dc9fad7..3dc0bbf6e1ad 100644 +--- b/content/browser/manifest/manifest_manager_host.h ++++ a/content/browser/manifest/manifest_manager_host.h +@@ -8,8 +8,8 @@ + #include "base/callback_forward.h" + #include "base/containers/id_map.h" + #include "base/macros.h" +-#include "content/public/browser/render_document_host_user_data.h" +-#include "mojo/public/cpp/bindings/associated_receiver.h" ++#include "content/public/browser/web_contents_observer.h" ++#include "content/public/browser/web_contents_receiver_set.h" + #include "mojo/public/cpp/bindings/remote.h" + #include "third_party/blink/public/mojom/manifest/manifest_manager.mojom.h" + #include "third_party/blink/public/mojom/manifest/manifest_observer.mojom.h" +@@ -21,16 +21,16 @@ struct Manifest; + namespace content { + + class RenderFrameHost; +-class RenderFrameHostImpl; ++class WebContents; + + // ManifestManagerHost is a helper class that allows callers to get the Manifest + // associated with the main frame of the observed WebContents. It handles the + // IPC messaging with the child process. + // TODO(mlamouri): keep a cached version and a dirty bit here. +-class ManifestManagerHost +- : public RenderDocumentHostUserData, +- public blink::mojom::ManifestUrlChangeObserver { ++class ManifestManagerHost : public WebContentsObserver, ++ public blink::mojom::ManifestUrlChangeObserver { + public: ++ explicit ManifestManagerHost(WebContents* web_contents); + ~ManifestManagerHost() override; + + using GetManifestCallback = +@@ -44,18 +44,10 @@ class ManifestManagerHost + void RequestManifestDebugInfo( + blink::mojom::ManifestManager::RequestManifestDebugInfoCallback callback); + +- void BindObserver( +- mojo::PendingAssociatedReceiver +- receiver); +- +- static ManifestManagerHost* GetOrCreateForCurrentDocument( +- RenderFrameHostImpl* rfh); ++ // WebContentsObserver ++ void RenderFrameDeleted(RenderFrameHost* render_frame_host) override; + + private: +- explicit ManifestManagerHost(RenderFrameHost* render_frame_host); +- +- friend class RenderDocumentHostUserData; +- + using CallbackMap = base::IDMap>; + + blink::mojom::ManifestManager& GetManifestManager(); +@@ -68,14 +60,13 @@ class ManifestManagerHost + // blink::mojom::ManifestUrlChangeObserver: + void ManifestUrlChanged(const base::Optional& manifest_url) override; + +- RenderFrameHost* manifest_manager_frame_; ++ RenderFrameHost* manifest_manager_frame_ = nullptr; + mojo::Remote manifest_manager_; + CallbackMap callbacks_; + +- mojo::AssociatedReceiver +- manifest_url_change_observer_receiver_{this}; ++ WebContentsFrameReceiverSet ++ manifest_url_change_observer_receivers_; + +- RENDER_DOCUMENT_HOST_USER_DATA_KEY_DECL(); + DISALLOW_COPY_AND_ASSIGN(ManifestManagerHost); + }; + +diff --git b/content/browser/web_contents/web_contents_impl.cc a/content/browser/web_contents/web_contents_impl.cc +index 024415bb096e..115f480ce8c1 100644 +--- b/content/browser/web_contents/web_contents_impl.cc ++++ a/content/browser/web_contents/web_contents_impl.cc +@@ -2122,6 +2122,8 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { + + screen_orientation_provider_.reset(new ScreenOrientationProvider(this)); + ++ manifest_manager_host_.reset(new ManifestManagerHost(this)); ++ + #if defined(OS_ANDROID) + DateTimeChooserAndroid::CreateForWebContents(this); + #endif +@@ -4202,10 +4204,7 @@ bool WebContentsImpl::WasEverAudible() { + } + + void WebContentsImpl::GetManifest(GetManifestCallback callback) { +- // TODO(yuzus, 1061899): Move this function to RenderFrameHostImpl. +- ManifestManagerHost* manifest_manager_host = +- ManifestManagerHost::GetOrCreateForCurrentDocument(GetMainFrame()); +- manifest_manager_host->GetManifest(std::move(callback)); ++ manifest_manager_host_->GetManifest(std::move(callback)); + } + + void WebContentsImpl::ExitFullscreen(bool will_cause_resize) { +diff --git b/content/browser/web_contents/web_contents_impl.h a/content/browser/web_contents/web_contents_impl.h +index 59510b1f8744..e86be96fc23b 100644 +--- b/content/browser/web_contents/web_contents_impl.h ++++ a/content/browser/web_contents/web_contents_impl.h +@@ -102,6 +102,7 @@ class DisplayCutoutHostImpl; + class FindRequestManager; + class JavaScriptDialogManager; + class JavaScriptDialogNavigationDeferrer; ++class ManifestManagerHost; + class MediaWebContentsObserver; + class NFCHost; + class PluginContentOriginAllowlist; +@@ -311,6 +312,10 @@ class CONTENT_EXPORT WebContentsImpl : public WebContents, + + void NotifyManifestUrlChanged(const base::Optional& manifest_url); + ++ ManifestManagerHost* GetManifestManagerHost() const { ++ return manifest_manager_host_.get(); ++ } ++ + #if defined(OS_ANDROID) + void SetMainFrameImportance(ChildProcessImportance importance); + #endif +@@ -1897,6 +1902,8 @@ class CONTENT_EXPORT WebContentsImpl : public WebContents, + + std::unique_ptr screen_orientation_provider_; + ++ std::unique_ptr manifest_manager_host_; ++ + // The accessibility mode for all frames. This is queried when each frame + // is created, and broadcast to all frames when it changes. + ui::AXMode accessibility_mode_; +diff --git b/content/public/browser/render_document_host_user_data.cc a/content/public/browser/render_document_host_user_data.cc +index 3b58bf8a3c5e..b1b385455e61 100644 +--- b/content/public/browser/render_document_host_user_data.cc ++++ a/content/public/browser/render_document_host_user_data.cc +@@ -23,8 +23,4 @@ void SetRenderDocumentHostUserData( + key, std::move(data)); + } + +-void RemoveRenderDocumentHostUserData(RenderFrameHost* rfh, const void* key) { +- static_cast(rfh)->RemoveRenderDocumentHostUserData(key); +-} +- + } // namespace content +diff --git b/content/public/browser/render_document_host_user_data.h a/content/public/browser/render_document_host_user_data.h +index a138fd60aa2a..f55f24f60992 100644 +--- b/content/public/browser/render_document_host_user_data.h ++++ a/content/public/browser/render_document_host_user_data.h +@@ -22,9 +22,6 @@ CONTENT_EXPORT void SetRenderDocumentHostUserData( + const void* key, + std::unique_ptr data); + +-CONTENT_EXPORT void RemoveRenderDocumentHostUserData(RenderFrameHost* rfh, +- const void* key); +- + // This class approximates the lifetime of a single blink::Document in the + // browser process. At the moment RenderFrameHost can correspond to multiple + // blink::Documents (when RenderFrameHost is reused for same-process +@@ -85,12 +82,6 @@ class RenderDocumentHostUserData : public base::SupportsUserData::Data { + return static_cast(GetRenderDocumentHostUserData(rfh, UserDataKey())); + } + +- static void DeleteForCurrentDocument(RenderFrameHost* rfh) { +- DCHECK(rfh); +- DCHECK(GetForCurrentDocument(rfh)); +- RemoveRenderDocumentHostUserData(rfh, UserDataKey()); +- } +- + static const void* UserDataKey() { return &T::kUserDataKey; } + }; + diff --git a/chromium-84-std-vector-const.patch b/chromium-84-std-vector-const.patch new file mode 100644 index 00000000..c74b1504 --- /dev/null +++ b/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 +--- a/extensions/common/features/feature_flags.cc ++++ b/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 +--- a/extensions/common/features/feature_flags.h ++++ b/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/chromium-84.0.4147.89-epel7-no-kcmp-h.patch b/chromium-84.0.4147.89-epel7-no-kcmp-h.patch new file mode 100644 index 00000000..378e5048 --- /dev/null +++ b/chromium-84.0.4147.89-epel7-no-kcmp-h.patch @@ -0,0 +1,14 @@ +diff -up chromium-84.0.4147.89/services/service_manager/sandbox/linux/bpf_cros_amd_gpu_policy_linux.cc.epel7-kcmp chromium-84.0.4147.89/services/service_manager/sandbox/linux/bpf_cros_amd_gpu_policy_linux.cc +--- chromium-84.0.4147.89/services/service_manager/sandbox/linux/bpf_cros_amd_gpu_policy_linux.cc.epel7-kcmp 2020-07-15 10:03:33.509319562 -0400 ++++ chromium-84.0.4147.89/services/service_manager/sandbox/linux/bpf_cros_amd_gpu_policy_linux.cc 2020-07-15 10:12:55.761658501 -0400 +@@ -6,7 +6,9 @@ + + #include + #include +-#include ++#ifndef KCMP_FILE ++#define KCMP_FILE 0 ++#endif + #include + + // Some arch's (arm64 for instance) unistd.h don't pull in symbols used here diff --git a/chromium-83.0.4103.97-epel7-old-cups.patch b/chromium-84.0.4147.89-epel7-old-cups.patch similarity index 75% rename from chromium-83.0.4103.97-epel7-old-cups.patch rename to chromium-84.0.4147.89-epel7-old-cups.patch index 60728dc2..bb7998b2 100644 --- a/chromium-83.0.4103.97-epel7-old-cups.patch +++ b/chromium-84.0.4147.89-epel7-old-cups.patch @@ -1,6 +1,6 @@ -diff -up chromium-83.0.4103.97/chrome/service/cloud_print/print_system_cups.cc.el7cups chromium-83.0.4103.97/chrome/service/cloud_print/print_system_cups.cc ---- chromium-83.0.4103.97/chrome/service/cloud_print/print_system_cups.cc.el7cups 2020-06-15 10:38:45.195693757 -0400 -+++ chromium-83.0.4103.97/chrome/service/cloud_print/print_system_cups.cc 2020-06-15 10:40:19.864635638 -0400 +diff -up chromium-84.0.4147.89/chrome/service/cloud_print/print_system_cups.cc.el7cups chromium-84.0.4147.89/chrome/service/cloud_print/print_system_cups.cc +--- chromium-84.0.4147.89/chrome/service/cloud_print/print_system_cups.cc.el7cups 2020-07-13 14:41:23.000000000 -0400 ++++ chromium-84.0.4147.89/chrome/service/cloud_print/print_system_cups.cc 2020-07-15 10:16:30.482337332 -0400 @@ -725,8 +725,9 @@ int PrintSystemCUPS::PrintFile(const GUR // Use default (local) print server. if (url.is_empty()) @@ -23,10 +23,10 @@ diff -up chromium-83.0.4103.97/chrome/service/cloud_print/print_system_cups.cc.e return cupsGetJobs2(http.http(), jobs, name, myjobs, whichjobs); } -diff -up chromium-83.0.4103.97/printing/backend/cups_helper.cc.el7cups chromium-83.0.4103.97/printing/backend/cups_helper.cc ---- chromium-83.0.4103.97/printing/backend/cups_helper.cc.el7cups 2020-06-15 10:41:01.848722898 -0400 -+++ chromium-83.0.4103.97/printing/backend/cups_helper.cc 2020-06-16 09:17:08.791872797 -0400 -@@ -32,18 +32,6 @@ namespace printing { +diff -up chromium-84.0.4147.89/printing/backend/cups_helper.cc.el7cups chromium-84.0.4147.89/printing/backend/cups_helper.cc +--- chromium-84.0.4147.89/printing/backend/cups_helper.cc.el7cups 2020-07-13 14:41:27.000000000 -0400 ++++ chromium-84.0.4147.89/printing/backend/cups_helper.cc 2020-07-15 10:17:37.551296816 -0400 +@@ -33,18 +33,6 @@ namespace printing { // This section contains helper code for PPD parsing for semantic capabilities. namespace { @@ -42,10 +42,10 @@ diff -up chromium-83.0.4103.97/printing/backend/cups_helper.cc.el7cups chromium- -// able to start and respond on all systems within this duration. -constexpr base::TimeDelta kCupsTimeout = base::TimeDelta::FromSeconds(5); - - // CUPS default max copies value (taken from default cupsMaxCopies parsing in - // cups/ppd-cache.c). + // CUPS default max copies value (parsed from kCupsMaxCopies PPD attribute). constexpr int32_t kDefaultMaxCopies = 9999; -@@ -541,8 +529,7 @@ const int kDefaultIPPServerPort = 631; + constexpr char kCupsMaxCopies[] = "cupsMaxCopies"; +@@ -552,8 +540,7 @@ const int kDefaultIPPServerPort = 631; // Helper wrapper around http_t structure, with connection and cleanup // functionality. HttpConnectionCUPS::HttpConnectionCUPS(const GURL& print_server_url, @@ -55,7 +55,7 @@ diff -up chromium-83.0.4103.97/printing/backend/cups_helper.cc.el7cups chromium- : http_(nullptr) { // If we have an empty url, use default print server. if (print_server_url.is_empty()) -@@ -552,17 +539,10 @@ HttpConnectionCUPS::HttpConnectionCUPS(c +@@ -563,17 +550,10 @@ HttpConnectionCUPS::HttpConnectionCUPS(c if (port == url::PORT_UNSPECIFIED) port = kDefaultIPPServerPort; @@ -77,7 +77,7 @@ diff -up chromium-83.0.4103.97/printing/backend/cups_helper.cc.el7cups chromium- if (!http_) { LOG(ERROR) << "CP_CUPS: Failed connecting to print server: " -@@ -570,8 +550,6 @@ HttpConnectionCUPS::HttpConnectionCUPS(c +@@ -581,8 +561,6 @@ HttpConnectionCUPS::HttpConnectionCUPS(c return; } @@ -86,7 +86,7 @@ diff -up chromium-83.0.4103.97/printing/backend/cups_helper.cc.el7cups chromium- } HttpConnectionCUPS::~HttpConnectionCUPS() { -@@ -579,6 +557,10 @@ HttpConnectionCUPS::~HttpConnectionCUPS( +@@ -590,6 +568,10 @@ HttpConnectionCUPS::~HttpConnectionCUPS( httpClose(http_); } @@ -97,9 +97,9 @@ diff -up chromium-83.0.4103.97/printing/backend/cups_helper.cc.el7cups chromium- http_t* HttpConnectionCUPS::http() { return http_; } -diff -up chromium-83.0.4103.97/printing/backend/cups_helper.h.el7cups chromium-83.0.4103.97/printing/backend/cups_helper.h ---- chromium-83.0.4103.97/printing/backend/cups_helper.h.el7cups 2020-06-15 10:44:04.949745308 -0400 -+++ chromium-83.0.4103.97/printing/backend/cups_helper.h 2020-06-15 10:44:36.653057318 -0400 +diff -up chromium-84.0.4147.89/printing/backend/cups_helper.h.el7cups chromium-84.0.4147.89/printing/backend/cups_helper.h +--- chromium-84.0.4147.89/printing/backend/cups_helper.h.el7cups 2020-07-13 14:41:27.000000000 -0400 ++++ chromium-84.0.4147.89/printing/backend/cups_helper.h 2020-07-15 10:16:30.486337271 -0400 @@ -23,10 +23,11 @@ struct PrinterSemanticCapsAndDefaults; class PRINTING_EXPORT HttpConnectionCUPS { public: @@ -114,9 +114,9 @@ diff -up chromium-83.0.4103.97/printing/backend/cups_helper.h.el7cups chromium-8 http_t* http(); private: -diff -up chromium-83.0.4103.97/printing/backend/print_backend_cups.cc.el7cups chromium-83.0.4103.97/printing/backend/print_backend_cups.cc ---- chromium-83.0.4103.97/printing/backend/print_backend_cups.cc.el7cups 2020-06-15 10:44:51.203741555 -0400 -+++ chromium-83.0.4103.97/printing/backend/print_backend_cups.cc 2020-06-15 10:46:23.442739884 -0400 +diff -up chromium-84.0.4147.89/printing/backend/print_backend_cups.cc.el7cups chromium-84.0.4147.89/printing/backend/print_backend_cups.cc +--- chromium-84.0.4147.89/printing/backend/print_backend_cups.cc.el7cups 2020-07-13 14:41:27.000000000 -0400 ++++ chromium-84.0.4147.89/printing/backend/print_backend_cups.cc 2020-07-15 10:16:30.487337255 -0400 @@ -250,7 +250,8 @@ int PrintBackendCUPS::GetDests(cups_dest if (print_server_url_.is_empty()) return cupsGetDests2(CUPS_HTTP_DEFAULT, dests); diff --git a/chromium-blink-gcc-diagnostic-pragma.patch b/chromium-blink-gcc-diagnostic-pragma.patch new file mode 100644 index 00000000..8998e55d --- /dev/null +++ b/chromium-blink-gcc-diagnostic-pragma.patch @@ -0,0 +1,32 @@ +From b306036aefd1cb02132fbff400ce5bd8bc20f1fe Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Sat, 27 Jun 2020 17:08:51 +0000 +Subject: [PATCH] GCC: suppress unknown diagnostic pragma warning + +'-Wdelete-non-abstract-non-virtual-dtor' is a clang-only +flag. Switch pragma diagnostic from GCC to clang. +--- + third_party/blink/renderer/platform/heap/finalizer_traits.h | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/third_party/blink/renderer/platform/heap/finalizer_traits.h b/third_party/blink/renderer/platform/heap/finalizer_traits.h +index b727032..90391c0 100644 +--- a/third_party/blink/renderer/platform/heap/finalizer_traits.h ++++ b/third_party/blink/renderer/platform/heap/finalizer_traits.h +@@ -43,10 +43,10 @@ struct FinalizerTraitImpl { + // an object's base class has a virtual destructor. In case there is no virtual + // destructor present, the object is always finalized through its leaf type. In + // other words: there is no finalization through a base pointer. +-#pragma GCC diagnostic push +-#pragma GCC diagnostic ignored "-Wdelete-non-abstract-non-virtual-dtor" ++#pragma clang diagnostic push ++#pragma clang diagnostic ignored "-Wdelete-non-abstract-non-virtual-dtor" + static_cast(obj)->~T(); +-#pragma GCC diagnostic pop ++#pragma clang diagnostic pop + } + }; + using FinalizeImpl = +-- +2.26.2 + diff --git a/chromium-clang_lto_visibility_public.patch b/chromium-clang_lto_visibility_public.patch new file mode 100644 index 00000000..d787b3af --- /dev/null +++ b/chromium-clang_lto_visibility_public.patch @@ -0,0 +1,53 @@ +From 4e380a0e486c080f36adad5b035787d64cfedb3e Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Sat, 27 Jun 2020 13:59:20 +0000 +Subject: [PATCH] GCC: fix mixing __attribute__ with C++ attributes + +GCC does not support mixing __attribute__ with [[...]] attributes. +On the other hand [[clang::lto_visibility_public]] isn't supported +by GCC and only emits a warning. Therefore define Clang specific +attribute and leave it empty for GCC. +--- + base/compiler_specific.h | 6 ++++++ + third_party/blink/renderer/core/frame/frame_view.h | 3 ++- + 2 files changed, 8 insertions(+), 1 deletion(-) + +diff --git a/base/compiler_specific.h b/base/compiler_specific.h +index c8a7649..8fd2252 100644 +--- a/base/compiler_specific.h ++++ b/base/compiler_specific.h +@@ -292,4 +292,10 @@ inline constexpr bool AnalyzerAssumeTrue(bool arg) { + + #endif // defined(__clang_analyzer__) + ++#if defined(__clang__) ++#define LTO_VISIBILITY_PUBLIC [[clang::lto_visibility_public]] ++#else ++#define LTO_VISIBILITY_PUBLIC ++#endif ++ + #endif // BASE_COMPILER_SPECIFIC_H_ +diff --git a/third_party/blink/renderer/core/frame/frame_view.h b/third_party/blink/renderer/core/frame/frame_view.h +index aa5e42a..ec93d89 100644 +--- a/third_party/blink/renderer/core/frame/frame_view.h ++++ b/third_party/blink/renderer/core/frame/frame_view.h +@@ -5,6 +5,7 @@ + #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_FRAME_VIEW_H_ + #define THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_FRAME_VIEW_H_ + ++#include "base/compiler_specific.h" + #include "third_party/blink/public/mojom/frame/lifecycle.mojom-blink.h" + #include "third_party/blink/public/platform/viewport_intersection_state.h" + #include "third_party/blink/renderer/core/frame/embedded_content_view.h" +@@ -20,7 +21,7 @@ struct IntrinsicSizingInfo; + // clang::lto_visibility_public is necessary to prevent the compiler from + // performing a vtable optimization that crashes the renderer. See + // crbug.com/1062006. +-class CORE_EXPORT [[clang::lto_visibility_public]] FrameView ++class CORE_EXPORT LTO_VISIBILITY_PUBLIC FrameView + : public EmbeddedContentView { + public: + FrameView(const IntRect& frame_rect) : EmbeddedContentView(frame_rect) {} +-- +2.26.2 + diff --git a/chromium-fix-char_traits.patch b/chromium-fix-char_traits.patch new file mode 100644 index 00000000..4cb9503a --- /dev/null +++ b/chromium-fix-char_traits.patch @@ -0,0 +1,14 @@ +--- a/base/strings/char_traits.h ++++ b/base/strings/char_traits.h +@@ -67,9 +67,9 @@ + return __builtin_memcmp(s1, s2, n); + #else + for (; n; --n, ++s1, ++s2) { +- if (*s1 < *s2) ++ if ((unsigned char)*s1 < (unsigned char)*s2) + return -1; +- if (*s1 > *s2) ++ if ((unsigned char)*s1 > (unsigned char)*s2) + return 1; + } + return 0; diff --git a/chromium-quiche-invalid-offsetof.patch b/chromium-quiche-invalid-offsetof.patch new file mode 100644 index 00000000..59bf13b4 --- /dev/null +++ b/chromium-quiche-invalid-offsetof.patch @@ -0,0 +1,57 @@ +From 4cea86e76af28b28aa72cb7c69ff7cf242b2bd5d Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Sat, 27 Jun 2020 12:18:05 +0000 +Subject: [PATCH] GCC: supress invalid-offsetof warning + +GCC emits a warning if offsetof is used for non-POD +types. However, GCC supports this and prints only +the warning, because it might be nonportable code. +Disable the warning for GCC with a pragma. +--- + net/third_party/quiche/src/quic/core/frames/quic_frame.h | 7 +++++++ + .../quiche/src/quic/core/frames/quic_inlined_frame.h | 7 +++++++ + 2 files changed, 14 insertions(+) + +diff --git a/net/third_party/quiche/src/quic/core/frames/quic_frame.h b/net/third_party/quiche/src/quic/core/frames/quic_frame.h +index 756b69f..aceba76 100644 +--- a/net/third_party/quiche/src/quic/core/frames/quic_frame.h ++++ b/net/third_party/quiche/src/quic/core/frames/quic_frame.h +@@ -110,8 +110,15 @@ struct QUIC_EXPORT_PRIVATE QuicFrame { + + static_assert(sizeof(QuicFrame) <= 24, + "Frames larger than 24 bytes should be referenced by pointer."); ++#if defined(__GNUC__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Winvalid-offsetof" ++#endif + static_assert(offsetof(QuicStreamFrame, type) == offsetof(QuicFrame, type), + "Offset of |type| must match in QuicFrame and QuicStreamFrame"); ++#if defined(__GNUC__) ++#pragma GCC diagnostic pop ++#endif + + // A inline size of 1 is chosen to optimize the typical use case of + // 1-stream-frame in QuicTransmissionInfo.retransmittable_frames. +diff --git a/net/third_party/quiche/src/quic/core/frames/quic_inlined_frame.h b/net/third_party/quiche/src/quic/core/frames/quic_inlined_frame.h +index 08c4869..804e4bb 100644 +--- a/net/third_party/quiche/src/quic/core/frames/quic_inlined_frame.h ++++ b/net/third_party/quiche/src/quic/core/frames/quic_inlined_frame.h +@@ -17,8 +17,15 @@ namespace quic { + template + struct QUIC_EXPORT_PRIVATE QuicInlinedFrame { + QuicInlinedFrame(QuicFrameType type) : type(type) { ++#if defined(__GNUC__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Winvalid-offsetof" ++#endif + static_assert(offsetof(DerivedT, type) == 0, + "type must be the first field."); ++#if defined(__GNUC__) ++#pragma GCC diagnostic pop ++#endif + static_assert(sizeof(DerivedT) <= 24, + "Frames larger than 24 bytes should not be inlined."); + } +-- +2.26.2 + diff --git a/chromium-skia-no_sanitize.patch b/chromium-skia-no_sanitize.patch new file mode 100644 index 00000000..33f375f2 --- /dev/null +++ b/chromium-skia-no_sanitize.patch @@ -0,0 +1,61 @@ +From 3b382845f8fb3adc1300981bb7006d321f855a01 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Sat, 27 Jun 2020 12:04:19 +0000 +Subject: [PATCH] GCC: fix unknown attribute warnings for no_sanitize + +Clang and GCC use different syntax to add no_sanitize +attribute on functions. This results in a large amount +of warnings for GCC, because responsible header is included +very often. Solve this by defining compiler specific macro +locally. +--- + .../skia/include/private/SkFloatingPoint.h | 15 ++++++++++++--- + 1 file changed, 12 insertions(+), 3 deletions(-) + +diff --git a/third_party/skia/include/private/SkFloatingPoint.h b/third_party/skia/include/private/SkFloatingPoint.h +index 110dda2..a8f1b7b 100644 +--- a/third_party/skia/include/private/SkFloatingPoint.h ++++ b/third_party/skia/include/private/SkFloatingPoint.h +@@ -156,10 +156,17 @@ static inline int64_t sk_float_saturate2int64(float x) { + #define sk_double_round2int(x) (int)floor((x) + 0.5) + #define sk_double_ceil2int(x) (int)ceil(x) + ++// attribute no_sanitize is specified differently for GCC and Clang ++#if defined(__GNUC__) ++#define SK_NO_SANITIZE(x) __attribute__ ((no_sanitize(x))) ++#else ++#define SK_NO_SANITIZE(x) [[clang::no_sanitize(x)]] ++#endif ++ + // Cast double to float, ignoring any warning about too-large finite values being cast to float. + // Clang thinks this is undefined, but it's actually implementation defined to return either + // the largest float or infinity (one of the two bracketing representable floats). Good enough! +-[[clang::no_sanitize("float-cast-overflow")]] ++SK_NO_SANITIZE("float-cast-overflow") + static inline float sk_double_to_float(double x) { + return static_cast(x); + } +@@ -226,16 +233,18 @@ static inline float sk_float_rsqrt(float x) { + // IEEE defines how float divide behaves for non-finite values and zero-denoms, but C does not + // so we have a helper that suppresses the possible undefined-behavior warnings. + +-[[clang::no_sanitize("float-divide-by-zero")]] ++SK_NO_SANITIZE("float-divide-by-zero") + static inline float sk_ieee_float_divide(float numer, float denom) { + return numer / denom; + } + +-[[clang::no_sanitize("float-divide-by-zero")]] ++SK_NO_SANITIZE("float-divide-by-zero") + static inline double sk_ieee_double_divide(double numer, double denom) { + return numer / denom; + } + ++#undef SK_NO_SANITIZE ++ + // While we clean up divide by zero, we'll replace places that do divide by zero with this TODO. + static inline float sk_ieee_float_divide_TODO_IS_DIVIDE_BY_ZERO_SAFE_HERE(float n, float d) { + return sk_ieee_float_divide(n,d); +-- +2.26.2 + diff --git a/chromium.spec b/chromium.spec index 69dcead2..f02fd570 100644 --- a/chromium.spec +++ b/chromium.spec @@ -155,15 +155,15 @@ BuildRequires: libicu-devel >= 5.4 %global chromoting_client_id %nil %endif -%global majorversion 83 +%global majorversion 84 %if %{freeworld} Name: chromium%{chromium_channel}%{nsuffix} %else Name: chromium%{chromium_channel} %endif -Version: %{majorversion}.0.4103.116 -Release: 3%{?dist} +Version: %{majorversion}.0.4147.89 +Release: 1%{?dist} %if %{?freeworld} %if %{?shared} # chromium-libs-media-freeworld @@ -184,105 +184,120 @@ Patch0: chromium-70.0.3538.67-sandbox-pie.patch Patch1: chromium-68.0.3440.106-master-prefs-path.patch # Use gn system files Patch2: chromium-67.0.3396.62-gn-system.patch -# Revert https://chromium.googlesource.com/chromium/src/+/b794998819088f76b4cf44c8db6940240c563cf4%5E%21/#F0 -# https://bugs.chromium.org/p/chromium/issues/detail?id=712737 -# https://bugzilla.redhat.com/show_bug.cgi?id=1446851 -Patch3: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch # Do not prefix libpng functions -Patch4: chromium-60.0.3112.78-no-libpng-prefix.patch +Patch3: chromium-60.0.3112.78-no-libpng-prefix.patch # Do not mangle libjpeg -Patch5: chromium-60.0.3112.78-jpeg-nomangle.patch +Patch4: chromium-60.0.3112.78-jpeg-nomangle.patch # Do not mangle zlib -Patch6: chromium-77.0.3865.75-no-zlib-mangle.patch +Patch5: chromium-77.0.3865.75-no-zlib-mangle.patch # Do not use unrar code, it is non-free -Patch7: chromium-83.0.4103.61-norar.patch +Patch6: 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 +Patch7: chromium-71.0.3578.98-widevine-r3.patch # Disable fontconfig cache magic that breaks remoting -Patch9: chromium-83.0.4103.61-disable-fontconfig-cache-magic.patch +Patch8: 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 +Patch9: chromium-78.0.3904.70-gcc9-drop-rsp-clobber.patch # Try to load widevine from other places -Patch11: chromium-79.0.3945.56-widevine-other-locations.patch +Patch10: chromium-79.0.3945.56-widevine-other-locations.patch # Try to fix version.py for Rawhide -Patch12: chromium-71.0.3578.98-py2-bootstrap.patch +Patch11: chromium-71.0.3578.98-py2-bootstrap.patch # Add "Fedora" to the user agent string -Patch13: chromium-79.0.3945.56-fedora-user-agent.patch +Patch12: chromium-79.0.3945.56-fedora-user-agent.patch # rename function to avoid conflict with rawhide glibc "gettid()" Patch50: chromium-75.0.3770.80-grpc-gettid-fix.patch # Needs to be submitted.. Patch51: chromium-76.0.3809.100-gcc-remoting-constexpr.patch -# Needs to be submitted.. (ugly hack, needs to be added properly to GN files) -Patch52: chromium-78.0.3904.70-vtable-symbol-undefined.patch # https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/chromium-unbundle-zlib.patch -Patch53: chromium-81.0.4044.92-unbundle-zlib.patch +Patch52: chromium-81.0.4044.92-unbundle-zlib.patch # Needs to be submitted.. -Patch54: chromium-77.0.3865.75-gcc-include-memory.patch -# https://chromium.googlesource.com/chromium/src/+/6b633c4b14850df376d5cec571699018772f358e -# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/chromium-78-gcc-alignas.patch -Patch55: chromium-79.0.3945.56-base-gcc-no-alignas.patch -# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/chromium-78-protobuf-export.patch -Patch57: chromium-78-protobuf-export.patch -# https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files/chromium-77-clang.patch -Patch59: chromium-77-clang.patch +Patch53: chromium-77.0.3865.75-gcc-include-memory.patch +# https://github.com/stha09/chromium-patches/blob/master/chromium-79-gcc-protobuf-alignas.patch +Patch54: chromium-79-gcc-protobuf-alignas.patch +# https://github.com/stha09/chromium-patches/blob/master/chromium-78-protobuf-RepeatedPtrField-export.patch +Patch55: chromium-78-protobuf-RepeatedPtrField-export.patch +# https://github.com/stha09/chromium-patches/blob/master/chromium-84-base-has_bultin.patch +Patch56: chromium-84-base-has_bultin.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-quiche.patch -Patch70: chromium-80-gcc-quiche.patch +Patch57: chromium-79.0.3945.56-fix-find_if.patch +# https://github.com/stha09/chromium-patches/blob/master/chromium-80-QuicStreamSendBuffer-deleted-move-constructor.patch +Patch58: chromium-80-QuicStreamSendBuffer-deleted-move-constructor.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 +Patch59: 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-83.0.4103.61-missing-cstddef-header.patch +Patch60: chromium-83.0.4103.61-missing-cstddef-header.patch # Missing (thanks c++17) -Patch75: chromium-80.0.3987.106-missing-cstring-header.patch +Patch61: chromium-80.0.3987.106-missing-cstring-header.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-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 +Patch62: chromium-53-ffmpeg-no-deprecation-errors.patch +# https://github.com/stha09/chromium-patches/blob/master/chromium-84-cross_variant_mojo_util-remove-noexcept.patch +Patch63: chromium-84-cross_variant_mojo_util-remove-noexcept.patch +# https://github.com/stha09/chromium-patches/blob/master/chromium-83-WebUI-fix-template-specialization.patch +Patch64: chromium-83-WebUI-fix-template-specialization.patch +# https://github.com/stha09/chromium-patches/blob/master/chromium-84-VectorBuffer-fix-template-specialization.patch +Patch65: chromium-84-VectorBuffer-fix-template-specialization.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 -# https://chromium.googlesource.com/chromium/src/+/0d3ef4b1247f766eed37c546571a2c872fde2bf2%5E%21/#F0 -Patch88: chromium-83-gcc-ozone-wayland.patch +Patch66: chromium-83-gcc-iterator.patch # https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files/chromium-83-gcc-compatibility.patch -Patch90: chromium-83-gcc-compatibility.patch +Patch67: chromium-83-gcc-compatibility.patch # Fix skia's handling of no_sanitize attributes to work with gcc -Patch91: chromium-83.0.4103.97-skia-gcc-no_sanitize-fixes.patch +Patch68: chromium-skia-no_sanitize.patch # Work around aarch64 gcc bug (PR95726) -Patch92: chromium-83.0.4103.97-gcc10-aarch64-hack.patch +Patch69: chromium-83.0.4103.97-gcc10-aarch64-hack.patch +# https://github.com/stha09/chromium-patches/blob/master/chromium-84-AXObject-stl-iterator.patch +Patch70: chromium-84-AXObject-stl-iterator.patch +# https://github.com/stha09/chromium-patches/blob/master/chromium-84-blink-disable-clang-format.patch +Patch71: chromium-84-blink-disable-clang-format.patch +# https://github.com/stha09/chromium-patches/blob/master/chromium-84-crashpad-include-cstring.patch +Patch72: chromium-84-crashpad-include-cstring.patch +# https://github.com/stha09/chromium-patches/blob/master/chromium-84-FilePath-add-noexcept.patch +Patch73: chromium-84-FilePath-add-noexcept.patch +# https://github.com/stha09/chromium-patches/blob/master/chromium-84-fix-decltype.patch +Patch74: chromium-84-fix-decltype.patch +# https://github.com/stha09/chromium-patches/blob/master/chromium-84-flat_map-flat_tree-add-noexcept.patch +Patch75: chromium-84-flat_map-flat_tree-add-noexcept.patch +# https://github.com/stha09/chromium-patches/blob/master/chromium-84-gcc-DCHECK_EQ-unique_ptr.patch +Patch76: chromium-84-gcc-DCHECK_EQ-unique_ptr.patch +# https://github.com/stha09/chromium-patches/blob/master/chromium-84-gcc-DOMRect-constexpr.patch +Patch77: chromium-84-gcc-DOMRect-constexpr.patch +# https://github.com/stha09/chromium-patches/blob/master/chromium-84-gcc-use-brace-initializer.patch +Patch78: chromium-84-gcc-use-brace-initializer.patch +# https://github.com/stha09/chromium-patches/blob/master/chromium-84-ListContainerHelper-include-cstring.patch +Patch79: chromium-84-ListContainerHelper-include-cstring.patch +# https://github.com/stha09/chromium-patches/blob/master/chromium-84-ozone-include.patch +Patch80: chromium-84-ozone-include.patch +# https://github.com/stha09/chromium-patches/blob/master/chromium-84-revert-manage-ManifestManagerHost-per-document.patch +Patch81: chromium-84-revert-manage-ManifestManagerHost-per-document.patch +# https://github.com/stha09/chromium-patches/blob/master/chromium-84-std-vector-const.patch +Patch82: chromium-84-std-vector-const.patch +# https://github.com/stha09/chromium-patches/blob/master/chromium-84-TraceInCollectionTrait-fix-template-specialization.patch +Patch83: chromium-84-TraceInCollectionTrait-fix-template-specialization.patch +# https://github.com/stha09/chromium-patches/blob/master/chromium-blink-gcc-diagnostic-pragma.patch +Patch84: chromium-blink-gcc-diagnostic-pragma.patch +# https://github.com/stha09/chromium-patches/blob/master/chromium-clang_lto_visibility_public.patch +Patch85: chromium-clang_lto_visibility_public.patch +# https://github.com/stha09/chromium-patches/blob/master/chromium-fix-char_traits.patch +Patch86: chromium-fix-char_traits.patch +# https://github.com/stha09/chromium-patches/blob/master/chromium-quiche-invalid-offsetof.patch +Patch87: chromium-quiche-invalid-offsetof.patch # Use lstdc++ on EPEL7 only Patch101: chromium-75.0.3770.100-epel7-stdc++.patch # el7 only patch Patch102: chromium-80.0.3987.132-el7-noexcept.patch # No linux/kcmp.h on EPEL7 -Patch103: chromium-83.0.4103.97-epel7-no-kcmp-h.patch +Patch103: chromium-84.0.4147.89-epel7-no-kcmp-h.patch # Use old cups (chromium's code workaround breaks on gcc) # Revert: https://github.com/chromium/chromium/commit/c3213f8779ddc427e89d982514185ed5e4c94e91 -Patch104: chromium-83.0.4103.97-epel7-old-cups.patch +Patch104: chromium-84.0.4147.89-epel7-old-cups.patch # Enable VAAPI support on Linux # NOTE: This patch will never land upstream Patch202: enable-vaapi.patch Patch203: chromium-83.0.4103.97-vaapi-i686-fpermissive.patch -Patch205: chromium-81.0.4044.92-fix-vaapi-on-intel.patch +Patch205: chromium-84.0.4147.89-fix-vaapi-on-intel.patch # Apply these patches to work around EPEL8 issues Patch300: chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch @@ -811,46 +826,55 @@ udev. %patch0 -p1 -b .sandboxpie %patch1 -p1 -b .etc %patch2 -p1 -b .gnsystem -%patch3 -p1 -b .revert -%patch4 -p1 -b .nolibpngprefix -%patch5 -p1 -b .nolibjpegmangle -%patch6 -p1 -b .nozlibmangle -%patch7 -p1 -b .nounrar -%patch8 -p1 -b .widevine-hack -%patch9 -p1 -b .nofontconfigcache -%patch10 -p1 -b .gcc9 -%patch11 -p1 -b .widevine-other-locations -%patch12 -p1 -b .py2 +%patch3 -p1 -b .nolibpngprefix +%patch4 -p1 -b .nolibjpegmangle +%patch5 -p1 -b .nozlibmangle +%patch6 -p1 -b .nounrar +%patch7 -p1 -b .widevine-hack +%patch8 -p1 -b .nofontconfigcache +%patch9 -p1 -b .gcc9 +%patch10 -p1 -b .widevine-other-locations +%patch11 -p1 -b .py2 # Short term fixes (usually gcc and backports) %patch50 -p1 -b .gettid-fix %patch51 -p1 -b .gcc-remoting-constexpr -%patch52 -p1 -b .vtable-symbol-undefined -%patch53 -p1 -b .unbundle-zlib -%patch54 -p1 -b .gcc-include-memory -%patch55 -p1 -b .base-gcc-no-alignas -%patch57 -p1 -b .protobuf-export -%patch59 -p1 -b .clang-supports-location-builtins -%patch63 -p1 -b .fix-find_if -%patch70 -p1 -b .gcc-quiche -%patch72 -p1 -b .missing-cstdint -%patch73 -p1 -b .missing-cstddef -%patch75 -p1 -b .missing-cstring -%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 -%patch88 -p1 -b .gcc-ozone-wayland -%patch90 -p1 -b .gcc-compatibility -%patch91 -p1 -b .gcc-no_sanitize -%patch92 -p1 -b .gcc10-aarch64-hack +%patch52 -p1 -b .unbundle-zlib +%patch53 -p1 -b .gcc-include-memory +%patch54 -p1 -b .base-gcc-no-alignas +%patch55 -p1 -b .protobuf-export +%patch56 -p1 -b .clang-supports-location-builtins +%patch57 -p1 -b .fix-find_if +%patch58 -p1 -b .gcc-quiche +%patch59 -p1 -b .missing-cstdint +%patch60 -p1 -b .missing-cstddef +%patch61 -p1 -b .missing-cstring +%patch62 -p1 -b .ffmpeg-deprecations +%patch63 -p1 -b .gcc-noexcept +%patch64 -p1 -b .gcc-template +%patch65 -p1 -b .gcc-template2 +%patch66 -p1 -b .gcc-iterator2 +%patch67 -p1 -b .gcc-compatibility +%patch68 -p1 -b .gcc-no_sanitize +%patch69 -p1 -b .gcc10-aarch64-hack +%patch70 -p1 -b .AXObject-stl-iterator +%patch71 -p1 -b .blink-disable-clang-format +%patch72 -p1 -b .crashpad-include-cstring +%patch73 -p1 -b .FilePath-add-noexcept +%patch74 -p1 -b .fix-decltype +%patch75 -p1 -b .flat_map-flat_tree-add-noexcept +%patch76 -p1 -b .gcc-DCHECK_EQ-unique-ptr +%patch77 -p1 -b .gcc-DOMRect-constexpr +%patch78 -p1 -b .gcc-use-brace-initializer +%patch79 -p1 -b .ListContainerHelper-include-cstring +%patch80 -p1 -b .ozone-include +%patch81 -p1 -b .revert-manage-ManifestManagerHost-per-document +%patch82 -p1 -b .std-vector-const +%patch83 -p1 -b .TraceInCollectionTrait-fix-template-specialization +%patch84 -p1 -b .blink-gcc-diagnostic-pragma +%patch85 -p1 -b .clang_lto_visibility_public +%patch86 -p1 -b .fix-char_traits +%patch87 -p1 -b .quiche-invalid-offset # Fedora branded user agent %if 0%{?fedora} @@ -1102,6 +1126,8 @@ build/linux/unbundle/remove_bundled_libraries.py \ 'third_party/devtools-frontend' \ 'third_party/devtools-frontend/src/third_party/axe-core' \ 'third_party/devtools-frontend/src/third_party/typescript' \ + 'third_party/devtools-frontend/src/front_end/third_party/acorn' \ + 'third_party/devtools-frontend/src/front_end/third_party/codemirror' \ 'third_party/devtools-frontend/src/front_end/third_party/fabricjs' \ 'third_party/devtools-frontend/src/front_end/third_party/lighthouse' \ 'third_party/devtools-frontend/src/front_end/third_party/wasmparser' \ @@ -1136,6 +1162,7 @@ build/linux/unbundle/remove_bundled_libraries.py \ 'third_party/libaom' \ 'third_party/libaom/source/libaom/third_party/vector' \ 'third_party/libaom/source/libaom/third_party/x86inc' \ + 'third_party/libavif' \ 'third_party/libdrm' \ 'third_party/libgifcodec' \ 'third_party/libjingle' \ @@ -1155,6 +1182,7 @@ build/linux/unbundle/remove_bundled_libraries.py \ 'third_party/libxml/chromium' \ 'third_party/libxslt' \ 'third_party/libyuv' \ + 'third_party/lottie' \ 'third_party/lss' \ 'third_party/lzma_sdk' \ 'third_party/mako' \ @@ -1172,6 +1200,7 @@ build/linux/unbundle/remove_bundled_libraries.py \ 'third_party/openh264' \ %endif 'third_party/openscreen' \ + 'third_party/openscreen/src/third_party/mozilla' \ 'third_party/openscreen/src/third_party/tinycbor' \ 'third_party/opus' \ 'third_party/ots' \ @@ -1230,7 +1259,7 @@ build/linux/unbundle/remove_bundled_libraries.py \ 'third_party/web-animations-js' \ 'third_party/webdriver' \ 'third_party/webrtc' \ - 'third_party/webrtc/common_audio/third_party/fft4g' \ + 'third_party/webrtc/common_audio/third_party/ooura' \ 'third_party/webrtc/common_audio/third_party/spl_sqrt_floor' \ 'third_party/webrtc/modules/third_party/fft' \ 'third_party/webrtc/modules/third_party/g711' \ @@ -1241,7 +1270,6 @@ build/linux/unbundle/remove_bundled_libraries.py \ 'third_party/woff2' \ 'third_party/wuffs' \ 'third_party/xdg-utils' \ - 'third_party/yasm' \ 'third_party/zlib' \ 'third_party/zlib/google' \ 'tools/gn/src/base/third_party/icu' \ @@ -1317,7 +1345,6 @@ build/linux/unbundle/replace_gn_files.py --system-libraries \ %else re2 \ %endif - yasm \ zlib # fix arm gcc @@ -1808,6 +1835,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %changelog +* Wed Jul 15 2020 Tom Callaway - 84.0.4147.89-1 +- update to 84.0.4147.89 + * Sat Jun 27 2020 Tom Callaway - 83.0.4103.116-3 - only set ozone on headless - enable use_kerberos diff --git a/clean_ffmpeg.sh b/clean_ffmpeg.sh index edab56f8..1c006e62 100755 --- a/clean_ffmpeg.sh +++ b/clean_ffmpeg.sh @@ -88,7 +88,6 @@ header_files=" libavcodec/x86/inline_asm.h \ libavcodec/h263dsp.h \ libavcodec/h264chroma.h \ libavcodec/hpeldsp.h \ - libavcodec/hwaccel.h \ libavcodec/hwaccels.h \ libavcodec/idctdsp.h \ libavcodec/internal.h \ diff --git a/sources b/sources index 4d2b184c..81b7cf1f 100644 --- a/sources +++ b/sources @@ -17,5 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0 SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd SHA512 (node-v10.15.3-linux-x64.tar.gz) = 5eb544ef706562981340a82acc79e2162c6a3e4049b4a95f69ce353ee5b0f929c60b1fc457e8249b3fb0696f82fc28c5f543f5947db19fae4e9d5c21b906bb20 -SHA512 (chromium-83.0.4103.106-clean.tar.xz) = e903ced22439b4fd2bfeb4457d9fed99099ea274ae376ce84a41d8f1a23f19f7be34e23f22368059f46f37ae4320b8a5020d04f91810a1c36908590ecc05a684 -SHA512 (chromium-83.0.4103.116-clean.tar.xz) = 7a7fb0c6a7c3441786f2bffcc00911579b0facb4509995c58e38f436791a1a76ea9d26b3a0d37daeb8c28a428f9df19cb74e59c986d10da334c2f5c1bd30aca6 +SHA512 (chromium-84.0.4147.89-clean.tar.xz) = a0373964bca0dbade9fde3c5f00e4470ba609b1d7ceab19db19cde27fea54a6e049965aaedfbeff82af04ce899e4617d3443a4bc7fc482fef8604386c9682a52