summaryrefslogtreecommitdiff
path: root/www-client/chromium/files
diff options
context:
space:
mode:
Diffstat (limited to 'www-client/chromium/files')
-rw-r--r--www-client/chromium/files/chromium-77-gcc-alignas.patch72
-rw-r--r--www-client/chromium/files/chromium-78-gcc-alignas.patch142
-rw-r--r--www-client/chromium/files/chromium-78-gcc-enum-range.patch46
-rw-r--r--www-client/chromium/files/chromium-78-gcc-noexcept.patch32
-rw-r--r--www-client/chromium/files/chromium-78-gcc-std-vector.patch87
-rw-r--r--www-client/chromium/files/chromium-78-include.patch32
-rw-r--r--www-client/chromium/files/chromium-78-protobuf-export.patch13
-rw-r--r--www-client/chromium/files/chromium-unbundle-zlib-r1.patch13
8 files changed, 427 insertions, 10 deletions
diff --git a/www-client/chromium/files/chromium-77-gcc-alignas.patch b/www-client/chromium/files/chromium-77-gcc-alignas.patch
new file mode 100644
index 000000000000..3693ef50bed4
--- /dev/null
+++ b/www-client/chromium/files/chromium-77-gcc-alignas.patch
@@ -0,0 +1,72 @@
+From 6b633c4b14850df376d5cec571699018772f358e Mon Sep 17 00:00:00 2001
+From: Tomas Popela <tomas.popela@gmail.com>
+Date: Tue, 17 Sep 2019 19:48:48 +0000
+Subject: [PATCH] GCC: Can't use alignas() together with __attribute__()
+
+It's because GCC has problems when mixing the alignas() together with
+__attribute__() (that is used to export the symbols). The best
+solution is to use ALIGNAS() macro from //base/compiler_specific.h
+together with alignof() to have the equal functionality that compiles on
+GCC as well as on clang.
+
+Bug: 819294
+Change-Id: Ieb169592a2965f17a18bfc88d28418eb723a4e5a
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1806735
+Auto-Submit: Tomáš Popela <tomas.popela@gmail.com>
+Commit-Queue: Alex Clarke <alexclarke@chromium.org>
+Reviewed-by: Alex Clarke <alexclarke@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#697330}
+---
+
+diff --git a/base/task/promise/dependent_list.h b/base/task/promise/dependent_list.h
+index 020bdbfc..3245c1c 100644
+--- a/base/task/promise/dependent_list.h
++++ b/base/task/promise/dependent_list.h
+@@ -59,7 +59,7 @@
+
+ // Align Node on an 8-byte boundary to ensure the first 3 bits are 0 and can
+ // be used to store additional state (see static_asserts below).
+- class BASE_EXPORT alignas(8) Node {
++ class BASE_EXPORT ALIGNAS(8) Node {
+ public:
+ Node();
+ explicit Node(Node&& other) noexcept;
+
+From 8148fd96ae04a1150a9c6012634dcd2a7335f87a Mon Sep 17 00:00:00 2001
+From: Tomas Popela <tomas.popela@gmail.com>
+Date: Tue, 20 Aug 2019 05:23:14 +0000
+Subject: [PATCH] GCC: Can't use alignas() together with __attribute__()
+
+It's because GCC has problems when mixing the alignas() together with
+__attribute__() (that is used to export the symbols). The best
+solution is to use ALIGNAS() macro from //base/compiler_specific.h
+together with alignof() to have the equal functionality that compiles on
+GCC as well as on clang.
+
+This is a regression after https://crrev.com/659933.
+
+Bug: 994581
+Change-Id: Ia376866ff9ac57d52d2e907fa325ae5a51893d07
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1758064
+Reviewed-by: Eric Willigers <ericwilligers@chromium.org>
+Commit-Queue: Eric Willigers <ericwilligers@chromium.org>
+Commit-Queue: Tomáš Popela <tomas.popela@gmail.com>
+Auto-Submit: Tomáš Popela <tomas.popela@gmail.com>
+Cr-Commit-Position: refs/heads/master@{#688417}
+---
+
+diff --git a/third_party/blink/renderer/core/css/css_property_value_set.h b/third_party/blink/renderer/core/css/css_property_value_set.h
+index 67b353d..1bd404e 100644
+--- a/third_party/blink/renderer/core/css/css_property_value_set.h
++++ b/third_party/blink/renderer/core/css/css_property_value_set.h
+@@ -175,8 +175,8 @@
+ DISALLOW_COPY_AND_ASSIGN(CSSLazyPropertyParser);
+ };
+
+-class CORE_EXPORT alignas(Member<const CSSValue>) alignas(
+- CSSPropertyValueMetadata) ImmutableCSSPropertyValueSet
++class CORE_EXPORT ALIGNAS(alignof(Member<const CSSValue>))
++ ALIGNAS(alignof(CSSPropertyValueMetadata)) ImmutableCSSPropertyValueSet
+ : public CSSPropertyValueSet {
+ public:
+ ImmutableCSSPropertyValueSet(const CSSPropertyValue*,
diff --git a/www-client/chromium/files/chromium-78-gcc-alignas.patch b/www-client/chromium/files/chromium-78-gcc-alignas.patch
new file mode 100644
index 000000000000..4f6039c2f5a7
--- /dev/null
+++ b/www-client/chromium/files/chromium-78-gcc-alignas.patch
@@ -0,0 +1,142 @@
+From 6b633c4b14850df376d5cec571699018772f358e Mon Sep 17 00:00:00 2001
+From: Tomas Popela <tomas.popela@gmail.com>
+Date: Tue, 17 Sep 2019 19:48:48 +0000
+Subject: [PATCH] GCC: Can't use alignas() together with __attribute__()
+
+It's because GCC has problems when mixing the alignas() together with
+__attribute__() (that is used to export the symbols). The best
+solution is to use ALIGNAS() macro from //base/compiler_specific.h
+together with alignof() to have the equal functionality that compiles on
+GCC as well as on clang.
+
+Bug: 819294
+Change-Id: Ieb169592a2965f17a18bfc88d28418eb723a4e5a
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1806735
+Auto-Submit: Tom Popela <tomas.popela@gmail.com>
+Commit-Queue: Alex Clarke <alexclarke@chromium.org>
+Reviewed-by: Alex Clarke <alexclarke@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#697330}
+---
+
+diff --git a/base/task/promise/dependent_list.h b/base/task/promise/dependent_list.h
+index 020bdbfc..3245c1c 100644
+--- a/base/task/promise/dependent_list.h
++++ b/base/task/promise/dependent_list.h
+@@ -59,7 +59,7 @@
+
+ // Align Node on an 8-byte boundary to ensure the first 3 bits are 0 and can
+ // be used to store additional state (see static_asserts below).
+- class BASE_EXPORT alignas(8) Node {
++ class BASE_EXPORT ALIGNAS(8) Node {
+ public:
+ Node();
+ explicit Node(Node&& other) noexcept;
+
+Re-use chromium alignas workaround in protobuf.
+---
+
+diff --git a/third_party/protobuf/src/google/protobuf/port_def.inc b/third_party/protobuf/src/google/protobuf/port_def.inc
+index f1bd85d..9c204a1 100644
+--- 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
+diff --git a/third_party/protobuf/src/google/protobuf/arena.h b/third_party/protobuf/src/google/protobuf/arena.h
+index dedc221..a8515ce 100644
+--- 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.
+diff --git a/third_party/protobuf/src/google/protobuf/port_def.inc b/third_party/protobuf/src/google/protobuf/port_def.inc
+index f1bd85d..6d02b53 100644
+--- 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
+diff --git a/third_party/protobuf/src/google/protobuf/port_undef.inc b/third_party/protobuf/src/google/protobuf/port_undef.inc
+index b7e67fe..ba1fffc 100644
+--- 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/www-client/chromium/files/chromium-78-gcc-enum-range.patch b/www-client/chromium/files/chromium-78-gcc-enum-range.patch
new file mode 100644
index 000000000000..9c15e954b4ea
--- /dev/null
+++ b/www-client/chromium/files/chromium-78-gcc-enum-range.patch
@@ -0,0 +1,46 @@
+From 9662ec844017690d5fd56bf0f05ef6a540dd29c1 Mon Sep 17 00:00:00 2001
+From: Tom Anderson <thomasanderson@chromium.org>
+Date: Mon, 09 Sep 2019 19:06:01 +0000
+Subject: [PATCH] Fix GCC build error
+
+Fixes this error:
+[ 375s] In file included from ../../base/task/common/intrusive_heap.h:8,
+[ 375s] from ../../base/task/thread_pool/task_source.h:17,
+[ 375s] from ../../base/task/thread_pool/task_tracker.h:27,
+[ 375s] from ./../../base/task/thread_pool/service_thread.cc:14,
+[ 375s] from gen/base/base_jumbo_28.cc:5:
+[ 375s] ../../base/containers/intrusive_heap.h:152:36: error: enumerator value
+ '-1' is outside the range of underlying type 'size_t' {aka 'long unsigned int'}
+[ 375s] 152 | enum : size_t { kInvalidIndex = -1 };
+[ 375s] |
+
+Change-Id: I6044fb704931b2f8416f6b19a247ae297cd7b0d6
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1792763
+Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
+Commit-Queue: Lei Zhang <thestig@chromium.org>
+Reviewed-by: Lei Zhang <thestig@chromium.org>
+Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#694853}
+---
+
+diff --git a/base/containers/intrusive_heap.h b/base/containers/intrusive_heap.h
+index 53d3909..d7626bb 100644
+--- a/base/containers/intrusive_heap.h
++++ b/base/containers/intrusive_heap.h
+@@ -131,6 +131,7 @@
+
+ #include <algorithm>
+ #include <functional>
++#include <limits>
+ #include <type_traits>
+ #include <utility>
+ #include <vector>
+@@ -149,7 +150,7 @@
+ // in place.
+ class BASE_EXPORT HeapHandle {
+ public:
+- enum : size_t { kInvalidIndex = -1 };
++ enum : size_t { kInvalidIndex = std::numeric_limits<size_t>::max() };
+
+ constexpr HeapHandle() = default;
+ constexpr HeapHandle(const HeapHandle& other) = default;
diff --git a/www-client/chromium/files/chromium-78-gcc-noexcept.patch b/www-client/chromium/files/chromium-78-gcc-noexcept.patch
new file mode 100644
index 000000000000..8ddb53fe82d2
--- /dev/null
+++ b/www-client/chromium/files/chromium-78-gcc-noexcept.patch
@@ -0,0 +1,32 @@
+From d16cda8fc3476cc534a756873cc8aa2692a57054 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Thu, 22 Aug 2019 13:13:36 +0200
+Subject: [PATCH] GCC: declare noexcept move constructor/assign operators of V8StackTraceId
+
+blink::BlinkCloneableMessage declares default implementation of
+move operator/assign operator that requires v8_inspector::V8StackTraceId
+to declare its move constructor/assign operator too.
+
+Bug: chromium:819294
+Change-Id: Iaf626ee8245efcba372a17cdf2de448e691d41d6
+Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1796062
+Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
+Reviewed-by: Yang Guo <yangguo@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#63799}
+---
+
+diff --git a/v8/include/v8-inspector.h b/v8/include/v8-inspector.h
+index ce5b777..ed4cdec 100644
+--- a/v8/include/v8-inspector.h
++++ b/v8/include/v8-inspector.h
+@@ -231,7 +231,10 @@ struct V8_EXPORT V8StackTraceId {
+ std::pair<int64_t, int64_t> debugger_id;
+
+ V8StackTraceId();
++ V8StackTraceId(const V8StackTraceId&) = default;
+ V8StackTraceId(uintptr_t id, const std::pair<int64_t, int64_t> debugger_id);
++ V8StackTraceId& operator=(const V8StackTraceId&) = default;
++ V8StackTraceId& operator=(V8StackTraceId&&) noexcept = default;
+ ~V8StackTraceId() = default;
+
+ bool IsInvalid() const;
diff --git a/www-client/chromium/files/chromium-78-gcc-std-vector.patch b/www-client/chromium/files/chromium-78-gcc-std-vector.patch
new file mode 100644
index 000000000000..cf1abf06b5a1
--- /dev/null
+++ b/www-client/chromium/files/chromium-78-gcc-std-vector.patch
@@ -0,0 +1,87 @@
+From f4c3c329588b78af63aad8b401da767242b86709 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Date: Mon, 16 Sep 2019 17:05:42 +0000
+Subject: [PATCH] dns_util: Make DohUpgradeEntry non-const when used with std::vector<>
+
+This fixes the build with libstdc++ (with most other standard libraries
+other than libc++, in fact) after commit f93a48e3 ("Allow upgrade to DoH
+during automatic mode"):
+
+../../../../../../usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_vector.h:351:7: error: static_assert failed due to requirement 'is_same<typename remove_cv<const DohUpgradeEntry>::type, const DohUpgradeEntry>::value' "std::vector must have a non-const, non-volatile value_type"
+ static_assert(is_same<typename remove_cv<_Tp>::type, _Tp>::value,
+ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+../../base/no_destructor.h:77:28: note: in instantiation of template class 'std::vector<const net::(anonymous namespace)::DohUpgradeEntry, std::allocator<const net::(anonymous namespace)::DohUpgradeEntry> >' requested here
+ alignas(T) char storage_[sizeof(T)];
+ ^
+../../net/dns/dns_util.cc:147:7: note: in instantiation of template class 'base::NoDestructor<std::vector<const net::(anonymous namespace)::DohUpgradeEntry, std::allocator<const net::(anonymous namespace)::DohUpgradeEntry> > >' requested here
+ upgradable_servers({
+ ^
+../../net/dns/dns_util.cc:230:36: error: invalid range expression of type 'const std::vector<const net::(anonymous namespace)::DohUpgradeEntry, std::allocator<const net::(anonymous namespace)::DohUpgradeEntry> >'; no viable 'begin' function available
+ for (const auto& upgrade_entry : upgradable_servers) {
+ ^ ~~~~~~~~~~~~~~~~~~
+
+The C++ standard forbids containers of const elements. Callers of
+GetDohUpgradeList() use it in a safe way anyway, and most of
+DohUpgradeEntry's members are const.
+
+(Added gcc specific workaround)
+
+Bug: 957519
+Change-Id: I826a51823edb1184c0fae27105101e2894efe568
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1805636
+Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Commit-Queue: Eric Orth <ericorth@chromium.org>
+Reviewed-by: Eric Orth <ericorth@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#696834}
+---
+
+diff --git a/net/dns/dns_util.cc b/net/dns/dns_util.cc
+index d83ff7c..14997c4 100644
+--- a/net/dns/dns_util.cc
++++ b/net/dns/dns_util.cc
+@@ -139,12 +139,12 @@ struct DohUpgradeEntry {
+ const DnsConfig::DnsOverHttpsServerConfig dns_over_https_config;
+ };
+
+-const std::vector<const DohUpgradeEntry>& GetDohUpgradeList() {
++const std::vector<DohUpgradeEntry>& GetDohUpgradeList() {
+ // The provider names in these entries should be kept in sync with the
+ // DohProviderId histogram suffix list in
+ // tools/metrics/histograms/histograms.xml.
+- static const base::NoDestructor<std::vector<const DohUpgradeEntry>>
+- upgradable_servers({
++ static const base::NoDestructor<std::vector<DohUpgradeEntry>>
++ upgradable_servers(std::initializer_list<DohUpgradeEntry>{
+ DohUpgradeEntry(
+ "CleanBrowsingAdult",
+ {"185.228.168.10", "185.228.169.11", "2a0d:2a00:1::1",
+@@ -222,8 +222,7 @@ const std::vector<const DohUpgradeEntry>& GetDohUpgradeList() {
+ std::vector<const DohUpgradeEntry*> GetDohUpgradeEntriesFromNameservers(
+ const std::vector<IPEndPoint>& dns_servers,
+ const std::vector<std::string>& excluded_providers) {
+- const std::vector<const DohUpgradeEntry>& upgradable_servers =
+- GetDohUpgradeList();
++ const std::vector<DohUpgradeEntry>& upgradable_servers = GetDohUpgradeList();
+ std::vector<const DohUpgradeEntry*> entries;
+
+ for (const auto& server : dns_servers) {
+@@ -417,8 +416,7 @@ std::vector<DnsConfig::DnsOverHttpsServerConfig>
+ GetDohUpgradeServersFromDotHostname(
+ const std::string& dot_server,
+ const std::vector<std::string>& excluded_providers) {
+- const std::vector<const DohUpgradeEntry>& upgradable_servers =
+- GetDohUpgradeList();
++ const std::vector<DohUpgradeEntry>& upgradable_servers = GetDohUpgradeList();
+ std::vector<DnsConfig::DnsOverHttpsServerConfig> doh_servers;
+
+ if (dot_server.empty())
+@@ -451,8 +449,7 @@ GetDohUpgradeServersFromNameservers(
+
+ std::string GetDohProviderIdForHistogramFromDohConfig(
+ const DnsConfig::DnsOverHttpsServerConfig& doh_server) {
+- const std::vector<const DohUpgradeEntry>& upgradable_servers =
+- GetDohUpgradeList();
++ const std::vector<DohUpgradeEntry>& upgradable_servers = GetDohUpgradeList();
+ for (const auto& upgrade_entry : upgradable_servers) {
+ if (doh_server.server_template ==
+ upgrade_entry.dns_over_https_config.server_template) {
diff --git a/www-client/chromium/files/chromium-78-include.patch b/www-client/chromium/files/chromium-78-include.patch
index a0b77c4fb9d4..224aa3b35193 100644
--- a/www-client/chromium/files/chromium-78-include.patch
+++ b/www-client/chromium/files/chromium-78-include.patch
@@ -1,13 +1,25 @@
-diff --git a/components/password_manager/core/browser/leak_detection/encryption_utils.cc b/components/password_manager/core/browser/leak_detection/encryption_utils.cc
-index 31a7116..53eb464 100644
---- a/components/password_manager/core/browser/leak_detection/encryption_utils.cc
-+++ b/components/password_manager/core/browser/leak_detection/encryption_utils.cc
-@@ -13,6 +13,8 @@
- #include "crypto/sha2.h"
- #include "third_party/boringssl/src/include/openssl/evp.h"
+From bbfe2665923225b4a7c436ba2b6c7e5f695f2e52 Mon Sep 17 00:00:00 2001
+From: David Landell <landell@vewd.com>
+Date: Fri, 13 Sep 2019 12:24:13 +0000
+Subject: [PATCH] Add missing include for unique_ptr
+
+Change-Id: I614d2f42868d563eb6a92dfb2aae08286e20d687
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1803137
+Reviewed-by: Henrik Boström <hbos@chromium.org>
+Commit-Queue: Henrik Boström <hbos@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#696355}
+---
+
+diff --git a/third_party/blink/public/platform/web_rtc_rtp_source.h b/third_party/blink/public/platform/web_rtc_rtp_source.h
+index 959440f..c3fd542 100644
+--- a/third_party/blink/public/platform/web_rtc_rtp_source.h
++++ b/third_party/blink/public/platform/web_rtc_rtp_source.h
+@@ -5,6 +5,8 @@
+ #ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_RTC_RTP_SOURCE_H_
+ #define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_RTC_RTP_SOURCE_H_
-+#include <climits>
++#include <memory>
+
- namespace password_manager {
+ #include "base/optional.h"
+ #include "third_party/blink/public/platform/web_common.h"
- namespace {
diff --git a/www-client/chromium/files/chromium-78-protobuf-export.patch b/www-client/chromium/files/chromium-78-protobuf-export.patch
new file mode 100644
index 000000000000..ddb9e80eefe4
--- /dev/null
+++ b/www-client/chromium/files/chromium-78-protobuf-export.patch
@@ -0,0 +1,13 @@
+diff --git a/third_party/protobuf/src/google/protobuf/repeated_field.h b/third_party/protobuf/src/google/protobuf/repeated_field.h
+index b5b193c..4434854 100644
+--- a/third_party/protobuf/src/google/protobuf/repeated_field.h
++++ b/third_party/protobuf/src/google/protobuf/repeated_field.h
+@@ -804,7 +804,7 @@ class StringTypeHandler {
+ // RepeatedPtrField is like RepeatedField, but used for repeated strings or
+ // Messages.
+ template <typename Element>
+-class RepeatedPtrField final : private internal::RepeatedPtrFieldBase {
++class PROTOBUF_EXPORT RepeatedPtrField final : private internal::RepeatedPtrFieldBase {
+ public:
+ RepeatedPtrField();
+ explicit RepeatedPtrField(Arena* arena);
diff --git a/www-client/chromium/files/chromium-unbundle-zlib-r1.patch b/www-client/chromium/files/chromium-unbundle-zlib-r1.patch
new file mode 100644
index 000000000000..951a2adb196a
--- /dev/null
+++ b/www-client/chromium/files/chromium-unbundle-zlib-r1.patch
@@ -0,0 +1,13 @@
+diff --git a/third_party/perfetto/gn/BUILD.gn b/third_party/perfetto/gn/BUILD.gn
+index 3bc618a..e0ddf6d 100644
+--- a/third_party/perfetto/gn/BUILD.gn
++++ b/third_party/perfetto/gn/BUILD.gn
+@@ -244,7 +244,7 @@ if (enable_perfetto_trace_processor || perfetto_build_standalone ||
+ "//buildtools:zlib",
+ ]
+ } else {
+- public_configs = [ "//third_party/zlib:zlib_config" ]
++ public_configs = [ "//third_party/zlib:system_zlib" ]
+ public_deps = [
+ "//third_party/zlib",
+ ]