diff options
author | Chris Xiong <chirs241097@gmail.com> | 2021-10-14 19:01:18 -0400 |
---|---|---|
committer | Chris Xiong <chirs241097@gmail.com> | 2021-10-14 19:01:18 -0400 |
commit | 846cdbdbf965fc50478bcc4c6436e3dc6a489f3f (patch) | |
tree | 4a39385c982291a110f513871aba340f0a7a061e /www-client/chromium/files | |
download | ppo-846cdbdbf965fc50478bcc4c6436e3dc6a489f3f.tar.xz |
Initial commit.
Diffstat (limited to 'www-client/chromium/files')
248 files changed, 17581 insertions, 0 deletions
diff --git a/www-client/chromium/files/chromium-71-gcc-0.patch b/www-client/chromium/files/chromium-71-gcc-0.patch new file mode 100644 index 0000000..711b827 --- /dev/null +++ b/www-client/chromium/files/chromium-71-gcc-0.patch @@ -0,0 +1,57 @@ +From 65be571f6ac2f7942b4df9e50b24da517f829eec Mon Sep 17 00:00:00 2001 +From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> +Date: Mon, 15 Oct 2018 20:26:10 +0000 +Subject: [PATCH] google_util: Explicitly use std::initializer_list with + base::NoDestructor +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Follow-up to ac53c5c53 ("Remove CR_DEFINE_STATIC_LOCAL from /components"). +Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84849, having +base::NoDestructor<T<U>> and passing an initializer list of Us does not +work if this is not done explicitly, as GCC incorrectly fails to determine +which constructor overload to use: + + ../../components/google/core/common/google_util.cc: In function ‘bool google_util::{anonymous}::IsCanonicalHostGoogleHostname(base::StringPiece, google_util::SubdomainPermission)’: + ../../components/google/core/common/google_util.cc:120:24: error: call of overloaded ‘NoDestructor(<brace-enclosed initializer list>)’ is ambiguous + {GOOGLE_TLD_LIST}); + +See also: https://chromium-review.googlesource.com/c/chromium/src/+/1170905 + +Bug: 819294 +Change-Id: Ie1490b6646d7998d636c485769caabf56c1cf44c +Reviewed-on: https://chromium-review.googlesource.com/c/1275854 +Reviewed-by: Peter Kasting <pkasting@chromium.org> +Commit-Queue: Raphael Kubo da Costa (CET) <raphael.kubo.da.costa@intel.com> +Cr-Commit-Position: refs/heads/master@{#599733} +--- + components/google/core/common/google_util.cc | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/components/google/core/common/google_util.cc b/components/google/core/common/google_util.cc +index a44c84393820..7733848a0443 100644 +--- a/components/google/core/common/google_util.cc ++++ b/components/google/core/common/google_util.cc +@@ -117,7 +117,7 @@ bool IsCanonicalHostGoogleHostname(base::StringPiece canonical_host, + StripTrailingDot(&tld); + + static base::NoDestructor<std::set<std::string>> google_tlds( +- {GOOGLE_TLD_LIST}); ++ std::initializer_list<std::string>({GOOGLE_TLD_LIST})); + return base::ContainsKey(*google_tlds, tld.as_string()); + } + +@@ -132,7 +132,8 @@ bool IsGoogleSearchSubdomainUrl(const GURL& url) { + StripTrailingDot(&host); + + static base::NoDestructor<std::set<std::string>> google_subdomains( +- {"ipv4.google.com", "ipv6.google.com"}); ++ std::initializer_list<std::string>( ++ {"ipv4.google.com", "ipv6.google.com"})); + + return base::ContainsKey(*google_subdomains, host.as_string()); + } +-- +2.19.1 + diff --git a/www-client/chromium/files/chromium-73-gcc-0.patch b/www-client/chromium/files/chromium-73-gcc-0.patch new file mode 100644 index 0000000..5a50700 --- /dev/null +++ b/www-client/chromium/files/chromium-73-gcc-0.patch @@ -0,0 +1,108 @@ +From 2c3b57cafbbb38c13a519c9d2fda8b65691d9564 Mon Sep 17 00:00:00 2001 +From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> +Date: Thu, 7 Feb 2019 22:55:37 +0000 +Subject: [PATCH] allocator shim: Swap ALIGN_LINKAGE and SHIM_ALWAYS_EXPORT's + positions +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This fixes the GCC build. GCC seems to be stricter with the position of the +linkage specification, so just swap the terms to prevent an error that looks +like: + +In file included from ../../base/allocator/allocator_shim.cc:333: +../../base/allocator/allocator_shim_override_cpp_symbols.h:39:30: error: expected unqualified-id before string constant + #define ALIGN_LINKAGE extern "C" + ^~~ +../../base/allocator/allocator_shim_override_cpp_symbols.h:99:20: note: in expansion of macro ‘ALIGN_LINKAGE’ + SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW(std::size_t size, + ^~~~~~~~~~~~~ + +Bug: 819294 +Change-Id: I0aa16ea88cead42e83796a1c86afad8b447ddc50 +Reviewed-on: https://chromium-review.googlesource.com/c/1458256 +Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> +Reviewed-by: Thomas Anderson <thomasanderson@chromium.org> +Reviewed-by: Primiano Tucci <primiano@chromium.org> +Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> +Cr-Commit-Position: refs/heads/master@{#630084} +--- + .../allocator_shim_override_cpp_symbols.h | 20 +++++++++---------- + 1 file changed, 10 insertions(+), 10 deletions(-) + +diff --git a/base/allocator/allocator_shim_override_cpp_symbols.h b/base/allocator/allocator_shim_override_cpp_symbols.h +index 1228f5e33d28..01d25b7f6437 100644 +--- a/base/allocator/allocator_shim_override_cpp_symbols.h ++++ b/base/allocator/allocator_shim_override_cpp_symbols.h +@@ -96,57 +96,57 @@ SHIM_ALWAYS_EXPORT void operator delete[](void* p, size_t) __THROW { + ShimCppDelete(p); + } + +-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW(std::size_t size, ++ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void* ALIGN_NEW(std::size_t size, + ALIGN_VAL_T alignment) { + return ShimCppAlignedNew(size, static_cast<size_t>(alignment)); + } + +-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW_NOTHROW( ++ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void* ALIGN_NEW_NOTHROW( + std::size_t size, + ALIGN_VAL_T alignment, + const std::nothrow_t&) __THROW { + return ShimCppAlignedNew(size, static_cast<size_t>(alignment)); + } + +-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ALIGN_DEL(void* p, ALIGN_VAL_T) __THROW { ++ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void ALIGN_DEL(void* p, ALIGN_VAL_T) __THROW { + ShimCppDelete(p); + } + +-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ALIGN_DEL_SIZED(void* p, ++ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void ALIGN_DEL_SIZED(void* p, + std::size_t size, + ALIGN_VAL_T) __THROW { + ShimCppDelete(p); + } + +-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ++ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void + ALIGN_DEL_NOTHROW(void* p, ALIGN_VAL_T, const std::nothrow_t&) __THROW { + ShimCppDelete(p); + } + +-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW_ARR(std::size_t size, ++ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void* ALIGN_NEW_ARR(std::size_t size, + ALIGN_VAL_T alignment) { + return ShimCppAlignedNew(size, static_cast<size_t>(alignment)); + } + +-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW_ARR_NOTHROW( ++ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void* ALIGN_NEW_ARR_NOTHROW( + std::size_t size, + ALIGN_VAL_T alignment, + const std::nothrow_t&) __THROW { + return ShimCppAlignedNew(size, static_cast<size_t>(alignment)); + } + +-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ALIGN_DEL_ARR(void* p, ++ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void ALIGN_DEL_ARR(void* p, + ALIGN_VAL_T) __THROW { + ShimCppDelete(p); + } + +-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ALIGN_DEL_ARR_SIZED(void* p, ++ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void ALIGN_DEL_ARR_SIZED(void* p, + std::size_t size, + ALIGN_VAL_T) __THROW { + ShimCppDelete(p); + } + +-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ++ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void + ALIGN_DEL_ARR_NOTHROW(void* p, ALIGN_VAL_T, const std::nothrow_t&) __THROW { + ShimCppDelete(p); + } +-- +2.20.1 + diff --git a/www-client/chromium/files/chromium-73-gcc-1.patch b/www-client/chromium/files/chromium-73-gcc-1.patch new file mode 100644 index 0000000..c3f8e42 --- /dev/null +++ b/www-client/chromium/files/chromium-73-gcc-1.patch @@ -0,0 +1,99 @@ +From 130a5ae24a02daba8729ba2216bcaf3dbfacea69 Mon Sep 17 00:00:00 2001 +From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> +Date: Fri, 8 Feb 2019 16:58:38 +0000 +Subject: [PATCH] media::learning: Make LabelledExample's move assignment + operator noexcept +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The GCC build is currently broken with an error like this: + + ../../media/learning/common/labelled_example.cc:20:1: error: function ‘media::learning::LabelledExample::LabelledExample(media::learning::LabelledExample&&)’ defaulted on its redeclaration with an exception-specification that differs from the implicit exception-specification ‘’ + LabelledExample::LabelledExample(LabelledExample&& rhs) noexcept = default; + ^~~~~~~~~~~~~~~ + +With GCC, having that noexcept marker requires all members to be marked with +noexcept themselves, and TargetValue was missing some assignment operators +and noexcept markers. + +clang is fine because we pass -fno-exceptions and it disables the same error +there, while GCC continues to raise it (bug 843143 and its corresponding CL +have a longer discussion on this issue). + +Bug: 819294 +Change-Id: Ide30932fc466ccb52d6883a82777e703dae48798 +Reviewed-on: https://chromium-review.googlesource.com/c/1458210 +Commit-Queue: Frank Liberato <liberato@chromium.org> +Reviewed-by: Frank Liberato <liberato@chromium.org> +Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> +Cr-Commit-Position: refs/heads/master@{#630355} +--- + media/learning/common/labelled_example.cc | 3 ++- + media/learning/common/labelled_example.h | 2 +- + media/learning/common/value.cc | 6 ++++++ + media/learning/common/value.h | 4 ++++ + 4 files changed, 13 insertions(+), 2 deletions(-) + +diff --git a/media/learning/common/labelled_example.cc b/media/learning/common/labelled_example.cc +index 76d08509298e..43e834f9f3cf 100644 +--- a/media/learning/common/labelled_example.cc ++++ b/media/learning/common/labelled_example.cc +@@ -59,7 +59,8 @@ bool LabelledExample::operator<(const LabelledExample& rhs) const { + LabelledExample& LabelledExample::operator=(const LabelledExample& rhs) = + default; + +-LabelledExample& LabelledExample::operator=(LabelledExample&& rhs) = default; ++LabelledExample& LabelledExample::operator=(LabelledExample&& rhs) noexcept = ++ default; + + TrainingData::TrainingData() = default; + +diff --git a/media/learning/common/labelled_example.h b/media/learning/common/labelled_example.h +index 4f43c54e7a76..365abc3c0ebf 100644 +--- a/media/learning/common/labelled_example.h ++++ b/media/learning/common/labelled_example.h +@@ -40,7 +40,7 @@ struct COMPONENT_EXPORT(LEARNING_COMMON) LabelledExample { + bool operator<(const LabelledExample& rhs) const; + + LabelledExample& operator=(const LabelledExample& rhs); +- LabelledExample& operator=(LabelledExample&& rhs); ++ LabelledExample& operator=(LabelledExample&& rhs) noexcept; + + // Observed feature values. + // Note that to interpret these values, you probably need to have the +diff --git a/media/learning/common/value.cc b/media/learning/common/value.cc +index 9c9395c25d4e..12ea399d24c3 100644 +--- a/media/learning/common/value.cc ++++ b/media/learning/common/value.cc +@@ -23,6 +23,12 @@ Value::Value(const std::string& x) : value_(base::PersistentHash(x)) {} + + Value::Value(const Value& other) : value_(other.value_) {} + ++Value::Value(Value&& rhs) noexcept = default; ++ ++Value& Value::operator=(const Value& rhs) = default; ++ ++Value& Value::operator=(Value&& rhs) noexcept = default; ++ + bool Value::operator==(const Value& rhs) const { + return value_ == rhs.value_; + } +diff --git a/media/learning/common/value.h b/media/learning/common/value.h +index 0e64da961f34..62f4953f691c 100644 +--- a/media/learning/common/value.h ++++ b/media/learning/common/value.h +@@ -38,6 +38,10 @@ class COMPONENT_EXPORT(LEARNING_COMMON) Value { + explicit Value(const std::string& x); + + Value(const Value& other); ++ Value(Value&&) noexcept; ++ ++ Value& operator=(const Value&); ++ Value& operator=(Value&&) noexcept; + + bool operator==(const Value& rhs) const; + bool operator!=(const Value& rhs) const; +-- +2.20.1 + diff --git a/www-client/chromium/files/chromium-73-gcc-2.patch b/www-client/chromium/files/chromium-73-gcc-2.patch new file mode 100644 index 0000000..9d1f05a --- /dev/null +++ b/www-client/chromium/files/chromium-73-gcc-2.patch @@ -0,0 +1,51 @@ +From a5ba6f9bb7665040045dc0f8087407096630ad7b Mon Sep 17 00:00:00 2001 +From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> +Date: Fri, 8 Feb 2019 02:57:28 +0000 +Subject: [PATCH] color_utils: Use std::sqrt() instead of std::sqrtf() +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This fixes the build with libstdc++: + + ../../ui/gfx/color_utils.cc: In function ‘SkColor color_utils::SetDarkestColorForTesting(SkColor)’: + ../../ui/gfx/color_utils.cc:434:12: error: ‘sqrtf’ is not a member of ‘std’ + std::sqrtf((dark_luminance + 0.05f) * (kWhiteLuminance + 0.05f)) - 0.05f; + ^~~~~ + ../../ui/gfx/color_utils.cc:434:12: note: suggested alternative: ‘sqrt’ + std::sqrtf((dark_luminance + 0.05f) * (kWhiteLuminance + 0.05f)) - 0.05f; + ^~~~~ + sqrt + +sqrtf() is not formally part of C++14 as far as I can see even though libc++ +has it in <cmath>. Additionally, we're only dealing with floats in all parts +of the expression above, so using the float sqrt() overload should be +harmless anyway. + +Bug: 819294 +Change-Id: If6c7bf31819df97a761e6963def6d6506154c34d +Reviewed-on: https://chromium-review.googlesource.com/c/1458193 +Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> +Reviewed-by: Peter Kasting <pkasting@chromium.org> +Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> +Cr-Commit-Position: refs/heads/master@{#630140} +--- + ui/gfx/color_utils.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ui/gfx/color_utils.cc b/ui/gfx/color_utils.cc +index c868cd54bac3..92ba1407d594 100644 +--- a/ui/gfx/color_utils.cc ++++ b/ui/gfx/color_utils.cc +@@ -431,7 +431,7 @@ SkColor SetDarkestColorForTesting(SkColor color) { + // GetContrastRatio(kWhiteLuminance, g_luminance_midpoint). The formula below + // can be verified by plugging it into how GetContrastRatio() operates. + g_luminance_midpoint = +- std::sqrtf((dark_luminance + 0.05f) * (kWhiteLuminance + 0.05f)) - 0.05f; ++ std::sqrt((dark_luminance + 0.05f) * (kWhiteLuminance + 0.05f)) - 0.05f; + + return previous_darkest_color; + } +-- +2.20.1 + diff --git a/www-client/chromium/files/chromium-73-gcc-3.patch b/www-client/chromium/files/chromium-73-gcc-3.patch new file mode 100644 index 0000000..9cc6cf2 --- /dev/null +++ b/www-client/chromium/files/chromium-73-gcc-3.patch @@ -0,0 +1,69 @@ +From c33e832cc145c696d2157796c7640e659740dafa Mon Sep 17 00:00:00 2001 +From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> +Date: Fri, 8 Feb 2019 08:44:00 +0000 +Subject: [PATCH] quic_flags_impl: Fix GCC build after #618558 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84849, having +base::NoDestructor<T<U>> and passing an initializer list of Us does not +work if this is not done explicitly, as GCC incorrectly fails to determine +which constructor overload to use: + + ../../net/third_party/quic/platform/impl/quic_flags_impl.cc: In member function ‘bool quic::TypedQuicFlagHelper<T>::SetFlag(const string&) const [with T = bool; std::__cxx11::string = std::__cxx11::basic_string<char>]’: + ../../net/third_party/quic/platform/impl/quic_flags_impl.cc:156:41: error: call of overloaded ‘NoDestructor(<brace-enclosed initializer list>)’ is ambiguous + {"", "1", "t", "true", "y", "yes"}); + ^ + In file included from ../../net/third_party/quic/platform/impl/quic_flags_impl.h:16, + from ../../net/third_party/quic/platform/impl/quic_flags_impl.cc:5: + ../../base/no_destructor.h:62:3: note: candidate: ‘base::NoDestructor<T>::NoDestructor(const base::NoDestructor<T>&) [with T = std::set<std::__cxx11::basic_string<char> >]’ <deleted> + NoDestructor(const NoDestructor&) = delete; + ^~~~~~~~~~~~ + ../../base/no_destructor.h:60:12: note: candidate: ‘base::NoDestructor<T>::NoDestructor(T&&) [with T = std::set<std::__cxx11::basic_string<char> >]’ + explicit NoDestructor(T&& x) { new (storage_) T(std::move(x)); } + ^~~~~~~~~~~~ + ../../base/no_destructor.h:59:12: note: candidate: ‘base::NoDestructor<T>::NoDestructor(const T&) [with T = std::set<std::__cxx11::basic_string<char> >]’ + explicit NoDestructor(const T& x) { new (storage_) T(x); } + ^~~~~~~~~~~~ + +Explicitly use an std::initializer_list to make the build work everywhere. + +Bug: 819294 +Change-Id: I775be20e3766a88a656b58c94c40869cb1bee2a8 +Reviewed-on: https://chromium-review.googlesource.com/c/1458214 +Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> +Reviewed-by: Ryan Hamilton <rch@chromium.org> +Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> +Cr-Commit-Position: refs/heads/master@{#630249} +--- + net/third_party/quic/platform/impl/quic_flags_impl.cc | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/net/third_party/quic/platform/impl/quic_flags_impl.cc b/net/third_party/quic/platform/impl/quic_flags_impl.cc +index 5e6962d1e770..3fa45fc6892d 100644 +--- a/net/third_party/quic/platform/impl/quic_flags_impl.cc ++++ b/net/third_party/quic/platform/impl/quic_flags_impl.cc +@@ -5,6 +5,7 @@ + #include "net/third_party/quic/platform/impl/quic_flags_impl.h" + + #include <algorithm> ++#include <initializer_list> + #include <iostream> + #include <set> + +@@ -153,9 +154,9 @@ std::string QuicFlagRegistry::GetHelp() const { + template <> + bool TypedQuicFlagHelper<bool>::SetFlag(const std::string& s) const { + static const base::NoDestructor<std::set<std::string>> kTrueValues( +- {"", "1", "t", "true", "y", "yes"}); ++ std::initializer_list<std::string>({"", "1", "t", "true", "y", "yes"})); + static const base::NoDestructor<std::set<std::string>> kFalseValues( +- {"0", "f", "false", "n", "no"}); ++ std::initializer_list<std::string>({"0", "f", "false", "n", "no"})); + if (kTrueValues->find(base::ToLowerASCII(s)) != kTrueValues->end()) { + *flag_ = true; + return true; +-- +2.20.1 + diff --git a/www-client/chromium/files/chromium-73-gcc-4.patch b/www-client/chromium/files/chromium-73-gcc-4.patch new file mode 100644 index 0000000..df7d630 --- /dev/null +++ b/www-client/chromium/files/chromium-73-gcc-4.patch @@ -0,0 +1,59 @@ +From bdd76190e54e6a0e11343dd19e4bf1d06956fa48 Mon Sep 17 00:00:00 2001 +From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> +Date: Wed, 13 Feb 2019 01:02:27 +0000 +Subject: [PATCH] BaseRenderingContext2D: Use base::CheckMul and simplify code + in putImageData() +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Follow-up to commit e0b3253a56 ("Fix image conversion truncation issues"). +The current code does not build with GCC due to +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89287: + + ../../third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc: In member function ‘void blink::BaseRenderingContext2D::putImageData(blink::ImageData*, int, int, int, int, int, int, blink::ExceptionState&)’: + ../../third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc:1777:44: error: default type conversion can't deduce template argument for ‘template<class Dst, typename std::enable_if<base::internal::IsNumericRangeContained<Dst, long unsigned int, void>::value, void>::type* <anonymous> > constexpr base::internal::StrictNumeric<T>::operator Dst() const [with Dst = Dst; typename std::enable_if<base::internal::IsNumericRangeContained<Dst, T>::value>::type* <anonymous> = <enumerator>; T = long unsigned int]’ + new uint8_t[data_length.ValueOrDie()]); + ^ + +Work around it by using the more idiomatic base::CheckMul() with +AssignIfValid, so that we can have |data_length| be a size_t again and not +leave it to the compiler to figure out the type we want when creating the +|converted_pixels| array. + +Bug: 819294 +Change-Id: Id124cc4f3d749b45def4708e21e4badafd708578 +Reviewed-on: https://chromium-review.googlesource.com/c/1467201 +Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> +Commit-Queue: Kentaro Hara <haraken@chromium.org> +Reviewed-by: Kentaro Hara <haraken@chromium.org> +Cr-Commit-Position: refs/heads/master@{#631472} +--- + .../canvas/canvas2d/base_rendering_context_2d.cc | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc +index d9fa696c9a9d..34a8a202bfd3 100644 +--- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc ++++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc +@@ -1769,12 +1769,12 @@ void BaseRenderingContext2D::putImageData(ImageData* data, + CanvasColorParams(ColorParams().ColorSpace(), PixelFormat(), kNonOpaque); + if (data_color_params.NeedsColorConversion(context_color_params) || + PixelFormat() == kF16CanvasPixelFormat) { +- base::CheckedNumeric<size_t> data_length = data->Size().Area(); +- data_length *= context_color_params.BytesPerPixel(); +- if (!data_length.IsValid()) ++ size_t data_length; ++ if (!base::CheckMul(data->Size().Area(), ++ context_color_params.BytesPerPixel()) ++ .AssignIfValid(&data_length)) + return; +- std::unique_ptr<uint8_t[]> converted_pixels( +- new uint8_t[data_length.ValueOrDie()]); ++ std::unique_ptr<uint8_t[]> converted_pixels(new uint8_t[data_length]); + if (data->ImageDataInCanvasColorSettings( + ColorParams().ColorSpace(), PixelFormat(), converted_pixels.get(), + kRGBAColorType)) { +-- +2.20.1 + diff --git a/www-client/chromium/files/chromium-73-gcc-5.patch b/www-client/chromium/files/chromium-73-gcc-5.patch new file mode 100644 index 0000000..033861e --- /dev/null +++ b/www-client/chromium/files/chromium-73-gcc-5.patch @@ -0,0 +1,65 @@ +From 78b0f0dfa9e6f3c37b71102c01def92f1ab8c330 Mon Sep 17 00:00:00 2001 +From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> +Date: Wed, 13 Feb 2019 23:28:46 +0000 +Subject: [PATCH] CastActivityManager: Do not make DoLaunchSessionParams' move + constructor noexcept +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This fixes the GCC build: + + ../../chrome/browser/media/router/providers/cast/cast_activity_manager.cc:806:1: error: function ‘media_router::CastActivityManager::DoLaunchSessionParams::DoLaunchSessionParams(media_router::CastActivityManager::DoLaunchSessionParams&&)’ defaulted on its redeclaration with an exception-specification that differs from the implicit exception-specification ‘’ + CastActivityManager::DoLaunchSessionParams::DoLaunchSessionParams( + ^~~~~~~~~~~~~~~~~~~ + +With GCC, having that noexcept marker requires all members to be marked with +noexcept themselves, and MediaRoute, CastMediaSource and url::Origin need +the right annotations. Just making DoLaunchSessionParams not noexcept is the +least intrusive solution for now. + +clang is fine because we pass -fno-exceptions and it disables the same error +there, while GCC continues to raise it (bug 843143 and its corresponding CL +have a longer discussion on this issue). + +Bug: 819294 +Change-Id: Ia3a5fb60b5e74e68bd35cfa50e2fcc728b64e5eb +Reviewed-on: https://chromium-review.googlesource.com/c/1469942 +Commit-Queue: mark a. foltz <mfoltz@chromium.org> +Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> +Reviewed-by: mark a. foltz <mfoltz@chromium.org> +Cr-Commit-Position: refs/heads/master@{#631962} +--- + .../media/router/providers/cast/cast_activity_manager.cc | 2 +- + .../browser/media/router/providers/cast/cast_activity_manager.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/chrome/browser/media/router/providers/cast/cast_activity_manager.cc b/chrome/browser/media/router/providers/cast/cast_activity_manager.cc +index b7ee9695f69a..8569e0cd30a3 100644 +--- a/chrome/browser/media/router/providers/cast/cast_activity_manager.cc ++++ b/chrome/browser/media/router/providers/cast/cast_activity_manager.cc +@@ -804,7 +804,7 @@ CastActivityManager::DoLaunchSessionParams::DoLaunchSessionParams( + callback(std::move(callback)) {} + + CastActivityManager::DoLaunchSessionParams::DoLaunchSessionParams( +- DoLaunchSessionParams&& other) noexcept = default; ++ DoLaunchSessionParams&& other) = default; + + CastActivityManager::DoLaunchSessionParams::~DoLaunchSessionParams() = default; + +diff --git a/chrome/browser/media/router/providers/cast/cast_activity_manager.h b/chrome/browser/media/router/providers/cast/cast_activity_manager.h +index 325bffc725ee..08fe0ccca603 100644 +--- a/chrome/browser/media/router/providers/cast/cast_activity_manager.h ++++ b/chrome/browser/media/router/providers/cast/cast_activity_manager.h +@@ -295,7 +295,7 @@ class CastActivityManager : public cast_channel::CastMessageHandler::Observer, + const url::Origin& origin, + int tab_id, + mojom::MediaRouteProvider::CreateRouteCallback callback); +- DoLaunchSessionParams(DoLaunchSessionParams&& other) noexcept; ++ DoLaunchSessionParams(DoLaunchSessionParams&& other); + ~DoLaunchSessionParams(); + DoLaunchSessionParams& operator=(DoLaunchSessionParams&&) = delete; + +-- +2.20.1 + diff --git a/www-client/chromium/files/chromium-73-gcc-6.patch b/www-client/chromium/files/chromium-73-gcc-6.patch new file mode 100644 index 0000000..3cd72ab --- /dev/null +++ b/www-client/chromium/files/chromium-73-gcc-6.patch @@ -0,0 +1,88 @@ +From cf4c534f04c223f8a9d65407852e2a531a6d7fb6 Mon Sep 17 00:00:00 2001 +From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> +Date: Thu, 14 Feb 2019 22:22:21 +0000 +Subject: [PATCH] chrome/browser: Replace some forward declarations with actual + includes +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This fixes the GCC build which was failing like this: + + ../../base/scoped_observer.h: In instantiation of ‘void ScopedObserver<Source, Observer>::RemoveAll() [with Source = TabStripModel; Observer = TabStripModelObserver]’: + ../../base/scoped_observer.h:26:5: required from ‘ScopedObserver<Source, Observer>::~ScopedObserver() [with Source = TabStripModel; Observer = TabStripModelObserver]’ + ../../chrome/browser/ui/views/extensions/extension_popup.h:115:70: required from here + ../../base/scoped_observer.h:45:20: error: invalid use of incomplete type ‘class TabStripModel’ + sources_[i]->RemoveObserver(observer_); + ~~~~~~~~~~~~~^~~~~~~~~~~~~~ + +This is caused by https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89311 ("Brace +initialization needlessly invokes destructor"), i.e. having something like + + ScopedObserver<T, U> observer_{this}; + +in a header declaration requires T and U to be fully declared because +ScopedObserver's destructor references them. In a few cases, T was only +forward-declared. + +Bug: 819294 +Change-Id: Ie5b9dc2745e27d4532c5539e3845a8c9147a0595 +Reviewed-on: https://chromium-review.googlesource.com/c/1472576 +Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> +Commit-Queue: Alan Cutter <alancutter@chromium.org> +Reviewed-by: Finnur Thorarinsson <finnur@chromium.org> +Reviewed-by: Alan Cutter <alancutter@chromium.org> +Cr-Commit-Position: refs/heads/master@{#632385} +--- + chrome/browser/ui/views/extensions/extension_popup.cc | 1 - + chrome/browser/ui/views/extensions/extension_popup.h | 1 + + chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.cc | 1 - + chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h | 2 +- + .../web_applications/extensions/bookmark_app_tab_helper.cc | 1 - + .../web_applications/extensions/bookmark_app_tab_helper.h | 2 +- + 6 files changed, 3 insertions(+), 5 deletions(-) + +diff --git a/chrome/browser/ui/views/extensions/extension_popup.cc b/chrome/browser/ui/views/extensions/extension_popup.cc +index 3f0985d383dd..57d16aba9e9f 100644 +--- a/chrome/browser/ui/views/extensions/extension_popup.cc ++++ b/chrome/browser/ui/views/extensions/extension_popup.cc +@@ -8,7 +8,6 @@ + #include "chrome/browser/devtools/devtools_window.h" + #include "chrome/browser/extensions/extension_view_host.h" + #include "chrome/browser/ui/browser.h" +-#include "chrome/browser/ui/tabs/tab_strip_model.h" + #include "content/public/browser/devtools_agent_host.h" + #include "content/public/browser/notification_details.h" + #include "content/public/browser/notification_source.h" +diff --git a/chrome/browser/ui/views/extensions/extension_popup.h b/chrome/browser/ui/views/extensions/extension_popup.h +index 3661b5bda950..9018efa0fea5 100644 +--- a/chrome/browser/ui/views/extensions/extension_popup.h ++++ b/chrome/browser/ui/views/extensions/extension_popup.h +@@ -9,6 +9,7 @@ + #include "base/compiler_specific.h" + #include "base/macros.h" + #include "base/scoped_observer.h" ++#include "chrome/browser/ui/tabs/tab_strip_model.h" + #include "chrome/browser/ui/tabs/tab_strip_model_observer.h" + #include "chrome/browser/ui/views/extensions/extension_view_views.h" + #include "content/public/browser/devtools_agent_host_observer.h" +diff --git a/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h b/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h +index 2a3ea8e4f91f..ac44a4f05dec 100644 +--- a/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h ++++ b/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h +@@ -8,6 +8,7 @@ + #include "base/macros.h" + #include "base/memory/weak_ptr.h" + #include "base/scoped_observer.h" ++#include "chrome/browser/ui/toolbar/toolbar_actions_bar.h" + #include "chrome/browser/ui/toolbar/toolbar_actions_bar_observer.h" + #include "chrome/browser/ui/views/frame/app_menu_button_observer.h" + #include "ui/views/controls/scroll_view.h" +@@ -16,7 +17,6 @@ class AppMenu; + class AppMenuButton; + class Browser; + class BrowserActionsContainer; +-class ToolbarActionsBar; + + namespace views { + class MenuItemView; diff --git a/www-client/chromium/files/chromium-74-gcc.patch b/www-client/chromium/files/chromium-74-gcc.patch new file mode 100644 index 0000000..d4829ff --- /dev/null +++ b/www-client/chromium/files/chromium-74-gcc.patch @@ -0,0 +1,25 @@ +diff --git a/third_party/dav1d/BUILD.gn b/third_party/dav1d/BUILD.gn +index aedc658c3..4baeac7df 100644 +--- a/third_party/dav1d/BUILD.gn ++++ b/third_party/dav1d/BUILD.gn +@@ -31,9 +31,9 @@ if (current_cpu == "x86" || current_cpu == "x64") { + } else { + needs_stack_alignment = true + if (current_cpu == "x86") { +- stack_alignment = 16 ++ stack_alignment = 4 + } else if (current_cpu == "x64") { +- stack_alignment = 32 ++ stack_alignment = 5 + } + } + } else { +@@ -73,7 +73,7 @@ dav1d_copts = [ + if (!is_win) { + dav1d_copts += [ "-std=c99" ] + if (needs_stack_alignment) { +- dav1d_copts += [ "-mstack-alignment=$stack_alignment" ] ++ dav1d_copts += [ "-mpreferred-stack-boundary=$stack_alignment" ] + } + } + diff --git a/www-client/chromium/files/chromium-75-vaapi.patch b/www-client/chromium/files/chromium-75-vaapi.patch new file mode 100644 index 0000000..7e08455 --- /dev/null +++ b/www-client/chromium/files/chromium-75-vaapi.patch @@ -0,0 +1,254 @@ +diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc +index cb04c939a..dc1a995a6 100644 +--- a/chrome/browser/about_flags.cc ++++ b/chrome/browser/about_flags.cc +@@ -1434,7 +1434,7 @@ const FeatureEntry kFeatureEntries[] = { + "disable-accelerated-video-decode", + flag_descriptions::kAcceleratedVideoDecodeName, + flag_descriptions::kAcceleratedVideoDecodeDescription, +- kOsMac | kOsWin | kOsCrOS | kOsAndroid, ++ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux, + SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode), + }, + #if defined(OS_WIN) +@@ -1980,12 +1980,12 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)}, + #endif // ENABLE_ISOLATED_XR_SERVICE + #endif // ENABLE_VR +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + {"disable-accelerated-mjpeg-decode", + flag_descriptions::kAcceleratedMjpegDecodeName, +- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS, ++ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux, + SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)}, +-#endif // OS_CHROMEOS ++#endif // OS_CHROMEOS OS_LINUX + {"v8-cache-options", flag_descriptions::kV8CacheOptionsName, + flag_descriptions::kV8CacheOptionsDescription, kOsAll, + MULTI_VALUE_TYPE(kV8CacheOptionsChoices)}, +@@ -3696,10 +3696,10 @@ const FeatureEntry kFeatureEntries[] = { + "AutofillDropdownLayout")}, + #endif // OS_ANDROID + +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + {"enable-vaapi-jpeg-image-decode-acceleration", + flag_descriptions::kVaapiJpegImageDecodeAccelerationName, +- flag_descriptions::kVaapiJpegImageDecodeAccelerationDescription, kOsCrOS, ++ flag_descriptions::kVaapiJpegImageDecodeAccelerationDescription, kOsCrOS | kOsLinux, + FEATURE_VALUE_TYPE(features::kVaapiJpegImageDecodeAcceleration)}, + #endif + +diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc +index 7457414f6..5c84e90f6 100644 +--- a/chrome/browser/flag_descriptions.cc ++++ b/chrome/browser/flag_descriptions.cc +@@ -2991,13 +2991,22 @@ const char kMacViewsTaskManagerDescription[] = + + // Chrome OS ------------------------------------------------------------------- + +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) + + const char kAcceleratedMjpegDecodeName[] = + "Hardware-accelerated mjpeg decode for captured frame"; + const char kAcceleratedMjpegDecodeDescription[] = + "Enable hardware-accelerated mjpeg decode for captured frame where " + "available."; ++const char kVaapiJpegImageDecodeAccelerationName[] = ++ "VA-API JPEG decode acceleration for images"; ++const char kVaapiJpegImageDecodeAccelerationDescription[] = ++ "Enable or disable decode acceleration of JPEG images (as opposed to camera" ++ " captures) using the VA-API."; ++ ++#endif // defined(OS_CHROMEOS) defined(OS_LINUX) and !defined(OS_ANDROID) ++ ++#if defined(OS_CHROMEOS) + + const char kAppServiceAshName[] = "App Service Ash"; + const char kAppServiceAshDescription[] = +@@ -3437,12 +3446,6 @@ const char kUserActivityPredictionMlServiceName[] = + const char kUserActivityPredictionMlServiceDescription[] = + "Uses the new ML Service model for user activity prediction (Smart Dim)."; + +-const char kVaapiJpegImageDecodeAccelerationName[] = +- "VA-API JPEG decode acceleration for images"; +-const char kVaapiJpegImageDecodeAccelerationDescription[] = +- "Enable or disable decode acceleration of JPEG images (as opposed to camera" +- " captures) using the VA-API."; +- + const char kVideoPlayerChromecastSupportName[] = + "Experimental Chromecast support for Video Player"; + const char kVideoPlayerChromecastSupportDescription[] = +diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h +index 11e45a0ac..d7cbf8394 100644 +--- a/chrome/browser/flag_descriptions.h ++++ b/chrome/browser/flag_descriptions.h +@@ -1779,11 +1779,17 @@ extern const char kPermissionPromptPersistenceToggleDescription[]; + + // Chrome OS ------------------------------------------------------------------ + +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) + + extern const char kAcceleratedMjpegDecodeName[]; + extern const char kAcceleratedMjpegDecodeDescription[]; + ++extern const char kVaapiJpegImageDecodeAccelerationName[]; ++extern const char kVaapiJpegImageDecodeAccelerationDescription[]; ++ ++#endif ++ ++#if defined(OS_CHROMEOS) + extern const char kAppServiceAshName[]; + extern const char kAppServiceAshDescription[]; + +@@ -2059,9 +2065,6 @@ extern const char kUseMonitorColorSpaceDescription[]; + extern const char kUserActivityPredictionMlServiceName[]; + extern const char kUserActivityPredictionMlServiceDescription[]; + +-extern const char kVaapiJpegImageDecodeAccelerationName[]; +-extern const char kVaapiJpegImageDecodeAccelerationDescription[]; +- + extern const char kVideoPlayerChromecastSupportName[]; + extern const char kVideoPlayerChromecastSupportDescription[]; + +diff --git a/components/viz/service/main/viz_main_impl.cc b/components/viz/service/main/viz_main_impl.cc +index 284d0167d..87d5e14c5 100644 +--- a/components/viz/service/main/viz_main_impl.cc ++++ b/components/viz/service/main/viz_main_impl.cc +@@ -36,7 +36,7 @@ std::unique_ptr<base::Thread> CreateAndStartIOThread() { + // It should be possible to use |main_task_runner_| for doing IO tasks. + base::Thread::Options thread_options(base::MessageLoop::TYPE_IO, 0); + thread_options.priority = base::ThreadPriority::NORMAL; +-#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) ++#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) || defined(OS_LINUX) + // TODO(reveman): Remove this in favor of setting it explicitly for each + // type of process. + thread_options.priority = base::ThreadPriority::DISPLAY; +diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn +index 2b1165264..fec963bd9 100644 +--- a/content/gpu/BUILD.gn ++++ b/content/gpu/BUILD.gn +@@ -6,6 +6,7 @@ import("//build/config/jumbo.gni") + import("//build/config/ui.gni") + import("//gpu/vulkan/features.gni") + import("//media/media_options.gni") ++import("//media/gpu/args.gni") + import("//ui/ozone/ozone.gni") + + # See //content/BUILD.gn for how this works. +@@ -127,4 +128,8 @@ target(link_target_type, "gpu_sources") { + (!is_chromecast || is_cast_desktop_build)) { + configs += [ "//build/config/linux/dri" ] + } ++ # Use vaapi on desktop Linux builds when use_vaapi is set ++ if (is_desktop_linux && use_vaapi) { ++ public_configs = [ "//media/gpu:libva_config" ] ++ } + } +diff --git a/content/gpu/gpu_main.cc b/content/gpu/gpu_main.cc +index a838f0ccf..4c891fb92 100644 +--- a/content/gpu/gpu_main.cc ++++ b/content/gpu/gpu_main.cc +@@ -288,7 +288,7 @@ int GpuMain(const MainFunctionParams& parameters) { + + base::PlatformThread::SetName("CrGpuMain"); + +-#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) ++#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) || defined(OS_LINUX) + // Set thread priority before sandbox initialization. + base::PlatformThread::SetCurrentThreadPriority(base::ThreadPriority::DISPLAY); + #endif +@@ -321,7 +321,7 @@ int GpuMain(const MainFunctionParams& parameters) { + GetContentClient()->SetGpuInfo(gpu_init->gpu_info()); + + base::ThreadPriority io_thread_priority = base::ThreadPriority::NORMAL; +-#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) ++#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) || defined(OS_LINUX) + io_thread_priority = base::ThreadPriority::DISPLAY; + #endif + +diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json +index d4c3b4364..935fdeb86 100644 +--- a/gpu/config/software_rendering_list.json ++++ b/gpu/config/software_rendering_list.json +@@ -369,17 +369,6 @@ + "all" + ] + }, +- { +- "id": 48, +- "description": "Accelerated video decode is unavailable on Linux", +- "cr_bugs": [137247], +- "os": { +- "type": "linux" +- }, +- "features": [ +- "accelerated_video_decode" +- ] +- }, + { + "id": 50, + "description": "Disable VMware software renderer on older Mesa", +diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc +index b3477148d..477caecdb 100644 +--- a/media/base/media_switches.cc ++++ b/media/base/media_switches.cc +@@ -517,7 +517,7 @@ bool IsVideoCaptureAcceleratedJpegDecodingEnabled() { + switches::kUseFakeJpegDecodeAccelerator)) { + return true; + } +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + return true; + #endif + return false; +diff --git a/media/filters/BUILD.gn b/media/filters/BUILD.gn +index 81c1e4fca..81996bc56 100644 +--- a/media/filters/BUILD.gn ++++ b/media/filters/BUILD.gn +@@ -5,6 +5,7 @@ + import("//build/config/jumbo.gni") + import("//media/media_options.gni") + import("//third_party/libaom/options.gni") ++import("//media/gpu/args.gni") + + jumbo_source_set("filters") { + # Do not expand the visibility here without double-checking with OWNERS, this +@@ -212,7 +213,7 @@ jumbo_source_set("filters") { + deps += [ "//media/base/android" ] + } + +- if (current_cpu != "arm" && is_linux) { ++ if (use_vaapi && is_linux) { + sources += [ + "h264_bitstream_buffer.cc", + "h264_bitstream_buffer.h", +diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn +index b1750d527..cc1ad45af 100644 +--- a/media/gpu/BUILD.gn ++++ b/media/gpu/BUILD.gn +@@ -512,6 +512,13 @@ if (use_v4l2_codec || use_vaapi || is_mac || is_win) { + } + } + ++import("//build/config/linux/pkg_config.gni") ++ ++pkg_config("libva_config") { ++ packages = [ "libva" ] ++} ++ ++ + if (use_v4l2_codec || use_vaapi) { + test("jpeg_encode_accelerator_unittest") { + deps = [ +@@ -582,6 +589,7 @@ if (is_chromeos || is_linux) { + if (use_ozone) { + deps += [ "//ui/ozone" ] + } ++ public_configs = [ ":libva_config" ] + } + } + diff --git a/www-client/chromium/files/chromium-76-arm64-skia.patch b/www-client/chromium/files/chromium-76-arm64-skia.patch new file mode 100644 index 0000000..8a44235 --- /dev/null +++ b/www-client/chromium/files/chromium-76-arm64-skia.patch @@ -0,0 +1,41 @@ +From 7aacb0b30a86936aedd1308708d1a51d951197f2 Mon Sep 17 00:00:00 2001 +From: Mike Klein <mtklein@google.com> +Date: Tue, 02 Jul 2019 13:23:06 -0500 +Subject: [PATCH] fix GCC arm64 builds + +These two guards are checking if we're building for aarch64 and thus +have F16 conversion instructions, but weren't checking if we want to use +them (if we have them _and_ we're being compiled by Clang). At head +we're trying to pass a 2-byte uint16_t to a function expecting an 8-byte +uint16x4_t, etc. + +Change-Id: I21f6cd2100ec81ccdd47c4ec0575107624cd7c5a +Reviewed-on: https://skia-review.googlesource.com/c/skia/+/225257 +Reviewed-by: Herb Derby <herb@google.com> +Commit-Queue: Mike Klein <mtklein@google.com> +--- + +diff --git a/third_party/skia/src/opts/SkRasterPipeline_opts.h b/third_party/skia/src/opts/SkRasterPipeline_opts.h +index 0eae9fe..e05f36c 100644 +--- a/third_party/skia/src/opts/SkRasterPipeline_opts.h ++++ b/third_party/skia/src/opts/SkRasterPipeline_opts.h +@@ -972,7 +972,8 @@ + } + + SI F from_half(U16 h) { +-#if defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds. ++#if defined(JUMPER_IS_NEON) && defined(SK_CPU_ARM64) \ ++ && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds. + return vcvt_f32_f16(h); + + #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512) +@@ -992,7 +993,8 @@ + } + + SI U16 to_half(F f) { +-#if defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds. ++#if defined(JUMPER_IS_NEON) && defined(SK_CPU_ARM64) \ ++ && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds. + return vcvt_f16_f32(f); + + #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512) diff --git a/www-client/chromium/files/chromium-76-gcc-ambiguous-nodestructor.patch b/www-client/chromium/files/chromium-76-gcc-ambiguous-nodestructor.patch new file mode 100644 index 0000000..587abf3 --- /dev/null +++ b/www-client/chromium/files/chromium-76-gcc-ambiguous-nodestructor.patch @@ -0,0 +1,39 @@ +From 52b5ceac95b67491b1c71f0ef9a32b778bbbaa2e Mon Sep 17 00:00:00 2001 +From: Jose Dapena Paz <jose.dapena@lge.com> +Date: Wed, 05 Jun 2019 19:46:55 +0000 +Subject: [PATCH] GCC: avoid ambiguous NoDestructor creation in GetNeverSniffedMimeTypes. + +Use brace-list notation to wrap the already existing brace-list for +initializing the flat-set. This resolves an ambiguous instantiation +in GCC. + +Bug: 819294 +Change-Id: I89ddf12522d62a5140a8c2c41dc98e30ec7a0e78 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645774 +Reviewed-by: Matt Menke <mmenke@chromium.org> +Commit-Queue: José Dapena Paz <jose.dapena@lge.com> +Cr-Commit-Position: refs/heads/master@{#666401} +--- + +diff --git a/services/network/cross_origin_read_blocking.cc b/services/network/cross_origin_read_blocking.cc +index 30999c0..60a03f6 100644 +--- a/services/network/cross_origin_read_blocking.cc ++++ b/services/network/cross_origin_read_blocking.cc +@@ -211,7 +211,7 @@ + // confirmation sniffing because images, scripts, etc. are frequently + // mislabelled by http servers as HTML/JSON/XML). + base::flat_set<std::string>& GetNeverSniffedMimeTypes() { +- static base::NoDestructor<base::flat_set<std::string>> s_types({ ++ static base::NoDestructor<base::flat_set<std::string>> s_types{{ + // The list below has been populated based on most commonly used content + // types according to HTTP Archive - see: + // https://github.com/whatwg/fetch/issues/860#issuecomment-457330454 +@@ -224,7 +224,7 @@ + "application/x-www-form-urlencoded", + "application/zip", + "text/event-stream", +- }); ++ }}; + + // All items need to be lower-case, to support case-insensitive comparisons + // later. diff --git a/www-client/chromium/files/chromium-76-gcc-blink-constexpr.patch b/www-client/chromium/files/chromium-76-gcc-blink-constexpr.patch new file mode 100644 index 0000000..26bba05 --- /dev/null +++ b/www-client/chromium/files/chromium-76-gcc-blink-constexpr.patch @@ -0,0 +1,32 @@ +From cf6d6b40d711fce93a24a2cf517fa3becdbae8bb Mon Sep 17 00:00:00 2001 +From: Jose Dapena Paz <jose.dapena@lge.com> +Date: Wed, 05 Jun 2019 17:18:40 +0000 +Subject: [PATCH] Make blink::LayoutUnit::HasFraction constexpr + +Other HasFraction methods as in PhysicalUnit are declared already +constexpr and using it. It breaks GCC build. + +Bug: 819294. +Change-Id: I0c4bd9bd206d45cf31f7fa815ce8533718a425cb +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645222 +Reviewed-by: vmpstr <vmpstr@chromium.org> +Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org> +Commit-Queue: José Dapena Paz <jose.dapena@lge.com> +Cr-Commit-Position: refs/heads/master@{#666336} +--- + +diff --git a/third_party/blink/renderer/platform/geometry/layout_unit.h b/third_party/blink/renderer/platform/geometry/layout_unit.h +index f073986..b6dbc76 100644 +--- a/third_party/blink/renderer/platform/geometry/layout_unit.h ++++ b/third_party/blink/renderer/platform/geometry/layout_unit.h +@@ -202,7 +202,9 @@ + return value_ > 0 ? LayoutUnit() : *this; + } + +- bool HasFraction() const { return RawValue() % kFixedPointDenominator; } ++ constexpr bool HasFraction() const { ++ return RawValue() % kFixedPointDenominator; ++ } + + LayoutUnit Fraction() const { + // Compute fraction using the mod operator to preserve the sign of the value diff --git a/www-client/chromium/files/chromium-76-gcc-blink-namespace1.patch b/www-client/chromium/files/chromium-76-gcc-blink-namespace1.patch new file mode 100644 index 0000000..bae3ede --- /dev/null +++ b/www-client/chromium/files/chromium-76-gcc-blink-namespace1.patch @@ -0,0 +1,91 @@ +From c6afbd59c997c2b64f11abdd1eaef71ae8ea2ddc Mon Sep 17 00:00:00 2001 +From: Jose Dapena Paz <jose.dapena@lge.com> +Date: Fri, 07 Jun 2019 18:11:15 +0000 +Subject: [PATCH] GCC: FeaturePolicyParser ParseValueForFuzzer is not in anonymous namespace + +Compilation fails because we are declaring ParseValueForFuzzer as friend method, +but we are declaring it is in anonymous namespace. Moving to global namespace +still fails (in this case in Clang). + +So final solution is making it a public static method of FeaturePolicyParser. + +Bug: 819294 +Change-Id: Iea307cb6faef675b748d6eb5da2175dcbb17fdc7 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645223 +Commit-Queue: José Dapena Paz <jose.dapena@lge.com> +Reviewed-by: Luna Lu <loonybear@chromium.org> +Cr-Commit-Position: refs/heads/master@{#667228} +--- + +diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc +index f1c9594..bae91a1 100644 +--- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc ++++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc +@@ -323,6 +323,13 @@ + return value; + } + ++void FeaturePolicyParser::ParseValueForFuzzer( ++ blink::mojom::PolicyValueType feature_type, ++ const WTF::String& value_string) { ++ bool ok; ++ ParseValueForType(feature_type, value_string, &ok); ++} ++ + bool IsFeatureDeclared(mojom::FeaturePolicyFeature feature, + const ParsedFeaturePolicy& policy) { + return std::any_of(policy.begin(), policy.end(), +diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h +index fd25d90..8aa7323 100644 +--- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h ++++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h +@@ -16,9 +16,6 @@ + #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" + #include "third_party/blink/renderer/platform/wtf/vector.h" + +-// Forward declare for friendship. +-void ParseValueForFuzzer(blink::mojom::PolicyValueType, const WTF::String&); +- + namespace blink { + + class Document; +@@ -79,8 +76,10 @@ + const FeatureNameMap& feature_names, + ExecutionContext* execution_context = nullptr); + ++ // Used for LLVM fuzzer test ++ static void ParseValueForFuzzer(mojom::PolicyValueType, const String&); ++ + private: +- friend void ::ParseValueForFuzzer(mojom::PolicyValueType, const String&); + static PolicyValue GetFallbackValueForFeature( + mojom::FeaturePolicyFeature feature); + static PolicyValue ParseValueForType(mojom::PolicyValueType feature_type, +diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc +index 7f8e6aa..1455636 100644 +--- a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc ++++ b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc +@@ -13,19 +13,12 @@ + #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" + #include "third_party/blink/renderer/platform/wtf/vector.h" + +-void ParseValueForFuzzer(blink::mojom::PolicyValueType feature_type, +- const WTF::String& value_string) { +- bool ok; +- blink::FeaturePolicyParser::ParseValueForType(feature_type, value_string, +- &ok); +-} +- + extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { + static blink::BlinkFuzzerTestSupport test_support = + blink::BlinkFuzzerTestSupport(); +- ParseValueForFuzzer(blink::mojom::PolicyValueType::kBool, +- WTF::String(data, size)); +- ParseValueForFuzzer(blink::mojom::PolicyValueType::kDecDouble, +- WTF::String(data, size)); ++ blink::FeaturePolicyParser::ParseValueForFuzzer( ++ blink::mojom::PolicyValueType::kBool, WTF::String(data, size)); ++ blink::FeaturePolicyParser::ParseValueForFuzzer( ++ blink::mojom::PolicyValueType::kDecDouble, WTF::String(data, size)); + return 0; + } diff --git a/www-client/chromium/files/chromium-76-gcc-blink-namespace2.patch b/www-client/chromium/files/chromium-76-gcc-blink-namespace2.patch new file mode 100644 index 0000000..1d4b90f --- /dev/null +++ b/www-client/chromium/files/chromium-76-gcc-blink-namespace2.patch @@ -0,0 +1,97 @@ +From dcb55fb8f18abe5f43d260aa67b14b2dc996f992 Mon Sep 17 00:00:00 2001 +From: Jose Dapena Paz <jose.dapena@lge.com> +Date: Tue, 11 Jun 2019 08:00:13 +0000 +Subject: [PATCH] GCC: move explicit specialization out of RunInfo + +Explicit specialization in non-namespace scope is not allowed in C++, and GCC breaks +build because of that. Move the template specializations out of RunInfo declaration +in shape_result_inline_headeres.h to fix the GCC build issue. + +Bug: 819294 +Change-Id: Id083852bcf8e9efbdc911fdad28fd8767d2905d0 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651728 +Reviewed-by: Kinuko Yasuda <kinuko@chromium.org> +Commit-Queue: José Dapena Paz <jose.dapena@lge.com> +Cr-Commit-Position: refs/heads/master@{#667901} +--- + +diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h +index 76ee6091..c14d3a0 100644 +--- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h ++++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h +@@ -251,37 +251,6 @@ + template <bool has_non_zero_glyph_offsets> + struct iterator final {}; + +- // For non-zero glyph offset array +- template <> +- struct iterator<true> final { +- // The constructor for ShapeResult +- explicit iterator(const GlyphOffsetArray& array) +- : pointer(array.storage_.get()) { +- DCHECK(pointer); +- } +- +- // The constructor for ShapeResultView +- explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) { +- DCHECK(pointer); +- } +- +- GlyphOffset operator*() const { return *pointer; } +- void operator++() { ++pointer; } +- +- const GlyphOffset* pointer; +- }; +- +- // For zero glyph offset array +- template <> +- struct iterator<false> final { +- explicit iterator(const GlyphOffsetArray& array) { +- DCHECK(!array.HasStorage()); +- } +- explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); } +- GlyphOffset operator*() const { return GlyphOffset(); } +- void operator++() {} +- }; +- + template <bool has_non_zero_glyph_offsets> + iterator<has_non_zero_glyph_offsets> GetIterator() const { + return iterator<has_non_zero_glyph_offsets>(*this); +@@ -495,6 +464,37 @@ + float width_; + }; + ++// For non-zero glyph offset array ++template <> ++struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<true> final { ++ // The constructor for ShapeResult ++ explicit iterator(const GlyphOffsetArray& array) ++ : pointer(array.storage_.get()) { ++ DCHECK(pointer); ++ } ++ ++ // The constructor for ShapeResultView ++ explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) { ++ DCHECK(pointer); ++ } ++ ++ GlyphOffset operator*() const { return *pointer; } ++ void operator++() { ++pointer; } ++ ++ const GlyphOffset* pointer; ++}; ++ ++// For zero glyph offset array ++template <> ++struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<false> final { ++ explicit iterator(const GlyphOffsetArray& array) { ++ DCHECK(!array.HasStorage()); ++ } ++ explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); } ++ GlyphOffset operator*() const { return GlyphOffset(); } ++ void operator++() {} ++}; ++ + // Find the range of HarfBuzzRunGlyphData for the specified character index + // range. This function uses binary search twice, hence O(2 log n). + inline ShapeResult::RunInfo::GlyphDataRange diff --git a/www-client/chromium/files/chromium-76-gcc-gl-init.patch b/www-client/chromium/files/chromium-76-gcc-gl-init.patch new file mode 100644 index 0000000..3bf394f --- /dev/null +++ b/www-client/chromium/files/chromium-76-gcc-gl-init.patch @@ -0,0 +1,33 @@ +From 7dc76c8d9f4cfbce7cf11424120aa6f6094916dc Mon Sep 17 00:00:00 2001 +From: Jose Dapena Paz <jose.dapena@lge.com> +Date: Wed, 05 Jun 2019 21:09:01 +0000 +Subject: [PATCH] GCC: XSetWindowAttributes struct initialization should keep order of declaration + +XSetWindowAttributes initialization of attributes in GLSurfaceGLX is not in the +same order of the declaration. GCC fails because of that. + +Bug: 819294 +Change-Id: I8a97da980d5961a35a47ae4d0d8d558b85291f1f +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1646253 +Reviewed-by: Zhenyao Mo <zmo@chromium.org> +Commit-Queue: José Dapena Paz <jose.dapena@lge.com> +Cr-Commit-Position: refs/heads/master@{#666436} +--- + +diff --git a/ui/gl/gl_surface_glx.cc b/ui/gl/gl_surface_glx.cc +index f649dd4..0aa6892 100644 +--- a/ui/gl/gl_surface_glx.cc ++++ b/ui/gl/gl_surface_glx.cc +@@ -583,10 +583,10 @@ + + XSetWindowAttributes swa = { + .background_pixmap = 0, +- .bit_gravity = NorthWestGravity, +- .colormap = g_colormap, + .background_pixel = 0, // ARGB(0,0,0,0) for compositing WM + .border_pixel = 0, ++ .bit_gravity = NorthWestGravity, ++ .colormap = g_colormap, + }; + auto value_mask = CWBackPixmap | CWBitGravity | CWColormap | CWBorderPixel; + if (ui::IsCompositingManagerPresent() && diff --git a/www-client/chromium/files/chromium-76-gcc-include.patch b/www-client/chromium/files/chromium-76-gcc-include.patch new file mode 100644 index 0000000..adc7f3a --- /dev/null +++ b/www-client/chromium/files/chromium-76-gcc-include.patch @@ -0,0 +1,10 @@ +--- a/chrome/browser/themes/theme_service.h 2019-06-13 18:56:30.000000000 -0000 ++++ b/chrome/browser/themes/theme_service.h 2019-06-17 08:50:57.714289399 -0000 +@@ -26,6 +26,7 @@ + #include "extensions/common/extension_id.h" + #include "ui/base/theme_provider.h" + #include "ui/native_theme/native_theme_observer.h" ++#include "ui/native_theme/native_theme.h" + + class BrowserThemePack; + class CustomThemeSupplier; diff --git a/www-client/chromium/files/chromium-76-gcc-noexcept.patch b/www-client/chromium/files/chromium-76-gcc-noexcept.patch new file mode 100644 index 0000000..2a7f4b3 --- /dev/null +++ b/www-client/chromium/files/chromium-76-gcc-noexcept.patch @@ -0,0 +1,347 @@ +From 84c91abab33966f928497c24db4a39f436d2dca8 Mon Sep 17 00:00:00 2001 +From: Jose Dapena Paz <jose.dapena@lge.com> +Date: Fri, 07 Jun 2019 09:50:11 +0000 +Subject: [PATCH] Make SharedMemoryMapping move constructor noexcept + +As LayerTreeHostImpl::UIResourceData move constructor is declared +noexcept with default implementation, the move constructor of its +members should also be noexcept. GCC will fail to build otherwise +for mismatching noexcept declaration. + +We also set the move assignment operator. + +Bug: 819294 +Change-Id: Icd663da83b882e15f7d16780c9241972e09bc492 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645297 +Commit-Queue: José Dapena Paz <jose.dapena@lge.com> +Reviewed-by: Daniel Cheng <dcheng@chromium.org> +Cr-Commit-Position: refs/heads/master@{#667064} +--- + +diff --git a/base/memory/shared_memory_mapping.cc b/base/memory/shared_memory_mapping.cc +index 2be2570..8426fa8 100644 +--- a/base/memory/shared_memory_mapping.cc ++++ b/base/memory/shared_memory_mapping.cc +@@ -33,7 +33,7 @@ + + SharedMemoryMapping::SharedMemoryMapping() = default; + +-SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping) ++SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept + : memory_(mapping.memory_), + size_(mapping.size_), + mapped_size_(mapping.mapped_size_), +@@ -42,7 +42,7 @@ + } + + SharedMemoryMapping& SharedMemoryMapping::operator=( +- SharedMemoryMapping&& mapping) { ++ SharedMemoryMapping&& mapping) noexcept { + Unmap(); + memory_ = mapping.memory_; + size_ = mapping.size_; +@@ -90,9 +90,9 @@ + + ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping() = default; + ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping( +- ReadOnlySharedMemoryMapping&&) = default; ++ ReadOnlySharedMemoryMapping&&) noexcept = default; + ReadOnlySharedMemoryMapping& ReadOnlySharedMemoryMapping::operator=( +- ReadOnlySharedMemoryMapping&&) = default; ++ ReadOnlySharedMemoryMapping&&) noexcept = default; + ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping( + void* address, + size_t size, +@@ -102,9 +102,9 @@ + + WritableSharedMemoryMapping::WritableSharedMemoryMapping() = default; + WritableSharedMemoryMapping::WritableSharedMemoryMapping( +- WritableSharedMemoryMapping&&) = default; ++ WritableSharedMemoryMapping&&) noexcept = default; + WritableSharedMemoryMapping& WritableSharedMemoryMapping::operator=( +- WritableSharedMemoryMapping&&) = default; ++ WritableSharedMemoryMapping&&) noexcept = default; + WritableSharedMemoryMapping::WritableSharedMemoryMapping( + void* address, + size_t size, +diff --git a/base/memory/shared_memory_mapping.h b/base/memory/shared_memory_mapping.h +index d9569af..2b8858e 100644 +--- a/base/memory/shared_memory_mapping.h ++++ b/base/memory/shared_memory_mapping.h +@@ -32,8 +32,8 @@ + SharedMemoryMapping(); + + // Move operations are allowed. +- SharedMemoryMapping(SharedMemoryMapping&& mapping); +- SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping); ++ SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept; ++ SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping) noexcept; + + // Unmaps the region if the mapping is valid. + virtual ~SharedMemoryMapping(); +@@ -93,8 +93,9 @@ + ReadOnlySharedMemoryMapping(); + + // Move operations are allowed. +- ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&); +- ReadOnlySharedMemoryMapping& operator=(ReadOnlySharedMemoryMapping&&); ++ ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&) noexcept; ++ ReadOnlySharedMemoryMapping& operator=( ++ ReadOnlySharedMemoryMapping&&) noexcept; + + // Returns the base address of the mapping. This is read-only memory. This is + // page-aligned. This is nullptr for invalid instances. +@@ -171,8 +172,9 @@ + WritableSharedMemoryMapping(); + + // Move operations are allowed. +- WritableSharedMemoryMapping(WritableSharedMemoryMapping&&); +- WritableSharedMemoryMapping& operator=(WritableSharedMemoryMapping&&); ++ WritableSharedMemoryMapping(WritableSharedMemoryMapping&&) noexcept; ++ WritableSharedMemoryMapping& operator=( ++ WritableSharedMemoryMapping&&) noexcept; + + // Returns the base address of the mapping. This is writable memory. This is + // page-aligned. This is nullptr for invalid instances. + +From bdc24128b75008743d819e298557a53205706e7c Mon Sep 17 00:00:00 2001 +From: Jose Dapena Paz <jose.dapena@lge.com> +Date: Sun, 09 Jun 2019 11:22:25 +0000 +Subject: [PATCH] GCC: fix noexcept from move constructor and assign operators of AccountInfo + +AccountInfo declares them as noexcept and uses default implementation, +so all its members (including AccountId) should be noexcept. But AccountId +is not noexcept. To fix it we just need to make CoreAccountId move +operator/assign operator noexcept. + +Bug: 819294 +Change-Id: Ice38654ab7cf3b9eaa6f54aa36e1fec329264f98 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645296 +Reviewed-by: Roger Tawa <rogerta@chromium.org> +Reviewed-by: Sylvain Defresne <sdefresne@chromium.org> +Commit-Queue: José Dapena Paz <jose.dapena@lge.com> +Cr-Commit-Position: refs/heads/master@{#667484} +--- + +diff --git a/google_apis/gaia/core_account_id.cc b/google_apis/gaia/core_account_id.cc +index d808082..12eefe3 100644 +--- a/google_apis/gaia/core_account_id.cc ++++ b/google_apis/gaia/core_account_id.cc +@@ -6,8 +6,16 @@ + + CoreAccountId::CoreAccountId() = default; + ++CoreAccountId::CoreAccountId(const CoreAccountId&) = default; ++ ++CoreAccountId::CoreAccountId(CoreAccountId&&) noexcept = default; ++ + CoreAccountId::~CoreAccountId() = default; + ++CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default; ++ ++CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default; ++ + CoreAccountId::CoreAccountId(const char* id) : id(id) {} + + CoreAccountId::CoreAccountId(std::string&& id) : id(std::move(id)) {} +diff --git a/google_apis/gaia/core_account_id.h b/google_apis/gaia/core_account_id.h +index 5ea602a..c2d1911 100644 +--- a/google_apis/gaia/core_account_id.h ++++ b/google_apis/gaia/core_account_id.h +@@ -14,8 +14,13 @@ + // for design and tracking). + struct CoreAccountId { + CoreAccountId(); ++ CoreAccountId(const CoreAccountId&); ++ CoreAccountId(CoreAccountId&&) noexcept; + ~CoreAccountId(); + ++ CoreAccountId& operator=(const CoreAccountId&); ++ CoreAccountId& operator=(CoreAccountId&&) noexcept; ++ + // Those implicit constructor and conversion operator allow to + // progressively migrate the code to use this struct. Removing + // them is tracked by https://crbug.com/959161 + +From 9aae68736bc7eb7172d0d0c978ecb6d1f75c7b30 Mon Sep 17 00:00:00 2001 +From: Jose Dapena Paz <jose.dapena@lge.com> +Date: Tue, 11 Jun 2019 10:27:19 +0200 +Subject: [PATCH] GCC: add noexcept move assignment in history::URLRow + +In GCC, build is failing because history::QueryURLResult declares its move +assignment operator as noexcept using default implementation. That requires +its members to provide a move assignment operator that is noexcept too. + +But URLRow was missing noexcept declaration in move assignment operator (even +though it was providing noexcept to its move constructor). + +Bug: 819294 +Change-Id: I726e3cf7a4a50c9206a5d0fba8a561d363483d4f +--- + +diff --git a/components/history/core/browser/url_row.cc b/components/history/core/browser/url_row.cc +index 44c22fd..aec0101 100644 +--- a/components/history/core/browser/url_row.cc ++++ b/components/history/core/browser/url_row.cc +@@ -26,7 +26,7 @@ + } + + URLRow& URLRow::operator=(const URLRow& other) = default; +-URLRow& URLRow::operator=(URLRow&& other) = default; ++URLRow& URLRow::operator=(URLRow&& other) noexcept = default; + + void URLRow::Swap(URLRow* other) { + std::swap(id_, other->id_); +diff --git a/components/history/core/browser/url_row.h b/components/history/core/browser/url_row.h +index 8f6f9cf..31a1ef8 100644 +--- a/components/history/core/browser/url_row.h ++++ b/components/history/core/browser/url_row.h +@@ -35,7 +35,7 @@ + + virtual ~URLRow(); + URLRow& operator=(const URLRow& other); +- URLRow& operator=(URLRow&& other); ++ URLRow& operator=(URLRow&& other) noexcept; + + URLID id() const { return id_; } + + +From 41d954dec0669c9a85730c0bde7df7ba7a0ff43e Mon Sep 17 00:00:00 2001 +From: Jose Dapena Paz <jose.dapena@lge.com> +Date: Thu, 06 Jun 2019 15:30:49 +0000 +Subject: [PATCH] Fix AutocompleteMatch move constructor/assign operator noexcept + +For AutocompleteMatch to declare noexcept them, all the contained +properties need to be noexcept too. This is required at least +for SuggestionAnswer, because base::string16 will make default +calculated signature of the move operator noexcept(false). + +To avoid this issue we explicitely declare them on SuggestionAnswer, +and its member classes TextField and ImageLine. + +Bug: 819294 +Change-Id: I8714f2c6352a3292bdebdc3aed9790270e49c580 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1554669 +Reviewed-by: Kevin Bailey <krb@chromium.org> +Commit-Queue: José Dapena Paz <jose.dapena@lge.com> +Cr-Commit-Position: refs/heads/master@{#666714} +--- + +diff --git a/components/omnibox/browser/suggestion_answer.cc b/components/omnibox/browser/suggestion_answer.cc +index 151e55f..a0c9049 100644 +--- a/components/omnibox/browser/suggestion_answer.cc ++++ b/components/omnibox/browser/suggestion_answer.cc +@@ -55,6 +55,12 @@ + + SuggestionAnswer::TextField::TextField() = default; + SuggestionAnswer::TextField::~TextField() = default; ++SuggestionAnswer::TextField::TextField(const TextField&) = default; ++SuggestionAnswer::TextField::TextField(TextField&&) noexcept = default; ++SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=( ++ const TextField&) = default; ++SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=( ++ TextField&&) noexcept = default; + + // static + bool SuggestionAnswer::TextField::ParseTextField(const base::Value& field_json, +@@ -93,9 +99,12 @@ + SuggestionAnswer::ImageLine::ImageLine() + : num_text_lines_(1) {} + SuggestionAnswer::ImageLine::ImageLine(const ImageLine& line) = default; ++SuggestionAnswer::ImageLine::ImageLine(ImageLine&&) noexcept = default; + + SuggestionAnswer::ImageLine& SuggestionAnswer::ImageLine::operator=( + const ImageLine& line) = default; ++SuggestionAnswer::ImageLine& SuggestionAnswer::ImageLine::operator=( ++ ImageLine&&) noexcept = default; + + SuggestionAnswer::ImageLine::~ImageLine() {} + +@@ -251,9 +260,14 @@ + + SuggestionAnswer::SuggestionAnswer(const SuggestionAnswer& answer) = default; + ++SuggestionAnswer::SuggestionAnswer(SuggestionAnswer&&) noexcept = default; ++ + SuggestionAnswer& SuggestionAnswer::operator=(const SuggestionAnswer& answer) = + default; + ++SuggestionAnswer& SuggestionAnswer::operator=(SuggestionAnswer&&) noexcept = ++ default; ++ + SuggestionAnswer::~SuggestionAnswer() = default; + + // static +diff --git a/components/omnibox/browser/suggestion_answer.h b/components/omnibox/browser/suggestion_answer.h +index 31be937..2840ace 100644 +--- a/components/omnibox/browser/suggestion_answer.h ++++ b/components/omnibox/browser/suggestion_answer.h +@@ -125,6 +125,10 @@ + public: + TextField(); + ~TextField(); ++ TextField(const TextField&); ++ TextField(TextField&&) noexcept; ++ TextField& operator=(const TextField&); ++ TextField& operator=(TextField&&) noexcept; + + // Parses |field_json| dictionary and populates |text_field| with the + // contents. If any of the required elements is missing, returns false and +@@ -162,7 +166,9 @@ + public: + ImageLine(); + explicit ImageLine(const ImageLine& line); ++ ImageLine(ImageLine&&) noexcept; + ImageLine& operator=(const ImageLine& line); ++ ImageLine& operator=(ImageLine&&) noexcept; + ~ImageLine(); + + // Parses dictionary |line_json| and populates |image_line| with the +@@ -213,7 +219,9 @@ + + SuggestionAnswer(); + SuggestionAnswer(const SuggestionAnswer& answer); ++ SuggestionAnswer(SuggestionAnswer&&) noexcept; + SuggestionAnswer& operator=(const SuggestionAnswer& answer); ++ SuggestionAnswer& operator=(SuggestionAnswer&&) noexcept; + ~SuggestionAnswer(); + + // Parses dictionary |answer_json| and fills a SuggestionAnswer containing the + +From 9f99af41cae3cfff3bcdcc856c1539801c9b745b Mon Sep 17 00:00:00 2001 +From: Jose Dapena Paz <jose.dapena@lge.com> +Date: Fri, 07 Jun 2019 18:59:59 +0000 +Subject: [PATCH] DisjoingRangeLockManager::Lock move constructor/assign operator cannot be noexcept + +They depend on LockRequest, that depends on WeakPtr, none of them noexcept. + +Bug: 819294 +Change-Id: I04ec15901ca627358df727540597f21f135c129b +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1646252 +Reviewed-by: Joshua Bell <jsbell@chromium.org> +Commit-Queue: José Dapena Paz <jose.dapena@lge.com> +Cr-Commit-Position: refs/heads/master@{#667260} +--- + +diff --git a/content/browser/indexed_db/scopes/disjoint_range_lock_manager.cc b/content/browser/indexed_db/scopes/disjoint_range_lock_manager.cc +index 478a5c9..a18c6cd 100644 +--- a/content/browser/indexed_db/scopes/disjoint_range_lock_manager.cc ++++ b/content/browser/indexed_db/scopes/disjoint_range_lock_manager.cc +@@ -19,14 +19,13 @@ + : requested_type(type), + locks_holder(std::move(locks_holder)), + acquired_callback(std::move(acquired_callback)) {} +-DisjointRangeLockManager::LockRequest::LockRequest(LockRequest&&) noexcept = +- default; ++DisjointRangeLockManager::LockRequest::LockRequest(LockRequest&&) = default; + DisjointRangeLockManager::LockRequest::~LockRequest() = default; + DisjointRangeLockManager::Lock::Lock() = default; +-DisjointRangeLockManager::Lock::Lock(Lock&&) noexcept = default; ++DisjointRangeLockManager::Lock::Lock(Lock&&) = default; + DisjointRangeLockManager::Lock::~Lock() = default; + DisjointRangeLockManager::Lock& DisjointRangeLockManager::Lock::operator=( +- DisjointRangeLockManager::Lock&&) noexcept = default; ++ DisjointRangeLockManager::Lock&&) = default; + + DisjointRangeLockManager::DisjointRangeLockManager(int level_count) + : task_runner_(base::SequencedTaskRunnerHandle::Get()), diff --git a/www-client/chromium/files/chromium-76-gcc-private.patch b/www-client/chromium/files/chromium-76-gcc-private.patch new file mode 100644 index 0000000..bc0ed98 --- /dev/null +++ b/www-client/chromium/files/chromium-76-gcc-private.patch @@ -0,0 +1,63 @@ +From 502e6e42633d2571c8236c8649b031fe9915eb5b Mon Sep 17 00:00:00 2001 +From: Jose Dapena Paz <jose.dapena@lge.com> +Date: Tue, 11 Jun 2019 16:56:27 +0000 +Subject: [PATCH] GCC: CertNetFetcherImpl declares Job as a friend but it is in the anonymous namespace + +GCC does not allow friendship declaration to anonymous namespace as done with Job +object in the CertNetFetcherImpl. This fix removes the friend declaration, and just +makes RemoveJob method public, that was the only reason to make Job a friend. + +Error was: +./../net/cert_net/cert_net_fetcher_impl.cc: In member function ‘void net::{anonymous}::Job::DetachRequest(net::CertNetFetcherImpl::RequestCore*)’: +../../net/cert_net/cert_net_fetcher_impl.cc:458:42: error: ‘std::unique_ptr<net::{anonymous}::Job> net::CertNetFetcherImpl::AsyncCertNetFetcherImpl::RemoveJob(net::{anonymous}::Job*)’ is private within this context + delete_this = parent_->RemoveJob(this); + ^ +../../net/cert_net/cert_net_fetcher_impl.cc:151:24: note: declared private here + std::unique_ptr<Job> RemoveJob(Job* job); + ^~~~~~~~~ +../../net/cert_net/cert_net_fetcher_impl.cc: In member function ‘void net::{anonymous}::Job::OnJobCompleted(net::Error)’: +../../net/cert_net/cert_net_fetcher_impl.cc:610:61: error: ‘std::unique_ptr<net::{anonymous}::Job> net::CertNetFetcherImpl::AsyncCertNetFetcherImpl::RemoveJob(net::{anonymous}::Job*)’ is private within this context + std::unique_ptr<Job> delete_this = parent_->RemoveJob(this); + ^ +../../net/cert_net/cert_net_fetcher_impl.cc:151:24: note: declared private here + std::unique_ptr<Job> RemoveJob(Job* job); + ^~~~~~~~~ + +Bug: 819294 +Change-Id: I3609f4558e570741395366de6a4cd40577d91450 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651783 +Commit-Queue: Eric Roman <eroman@chromium.org> +Reviewed-by: Eric Roman <eroman@chromium.org> +Cr-Commit-Position: refs/heads/master@{#668015} +--- + +diff --git a/net/cert_net/cert_net_fetcher_impl.cc b/net/cert_net/cert_net_fetcher_impl.cc +index 11a1166..349c656 100644 +--- a/net/cert_net/cert_net_fetcher_impl.cc ++++ b/net/cert_net/cert_net_fetcher_impl.cc +@@ -135,21 +135,19 @@ + void Fetch(std::unique_ptr<RequestParams> request_params, + scoped_refptr<RequestCore> request); + ++ // Removes |job| from the in progress jobs and transfers ownership to the ++ // caller. ++ std::unique_ptr<Job> RemoveJob(Job* job); ++ + // Cancels outstanding jobs, which stops network requests and signals the + // corresponding RequestCores that the requests have completed. + void Shutdown(); + + private: +- friend class Job; +- + // Finds a job with a matching RequestPararms or returns nullptr if there was + // no match. + Job* FindJob(const RequestParams& params); + +- // Removes |job| from the in progress jobs and transfers ownership to the +- // caller. +- std::unique_ptr<Job> RemoveJob(Job* job); +- + // The in-progress jobs. This set does not contain the job which is actively + // invoking callbacks (OnJobCompleted). + JobSet jobs_; diff --git a/www-client/chromium/files/chromium-76-gcc-pure-virtual.patch b/www-client/chromium/files/chromium-76-gcc-pure-virtual.patch new file mode 100644 index 0000000..3d34e43 --- /dev/null +++ b/www-client/chromium/files/chromium-76-gcc-pure-virtual.patch @@ -0,0 +1,50 @@ +From cdf306db81efaaaa954487585d5a5a16205a5ebd Mon Sep 17 00:00:00 2001 +From: Jose Dapena Paz <jose.dapena@lge.com> +Date: Wed, 05 Jun 2019 14:45:06 +0000 +Subject: [PATCH] Avoid pure virtual crash destroying RenderProcessUserData + +When RenderProcessUserData is destroyed from the destructor of +RenderProcessHostImpl, it is done in the destructor of RenderProcessHost. +At this point RemoveObserver override is already freed, so RenderProcessHost +is pure virtual. This crash happens at least building with GCC: + + at /usr/include/c++/8/ext/new_allocator.h:140 + (this=0x7fffffffcb50, __in_chrg=<optimized out>) at /usr/include/c++/8/bits/stl_tree.h:964 + +We need to destroy RenderProcessUserData before that happens. To do that +we can just override RenderProcessHostDestroyed. + +Bug: 910288 +Change-Id: I38107b178829b0cb7494f5333b765e5b087d82cd +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645366 +Commit-Queue: Sigurður Ásgeirsson <siggi@chromium.org> +Reviewed-by: Sigurður Ásgeirsson <siggi@chromium.org> +Cr-Commit-Position: refs/heads/master@{#666279} +--- + +diff --git a/chrome/browser/performance_manager/render_process_user_data.cc b/chrome/browser/performance_manager/render_process_user_data.cc +index 2e2c199..ef6e1fb 100644 +--- a/chrome/browser/performance_manager/render_process_user_data.cc ++++ b/chrome/browser/performance_manager/render_process_user_data.cc +@@ -116,4 +116,9 @@ + base::Unretained(process_node_.get()), info.exit_code)); + } + ++void RenderProcessUserData::RenderProcessHostDestroyed( ++ content::RenderProcessHost* host) { ++ host->RemoveUserData(kRenderProcessUserDataKey); ++} ++ + } // namespace performance_manager +diff --git a/chrome/browser/performance_manager/render_process_user_data.h b/chrome/browser/performance_manager/render_process_user_data.h +index ac74b1d..f3b4d16 100644 +--- a/chrome/browser/performance_manager/render_process_user_data.h ++++ b/chrome/browser/performance_manager/render_process_user_data.h +@@ -47,6 +47,7 @@ + void RenderProcessExited( + content::RenderProcessHost* host, + const content::ChildProcessTerminationInfo& info) override; ++ void RenderProcessHostDestroyed(content::RenderProcessHost* host) override; + + // All instances are linked together in a doubly linked list to allow orderly + // destruction at browser shutdown time. diff --git a/www-client/chromium/files/chromium-76-gcc-uint32.patch b/www-client/chromium/files/chromium-76-gcc-uint32.patch new file mode 100644 index 0000000..5e392e6 --- /dev/null +++ b/www-client/chromium/files/chromium-76-gcc-uint32.patch @@ -0,0 +1,30 @@ +From 53bb5a463ee956c70230eaa5450022185d0ddc3c Mon Sep 17 00:00:00 2001 +From: Jose Dapena Paz <jose.dapena@lge.com> +Date: Thu, 06 Jun 2019 07:54:05 +0000 +Subject: [PATCH] ThrottlingController::Liveness needs to be uint32_t + +We are setting kAlive and kDead values assigning values that +are bigger than the maximum signed int32. It is better to use +uint32_t in this case. + +Bug: 819294 +Change-Id: If72b48291a66a3a9db24b4c8e2d11d31936a66ee +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645772 +Reviewed-by: Kinuko Yasuda <kinuko@chromium.org> +Commit-Queue: José Dapena Paz <jose.dapena@lge.com> +Cr-Commit-Position: refs/heads/master@{#666619} +--- + +diff --git a/services/network/throttling/throttling_controller.h b/services/network/throttling/throttling_controller.h +index 43751c4..3c6f87b 100644 +--- a/services/network/throttling/throttling_controller.h ++++ b/services/network/throttling/throttling_controller.h +@@ -38,7 +38,7 @@ + + // TODO(https://crbug.com/960874): Debugging code to try and shed some light + // on why the owned maps are invalid. +- enum class Liveness : int32_t { ++ enum class Liveness : uint32_t { + kAlive = 0xCA11AB13, + kDead = 0xDEADBEEF, + }; diff --git a/www-client/chromium/files/chromium-76-gcc-vulkan.patch b/www-client/chromium/files/chromium-76-gcc-vulkan.patch new file mode 100644 index 0000000..cf93bce --- /dev/null +++ b/www-client/chromium/files/chromium-76-gcc-vulkan.patch @@ -0,0 +1,115 @@ +From fdb3bb1f8c41d044a5b0cb80257a26dd3c8f83a3 Mon Sep 17 00:00:00 2001 +From: Jose Dapena Paz <jose.dapena@lge.com> +Date: Tue, 11 Jun 2019 17:39:38 +0000 +Subject: [PATCH] GCC: do not use old C notation to assign struct with property names. + +The notation for initialization of structs referring to its properties +is invalid in C++. This is not accepted in GCC. It was making build +fail in VulkanCommandBuffer. + +./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::TransitionImageLayout(VkImage, VkImageLayout, VkImageLayout)': +./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:214:7: error: expected primary-expression before '.' token + .subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT, + ^ +./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:215:7: error: expected primary-expression before '.' token + .subresourceRange.baseMipLevel = 0, + ^ +./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:216:7: error: expected primary-expression before '.' token + .subresourceRange.levelCount = 1, + ^ +./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:217:7: error: expected primary-expression before '.' token + .subresourceRange.baseArrayLayer = 0, + ^ +./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:218:7: error: expected primary-expression before '.' token + .subresourceRange.layerCount = 1, + ^ +./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::CopyBufferToImage(VkBuffer, VkImage, uint32_t, uint32_t, uint32_t, uint32_t)': +./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:235:7: error: expected primary-expression before '.' token + .imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT, + ^ +./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:236:7: error: expected primary-expression before '.' token + .imageSubresource.mipLevel = 0, + ^ +./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:237:7: error: expected primary-expression before '.' token + .imageSubresource.baseArrayLayer = 0, + ^ +./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:238:7: error: expected primary-expression before '.' token + .imageSubresource.layerCount = 1, + ^ +Bug: 819294 + +Change-Id: I999abece0c727e77964789183642ba62009c2c22 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651802 +Commit-Queue: José Dapena Paz <jose.dapena@lge.com> +Reviewed-by: Antoine Labour <piman@chromium.org> +Cr-Commit-Position: refs/heads/master@{#668033} +--- + +diff --git a/gpu/vulkan/vulkan_command_buffer.cc b/gpu/vulkan/vulkan_command_buffer.cc +index ba776e4..4f14c85 100644 +--- a/gpu/vulkan/vulkan_command_buffer.cc ++++ b/gpu/vulkan/vulkan_command_buffer.cc +@@ -207,21 +207,20 @@ + void VulkanCommandBuffer::TransitionImageLayout(VkImage image, + VkImageLayout old_layout, + VkImageLayout new_layout) { +- VkImageMemoryBarrier barrier = { +- .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, +- .srcAccessMask = GetAccessMask(old_layout), +- .dstAccessMask = GetAccessMask(new_layout), +- .oldLayout = old_layout, +- .newLayout = new_layout, +- .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED, +- .dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED, +- .image = image, +- .subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT, +- .subresourceRange.baseMipLevel = 0, +- .subresourceRange.levelCount = 1, +- .subresourceRange.baseArrayLayer = 0, +- .subresourceRange.layerCount = 1, +- }; ++ VkImageMemoryBarrier barrier = {}; ++ barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER; ++ barrier.srcAccessMask = GetAccessMask(old_layout); ++ barrier.dstAccessMask = GetAccessMask(new_layout); ++ barrier.oldLayout = old_layout; ++ barrier.newLayout = new_layout; ++ barrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; ++ barrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; ++ barrier.image = image; ++ barrier.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; ++ barrier.subresourceRange.baseMipLevel = 0; ++ barrier.subresourceRange.levelCount = 1; ++ barrier.subresourceRange.baseArrayLayer = 0; ++ barrier.subresourceRange.layerCount = 1; + vkCmdPipelineBarrier(command_buffer_, GetPipelineStageFlags(old_layout), + GetPipelineStageFlags(new_layout), 0, 0, nullptr, 0, + nullptr, 1, &barrier); +@@ -233,17 +232,16 @@ + uint32_t buffer_height, + uint32_t width, + uint32_t height) { +- VkBufferImageCopy region = { +- .bufferOffset = 0, +- .bufferRowLength = buffer_width, +- .bufferImageHeight = buffer_height, +- .imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT, +- .imageSubresource.mipLevel = 0, +- .imageSubresource.baseArrayLayer = 0, +- .imageSubresource.layerCount = 1, +- .imageOffset = {0, 0, 0}, +- .imageExtent = {width, height, 1}, +- }; ++ VkBufferImageCopy region = {}; ++ region.bufferOffset = 0; ++ region.bufferRowLength = buffer_width; ++ region.bufferImageHeight = buffer_height; ++ region.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; ++ region.imageSubresource.mipLevel = 0; ++ region.imageSubresource.baseArrayLayer = 0; ++ region.imageSubresource.layerCount = 1; ++ region.imageOffset = {0, 0, 0}; ++ region.imageExtent = {width, height, 1}; + vkCmdCopyBufferToImage(command_buffer_, buffer, image, + VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, ®ion); + } diff --git a/www-client/chromium/files/chromium-76-quiche.patch b/www-client/chromium/files/chromium-76-quiche.patch new file mode 100644 index 0000000..f3aa42a --- /dev/null +++ b/www-client/chromium/files/chromium-76-quiche.patch @@ -0,0 +1,239 @@ +From 9424add9d73432a794b7944790253213cce6dcb8 Mon Sep 17 00:00:00 2001 +From: danzh <danzh@google.com> +Date: Thu, 06 Jun 2019 14:04:36 -0700 +Subject: [PATCH] gfe-relnote: (n/a) code cleanup. Fix envoy compile errors. + +Add #include header for std library. +Reference TransportParameters when using its enum TransportParameterId. + +PiperOrigin-RevId: 251922363 +Change-Id: Iba38660e5adc3069e377829acec44267658b11c6 +--- + +diff --git a/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc b/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc +index ee0ebf0..e5df9fe 100644 +--- a/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc ++++ b/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc +@@ -62,37 +62,37 @@ + std::string TransportParameterIdToString( + TransportParameters::TransportParameterId param_id) { + switch (param_id) { +- case kOriginalConnectionId: ++ case TransportParameters::kOriginalConnectionId: + return "original_connection_id"; +- case kIdleTimeout: ++ case TransportParameters::kIdleTimeout: + return "idle_timeout"; +- case kStatelessResetToken: ++ case TransportParameters::kStatelessResetToken: + return "stateless_reset_token"; +- case kMaxPacketSize: ++ case TransportParameters::kMaxPacketSize: + return "max_packet_size"; +- case kInitialMaxData: ++ case TransportParameters::kInitialMaxData: + return "initial_max_data"; +- case kInitialMaxStreamDataBidiLocal: ++ case TransportParameters::kInitialMaxStreamDataBidiLocal: + return "initial_max_stream_data_bidi_local"; +- case kInitialMaxStreamDataBidiRemote: ++ case TransportParameters::kInitialMaxStreamDataBidiRemote: + return "initial_max_stream_data_bidi_remote"; +- case kInitialMaxStreamDataUni: ++ case TransportParameters::kInitialMaxStreamDataUni: + return "initial_max_stream_data_uni"; +- case kInitialMaxStreamsBidi: ++ case TransportParameters::kInitialMaxStreamsBidi: + return "initial_max_streams_bidi"; +- case kInitialMaxStreamsUni: ++ case TransportParameters::kInitialMaxStreamsUni: + return "initial_max_streams_uni"; +- case kAckDelayExponent: ++ case TransportParameters::kAckDelayExponent: + return "ack_delay_exponent"; +- case kMaxAckDelay: ++ case TransportParameters::kMaxAckDelay: + return "max_ack_delay"; +- case kDisableMigration: ++ case TransportParameters::kDisableMigration: + return "disable_migration"; +- case kPreferredAddress: ++ case TransportParameters::kPreferredAddress: + return "preferred_address"; +- case kGoogleQuicParam: ++ case TransportParameters::kGoogleQuicParam: + return "google"; +- case kGoogleQuicVersion: ++ case TransportParameters::kGoogleQuicVersion: + return "google-version"; + } + return "Unknown(" + QuicTextUtils::Uint64ToString(param_id) + ")"; +@@ -390,7 +390,7 @@ + CBB original_connection_id_param; + if (!in.original_connection_id.IsEmpty()) { + DCHECK_EQ(Perspective::IS_SERVER, in.perspective); +- if (!CBB_add_u16(¶ms, kOriginalConnectionId) || ++ if (!CBB_add_u16(¶ms, TransportParameters::kOriginalConnectionId) || + !CBB_add_u16_length_prefixed(¶ms, &original_connection_id_param) || + !CBB_add_bytes( + &original_connection_id_param, +@@ -412,7 +412,7 @@ + if (!in.stateless_reset_token.empty()) { + DCHECK_EQ(kStatelessResetTokenLength, in.stateless_reset_token.size()); + DCHECK_EQ(Perspective::IS_SERVER, in.perspective); +- if (!CBB_add_u16(¶ms, kStatelessResetToken) || ++ if (!CBB_add_u16(¶ms, TransportParameters::kStatelessResetToken) || + !CBB_add_u16_length_prefixed(¶ms, &stateless_reset_token_param) || + !CBB_add_bytes(&stateless_reset_token_param, + in.stateless_reset_token.data(), +@@ -438,7 +438,7 @@ + + // disable_migration + if (in.disable_migration) { +- if (!CBB_add_u16(¶ms, kDisableMigration) || ++ if (!CBB_add_u16(¶ms, TransportParameters::kDisableMigration) || + !CBB_add_u16(¶ms, 0u)) { // 0 is the length of this parameter. + QUIC_BUG << "Failed to write disable_migration for " << in; + return false; +@@ -458,7 +458,7 @@ + QUIC_BUG << "Bad lengths " << *in.preferred_address; + return false; + } +- if (!CBB_add_u16(¶ms, kPreferredAddress) || ++ if (!CBB_add_u16(¶ms, TransportParameters::kPreferredAddress) || + !CBB_add_u16_length_prefixed(¶ms, &preferred_address_params) || + !CBB_add_bytes( + &preferred_address_params, +@@ -491,7 +491,7 @@ + if (in.google_quic_params) { + const QuicData& serialized_google_quic_params = + in.google_quic_params->GetSerialized(); +- if (!CBB_add_u16(¶ms, kGoogleQuicParam) || ++ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicParam) || + !CBB_add_u16_length_prefixed(¶ms, &google_quic_params) || + !CBB_add_bytes(&google_quic_params, + reinterpret_cast<const uint8_t*>( +@@ -505,7 +505,7 @@ + + // Google-specific version extension. + CBB google_version_params; +- if (!CBB_add_u16(¶ms, kGoogleQuicVersion) || ++ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicVersion) || + !CBB_add_u16_length_prefixed(¶ms, &google_version_params) || + !CBB_add_u32(&google_version_params, in.version)) { + QUIC_BUG << "Failed to write Google version extension for " << in; +@@ -565,7 +565,7 @@ + } + bool parse_success = true; + switch (param_id) { +- case kOriginalConnectionId: ++ case TransportParameters::kOriginalConnectionId: + if (!out->original_connection_id.IsEmpty()) { + QUIC_DLOG(ERROR) << "Received a second original connection ID"; + return false; +@@ -581,10 +581,10 @@ + CBS_len(&value)); + } + break; +- case kIdleTimeout: ++ case TransportParameters::kIdleTimeout: + parse_success = out->idle_timeout_milliseconds.ReadFromCbs(&value); + break; +- case kStatelessResetToken: ++ case TransportParameters::kStatelessResetToken: + if (!out->stateless_reset_token.empty()) { + QUIC_DLOG(ERROR) << "Received a second stateless reset token"; + return false; +@@ -597,36 +597,36 @@ + out->stateless_reset_token.assign(CBS_data(&value), + CBS_data(&value) + CBS_len(&value)); + break; +- case kMaxPacketSize: ++ case TransportParameters::kMaxPacketSize: + parse_success = out->max_packet_size.ReadFromCbs(&value); + break; +- case kInitialMaxData: ++ case TransportParameters::kInitialMaxData: + parse_success = out->initial_max_data.ReadFromCbs(&value); + break; +- case kInitialMaxStreamDataBidiLocal: ++ case TransportParameters::kInitialMaxStreamDataBidiLocal: + parse_success = + out->initial_max_stream_data_bidi_local.ReadFromCbs(&value); + break; +- case kInitialMaxStreamDataBidiRemote: ++ case TransportParameters::kInitialMaxStreamDataBidiRemote: + parse_success = + out->initial_max_stream_data_bidi_remote.ReadFromCbs(&value); + break; +- case kInitialMaxStreamDataUni: ++ case TransportParameters::kInitialMaxStreamDataUni: + parse_success = out->initial_max_stream_data_uni.ReadFromCbs(&value); + break; +- case kInitialMaxStreamsBidi: ++ case TransportParameters::kInitialMaxStreamsBidi: + parse_success = out->initial_max_streams_bidi.ReadFromCbs(&value); + break; +- case kInitialMaxStreamsUni: ++ case TransportParameters::kInitialMaxStreamsUni: + parse_success = out->initial_max_streams_uni.ReadFromCbs(&value); + break; +- case kAckDelayExponent: ++ case TransportParameters::kAckDelayExponent: + parse_success = out->ack_delay_exponent.ReadFromCbs(&value); + break; +- case kMaxAckDelay: ++ case TransportParameters::kMaxAckDelay: + parse_success = out->max_ack_delay.ReadFromCbs(&value); + break; +- case kDisableMigration: ++ case TransportParameters::kDisableMigration: + if (out->disable_migration) { + QUIC_DLOG(ERROR) << "Received a second disable migration"; + return false; +@@ -638,7 +638,7 @@ + } + out->disable_migration = true; + break; +- case kPreferredAddress: { ++ case TransportParameters::kPreferredAddress: { + uint16_t ipv4_port, ipv6_port; + in_addr ipv4_address; + in6_addr ipv6_address; +@@ -692,7 +692,7 @@ + QuicMakeUnique<TransportParameters::PreferredAddress>( + preferred_address); + } break; +- case kGoogleQuicParam: { ++ case TransportParameters::kGoogleQuicParam: { + if (out->google_quic_params) { + QUIC_DLOG(ERROR) << "Received a second Google parameter"; + return false; +@@ -701,7 +701,7 @@ + reinterpret_cast<const char*>(CBS_data(&value)), CBS_len(&value)); + out->google_quic_params = CryptoFramer::ParseMessage(serialized_params); + } break; +- case kGoogleQuicVersion: { ++ case TransportParameters::kGoogleQuicVersion: { + if (!CBS_get_u32(&value, &out->version)) { + QUIC_DLOG(ERROR) << "Failed to parse Google version extension"; + return false; +diff --git a/quic/core/quic_socket_address_coder.cc b/quic/core/quic_socket_address_coder.cc +index 2527fc9..b26103d 100644 +--- a/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc ++++ b/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc +@@ -2,10 +2,12 @@ + // Use of this source code is governed by a BSD-style license that can be + // found in the LICENSE file. + +-#include <string> +- + #include "net/third_party/quiche/src/quic/core/quic_socket_address_coder.h" + ++#include <cstring> ++#include <string> ++#include <vector> ++ + namespace quic { + + namespace { diff --git a/www-client/chromium/files/chromium-77-blink-include.patch b/www-client/chromium/files/chromium-77-blink-include.patch new file mode 100644 index 0000000..3ac1770 --- /dev/null +++ b/www-client/chromium/files/chromium-77-blink-include.patch @@ -0,0 +1,28 @@ +From 5baf7df7f4c5971dab552897eeef94b194650ce5 Mon Sep 17 00:00:00 2001 +From: Dave Tapuska <dtapuska@chromium.org> +Date: Mon, 12 Aug 2019 22:30:13 +0000 +Subject: [PATCH] Fix build failure due to missing include for std::numeric_limits usage. + +Some configurations fail to build, limits should have been included. + +BUG=992832 + +Change-Id: I894ba0543bfcef101c93259e39a31d12ae6d035c +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1747981 +Commit-Queue: Dave Tapuska <dtapuska@chromium.org> +Reviewed-by: Mostyn Bramley-Moore <mostynb@vewd.com> +Cr-Commit-Position: refs/heads/master@{#686214} +--- + +diff --git a/third_party/blink/renderer/platform/exported/web_time_range.cc b/third_party/blink/renderer/platform/exported/web_time_range.cc +index 384566a..68d83e1 100644 +--- a/third_party/blink/renderer/platform/exported/web_time_range.cc ++++ b/third_party/blink/renderer/platform/exported/web_time_range.cc +@@ -31,6 +31,7 @@ + #include "third_party/blink/public/platform/web_time_range.h" + + #include <cmath> ++#include <limits> + + namespace blink { + diff --git a/www-client/chromium/files/chromium-77-clang.patch b/www-client/chromium/files/chromium-77-clang.patch new file mode 100644 index 0000000..a57b5a4 --- /dev/null +++ b/www-client/chromium/files/chromium-77-clang.patch @@ -0,0 +1,13 @@ +diff --git a/base/location.h b/base/location.h +index c07e747..924db1c 100644 +--- a/base/location.h ++++ b/base/location.h +@@ -18,7 +18,7 @@ + + namespace base { + +-#if defined(__has_builtin) ++#if defined(__clang__) + // Clang allows detection of these builtins. + #define SUPPORTS_LOCATION_BUILTINS \ + (__has_builtin(__builtin_FUNCTION) && __has_builtin(__builtin_FILE) && \ diff --git a/www-client/chromium/files/chromium-77-fix-gn-gen.patch b/www-client/chromium/files/chromium-77-fix-gn-gen.patch new file mode 100644 index 0000000..2c5f128 --- /dev/null +++ b/www-client/chromium/files/chromium-77-fix-gn-gen.patch @@ -0,0 +1,11 @@ +--- a/third_party/blink/tools/BUILD.gn ++++ b/third_party/blink/tools/BUILD.gn +@@ -11,7 +11,7 @@ action("build_wpt_metadata") { + rebase_path("$root_out_dir/wpt_expectations_metadata"), + ] + outputs = [ +- "$root_out_dir/wpt_expectations_metadata/", ++ "$root_out_dir/wpt_expectations_metadata", + ] + data = [ + # Include the blinkpy tools to access expectations data diff --git a/www-client/chromium/files/chromium-77-gcc-abstract.patch b/www-client/chromium/files/chromium-77-gcc-abstract.patch new file mode 100644 index 0000000..6d77299 --- /dev/null +++ b/www-client/chromium/files/chromium-77-gcc-abstract.patch @@ -0,0 +1,61 @@ +From f08cb0022527081c078e8b96062e6c9b4fbda151 Mon Sep 17 00:00:00 2001 +From: Jose Dapena Paz <jose.dapena@lge.com> +Date: Fri, 26 Jul 2019 16:48:06 +0000 +Subject: [PATCH] BinaryUploadService: change parameter passing that cannot afford abstract class + +The method UploadForDeepScanning gets a Request as parameter. But Request is an +abstract class, so GCC will not allow that declaration (polimorphycs should be +passed by reference). Use std::unique_ptr so BinaryUploadService can assume +ownership. + +Bug: 819294 +Change-Id: I9e8c75cc92b01abd704d9049b0421555377da5ba +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1713550 +Reviewed-by: Daniel Rubery <drubery@chromium.org> +Commit-Queue: José Dapena Paz <jose.dapena@lge.com> +Cr-Commit-Position: refs/heads/master@{#681333} +--- + +diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc +index 6430c89..4e90487 100644 +--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc ++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc +@@ -10,7 +10,7 @@ + namespace safe_browsing { + + void BinaryUploadService::UploadForDeepScanning( +- BinaryUploadService::Request request) { ++ std::unique_ptr<BinaryUploadService::Request> request) { + DCHECK_CURRENTLY_ON(content::BrowserThread::UI); + NOTREACHED(); + } +diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h +index d2dfd83..9b6f395 100644 +--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h ++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h +@@ -5,6 +5,8 @@ + #ifndef CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_ + #define CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_ + ++#include <memory> ++ + #include "base/callback.h" + #include "components/safe_browsing/proto/webprotect.pb.h" + +@@ -40,6 +42,7 @@ + public: + // |callback| will run on the UI thread. + explicit Request(Callback callback); ++ virtual ~Request() = default; + Request(const Request&) = delete; + Request& operator=(const Request&) = delete; + +@@ -67,7 +70,7 @@ + // Upload the given file contents for deep scanning. The results will be + // returned asynchronously by calling |request|'s |callback|. This must be + // called on the UI thread. +- void UploadForDeepScanning(Request request); ++ void UploadForDeepScanning(std::unique_ptr<Request> request); + }; + + } // namespace safe_browsing diff --git a/www-client/chromium/files/chromium-77-gcc-include.patch b/www-client/chromium/files/chromium-77-gcc-include.patch new file mode 100644 index 0000000..f464039 --- /dev/null +++ b/www-client/chromium/files/chromium-77-gcc-include.patch @@ -0,0 +1,56 @@ +From 8c747a9c14ed4905f60f6680e2e09e33ea34163e Mon Sep 17 00:00:00 2001 +From: Jose Dapena Paz <jose.dapena@lge.com> +Date: Fri, 26 Jul 2019 16:18:17 +0000 +Subject: [PATCH] IWYU: include <memory> in one_euro_filter.h as it uses std::unique_ptr + +Bug: 819294 +Change-Id: Ie1530f7046b0c8eb76e26adca530fa57c67ed876 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1720637 +Reviewed-by: Ella Ge <eirage@chromium.org> +Commit-Queue: José Dapena Paz <jose.dapena@lge.com> +Cr-Commit-Position: refs/heads/master@{#681321} +--- + +diff --git a/third_party/one_euro_filter/src/one_euro_filter.h b/third_party/one_euro_filter/src/one_euro_filter.h +index 7f8d15b..a8cd0ab 100644 +--- a/third_party/one_euro_filter/src/one_euro_filter.h ++++ b/third_party/one_euro_filter/src/one_euro_filter.h +@@ -1,6 +1,8 @@ + #ifndef ONE_EURO_ONE_EURO_FILTER_H_ + #define ONE_EURO_ONE_EURO_FILTER_H_ + ++#include <memory> ++ + #include "low_pass_filter.h" + + namespace one_euro_filter { + +From 258f5f182f8dd72f727af26e614794c67a5996e6 Mon Sep 17 00:00:00 2001 +From: Jose Dapena Paz <jose.dapena@lge.com> +Date: Fri, 26 Jul 2019 15:17:54 +0000 +Subject: [PATCH] IWYU: ScopedObserver of TabStripModel requires it to be included + +Build with GCC and libstdc++ is failing in files using tab_sharing_ui.h +as it has a ScopedObserver of a TabStripModel without including it +in advance. + +Bug: 819294 +Change-Id: I4b12073484f65ad2bb873119daa748245296d282 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1713526 +Reviewed-by: Guido Urdaneta <guidou@chromium.org> +Commit-Queue: José Dapena Paz <jose.dapena@lge.com> +Cr-Commit-Position: refs/heads/master@{#681290} +--- + +diff --git a/chrome/browser/ui/tab_sharing/tab_sharing_ui.h b/chrome/browser/ui/tab_sharing/tab_sharing_ui.h +index 6d931129..147868f 100644 +--- a/chrome/browser/ui/tab_sharing/tab_sharing_ui.h ++++ b/chrome/browser/ui/tab_sharing/tab_sharing_ui.h +@@ -14,6 +14,7 @@ + #include "base/strings/string16.h" + #include "chrome/browser/media/webrtc/media_stream_capture_indicator.h" + #include "chrome/browser/ui/browser_list_observer.h" ++#include "chrome/browser/ui/tabs/tab_strip_model.h" + #include "chrome/browser/ui/tabs/tab_strip_model_observer.h" + #include "components/infobars/core/infobar_manager.h" + #include "content/public/browser/desktop_media_id.h" diff --git a/www-client/chromium/files/chromium-77-std-string.patch b/www-client/chromium/files/chromium-77-std-string.patch new file mode 100644 index 0000000..f921f1a --- /dev/null +++ b/www-client/chromium/files/chromium-77-std-string.patch @@ -0,0 +1,130 @@ +From 74138b9febd37eac0fc26b8efb110014a83a52c6 Mon Sep 17 00:00:00 2001 +From: Jeremy Roman <jbroman@chromium.org> +Date: Wed, 07 Aug 2019 13:26:48 +0000 +Subject: [PATCH] WTF: Make LinkedHashSet understand values for which memset initialization would be bad. + +Includes a unit test which fails before, and uses this to fix FontCacheKeyTraits. + +Bug: 980025 +Change-Id: If41f97444c7fd37b9b95d6dadaf3da5689079e9e +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1739948 +Reviewed-by: Kentaro Hara <haraken@chromium.org> +Reviewed-by: Yutaka Hirano <yhirano@chromium.org> +Commit-Queue: Jeremy Roman <jbroman@chromium.org> +Cr-Commit-Position: refs/heads/master@{#684731} +--- + +diff --git a/third_party/blink/renderer/platform/fonts/font_cache_key.h b/third_party/blink/renderer/platform/fonts/font_cache_key.h +index 0efc8fb..90063cb 100644 +--- a/third_party/blink/renderer/platform/fonts/font_cache_key.h ++++ b/third_party/blink/renderer/platform/fonts/font_cache_key.h +@@ -133,6 +133,10 @@ + + struct FontCacheKeyTraits : WTF::SimpleClassHashTraits<FontCacheKey> { + STATIC_ONLY(FontCacheKeyTraits); ++ ++ // std::string's empty state need not be zero in all implementations, ++ // and it is held within FontFaceCreationParams. ++ static const bool kEmptyValueIsZero = false; + }; + + } // namespace blink +diff --git a/third_party/blink/renderer/platform/wtf/linked_hash_set.h b/third_party/blink/renderer/platform/wtf/linked_hash_set.h +index b35b6e9..77e524c 100644 +--- a/third_party/blink/renderer/platform/wtf/linked_hash_set.h ++++ b/third_party/blink/renderer/platform/wtf/linked_hash_set.h +@@ -146,6 +146,11 @@ + LinkedHashSetNodeBase* next) + : LinkedHashSetNodeBase(prev, next), value_(value) {} + ++ LinkedHashSetNode(ValueArg&& value, ++ LinkedHashSetNodeBase* prev, ++ LinkedHashSetNodeBase* next) ++ : LinkedHashSetNodeBase(prev, next), value_(std::move(value)) {} ++ + LinkedHashSetNode(LinkedHashSetNode&& other) + : LinkedHashSetNodeBase(std::move(other)), + value_(std::move(other.value_)) {} +@@ -445,10 +450,13 @@ + + // The slot is empty when the next_ field is zero so it's safe to zero + // the backing. +- static const bool kEmptyValueIsZero = true; ++ static const bool kEmptyValueIsZero = ValueTraits::kEmptyValueIsZero; + + static const bool kHasIsEmptyValueFunction = true; + static bool IsEmptyValue(const Node& node) { return !node.next_; } ++ static Node EmptyValue() { ++ return Node(ValueTraits::EmptyValue(), nullptr, nullptr); ++ } + + static const int kDeletedValue = -1; + +diff --git a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc +index 4c3f899..cd1be00 100644 +--- a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc ++++ b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc +@@ -487,6 +487,7 @@ + }; + + struct Complicated { ++ Complicated() : Complicated(0) {} + Complicated(int value) : simple_(value) { objects_constructed_++; } + + Complicated(const Complicated& other) : simple_(other.simple_) { +@@ -495,9 +496,6 @@ + + Simple simple_; + static int objects_constructed_; +- +- private: +- Complicated() = delete; + }; + + int Complicated::objects_constructed_ = 0; +@@ -731,4 +729,45 @@ + + } // anonymous namespace + ++// A unit type which objects to its state being initialized wrong. ++struct InvalidZeroValue { ++ InvalidZeroValue() = default; ++ InvalidZeroValue(WTF::HashTableDeletedValueType) : deleted_(true) {} ++ ~InvalidZeroValue() { CHECK(ok_); } ++ bool IsHashTableDeletedValue() const { return deleted_; } ++ ++ bool ok_ = true; ++ bool deleted_ = false; ++}; ++ ++template <> ++struct HashTraits<InvalidZeroValue> : SimpleClassHashTraits<InvalidZeroValue> { ++ static const bool kEmptyValueIsZero = false; ++}; ++ ++template <> ++struct DefaultHash<InvalidZeroValue> { ++ struct Hash { ++ static unsigned GetHash(const InvalidZeroValue&) { return 0; } ++ static bool Equal(const InvalidZeroValue&, const InvalidZeroValue&) { ++ return true; ++ } ++ }; ++}; ++ ++template <typename Set> ++class ListOrLinkedHashSetInvalidZeroTest : public testing::Test {}; ++ ++using InvalidZeroValueSetTypes = ++ testing::Types<ListHashSet<InvalidZeroValue>, ++ ListHashSet<InvalidZeroValue, 1>, ++ LinkedHashSet<InvalidZeroValue>>; ++TYPED_TEST_SUITE(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValueSetTypes); ++ ++TYPED_TEST(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValue) { ++ using Set = TypeParam; ++ Set set; ++ set.insert(InvalidZeroValue()); ++} ++ + } // namespace WTF diff --git a/www-client/chromium/files/chromium-77-system-hb.patch b/www-client/chromium/files/chromium-77-system-hb.patch new file mode 100644 index 0000000..9cea0fa --- /dev/null +++ b/www-client/chromium/files/chromium-77-system-hb.patch @@ -0,0 +1,13 @@ +diff --git a/third_party/harfbuzz-ng/BUILD.gn b/third_party/harfbuzz-ng/BUILD.gn +index 37d8e33..6610cc6 100644 +--- a/third_party/harfbuzz-ng/BUILD.gn ++++ b/third_party/harfbuzz-ng/BUILD.gn +@@ -16,7 +16,7 @@ if (use_system_harfbuzz) { + "//third_party:freetype_harfbuzz", + "//third_party/freetype:freetype_source", + ] +- packages = [ "harfbuzz" ] ++ packages = [ "harfbuzz", "harfbuzz-subset" ] + } + } else { + config("harfbuzz_config") { diff --git a/www-client/chromium/files/chromium-77-system-icu.patch b/www-client/chromium/files/chromium-77-system-icu.patch new file mode 100644 index 0000000..1f848d7 --- /dev/null +++ b/www-client/chromium/files/chromium-77-system-icu.patch @@ -0,0 +1,20 @@ +diff --git a/build/linux/unbundle/icu.gn b/build/linux/unbundle/icu.gn +index 4450e40..9ca36dd 100644 +--- a/build/linux/unbundle/icu.gn ++++ b/build/linux/unbundle/icu.gn +@@ -96,6 +96,7 @@ shim_headers("icui18n_shim") { + "unicode/fpositer.h", + "unicode/gender.h", + "unicode/gregocal.h", ++ "unicode/listformatter.h", + "unicode/measfmt.h", + "unicode/measunit.h", + "unicode/measure.h", +@@ -178,7 +179,6 @@ shim_headers("icuuc_shim") { + "unicode/icudataver.h", + "unicode/icuplug.h", + "unicode/idna.h", +- "unicode/listformatter.h", + "unicode/localpointer.h", + "unicode/locdspnm.h", + "unicode/locid.h", diff --git a/www-client/chromium/files/chromium-78-include.patch b/www-client/chromium/files/chromium-78-include.patch new file mode 100644 index 0000000..a0b77c4 --- /dev/null +++ b/www-client/chromium/files/chromium-78-include.patch @@ -0,0 +1,13 @@ +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" + ++#include <climits> ++ + namespace password_manager { + + namespace { diff --git a/www-client/chromium/files/chromium-78-protobuf-RepeatedPtrField-export.patch b/www-client/chromium/files/chromium-78-protobuf-RepeatedPtrField-export.patch new file mode 100644 index 0000000..ddb9e80 --- /dev/null +++ b/www-client/chromium/files/chromium-78-protobuf-RepeatedPtrField-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-79-gcc-protobuf-alignas.patch b/www-client/chromium/files/chromium-79-gcc-protobuf-alignas.patch new file mode 100644 index 0000000..20180c4 --- /dev/null +++ b/www-client/chromium/files/chromium-79-gcc-protobuf-alignas.patch @@ -0,0 +1,81 @@ +From 5d66d5907ac3e76d1e382b8a8e8afe653bd00f4c Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <stha09@googlemail.com> +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 +--- 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 + + + +-- +2.26.2 + diff --git a/www-client/chromium/files/chromium-79-span-stlcompat.patch b/www-client/chromium/files/chromium-79-span-stlcompat.patch new file mode 100644 index 0000000..9b47ee7 --- /dev/null +++ b/www-client/chromium/files/chromium-79-span-stlcompat.patch @@ -0,0 +1,12 @@ +diff --git a/base/containers/span.h b/base/containers/span.h +index c03bdf836..ff00275e7 100644 +--- a/base/containers/span.h ++++ b/base/containers/span.h +@@ -224,6 +224,7 @@ class span : public internal::ExtentStorage<Extent> { + using difference_type = ptrdiff_t; + using pointer = T*; + using reference = T&; ++ using iterator_category = std::random_access_iterator_tag; + using iterator = CheckedContiguousIterator<T>; + using const_iterator = CheckedContiguousConstIterator<T>; + using reverse_iterator = std::reverse_iterator<iterator>; diff --git a/www-client/chromium/files/chromium-80-QuicStreamSendBuffer-deleted-move-constructor.patch b/www-client/chromium/files/chromium-80-QuicStreamSendBuffer-deleted-move-constructor.patch new file mode 100644 index 0000000..aa3d541 --- /dev/null +++ b/www-client/chromium/files/chromium-80-QuicStreamSendBuffer-deleted-move-constructor.patch @@ -0,0 +1,30 @@ +From 00f47df999c9b19e80fdc01db0ae9ca1b6a12b3a Mon Sep 17 00:00:00 2001 +From: vasilvv <vasilvv@google.com> +Date: Wed, 03 Apr 2019 13:58:53 -0700 +Subject: [PATCH] GCC: do not delete move constructor of QuicStreamSendBuffer + +QuicStreamSendBuffer constructor is implicitely required in the +initialization of the vector of substreams in QuicCryptoStream. +Though clang apparently ignores that, GCC fails to build. + +BUG=chromium:819294 + +Originally submitted by José Dapena Paz <jose.dapena@lge.com> at https://quiche-review.googlesource.com/c/quiche/+/2420 + +PiperOrigin-RevId: 241800134 +Change-Id: I4e3c97d6e5895d85340e8c1b740e6196d9104066 +--- + +diff --git a/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h b/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h +index e34514b..74e9d0d 100644 +--- a/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h ++++ b/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h +@@ -62,7 +62,7 @@ + public: + explicit QuicStreamSendBuffer(QuicBufferAllocator* allocator); + QuicStreamSendBuffer(const QuicStreamSendBuffer& other) = delete; +- QuicStreamSendBuffer(QuicStreamSendBuffer&& other) = delete; ++ QuicStreamSendBuffer(QuicStreamSendBuffer&& other) = default; + ~QuicStreamSendBuffer(); + + // Save |data_length| of data starts at |iov_offset| in |iov| to send buffer. diff --git a/www-client/chromium/files/chromium-84-blink-disable-clang-format.patch b/www-client/chromium/files/chromium-84-blink-disable-clang-format.patch new file mode 100644 index 0000000..c573db8 --- /dev/null +++ b/www-client/chromium/files/chromium-84-blink-disable-clang-format.patch @@ -0,0 +1,33 @@ +From 08ac7188f414218ac9d764e29e7aa64a6bfc2f96 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <stha09@googlemail.com> +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/www-client/chromium/files/chromium-86-ConsumeDurationNumber-constexpr.patch b/www-client/chromium/files/chromium-86-ConsumeDurationNumber-constexpr.patch new file mode 100644 index 0000000..b623223 --- /dev/null +++ b/www-client/chromium/files/chromium-86-ConsumeDurationNumber-constexpr.patch @@ -0,0 +1,32 @@ +From f64e2d2daa64749995253f8ad00679ce74abdc1b Mon Sep 17 00:00:00 2001 +From: Jose Dapena Paz <jdapena@igalia.com> +Date: Wed, 19 Aug 2020 11:02:00 +0200 +Subject: [PATCH] GCC: ConsumeDurationNumber cannot be a constexpr + +Declaring base::ConsumeDurationNumber as constexpr is not valid, as it +uses the BasicStringPiece::begin method, that is not constexpr. + +build error in GCC: +../../base/time/time.cc: In function ‘constexpr base::Optional<base::{anonymous}::ParsedDecimal> base::{anonymous}::ConsumeDurationNumber(base::StringPiece&)’: +../../base/time/time.cc:67:63: error: call to non-‘constexpr’ function ‘const value_type* base::BasicStringPiece<STRING_TYPE>::begin() const [with STRING_TYPE = std::__cxx11::basic_string<char>; base::BasicStringPiece<STRING_TYPE>::const_iterator = const char*; base::BasicStringPiece<STRING_TYPE>::value_type = char]’ + 67 | StringPiece::const_iterator orig_start = number_string.begin(); + | ~~~~~~~~~~~~~~~~~~~^~ + +Bug: 859294 +Change-Id: Id987d003f66052848d7083bb33abc3acfd109b73 +--- + +diff --git a/base/time/time.cc b/base/time/time.cc +index 1b1a830..7c47419 100644 +--- a/base/time/time.cc ++++ b/base/time/time.cc +@@ -61,8 +61,7 @@ + // + // Adapted from absl: + // https://cs.chromium.org/chromium/src/third_party/abseil-cpp/absl/time/duration.cc?l=807&rcl=2c22e9135f107a4319582ae52e2e3e6b201b6b7c +-constexpr Optional<ParsedDecimal> ConsumeDurationNumber( +- StringPiece& number_string) { ++Optional<ParsedDecimal> ConsumeDurationNumber(StringPiece& number_string) { + ParsedDecimal res; + StringPiece::const_iterator orig_start = number_string.begin(); + // Parse contiguous digits. diff --git a/www-client/chromium/files/chromium-86-ImageMemoryBarrierData-init.patch b/www-client/chromium/files/chromium-86-ImageMemoryBarrierData-init.patch new file mode 100644 index 0000000..ff12a80 --- /dev/null +++ b/www-client/chromium/files/chromium-86-ImageMemoryBarrierData-init.patch @@ -0,0 +1,31 @@ +From 2879a6ba43b65c33e3c02432b4ae7a7462d24096 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <stha09@googlemail.com> +Date: Fri, 28 Aug 2020 07:23:29 +0000 +Subject: [PATCH] GCC: fix ImageMemoryBarrierData initialization + +GCC can't convert constant string to char[40]. Use const char * instead. +Otherwise fails like this: + +src/libANGLE/renderer/vulkan/vk_helpers.cpp:121:1: error: could not convert +'...' from '<brace-enclosed initializer list>' to +'const angle::PackedEnumMap<rx::vk::ImageLayout, rx::vk::{anonymous}::ImageMemoryBarrierData>' +--- + third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp b/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp +index af957d7..7fe82ae 100644 +--- a/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp ++++ b/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp +@@ -73,7 +73,7 @@ enum BarrierType + + struct ImageMemoryBarrierData + { +- char name[40]; ++ const char *name; + + // The Vk layout corresponding to the ImageLayout key. + VkImageLayout layout; +-- +2.26.2 + diff --git a/www-client/chromium/files/chromium-86-compiler.patch b/www-client/chromium/files/chromium-86-compiler.patch new file mode 100644 index 0000000..3088207 --- /dev/null +++ b/www-client/chromium/files/chromium-86-compiler.patch @@ -0,0 +1,159 @@ +From f4d0b0eb899005b4b8b6388e1d8bb82cc0018fc8 Mon Sep 17 00:00:00 2001 +From: Mike Gilbert <floppym@gentoo.org> +Date: Thu, 20 Aug 2020 19:12:21 +0000 +Subject: [PATCH] Disable various compiler configs + +--- + build/config/compiler/BUILD.gn | 52 +++++++++++----------------------- + 1 file changed, 17 insertions(+), 35 deletions(-) + +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index 06c166f..fe5d340 100644 +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -254,8 +254,6 @@ config("compiler") { + + configs += [ + # See the definitions below. +- ":clang_revision", +- ":compiler_cpu_abi", + ":compiler_codegen", + ":compiler_deterministic", + ] +@@ -488,17 +486,6 @@ config("compiler") { + ldflags += [ "-Wl,-z,keep-text-section-prefix" ] + } + +- if (is_clang && !is_nacl && !use_xcode_clang) { +- cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ] +- +- cflags += [ +- # TODO(hans): Remove this once Clang generates better optimized debug info +- # by default. https://crbug.com/765793 +- "-mllvm", +- "-instcombine-lower-dbg-declare=0", +- ] +- } +- + # C11/C++11 compiler flags setup. + # --------------------------- + if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) || +@@ -1575,7 +1562,7 @@ config("chromium_code") { + defines = [ "_HAS_NODISCARD" ] + } + } else { +- cflags = [ "-Wall" ] ++ cflags = [] + if (treat_warnings_as_errors) { + cflags += [ "-Werror" ] + +@@ -1584,10 +1571,6 @@ config("chromium_code") { + # well. + ldflags = [ "-Werror" ] + } +- if (is_clang) { +- # Enable extra warnings for chromium_code when we control the compiler. +- cflags += [ "-Wextra" ] +- } + + # In Chromium code, we define __STDC_foo_MACROS in order to get the + # C99 macros on Mac and Linux. +@@ -1596,15 +1579,6 @@ config("chromium_code") { + "__STDC_FORMAT_MACROS", + ] + +- if (!is_debug && !using_sanitizer && current_cpu != "s390x" && +- current_cpu != "s390" && current_cpu != "ppc64" && +- current_cpu != "mips" && current_cpu != "mips64") { +- # Non-chromium code is not guaranteed to compile cleanly with +- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are +- # disabled, so only do that for Release build. +- defines += [ "_FORTIFY_SOURCE=2" ] +- } +- + if (is_mac) { + cflags_objc = [ "-Wobjc-missing-property-synthesis" ] + cflags_objcc = [ "-Wobjc-missing-property-synthesis" ] +@@ -2002,7 +1976,8 @@ config("default_stack_frames") { + } + + # Default "optimization on" config. +-config("optimize") { ++config("optimize") { } ++config("xoptimize") { + if (is_win) { + if (chrome_pgo_phase != 2) { + # Favor size over speed, /O1 must be before the common flags. +@@ -2037,7 +2012,8 @@ config("optimize") { + } + + # Turn off optimizations. +-config("no_optimize") { ++config("no_optimize") { } ++config("xno_optimize") { + if (is_win) { + cflags = [ + "/Od", # Disable optimization. +@@ -2077,7 +2053,8 @@ config("no_optimize") { + # Turns up the optimization level. On Windows, this implies whole program + # optimization and link-time code generation which is very expensive and should + # be used sparingly. +-config("optimize_max") { ++config("optimize_max") { } ++config("xoptimize_max") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2109,7 +2086,8 @@ config("optimize_max") { + # + # TODO(crbug.com/621335) - rework how all of these configs are related + # so that we don't need this disclaimer. +-config("optimize_speed") { ++config("optimize_speed") { } ++config("xoptimize_speed") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2134,7 +2112,8 @@ config("optimize_speed") { + } + } + +-config("optimize_fuzzing") { ++config("optimize_fuzzing") { } ++config("xoptimize_fuzzing") { + cflags = [ "-O1" ] + common_optimize_on_cflags + ldflags = common_optimize_on_ldflags + visibility = [ ":default_optimization" ] +@@ -2251,7 +2230,8 @@ config("win_pdbaltpath") { + } + + # Full symbols. +-config("symbols") { ++config("symbols") { } ++config("xsymbols") { + if (is_win) { + if (is_clang) { + cflags = [ "/Z7" ] # Debug information in the .obj files. +@@ -2346,7 +2326,8 @@ config("symbols") { + # Minimal symbols. + # This config guarantees to hold symbol for stack trace which are shown to user + # when crash happens in unittests running on buildbot. +-config("minimal_symbols") { ++config("minimal_symbols") { } ++config("xminimal_symbols") { + if (is_win) { + # Functions, files, and line tables only. + cflags = [] +@@ -2399,7 +2380,8 @@ config("minimal_symbols") { + # This configuration contains function names only. That is, the compiler is + # told to not generate debug information and the linker then just puts function + # names in the final debug information. +-config("no_symbols") { ++config("no_symbols") { } ++config("xno_symbols") { + if (is_win) { + ldflags = [ "/DEBUG" ] + +-- +2.26.2 + diff --git a/www-client/chromium/files/chromium-86-nearby-explicit.patch b/www-client/chromium/files/chromium-86-nearby-explicit.patch new file mode 100644 index 0000000..84709cb --- /dev/null +++ b/www-client/chromium/files/chromium-86-nearby-explicit.patch @@ -0,0 +1,25 @@ +From 849e5c6b3a8746d9205102bd3df4e140cead405a Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <stha09@googlemail.com> +Date: Sat, 18 Jul 2020 15:11:13 +0000 +Subject: [PATCH] GCC: remove explicit from AtomicReference constructor + +--- + .../nearby/src/cpp/platform_v2/public/atomic_reference.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/third_party/nearby/src/cpp/platform_v2/public/atomic_reference.h b/third_party/nearby/src/cpp/platform_v2/public/atomic_reference.h +index 5742724..bbb8c01 100644 +--- a/third_party/nearby/src/cpp/platform_v2/public/atomic_reference.h ++++ b/third_party/nearby/src/cpp/platform_v2/public/atomic_reference.h +@@ -37,7 +37,7 @@ class AtomicReference<T, std::enable_if_t<sizeof(T) <= sizeof(std::uint32_t) && + final { + public: + using Platform = api::ImplementationPlatform; +- explicit AtomicReference(T value) ++ AtomicReference(T value) + : impl_(Platform::CreateAtomicUint32(static_cast<std::uint32_t>(value))) { + } + ~AtomicReference() = default; +-- +2.26.2 + diff --git a/www-client/chromium/files/chromium-86-nearby-include.patch b/www-client/chromium/files/chromium-86-nearby-include.patch new file mode 100644 index 0000000..d3f02c2 --- /dev/null +++ b/www-client/chromium/files/chromium-86-nearby-include.patch @@ -0,0 +1,24 @@ +From a5b2ee9dd7dfb186e26ec6c0c06c2ae1a9d27195 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <stha09@googlemail.com> +Date: Sat, 18 Jul 2020 14:15:50 +0000 +Subject: [PATCH] IWYU: memcpy is defined in cstring + +--- + third_party/nearby/src/cpp/platform_v2/base/byte_array.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/third_party/nearby/src/cpp/platform_v2/base/byte_array.h b/third_party/nearby/src/cpp/platform_v2/base/byte_array.h +index ee5d0eb..4b1d79b 100644 +--- a/third_party/nearby/src/cpp/platform_v2/base/byte_array.h ++++ b/third_party/nearby/src/cpp/platform_v2/base/byte_array.h +@@ -17,6 +17,7 @@ + + #include <array> + #include <cstdint> ++#include <cstring> + #include <string> + #include <type_traits> + #include <utility> +-- +2.26.2 + diff --git a/www-client/chromium/files/chromium-87-CrossThreadPersistent-template.patch b/www-client/chromium/files/chromium-87-CrossThreadPersistent-template.patch new file mode 100644 index 0000000..585c91f --- /dev/null +++ b/www-client/chromium/files/chromium-87-CrossThreadPersistent-template.patch @@ -0,0 +1,32 @@ +From 37070745728cd7744e12fa5110cde304ab6a048d Mon Sep 17 00:00:00 2001 +From: Jose Dapena Paz <jdapena@igalia.com> +Date: Tue, 15 Sep 2020 16:55:19 +0200 +Subject: [PATCH] GCC: avoid GCC getting confused with wrong using resolution in CrossThreadPersistent + +In the method to assign a CrossThreadWeakPersistent<U> to a CrossThreadPersistent<T>, +there is a call to the parent class implementation of Get. It uses Parent, that is, +in CrossThreadPersistent<T> an alias to its parent. GCC resolves it as that, but +that's wrong, and it should resolve to the parent of CrossThreadWeakPersistent<U>. + +To avoid the problem, we define in that method ParentU resolving to the right +parent, and use a static cast to it. + +Bug: 819294 +Change-Id: I0152dac92d4a28eb1f1abbc56473204b62f33797 +--- + +diff --git a/third_party/blink/renderer/platform/heap/persistent.h b/third_party/blink/renderer/platform/heap/persistent.h +index f08f42f..32cadc0 100644 +--- a/third_party/blink/renderer/platform/heap/persistent.h ++++ b/third_party/blink/renderer/platform/heap/persistent.h +@@ -784,7 +784,9 @@ + CrossThreadPersistent<T>& CrossThreadPersistent<T>::operator=( + const CrossThreadWeakPersistent<U>& other) { + MutexLocker locker(ProcessHeap::CrossThreadPersistentMutex()); +- this->AssignUnsafe(other.Parent::Get()); ++ using ParentU = PersistentBase<U, kWeakPersistentConfiguration, ++ kCrossThreadPersistentConfiguration>; ++ this->AssignUnsafe(static_cast<const ParentU&>(other).Get()); + return *this; + } + diff --git a/www-client/chromium/files/chromium-87-CursorFactory-include.patch b/www-client/chromium/files/chromium-87-CursorFactory-include.patch new file mode 100644 index 0000000..98cb9cf --- /dev/null +++ b/www-client/chromium/files/chromium-87-CursorFactory-include.patch @@ -0,0 +1,36 @@ +From c4f6e8cd34a245c3640b86a91c9694d69594d80b Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <stha09@googlemail.com> +Date: Wed, 16 Sep 2020 15:05:02 +0000 +Subject: [PATCH] IWYU: ui::CursorFactory is now required independent from + Ozone + +--- + .../ui/views/chrome_browser_main_extra_parts_views_linux.cc | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +diff --git a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc +index 5a97d61..ccedd2a 100644 +--- a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc ++++ b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc +@@ -7,6 +7,7 @@ + #include "chrome/browser/themes/theme_service_aura_linux.h" + #include "chrome/browser/ui/browser_list.h" + #include "chrome/browser/ui/views/theme_profile_key.h" ++#include "ui/base/cursor/cursor_factory.h" + #include "ui/display/screen.h" + #include "ui/views/linux_ui/linux_ui.h" + +@@ -15,10 +16,6 @@ + #include "ui/gtk/gtk_ui_delegate.h" + #endif + +-#if defined(USE_OZONE) +-#include "ui/base/cursor/cursor_factory.h" +-#endif +- + #if defined(USE_X11) + #include "ui/gfx/x/connection.h" // nogncheck + #if BUILDFLAG(USE_GTK) +-- +2.26.2 + diff --git a/www-client/chromium/files/chromium-87-SystemMemoryPressureEvaluator-namespace.patch b/www-client/chromium/files/chromium-87-SystemMemoryPressureEvaluator-namespace.patch new file mode 100644 index 0000000..3129a75 --- /dev/null +++ b/www-client/chromium/files/chromium-87-SystemMemoryPressureEvaluator-namespace.patch @@ -0,0 +1,70 @@ +From b73f096a06f4241a1459b0e02ddaa0bb4e14f7a1 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <stha09@googlemail.com> +Date: Fri, 4 Sep 2020 17:57:22 +0000 +Subject: [PATCH] GCC: fix clash in predefined macro "linux" + +"linux" is predefined in GCC and can't be used for namespace name. +--- + base/util/memory_pressure/system_memory_pressure_evaluator.cc | 2 +- + .../memory_pressure/system_memory_pressure_evaluator_linux.cc | 4 ++-- + .../memory_pressure/system_memory_pressure_evaluator_linux.h | 4 ++-- + 3 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/base/util/memory_pressure/system_memory_pressure_evaluator.cc b/base/util/memory_pressure/system_memory_pressure_evaluator.cc +index babb4f8..4a9963b 100644 +--- a/base/util/memory_pressure/system_memory_pressure_evaluator.cc ++++ b/base/util/memory_pressure/system_memory_pressure_evaluator.cc +@@ -46,7 +46,7 @@ SystemMemoryPressureEvaluator::CreateDefaultSystemEvaluator( + } + return evaluator; + #elif defined(OS_LINUX) && !defined(OS_CHROMEOS) +- return std::make_unique<util::linux::SystemMemoryPressureEvaluator>( ++ return std::make_unique<util::os_linux::SystemMemoryPressureEvaluator>( + monitor->CreateVoter()); + #endif + return nullptr; +diff --git a/base/util/memory_pressure/system_memory_pressure_evaluator_linux.cc b/base/util/memory_pressure/system_memory_pressure_evaluator_linux.cc +index 258d983..1878d88 100644 +--- a/base/util/memory_pressure/system_memory_pressure_evaluator_linux.cc ++++ b/base/util/memory_pressure/system_memory_pressure_evaluator_linux.cc +@@ -32,7 +32,7 @@ int GetAvailableSystemMemoryMiB(const base::SystemMemoryInfoKB& mem_info) { + } // namespace + + namespace util { +-namespace linux { ++namespace os_linux { + + const base::TimeDelta SystemMemoryPressureEvaluator::kModeratePressureCooldown = + base::TimeDelta::FromSeconds(10); +@@ -153,5 +153,5 @@ SystemMemoryPressureEvaluator::CalculateCurrentPressureLevel() { + return base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE; + } + +-} // namespace linux ++} // namespace os_linux + } // namespace util +diff --git a/base/util/memory_pressure/system_memory_pressure_evaluator_linux.h b/base/util/memory_pressure/system_memory_pressure_evaluator_linux.h +index 0f5c43d..3a24427 100644 +--- a/base/util/memory_pressure/system_memory_pressure_evaluator_linux.h ++++ b/base/util/memory_pressure/system_memory_pressure_evaluator_linux.h +@@ -13,7 +13,7 @@ + #include "base/util/memory_pressure/system_memory_pressure_evaluator.h" + + namespace util { +-namespace linux { ++namespace os_linux { + + // Linux memory pressure voter. Because there is no OS provided signal this + // polls at a low frequency, and applies internal hysteresis. +@@ -106,7 +106,7 @@ class SystemMemoryPressureEvaluator + SEQUENCE_CHECKER(sequence_checker_); + }; + +-} // namespace linux ++} // namespace os_linux + } // namespace util + + #endif // BASE_UTIL_MEMORY_PRESSURE_SYSTEM_MEMORY_PRESSURE_EVALUATOR_LINUX_H_ +-- +2.26.2 + diff --git a/www-client/chromium/files/chromium-87-Thumbnail-noexcept.patch b/www-client/chromium/files/chromium-87-Thumbnail-noexcept.patch new file mode 100644 index 0000000..76c3d43 --- /dev/null +++ b/www-client/chromium/files/chromium-87-Thumbnail-noexcept.patch @@ -0,0 +1,46 @@ +From 92db841a0d8449b46ce9d9e76bb4a23e5b370f9c Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <stha09@googlemail.com> +Date: Fri, 11 Sep 2020 07:07:00 +0000 +Subject: [PATCH] GCC: remove noexcept from PDF Thumbnail + +Move constructor/operator can't be noexcept, because of SkBitmap +member has no noexcept move constructor/operator. +--- + pdf/thumbnail.cc | 4 ++-- + pdf/thumbnail.h | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/pdf/thumbnail.cc b/pdf/thumbnail.cc +index d46b20b..82f4790 100644 +--- a/pdf/thumbnail.cc ++++ b/pdf/thumbnail.cc +@@ -113,9 +113,9 @@ Thumbnail::Thumbnail(const gfx::Size& page_size, float device_pixel_ratio) { + DCHECK(success); + } + +-Thumbnail::Thumbnail(Thumbnail&& other) noexcept = default; ++Thumbnail::Thumbnail(Thumbnail&& other) = default; + +-Thumbnail& Thumbnail::operator=(Thumbnail&& other) noexcept = default; ++Thumbnail& Thumbnail::operator=(Thumbnail&& other) = default; + + Thumbnail::~Thumbnail() = default; + +diff --git a/pdf/thumbnail.h b/pdf/thumbnail.h +index 4b2bdef..d62a56a 100644 +--- a/pdf/thumbnail.h ++++ b/pdf/thumbnail.h +@@ -17,8 +17,8 @@ class Thumbnail final { + public: + Thumbnail(); + Thumbnail(const gfx::Size& page_size, float device_pixel_ratio); +- Thumbnail(Thumbnail&& other) noexcept; +- Thumbnail& operator=(Thumbnail&& other) noexcept; ++ Thumbnail(Thumbnail&& other); ++ Thumbnail& operator=(Thumbnail&& other); + ~Thumbnail(); + + SkBitmap& bitmap() { return bitmap_; } +-- +2.26.2 + diff --git a/www-client/chromium/files/chromium-87-anonymous-struct.patch b/www-client/chromium/files/chromium-87-anonymous-struct.patch new file mode 100644 index 0000000..7d7c356 --- /dev/null +++ b/www-client/chromium/files/chromium-87-anonymous-struct.patch @@ -0,0 +1,61 @@ +From 9f2b2a3a6153be7ae5cef3305161c07fa2f6f70c Mon Sep 17 00:00:00 2001 +From: Jose Dapena Paz <jdapena@igalia.com> +Date: Tue, 15 Sep 2020 18:58:11 +0000 +Subject: [PATCH] GCC: do not use anonymous structs + +Two using declarations have been added in x11.h for an +unnamed struct. This is not allowed by C++ (and GCC). An example: +using XErrorEvent = struct { + ... +}; + +The solution is giving a name to the struct. + +Bug: 819294 +Change-Id: I9e77017851efe8e0a92fb37c01fdba693bb7a36d +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2412450 +Reviewed-by: Thomas Anderson <thomasanderson@chromium.org> +Commit-Queue: José Dapena Paz <jdapena@igalia.com> +Cr-Commit-Position: refs/heads/master@{#807126} +--- + +diff --git a/ui/gfx/x/x11.h b/ui/gfx/x/x11.h +index 6b36d48..d2dab40 100644 +--- a/ui/gfx/x/x11.h ++++ b/ui/gfx/x/x11.h +@@ -139,7 +139,7 @@ + + enum XEventQueueOwner { XlibOwnsEventQueue = 0, XCBOwnsEventQueue }; + +-using XErrorEvent = struct { ++using XErrorEvent = struct _XErrorEvent { + int type; + Display* display; + XID resourceid; +@@ -149,7 +149,7 @@ + unsigned char minor_code; + }; + +-using XRectangle = struct { ++using XRectangle = struct _XRectangle { + short x, y; + unsigned short width, height; + }; +@@ -161,7 +161,7 @@ + XPointer private_data; + }; + +-using Visual = struct { ++using Visual = struct _Visual { + XExtData* ext_data; + VisualID visualid; + int c_class; +@@ -170,7 +170,7 @@ + int map_entries; + }; + +-using XVisualInfo = struct { ++using XVisualInfo = struct _XVisualInfo { + Visual* visual; + VisualID visualid; + int screen; diff --git a/www-client/chromium/files/chromium-87-compiler-r1.patch b/www-client/chromium/files/chromium-87-compiler-r1.patch new file mode 100644 index 0000000..181e724 --- /dev/null +++ b/www-client/chromium/files/chromium-87-compiler-r1.patch @@ -0,0 +1,166 @@ +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index 4f6461b6b..b5d2c7700 100644 +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -254,8 +254,6 @@ config("compiler") { + + configs += [ + # See the definitions below. +- ":clang_revision", +- ":compiler_cpu_abi", + ":compiler_codegen", + ":compiler_deterministic", + ] +@@ -480,36 +478,6 @@ config("compiler") { + ldflags += [ "-Wl,-z,keep-text-section-prefix" ] + } + +- if (is_clang && !is_nacl && !use_xcode_clang) { +- cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ] +- +- cflags += [ +- # TODO(hans): Remove this once Clang generates better optimized debug info +- # by default. https://crbug.com/765793 +- "-mllvm", +- "-instcombine-lower-dbg-declare=0", +- ] +- +- # Pinned clang has enable-dse-memoryssa enabled by default but it's broken, +- # so we have to force it off. +- # Trunk clang has it disabled by default but it might work, so we force it +- # on so the ToT bots can check if it works now. +- if (!llvm_force_head_revision) { +- cflags += [ +- # TODO(https://crbug.com/1127713): Investigate, remove. +- "-mllvm", +- "-enable-dse-memoryssa=false", +- ] +- } +- if (llvm_force_head_revision) { +- cflags += [ +- # TODO(https://crbug.com/1127713): Investigate, remove. +- "-mllvm", +- "-enable-dse-memoryssa=true", +- ] +- } +- } +- + # C11/C++11 compiler flags setup. + # --------------------------- + if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) || +@@ -1571,7 +1539,7 @@ config("chromium_code") { + defines = [ "_HAS_NODISCARD" ] + } + } else { +- cflags = [ "-Wall" ] ++ cflags = [] + if (treat_warnings_as_errors) { + cflags += [ "-Werror" ] + +@@ -1580,10 +1548,6 @@ config("chromium_code") { + # well. + ldflags = [ "-Werror" ] + } +- if (is_clang) { +- # Enable extra warnings for chromium_code when we control the compiler. +- cflags += [ "-Wextra" ] +- } + + # In Chromium code, we define __STDC_foo_MACROS in order to get the + # C99 macros on Mac and Linux. +@@ -1592,15 +1556,6 @@ config("chromium_code") { + "__STDC_FORMAT_MACROS", + ] + +- if (!is_debug && !using_sanitizer && current_cpu != "s390x" && +- current_cpu != "s390" && current_cpu != "ppc64" && +- current_cpu != "mips" && current_cpu != "mips64") { +- # Non-chromium code is not guaranteed to compile cleanly with +- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are +- # disabled, so only do that for Release build. +- defines += [ "_FORTIFY_SOURCE=2" ] +- } +- + if (is_mac) { + cflags_objc = [ "-Wobjc-missing-property-synthesis" ] + cflags_objcc = [ "-Wobjc-missing-property-synthesis" ] +@@ -1998,7 +1953,8 @@ config("default_stack_frames") { + } + + # Default "optimization on" config. +-config("optimize") { ++config("optimize") { } ++config("xoptimize") { + if (is_win) { + if (chrome_pgo_phase != 2) { + # Favor size over speed, /O1 must be before the common flags. +@@ -2033,7 +1989,8 @@ config("optimize") { + } + + # Turn off optimizations. +-config("no_optimize") { ++config("no_optimize") { } ++config("xno_optimize") { + if (is_win) { + cflags = [ + "/Od", # Disable optimization. +@@ -2073,7 +2030,8 @@ config("no_optimize") { + # Turns up the optimization level. On Windows, this implies whole program + # optimization and link-time code generation which is very expensive and should + # be used sparingly. +-config("optimize_max") { ++config("optimize_max") { } ++config("xoptimize_max") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2105,7 +2063,8 @@ config("optimize_max") { + # + # TODO(crbug.com/621335) - rework how all of these configs are related + # so that we don't need this disclaimer. +-config("optimize_speed") { ++config("optimize_speed") { } ++config("xoptimize_speed") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2130,7 +2089,8 @@ config("optimize_speed") { + } + } + +-config("optimize_fuzzing") { ++config("optimize_fuzzing") { } ++config("xoptimize_fuzzing") { + cflags = [ "-O1" ] + common_optimize_on_cflags + ldflags = common_optimize_on_ldflags + visibility = [ ":default_optimization" ] +@@ -2247,7 +2207,8 @@ config("win_pdbaltpath") { + } + + # Full symbols. +-config("symbols") { ++config("symbols") { } ++config("xsymbols") { + if (is_win) { + if (is_clang) { + cflags = [ "/Z7" ] # Debug information in the .obj files. +@@ -2355,7 +2316,8 @@ config("symbols") { + # Minimal symbols. + # This config guarantees to hold symbol for stack trace which are shown to user + # when crash happens in unittests running on buildbot. +-config("minimal_symbols") { ++config("minimal_symbols") { } ++config("xminimal_symbols") { + if (is_win) { + # Functions, files, and line tables only. + cflags = [] +@@ -2408,7 +2370,8 @@ config("minimal_symbols") { + # This configuration contains function names only. That is, the compiler is + # told to not generate debug information and the linker then just puts function + # names in the final debug information. +-config("no_symbols") { ++config("no_symbols") { } ++config("xno_symbols") { + if (is_win) { + ldflags = [ "/DEBUG" ] + diff --git a/www-client/chromium/files/chromium-87-openscreen-crypto-include.patch b/www-client/chromium/files/chromium-87-openscreen-crypto-include.patch new file mode 100644 index 0000000..5edd10b --- /dev/null +++ b/www-client/chromium/files/chromium-87-openscreen-crypto-include.patch @@ -0,0 +1,11 @@ +--- a/third_party/openscreen/src/util/crypto/random_bytes.h 2020-10-03 07:37:39.335192533 +0800 ++++ b/third_party/openscreen/src/util/crypto/random_bytes.h 2020-10-03 07:37:29.548124971 +0800 +@@ -5,6 +5,8 @@ + #ifndef UTIL_CRYPTO_RANDOM_BYTES_H_ + #define UTIL_CRYPTO_RANDOM_BYTES_H_ + ++#include <stdint.h> ++ + #include <array> + + namespace openscreen { diff --git a/www-client/chromium/files/chromium-87-ozone-deps.patch b/www-client/chromium/files/chromium-87-ozone-deps.patch new file mode 100644 index 0000000..c9bac08 --- /dev/null +++ b/www-client/chromium/files/chromium-87-ozone-deps.patch @@ -0,0 +1,15 @@ +diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn +index 51b25f1a8..56dfeb165 100644 +--- a/chrome/browser/BUILD.gn ++++ b/chrome/browser/BUILD.gn +@@ -5073,7 +5073,9 @@ static_library("browser") { + "chrome_browser_main_extra_parts_ozone.cc", + "chrome_browser_main_extra_parts_ozone.h", + ] +- deps += [ "//ui/ozone" ] ++ if (use_ozone) { ++ deps += [ "//ui/ozone" ] ++ } + } + + if (enable_background_mode) { diff --git a/www-client/chromium/files/chromium-87-remotesyscall.patch b/www-client/chromium/files/chromium-87-remotesyscall.patch new file mode 100644 index 0000000..63d1cf9 --- /dev/null +++ b/www-client/chromium/files/chromium-87-remotesyscall.patch @@ -0,0 +1,13 @@ +diff --git a/sandbox/linux/syscall_broker/remote_syscall_arg_handler.cc b/sandbox/linux/syscall_broker/remote_syscall_arg_handler.cc +index 33ff80225..d503a86e0 100644 +--- a/sandbox/linux/syscall_broker/remote_syscall_arg_handler.cc ++++ b/sandbox/linux/syscall_broker/remote_syscall_arg_handler.cc +@@ -4,6 +4,8 @@ + + #include "sandbox/linux/syscall_broker/remote_syscall_arg_handler.h" + ++#include <string.h> ++ + #include <sys/ioctl.h> + #include <sys/syscall.h> + #include <sys/types.h> diff --git a/www-client/chromium/files/chromium-87-std-max_align_t.patch b/www-client/chromium/files/chromium-87-std-max_align_t.patch new file mode 100644 index 0000000..e37d0fb --- /dev/null +++ b/www-client/chromium/files/chromium-87-std-max_align_t.patch @@ -0,0 +1,43 @@ +From 1e0683735e26c6fcecb0977e0cdae5da2eaf7c84 Mon Sep 17 00:00:00 2001 +From: Jose Dapena Paz <jdapena@igalia.com> +Date: Tue, 22 Sep 2020 13:18:55 +0200 +Subject: [PATCH] libstdc++: use max_align_t without std prefix in partition alloc constants. + +Using std::max_align_t would require using cstddef instead of stddef.h. As +partition alloc constants is including stddef.h, let's remove the std:: +namespace prefix. + +This fixes this error building with libstdc++ +../../base/allocator/partition_allocator/partition_alloc_constants.h:200:51: error: ‘max_align_t’ is not a member of ‘std’; did you mean ‘max_align_t’? + +Bug: 957519 +Change-Id: I72b22428937e7b7b1e6bb31fb0ac0bef3b72c581 + +(Adjusted to work with clang too) +--- + +diff --git a/base/allocator/partition_allocator/partition_alloc_constants.h b/base/allocator/partition_allocator/partition_alloc_constants.h +index 0c74dbe..ef1488f 100644 +--- a/base/allocator/partition_allocator/partition_alloc_constants.h ++++ b/base/allocator/partition_allocator/partition_alloc_constants.h +@@ -183,7 +183,7 @@ NumPartitionPagesPerSuperPage() { + } + + // Alignment has two constraints: +-// - Alignment requirement for scalar types: alignof(std::max_align_t) ++// - Alignment requirement for scalar types: alignof(max_align_t) + // - Alignment requirement for operator new(). + // + // The two are separate on Windows 64 bits, where the first one is 8 bytes, and +@@ -195,9 +195,9 @@ NumPartitionPagesPerSuperPage() { + // platforms, as Chrome's requirement is C++14 as of 2020. + #if defined(__STDCPP_DEFAULT_NEW_ALIGNMENT__) + static constexpr size_t kAlignment = +- std::max(alignof(std::max_align_t), __STDCPP_DEFAULT_NEW_ALIGNMENT__); ++ std::max(alignof(max_align_t), __STDCPP_DEFAULT_NEW_ALIGNMENT__); + #else +-static constexpr size_t kAlignment = alignof(std::max_align_t); ++static constexpr size_t kAlignment = alignof(max_align_t); + #endif + static_assert(kAlignment <= 16, + "PartitionAlloc doesn't support a fundamental alignment larger " diff --git a/www-client/chromium/files/chromium-87-thread_cache.patch b/www-client/chromium/files/chromium-87-thread_cache.patch new file mode 100644 index 0000000..b2ef990 --- /dev/null +++ b/www-client/chromium/files/chromium-87-thread_cache.patch @@ -0,0 +1,25 @@ +diff --git a/base/allocator/partition_allocator/partition_alloc.h b/base/allocator/partition_allocator/partition_alloc.h +index 549451e2d..17b7deab3 100644 +--- a/base/allocator/partition_allocator/partition_alloc.h ++++ b/base/allocator/partition_allocator/partition_alloc.h +@@ -582,7 +582,7 @@ struct BASE_EXPORT PartitionRoot { + EXCLUSIVE_LOCKS_REQUIRED(lock_); + void DecommitEmptyPages() EXCLUSIVE_LOCKS_REQUIRED(lock_); + +- friend class internal::ThreadCache; ++ friend class base::internal::ThreadCache; + }; + + static_assert(sizeof(PartitionRoot<internal::ThreadSafe>) == +diff --git a/base/allocator/partition_allocator/thread_cache.h b/base/allocator/partition_allocator/thread_cache.h +index dd71ccc09..05097470a 100644 +--- a/base/allocator/partition_allocator/thread_cache.h ++++ b/base/allocator/partition_allocator/thread_cache.h +@@ -5,6 +5,7 @@ + #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_THREAD_CACHE_H_ + #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_THREAD_CACHE_H_ + ++#include <atomic> + #include <cstdint> + #include <memory> + diff --git a/www-client/chromium/files/chromium-88-angle-renderer.patch b/www-client/chromium/files/chromium-88-angle-renderer.patch new file mode 100644 index 0000000..257c00c --- /dev/null +++ b/www-client/chromium/files/chromium-88-angle-renderer.patch @@ -0,0 +1,13 @@ +diff --git a/third_party/angle/src/libANGLE/renderer/EGLReusableSync.h b/third_party/angle/src/libANGLE/renderer/EGLReusableSync.h +index 9c65fccad..12c972565 100644 +--- a/third_party/angle/src/libANGLE/renderer/EGLReusableSync.h ++++ b/third_party/angle/src/libANGLE/renderer/EGLReusableSync.h +@@ -14,6 +14,8 @@ + + #include "common/angleutils.h" + ++#include <condition_variable> ++ + namespace rx + { + diff --git a/www-client/chromium/files/chromium-88-compiler.patch b/www-client/chromium/files/chromium-88-compiler.patch new file mode 100644 index 0000000..cb72cf2 --- /dev/null +++ b/www-client/chromium/files/chromium-88-compiler.patch @@ -0,0 +1,147 @@ +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index 9d66490cd..4e79a84f8 100644 +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -254,8 +254,6 @@ config("compiler") { + + configs += [ + # See the definitions below. +- ":clang_revision", +- ":compiler_cpu_abi", + ":compiler_codegen", + ":compiler_deterministic", + ] +@@ -478,17 +476,6 @@ config("compiler") { + ldflags += [ "-Wl,-z,keep-text-section-prefix" ] + } + +- if (is_clang && !is_nacl && !use_xcode_clang) { +- cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ] +- +- cflags += [ +- # TODO(hans): Remove this once Clang generates better optimized debug info +- # by default. https://crbug.com/765793 +- "-mllvm", +- "-instcombine-lower-dbg-declare=0", +- ] +- } +- + # C11/C++11 compiler flags setup. + # --------------------------- + if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) || +@@ -1574,7 +1561,7 @@ config("chromium_code") { + defines = [ "_HAS_NODISCARD" ] + } + } else { +- cflags = [ "-Wall" ] ++ cflags = [ ] + if (treat_warnings_as_errors) { + cflags += [ "-Werror" ] + +@@ -1583,10 +1570,6 @@ config("chromium_code") { + # well. + ldflags = [ "-Werror" ] + } +- if (is_clang) { +- # Enable extra warnings for chromium_code when we control the compiler. +- cflags += [ "-Wextra" ] +- } + + # In Chromium code, we define __STDC_foo_MACROS in order to get the + # C99 macros on Mac and Linux. +@@ -1595,15 +1578,6 @@ config("chromium_code") { + "__STDC_FORMAT_MACROS", + ] + +- if (!is_debug && !using_sanitizer && current_cpu != "s390x" && +- current_cpu != "s390" && current_cpu != "ppc64" && +- current_cpu != "mips" && current_cpu != "mips64") { +- # Non-chromium code is not guaranteed to compile cleanly with +- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are +- # disabled, so only do that for Release build. +- defines += [ "_FORTIFY_SOURCE=2" ] +- } +- + if (is_mac) { + cflags_objc = [ "-Wobjc-missing-property-synthesis" ] + cflags_objcc = [ "-Wobjc-missing-property-synthesis" ] +@@ -2006,7 +1980,8 @@ config("default_stack_frames") { + } + + # Default "optimization on" config. +-config("optimize") { ++config("optimize") { } ++config("xoptimize") { + if (is_win) { + if (chrome_pgo_phase != 2) { + # Favor size over speed, /O1 must be before the common flags. +@@ -2041,7 +2016,8 @@ config("optimize") { + } + + # Turn off optimizations. +-config("no_optimize") { ++config("no_optimize") { } ++config("xno_optimize") { + if (is_win) { + cflags = [ + "/Od", # Disable optimization. +@@ -2081,7 +2057,8 @@ config("no_optimize") { + # Turns up the optimization level. On Windows, this implies whole program + # optimization and link-time code generation which is very expensive and should + # be used sparingly. +-config("optimize_max") { ++config("optimize_max") { } ++config("xoptimize_max") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2113,7 +2090,8 @@ config("optimize_max") { + # + # TODO(crbug.com/621335) - rework how all of these configs are related + # so that we don't need this disclaimer. +-config("optimize_speed") { ++config("optimize_speed") { } ++config("xoptimize_speed") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2138,7 +2116,8 @@ config("optimize_speed") { + } + } + +-config("optimize_fuzzing") { ++config("optimize_fuzzing") { } ++config("xoptimize_fuzzing") { + cflags = [ "-O1" ] + common_optimize_on_cflags + ldflags = common_optimize_on_ldflags + visibility = [ ":default_optimization" ] +@@ -2267,7 +2246,8 @@ config("win_pdbaltpath") { + } + + # Full symbols. +-config("symbols") { ++config("symbols") { } ++config("xsymbols") { + if (is_win) { + if (is_clang) { + cflags = [ "/Z7" ] # Debug information in the .obj files. +@@ -2365,7 +2345,8 @@ config("symbols") { + # Minimal symbols. + # This config guarantees to hold symbol for stack trace which are shown to user + # when crash happens in unittests running on buildbot. +-config("minimal_symbols") { ++config("minimal_symbols") { } ++config("xminimal_symbols") { + if (is_win) { + # Functions, files, and line tables only. + cflags = [] +@@ -2418,7 +2399,8 @@ config("minimal_symbols") { + # This configuration contains function names only. That is, the compiler is + # told to not generate debug information and the linker then just puts function + # names in the final debug information. +-config("no_symbols") { ++config("no_symbols") { } ++config("xno_symbols") { + if (is_win) { + ldflags = [ "/DEBUG" ] + diff --git a/www-client/chromium/files/chromium-88-compositor-dcheck.patch b/www-client/chromium/files/chromium-88-compositor-dcheck.patch new file mode 100644 index 0000000..ef51614 --- /dev/null +++ b/www-client/chromium/files/chromium-88-compositor-dcheck.patch @@ -0,0 +1,13 @@ +diff --git a/cc/metrics/compositor_frame_reporter.cc b/cc/metrics/compositor_frame_reporter.cc +index 93d0e2352..7ca5e379c 100644 +--- a/cc/metrics/compositor_frame_reporter.cc ++++ b/cc/metrics/compositor_frame_reporter.cc +@@ -671,7 +671,7 @@ void CompositorFrameReporter::ReportCompositorLatencyHistogram( + + void CompositorFrameReporter::ReportEventLatencyHistograms() const { + for (const auto& event_metrics : events_metrics_) { +- DCHECK_NE(event_metrics, nullptr); ++ DCHECK_NE(event_metrics.get(), nullptr); + const std::string histogram_base_name = + GetEventLatencyHistogramBaseName(*event_metrics); + const int event_type_index = static_cast<int>(event_metrics->type()); diff --git a/www-client/chromium/files/chromium-88-dawn-include.patch b/www-client/chromium/files/chromium-88-dawn-include.patch new file mode 100644 index 0000000..3b01546 --- /dev/null +++ b/www-client/chromium/files/chromium-88-dawn-include.patch @@ -0,0 +1,12 @@ +diff --git a/third_party/dawn/src/dawn_wire/ChunkedCommandSerializer.h b/third_party/dawn/src/dawn_wire/ChunkedCommandSerializer.h +index cef4ebba4..db28b87e2 100644 +--- a/third_party/dawn/src/dawn_wire/ChunkedCommandSerializer.h ++++ b/third_party/dawn/src/dawn_wire/ChunkedCommandSerializer.h +@@ -21,6 +21,7 @@ + + #include <algorithm> + #include <cstring> ++#include <memory> + + namespace dawn_wire { + diff --git a/www-client/chromium/files/chromium-88-dawn-size_t-std.patch b/www-client/chromium/files/chromium-88-dawn-size_t-std.patch new file mode 100644 index 0000000..f6392e9 --- /dev/null +++ b/www-client/chromium/files/chromium-88-dawn-size_t-std.patch @@ -0,0 +1,13 @@ +diff --git a/third_party/dawn/src/common/ityp_array.h b/third_party/dawn/src/common/ityp_array.h +index 48e080fa5..d70d9e2da 100644 +--- a/third_party/dawn/src/common/ityp_array.h ++++ b/third_party/dawn/src/common/ityp_array.h +@@ -27,7 +27,7 @@ namespace ityp { + // indices must be a particular type |Index|. Dawn uses multiple flat maps of + // index-->data, and this class helps ensure an indices cannot be passed interchangably + // to a flat map of a different type. +- template <typename Index, typename Value, size_t Size> ++ template <typename Index, typename Value, std::size_t Size> + class array : private std::array<Value, Size> { + using I = UnderlyingType<Index>; + using Base = std::array<Value, Size>; diff --git a/www-client/chromium/files/chromium-88-gpu-internals-ozone.patch b/www-client/chromium/files/chromium-88-gpu-internals-ozone.patch new file mode 100644 index 0000000..c74e72b --- /dev/null +++ b/www-client/chromium/files/chromium-88-gpu-internals-ozone.patch @@ -0,0 +1,21 @@ +diff --git a/content/browser/gpu/gpu_internals_ui.cc b/content/browser/gpu/gpu_internals_ui.cc +index ce9359413..472d42913 100644 +--- a/content/browser/gpu/gpu_internals_ui.cc ++++ b/content/browser/gpu/gpu_internals_ui.cc +@@ -69,6 +69,7 @@ + + #if defined(USE_OZONE) + #include "ui/base/ui_base_features.h" ++#include "ui/ozone/public/ozone_platform.h" + #endif + + namespace content { +@@ -393,7 +394,7 @@ std::unique_ptr<base::ListValue> GpuMemoryBufferInfo( + gpu::GpuMemoryBufferSupport gpu_memory_buffer_support; + + gpu::GpuMemoryBufferConfigurationSet native_config; +-#if defined(USE_X11) ++#if defined(USE_X11) && defined(USE_OZONE) + if (!features::IsUsingOzonePlatform()) { + for (const auto& config : gpu_extra_info.gpu_memory_buffer_support_x11) { + native_config.emplace(config); diff --git a/www-client/chromium/files/chromium-88-mediasource-uniqptrostream.patch b/www-client/chromium/files/chromium-88-mediasource-uniqptrostream.patch new file mode 100644 index 0000000..908a993 --- /dev/null +++ b/www-client/chromium/files/chromium-88-mediasource-uniqptrostream.patch @@ -0,0 +1,22 @@ +diff --git a/third_party/blink/renderer/modules/mediasource/cross_thread_media_source_attachment.cc b/third_party/blink/renderer/modules/mediasource/cross_thread_media_source_attachment.cc +index 4caa0753b..9efe53057 100644 +--- a/third_party/blink/renderer/modules/mediasource/cross_thread_media_source_attachment.cc ++++ b/third_party/blink/renderer/modules/mediasource/cross_thread_media_source_attachment.cc +@@ -575,7 +575,7 @@ void CrossThreadMediaSourceAttachment::CompleteAttachingToMediaElement( + MediaSourceTracer* /* tracer */, + std::unique_ptr<WebMediaSource> web_media_source) { + DVLOG(1) << __func__ << " this=" << this +- << ", web_media_source=" << web_media_source; ++ << ", web_media_source=" << web_media_source.get(); + DCHECK(web_media_source); + + { +@@ -618,7 +618,7 @@ void CrossThreadMediaSourceAttachment:: + DCHECK(worker_runner_->BelongsToCurrentThread()); + + DVLOG(1) << __func__ << " this=" << this +- << ", web_media_source=" << web_media_source; ++ << ", web_media_source=" << web_media_source.get(); + + // While awaiting task scheduling, the media element could have begun + // detachment or main context could have been destroyed. Return early in diff --git a/www-client/chromium/files/chromium-88-pcscan-nonfinal.patch b/www-client/chromium/files/chromium-88-pcscan-nonfinal.patch new file mode 100644 index 0000000..ea7f31f --- /dev/null +++ b/www-client/chromium/files/chromium-88-pcscan-nonfinal.patch @@ -0,0 +1,13 @@ +diff --git a/base/allocator/partition_allocator/pcscan.cc b/base/allocator/partition_allocator/pcscan.cc +index 5cc93dbbd..69aaa0934 100644 +--- a/base/allocator/partition_allocator/pcscan.cc ++++ b/base/allocator/partition_allocator/pcscan.cc +@@ -41,7 +41,7 @@ ThreadSafePartitionRoot& PCScanMetadataAllocator() { + // STL allocator which is needed to keep internal data structures required by + // PCScan. + template <typename T> +-class MetadataAllocator final { ++class MetadataAllocator { + public: + using value_type = T; + diff --git a/www-client/chromium/files/chromium-88-service-worker-registration-crash.patch b/www-client/chromium/files/chromium-88-service-worker-registration-crash.patch new file mode 100644 index 0000000..e543fca --- /dev/null +++ b/www-client/chromium/files/chromium-88-service-worker-registration-crash.patch @@ -0,0 +1,14 @@ +diff --git a/content/browser/service_worker/service_worker_container_host.cc b/content/browser/service_worker/service_worker_container_host.cc +index 5cb7b2da2..fa11602ed 100644 +--- a/content/browser/service_worker/service_worker_container_host.cc ++++ b/content/browser/service_worker/service_worker_container_host.cc +@@ -626,6 +626,9 @@ void ServiceWorkerContainerHost::RemoveServiceWorkerRegistrationObjectHost( + int64_t registration_id) { + DCHECK_CURRENTLY_ON(ServiceWorkerContext::GetCoreThreadId()); + DCHECK(base::Contains(registration_object_hosts_, registration_id)); ++ std::unique_ptr<ServiceWorkerRegistrationObjectHost> to_be_deleted = ++ std::move(registration_object_hosts_[registration_id]); ++ DCHECK(to_be_deleted); + registration_object_hosts_.erase(registration_id); + } + diff --git a/www-client/chromium/files/chromium-88-system-icu.patch b/www-client/chromium/files/chromium-88-system-icu.patch new file mode 100644 index 0000000..968143e --- /dev/null +++ b/www-client/chromium/files/chromium-88-system-icu.patch @@ -0,0 +1,13 @@ +diff --git a/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc b/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc +index fb8ab0530..5d4ea13e7 100644 +--- a/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc ++++ b/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc +@@ -432,7 +432,7 @@ String TextCodecICU::Decode(const char* bytes, + // ICU decodes it as U+E5E5. + if (!strcmp(encoding_.GetName(), "GBK")) { + if (EqualIgnoringASCIICase(encoding_.GetName(), "gb18030")) +- resultString.Replace(0xE5E5, ideographicSpaceCharacter); ++ resultString.Replace(0xE5E5, kIdeographicSpaceCharacter); + // Make GBK compliant to the encoding spec and align with GB18030 + resultString.Replace(0x01F9, 0xE7C8); + // FIXME: Once https://www.w3.org/Bugs/Public/show_bug.cgi?id=28740#c3 diff --git a/www-client/chromium/files/chromium-88-tree-formatter-include.patch b/www-client/chromium/files/chromium-88-tree-formatter-include.patch new file mode 100644 index 0000000..71258c5 --- /dev/null +++ b/www-client/chromium/files/chromium-88-tree-formatter-include.patch @@ -0,0 +1,14 @@ +diff --git a/ui/accessibility/platform/inspect/tree_formatter.h b/ui/accessibility/platform/inspect/tree_formatter.h +index 4a70a4d54..532da613a 100644 +--- a/ui/accessibility/platform/inspect/tree_formatter.h ++++ b/ui/accessibility/platform/inspect/tree_formatter.h +@@ -5,6 +5,9 @@ + #ifndef UI_ACCESSIBILITY_PLATFORM_INSPECT_TREE_FORMATTER_H_ + #define UI_ACCESSIBILITY_PLATFORM_INSPECT_TREE_FORMATTER_H_ + ++#include <vector> ++#include <memory> ++ + #include "ui/accessibility/platform/inspect/inspect.h" + + #include "ui/gfx/native_widget_types.h" diff --git a/www-client/chromium/files/chromium-89-CursorFactory-include.patch b/www-client/chromium/files/chromium-89-CursorFactory-include.patch new file mode 100644 index 0000000..dfce7bc --- /dev/null +++ b/www-client/chromium/files/chromium-89-CursorFactory-include.patch @@ -0,0 +1,20 @@ +diff --git a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc +index d69bec5b8..0f9a87571 100644 +--- a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc ++++ b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc +@@ -8,6 +8,7 @@ + #include "chrome/browser/ui/browser_list.h" + #include "chrome/browser/ui/views/theme_profile_key.h" + #include "ui/base/ime/linux/fake_input_method_context_factory.h" ++#include "ui/base/cursor/cursor_factory.h" + #include "ui/display/screen.h" + #include "ui/views/linux_ui/linux_ui.h" + +@@ -17,7 +18,6 @@ + #endif + + #if defined(USE_OZONE) +-#include "ui/base/cursor/cursor_factory.h" + #include "ui/base/ime/input_method.h" + #include "ui/base/ui_base_features.h" + #include "ui/ozone/public/ozone_platform.h" diff --git a/www-client/chromium/files/chromium-89-EnumTable-crash.patch b/www-client/chromium/files/chromium-89-EnumTable-crash.patch new file mode 100644 index 0000000..89a5070 --- /dev/null +++ b/www-client/chromium/files/chromium-89-EnumTable-crash.patch @@ -0,0 +1,71 @@ +diff --git a/components/cast_channel/enum_table.h b/components/cast_channel/enum_table.h +index e3130c7..2ad16ea 100644 +--- a/components/cast_channel/enum_table.h ++++ b/components/cast_channel/enum_table.h +@@ -212,7 +212,7 @@ class + + template <typename E> + friend class EnumTable; +- DISALLOW_COPY_AND_ASSIGN(GenericEnumTableEntry); ++ DISALLOW_ASSIGN(GenericEnumTableEntry); + }; + + // Yes, these constructors really needs to be inlined. Even though they look +@@ -250,8 +250,7 @@ class EnumTable { + // Constructor for regular entries. + constexpr Entry(E value, base::StringPiece str) + : GenericEnumTableEntry(static_cast<int32_t>(value), str) {} +- +- DISALLOW_COPY_AND_ASSIGN(Entry); ++ DISALLOW_ASSIGN(Entry); + }; + + static_assert(sizeof(E) <= sizeof(int32_t), +@@ -306,15 +305,14 @@ class EnumTable { + if (is_sorted_) { + const std::size_t index = static_cast<std::size_t>(value); + if (ANALYZER_ASSUME_TRUE(index < data_.size())) { +- const auto& entry = data_.begin()[index]; ++ const auto& entry = data_[index]; + if (ANALYZER_ASSUME_TRUE(entry.has_str())) + return entry.str(); + } + return base::nullopt; + } + return GenericEnumTableEntry::FindByValue( +- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()), +- data_.size(), static_cast<int32_t>(value)); ++ &data_[0], data_.size(), static_cast<int32_t>(value)); + } + + // This overload of GetString is designed for cases where the argument is a +@@ -342,8 +340,7 @@ class EnumTable { + // enum value directly. + base::Optional<E> GetEnum(base::StringPiece str) const { + auto* entry = GenericEnumTableEntry::FindByString( +- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()), +- data_.size(), str); ++ &data_[0], data_.size(), str); + return entry ? static_cast<E>(entry->value) : base::Optional<E>(); + } + +@@ -358,7 +355,7 @@ class EnumTable { + // Align the data on a cache line boundary. + alignas(64) + #endif +- std::initializer_list<Entry> data_; ++ const std::vector<Entry> data_; + bool is_sorted_; + + constexpr EnumTable(std::initializer_list<Entry> data, bool is_sorted) +@@ -370,8 +367,8 @@ class EnumTable { + + for (std::size_t i = 0; i < data.size(); i++) { + for (std::size_t j = i + 1; j < data.size(); j++) { +- const Entry& ei = data.begin()[i]; +- const Entry& ej = data.begin()[j]; ++ const Entry& ei = data[i]; ++ const Entry& ej = data[j]; + DCHECK(ei.value != ej.value) + << "Found duplicate enum values at indices " << i << " and " << j; + DCHECK(!(ei.has_str() && ej.has_str() && ei.str() == ej.str())) diff --git a/www-client/chromium/files/chromium-89-angle-display.patch b/www-client/chromium/files/chromium-89-angle-display.patch new file mode 100644 index 0000000..d467ce9 --- /dev/null +++ b/www-client/chromium/files/chromium-89-angle-display.patch @@ -0,0 +1,1747 @@ +diff --git a/third_party/angle/scripts/code_generation_hashes/GL_EGL_entry_points.json b/third_party/angle/scripts/code_generation_hashes/GL_EGL_entry_points.json +index c506d31fb..df8758d30 100644 +--- a/third_party/angle/scripts/code_generation_hashes/GL_EGL_entry_points.json ++++ b/third_party/angle/scripts/code_generation_hashes/GL_EGL_entry_points.json +@@ -8,7 +8,7 @@ + "scripts/entry_point_packed_gl_enums.json": + "846be5dc8cb36076207699b025633fcc", + "scripts/generate_entry_points.py": +- "95fc7635243122e679e82e1757816ab3", ++ "d15fcd0f5e3296787753ff507f7051d9", + "scripts/gl.xml": + "f66967f3f3d696b5d8306fd80bbd49a8", + "scripts/gl_angle_ext.xml": +@@ -102,7 +102,7 @@ + "src/libANGLE/frame_capture_utils_autogen.h": + "652b821a877d6eb2c62ba8d151157eea", + "src/libANGLE/validationEGL_autogen.h": +- "b3c0eae46748da68d6833cc40e4bb486", ++ "3927fa260ad183fd9193d65b3f8d82c5", + "src/libANGLE/validationES1_autogen.h": + "c8edb0a5b26303bf7c4692b9d0b05c1f", + "src/libANGLE/validationES2_autogen.h": +@@ -238,17 +238,17 @@ + "src/libGL/libGL_autogen.def": + "2789d87b05eea9f53d52e2aff499b785", + "src/libGLESv2/egl_ext_stubs_autogen.h": +- "03de6401c1695f8ca4acbde9c3ae1ba2", ++ "aeb007419aaab7b5e52b084d83dda77c", + "src/libGLESv2/egl_get_labeled_object_data.json": + "2f4148b2ddf34e62670e32c5e6da4937", + "src/libGLESv2/egl_stubs_autogen.h": +- "1c9d160acb1ed9bf5e7c26918d4a039e", ++ "6439daa350c1663e71dd0af37dcc91df", + "src/libGLESv2/entry_points_egl_autogen.cpp": +- "9fd1b2d1e0dbab804e854e33e5bc9ef2", ++ "ba9796b20452dbbe4180480aae02b8a3", + "src/libGLESv2/entry_points_egl_autogen.h": + "3bc7a8df9deadd7cfd615d0cfad0c6a8", + "src/libGLESv2/entry_points_egl_ext_autogen.cpp": +- "f52756d7a31ce136ea04a67e0ea1b447", ++ "5397ab40e9cbe1d7aa3faf91154a837a", + "src/libGLESv2/entry_points_egl_ext_autogen.h": + "9154781afd9bd6354ec6fc201b43c790", + "src/libGLESv2/entry_points_gles_1_0_autogen.cpp": +@@ -283,4 +283,4 @@ + "f93450c1f787f3da53f2525865568989", + "src/libGLESv2/libGLESv2_with_capture_autogen.def": + "7b78ab59dd1fe360a5d3c1f513c7ce55" +-} +\ No newline at end of file ++} +diff --git a/third_party/angle/scripts/generate_entry_points.py b/third_party/angle/scripts/generate_entry_points.py +index de26a60ad..0e99f6bf2 100755 +--- a/third_party/angle/scripts/generate_entry_points.py ++++ b/third_party/angle/scripts/generate_entry_points.py +@@ -1010,7 +1010,8 @@ EGL_PACKED_TYPES = { + "EGLContext": "gl::Context *", + "EGLConfig": "Config *", + "EGLDeviceEXT": "Device *", +- "EGLDisplay": "Display *", ++ # Needs an explicit namespace to avoid an X11 namespace collision. ++ "EGLDisplay": "egl::Display *", + "EGLImage": "Image *", + "EGLImageKHR": "Image *", + "EGLStreamKHR": "Stream *", +@@ -2085,7 +2086,7 @@ def get_egl_entry_point_labeled_object(ep_to_object, cmd_stripped, params, packe + return just_the_name_packed(param, packed_enums) + return None + +- display_param = find_param(params, "Display", packed_enums) ++ display_param = find_param(params, "egl::Display", packed_enums) + + # For entry points not listed in the JSON file, they default to an EGLDisplay or nothing. + if cmd_stripped not in ep_to_object: +diff --git a/third_party/angle/src/libANGLE/validationEGL_autogen.h b/third_party/angle/src/libANGLE/validationEGL_autogen.h +index aa43ab156..869bd86e5 100644 +--- a/third_party/angle/src/libANGLE/validationEGL_autogen.h ++++ b/third_party/angle/src/libANGLE/validationEGL_autogen.h +@@ -18,47 +18,47 @@ namespace egl + + // EGL 1.0 + bool ValidateChooseConfig(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const AttributeMap &attrib_listPacked, + const EGLConfig *configs, + EGLint config_size, + const EGLint *num_config); + bool ValidateCopyBuffers(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Surface *surfacePacked, + EGLNativePixmapType target); + bool ValidateCreateContext(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Config *configPacked, + const gl::Context *share_contextPacked, + const AttributeMap &attrib_listPacked); + bool ValidateCreatePbufferSurface(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Config *configPacked, + const AttributeMap &attrib_listPacked); + bool ValidateCreatePixmapSurface(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Config *configPacked, + EGLNativePixmapType pixmap, + const AttributeMap &attrib_listPacked); + bool ValidateCreateWindowSurface(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Config *configPacked, + EGLNativeWindowType win, + const AttributeMap &attrib_listPacked); + bool ValidateDestroyContext(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const gl::Context *ctxPacked); + bool ValidateDestroySurface(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Surface *surfacePacked); + bool ValidateGetConfigAttrib(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Config *configPacked, + EGLint attribute, + const EGLint *value); + bool ValidateGetConfigs(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const EGLConfig *configs, + EGLint config_size, + const EGLint *num_config); +@@ -68,52 +68,54 @@ bool ValidateGetDisplay(const ValidationContext *val, EGLNativeDisplayType displ + bool ValidateGetError(const ValidationContext *val); + bool ValidateGetProcAddress(const ValidationContext *val, const char *procname); + bool ValidateInitialize(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const EGLint *major, + const EGLint *minor); + bool ValidateMakeCurrent(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Surface *drawPacked, + const Surface *readPacked, + const gl::Context *ctxPacked); + bool ValidateQueryContext(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const gl::Context *ctxPacked, + EGLint attribute, + const EGLint *value); +-bool ValidateQueryString(const ValidationContext *val, const Display *dpyPacked, EGLint name); ++bool ValidateQueryString(const ValidationContext *val, const egl::Display *dpyPacked, EGLint name); + bool ValidateQuerySurface(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Surface *surfacePacked, + EGLint attribute, + const EGLint *value); + bool ValidateSwapBuffers(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Surface *surfacePacked); +-bool ValidateTerminate(const ValidationContext *val, const Display *dpyPacked); ++bool ValidateTerminate(const ValidationContext *val, const egl::Display *dpyPacked); + bool ValidateWaitGL(const ValidationContext *val); + bool ValidateWaitNative(const ValidationContext *val, EGLint engine); + + // EGL 1.1 + bool ValidateBindTexImage(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Surface *surfacePacked, + EGLint buffer); + bool ValidateReleaseTexImage(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Surface *surfacePacked, + EGLint buffer); + bool ValidateSurfaceAttrib(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Surface *surfacePacked, + EGLint attribute, + EGLint value); +-bool ValidateSwapInterval(const ValidationContext *val, const Display *dpyPacked, EGLint interval); ++bool ValidateSwapInterval(const ValidationContext *val, ++ const egl::Display *dpyPacked, ++ EGLint interval); + + // EGL 1.2 + bool ValidateBindAPI(const ValidationContext *val, EGLenum api); + bool ValidateCreatePbufferFromClientBuffer(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + EGLenum buftype, + EGLClientBuffer buffer, + const Config *configPacked, +@@ -127,53 +129,53 @@ bool ValidateGetCurrentContext(const ValidationContext *val); + + // EGL 1.5 + bool ValidateClientWaitSync(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Sync *syncPacked, + EGLint flags, + EGLTime timeout); + bool ValidateCreateImage(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const gl::Context *ctxPacked, + EGLenum target, + EGLClientBuffer buffer, + const AttributeMap &attrib_listPacked); + bool ValidateCreatePlatformPixmapSurface(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Config *configPacked, + const void *native_pixmap, + const AttributeMap &attrib_listPacked); + bool ValidateCreatePlatformWindowSurface(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Config *configPacked, + const void *native_window, + const AttributeMap &attrib_listPacked); + bool ValidateCreateSync(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + EGLenum type, + const AttributeMap &attrib_listPacked); + bool ValidateDestroyImage(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Image *imagePacked); + bool ValidateDestroySync(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Sync *syncPacked); + bool ValidateGetPlatformDisplay(const ValidationContext *val, + EGLenum platform, + const void *native_display, + const AttributeMap &attrib_listPacked); + bool ValidateGetSyncAttrib(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Sync *syncPacked, + EGLint attribute, + const EGLAttrib *value); + bool ValidateWaitSync(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Sync *syncPacked, + EGLint flags); + + // EGL_ANDROID_blob_cache + bool ValidateSetBlobCacheFuncsANDROID(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + EGLSetBlobFuncANDROID set, + EGLGetBlobFuncANDROID get); + +@@ -183,25 +185,25 @@ bool ValidateCreateNativeClientBufferANDROID(const ValidationContext *val, + + // EGL_ANDROID_get_frame_timestamps + bool ValidateGetCompositorTimingSupportedANDROID(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Surface *surfacePacked, + CompositorTiming namePacked); + bool ValidateGetCompositorTimingANDROID(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Surface *surfacePacked, + EGLint numTimestamps, + const EGLint *names, + const EGLnsecsANDROID *values); + bool ValidateGetNextFrameIdANDROID(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Surface *surfacePacked, + const EGLuint64KHR *frameId); + bool ValidateGetFrameTimestampSupportedANDROID(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Surface *surfacePacked, + Timestamp timestampPacked); + bool ValidateGetFrameTimestampsANDROID(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Surface *surfacePacked, + EGLuint64KHR frameId, + EGLint numTimestamps, +@@ -214,12 +216,12 @@ bool ValidateGetNativeClientBufferANDROID(const ValidationContext *val, + + // EGL_ANDROID_native_fence_sync + bool ValidateDupNativeFenceFDANDROID(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Sync *syncPacked); + + // EGL_ANDROID_presentation_time + bool ValidatePresentationTimeANDROID(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Surface *surfacePacked, + EGLnsecsANDROID time); + +@@ -232,79 +234,79 @@ bool ValidateReleaseDeviceANGLE(const ValidationContext *val, const Device *devi + + // EGL_ANGLE_feature_control + bool ValidateQueryStringiANGLE(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + EGLint name, + EGLint index); + bool ValidateQueryDisplayAttribANGLE(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + EGLint attribute, + const EGLAttrib *value); + + // EGL_ANGLE_power_preference + bool ValidateReleaseHighPowerGPUANGLE(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const gl::Context *ctxPacked); + bool ValidateReacquireHighPowerGPUANGLE(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const gl::Context *ctxPacked); +-bool ValidateHandleGPUSwitchANGLE(const ValidationContext *val, const Display *dpyPacked); ++bool ValidateHandleGPUSwitchANGLE(const ValidationContext *val, const egl::Display *dpyPacked); + + // EGL_ANGLE_program_cache_control + bool ValidateProgramCacheGetAttribANGLE(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + EGLenum attrib); + bool ValidateProgramCacheQueryANGLE(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + EGLint index, + const void *key, + const EGLint *keysize, + const void *binary, + const EGLint *binarysize); + bool ValidateProgramCachePopulateANGLE(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const void *key, + EGLint keysize, + const void *binary, + EGLint binarysize); + bool ValidateProgramCacheResizeANGLE(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + EGLint limit, + EGLint mode); + + // EGL_ANGLE_query_surface_pointer + bool ValidateQuerySurfacePointerANGLE(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Surface *surfacePacked, + EGLint attribute, + void *const *value); + + // EGL_ANGLE_stream_producer_d3d_texture + bool ValidateCreateStreamProducerD3DTextureANGLE(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Stream *streamPacked, + const AttributeMap &attrib_listPacked); + bool ValidateStreamPostD3DTextureANGLE(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Stream *streamPacked, + const void *texture, + const AttributeMap &attrib_listPacked); + + // EGL_ANGLE_swap_with_frame_token + bool ValidateSwapBuffersWithFrameTokenANGLE(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Surface *surfacePacked, + EGLFrameTokenANGLE frametoken); + + // EGL_ANGLE_sync_control_rate + bool ValidateGetMscRateANGLE(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Surface *surfacePacked, + const EGLint *numerator, + const EGLint *denominator); + + // EGL_CHROMIUM_sync_control + bool ValidateGetSyncValuesCHROMIUM(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Surface *surfacePacked, + const EGLuint64KHR *ust, + const EGLuint64KHR *msc, +@@ -319,18 +321,18 @@ bool ValidateQueryDeviceStringEXT(const ValidationContext *val, + const Device *devicePacked, + EGLint name); + bool ValidateQueryDisplayAttribEXT(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + EGLint attribute, + const EGLAttrib *value); + + // EGL_EXT_platform_base + bool ValidateCreatePlatformPixmapSurfaceEXT(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Config *configPacked, + const void *native_pixmap, + const AttributeMap &attrib_listPacked); + bool ValidateCreatePlatformWindowSurfaceEXT(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Config *configPacked, + const void *native_window, + const AttributeMap &attrib_listPacked); +@@ -344,7 +346,7 @@ bool ValidateDebugMessageControlKHR(const ValidationContext *val, + EGLDEBUGPROCKHR callback, + const AttributeMap &attrib_listPacked); + bool ValidateLabelObjectKHR(const ValidationContext *val, +- const Display *displayPacked, ++ const egl::Display *displayPacked, + ObjectType objectTypePacked, + EGLObjectKHR object, + EGLLabelKHR label); +@@ -352,90 +354,90 @@ bool ValidateQueryDebugKHR(const ValidationContext *val, EGLint attribute, const + + // EGL_KHR_fence_sync + bool ValidateClientWaitSyncKHR(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Sync *syncPacked, + EGLint flags, + EGLTimeKHR timeout); + bool ValidateCreateSyncKHR(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + EGLenum type, + const AttributeMap &attrib_listPacked); + bool ValidateDestroySyncKHR(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Sync *syncPacked); + bool ValidateGetSyncAttribKHR(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Sync *syncPacked, + EGLint attribute, + const EGLint *value); + + // EGL_KHR_image + bool ValidateCreateImageKHR(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const gl::Context *ctxPacked, + EGLenum target, + EGLClientBuffer buffer, + const AttributeMap &attrib_listPacked); + bool ValidateDestroyImageKHR(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Image *imagePacked); + + // EGL_KHR_reusable_sync + bool ValidateSignalSyncKHR(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Sync *syncPacked, + EGLenum mode); + + // EGL_KHR_stream + bool ValidateCreateStreamKHR(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const AttributeMap &attrib_listPacked); + bool ValidateDestroyStreamKHR(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Stream *streamPacked); + bool ValidateQueryStreamKHR(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Stream *streamPacked, + EGLenum attribute, + const EGLint *value); + bool ValidateQueryStreamu64KHR(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Stream *streamPacked, + EGLenum attribute, + const EGLuint64KHR *value); + bool ValidateStreamAttribKHR(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Stream *streamPacked, + EGLenum attribute, + EGLint value); + + // EGL_KHR_stream_consumer_gltexture + bool ValidateStreamConsumerAcquireKHR(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Stream *streamPacked); + bool ValidateStreamConsumerGLTextureExternalKHR(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Stream *streamPacked); + bool ValidateStreamConsumerReleaseKHR(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Stream *streamPacked); + + // EGL_KHR_swap_buffers_with_damage + bool ValidateSwapBuffersWithDamageKHR(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Surface *surfacePacked, + const EGLint *rects, + EGLint n_rects); + + // EGL_KHR_wait_sync + bool ValidateWaitSyncKHR(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Sync *syncPacked, + EGLint flags); + + // EGL_NV_post_sub_buffer + bool ValidatePostSubBufferNV(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Surface *surfacePacked, + EGLint x, + EGLint y, +@@ -444,7 +446,7 @@ bool ValidatePostSubBufferNV(const ValidationContext *val, + + // EGL_NV_stream_consumer_gltexture_yuv + bool ValidateStreamConsumerGLTextureExternalAttribsNV(const ValidationContext *val, +- const Display *dpyPacked, ++ const egl::Display *dpyPacked, + const Stream *streamPacked, + const AttributeMap &attrib_listPacked); + } // namespace egl +diff --git a/third_party/angle/src/libGLESv2/egl_ext_stubs_autogen.h b/third_party/angle/src/libGLESv2/egl_ext_stubs_autogen.h +index aecd051d9..404717bde 100644 +--- a/third_party/angle/src/libGLESv2/egl_ext_stubs_autogen.h ++++ b/third_party/angle/src/libGLESv2/egl_ext_stubs_autogen.h +@@ -33,12 +33,12 @@ class Thread; + struct Config; + + EGLint ClientWaitSyncKHR(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Sync *syncPacked, + EGLint flags, + EGLTimeKHR timeout); + EGLImageKHR CreateImageKHR(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + gl::Context *ctxPacked, + EGLenum target, + EGLClientBuffer buffer, +@@ -46,75 +46,75 @@ EGLImageKHR CreateImageKHR(Thread *thread, + EGLClientBuffer CreateNativeClientBufferANDROID(Thread *thread, + const AttributeMap &attrib_listPacked); + EGLSurface CreatePlatformPixmapSurfaceEXT(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Config *configPacked, + void *native_pixmap, + const AttributeMap &attrib_listPacked); + EGLSurface CreatePlatformWindowSurfaceEXT(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Config *configPacked, + void *native_window, + const AttributeMap &attrib_listPacked); + EGLStreamKHR CreateStreamKHR(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + const AttributeMap &attrib_listPacked); + EGLSyncKHR CreateSyncKHR(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + EGLenum type, + const AttributeMap &attrib_listPacked); + EGLint DebugMessageControlKHR(Thread *thread, + EGLDEBUGPROCKHR callback, + const AttributeMap &attrib_listPacked); +-EGLBoolean DestroyImageKHR(Thread *thread, Display *dpyPacked, Image *imagePacked); +-EGLBoolean DestroyStreamKHR(Thread *thread, Display *dpyPacked, Stream *streamPacked); +-EGLBoolean DestroySyncKHR(Thread *thread, Display *dpyPacked, Sync *syncPacked); +-EGLint DupNativeFenceFDANDROID(Thread *thread, Display *dpyPacked, Sync *syncPacked); ++EGLBoolean DestroyImageKHR(Thread *thread, egl::Display *dpyPacked, Image *imagePacked); ++EGLBoolean DestroyStreamKHR(Thread *thread, egl::Display *dpyPacked, Stream *streamPacked); ++EGLBoolean DestroySyncKHR(Thread *thread, egl::Display *dpyPacked, Sync *syncPacked); ++EGLint DupNativeFenceFDANDROID(Thread *thread, egl::Display *dpyPacked, Sync *syncPacked); + EGLClientBuffer GetNativeClientBufferANDROID(Thread *thread, const struct AHardwareBuffer *buffer); + EGLDisplay GetPlatformDisplayEXT(Thread *thread, + EGLenum platform, + void *native_display, + const AttributeMap &attrib_listPacked); + EGLBoolean GetSyncAttribKHR(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Sync *syncPacked, + EGLint attribute, + EGLint *value); + EGLint LabelObjectKHR(Thread *thread, +- Display *displayPacked, ++ egl::Display *displayPacked, + ObjectType objectTypePacked, + EGLObjectKHR object, + EGLLabelKHR label); + EGLBoolean PostSubBufferNV(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Surface *surfacePacked, + EGLint x, + EGLint y, + EGLint width, + EGLint height); + EGLBoolean PresentationTimeANDROID(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Surface *surfacePacked, + EGLnsecsANDROID time); + EGLBoolean GetCompositorTimingSupportedANDROID(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Surface *surfacePacked, + CompositorTiming namePacked); + EGLBoolean GetCompositorTimingANDROID(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Surface *surfacePacked, + EGLint numTimestamps, + const EGLint *names, + EGLnsecsANDROID *values); + EGLBoolean GetNextFrameIdANDROID(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Surface *surfacePacked, + EGLuint64KHR *frameId); + EGLBoolean GetFrameTimestampSupportedANDROID(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Surface *surfacePacked, + Timestamp timestampPacked); + EGLBoolean GetFrameTimestampsANDROID(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Surface *surfacePacked, + EGLuint64KHR frameId, + EGLint numTimestamps, +@@ -127,99 +127,99 @@ EGLBoolean QueryDeviceAttribEXT(Thread *thread, + EGLAttrib *value); + const char *QueryDeviceStringEXT(Thread *thread, Device *devicePacked, EGLint name); + EGLBoolean QueryDisplayAttribEXT(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + EGLint attribute, + EGLAttrib *value); + EGLBoolean QueryStreamKHR(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Stream *streamPacked, + EGLenum attribute, + EGLint *value); + EGLBoolean QueryStreamu64KHR(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Stream *streamPacked, + EGLenum attribute, + EGLuint64KHR *value); + EGLBoolean QuerySurfacePointerANGLE(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Surface *surfacePacked, + EGLint attribute, + void **value); + void SetBlobCacheFuncsANDROID(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + EGLSetBlobFuncANDROID set, + EGLGetBlobFuncANDROID get); +-EGLBoolean SignalSyncKHR(Thread *thread, Display *dpyPacked, Sync *syncPacked, EGLenum mode); ++EGLBoolean SignalSyncKHR(Thread *thread, egl::Display *dpyPacked, Sync *syncPacked, EGLenum mode); + EGLBoolean StreamAttribKHR(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Stream *streamPacked, + EGLenum attribute, + EGLint value); +-EGLBoolean StreamConsumerAcquireKHR(Thread *thread, Display *dpyPacked, Stream *streamPacked); ++EGLBoolean StreamConsumerAcquireKHR(Thread *thread, egl::Display *dpyPacked, Stream *streamPacked); + EGLBoolean StreamConsumerGLTextureExternalKHR(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Stream *streamPacked); + EGLBoolean StreamConsumerGLTextureExternalAttribsNV(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Stream *streamPacked, + const AttributeMap &attrib_listPacked); +-EGLBoolean StreamConsumerReleaseKHR(Thread *thread, Display *dpyPacked, Stream *streamPacked); ++EGLBoolean StreamConsumerReleaseKHR(Thread *thread, egl::Display *dpyPacked, Stream *streamPacked); + EGLBoolean SwapBuffersWithDamageKHR(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Surface *surfacePacked, + EGLint *rects, + EGLint n_rects); +-EGLint WaitSyncKHR(Thread *thread, Display *dpyPacked, Sync *syncPacked, EGLint flags); ++EGLint WaitSyncKHR(Thread *thread, egl::Display *dpyPacked, Sync *syncPacked, EGLint flags); + EGLDeviceEXT CreateDeviceANGLE(Thread *thread, + EGLint device_type, + void *native_device, + const EGLAttrib *attrib_list); + EGLBoolean ReleaseDeviceANGLE(Thread *thread, Device *devicePacked); + EGLBoolean CreateStreamProducerD3DTextureANGLE(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Stream *streamPacked, + const AttributeMap &attrib_listPacked); + EGLBoolean StreamPostD3DTextureANGLE(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Stream *streamPacked, + void *texture, + const AttributeMap &attrib_listPacked); + EGLBoolean GetMscRateANGLE(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Surface *surfacePacked, + EGLint *numerator, + EGLint *denominator); + EGLBoolean GetSyncValuesCHROMIUM(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Surface *surfacePacked, + EGLuint64KHR *ust, + EGLuint64KHR *msc, + EGLuint64KHR *sbc); +-EGLint ProgramCacheGetAttribANGLE(Thread *thread, Display *dpyPacked, EGLenum attrib); ++EGLint ProgramCacheGetAttribANGLE(Thread *thread, egl::Display *dpyPacked, EGLenum attrib); + void ProgramCacheQueryANGLE(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + EGLint index, + void *key, + EGLint *keysize, + void *binary, + EGLint *binarysize); + void ProgramCachePopulateANGLE(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + const void *key, + EGLint keysize, + const void *binary, + EGLint binarysize); +-EGLint ProgramCacheResizeANGLE(Thread *thread, Display *dpyPacked, EGLint limit, EGLint mode); +-const char *QueryStringiANGLE(Thread *thread, Display *dpyPacked, EGLint name, EGLint index); ++EGLint ProgramCacheResizeANGLE(Thread *thread, egl::Display *dpyPacked, EGLint limit, EGLint mode); ++const char *QueryStringiANGLE(Thread *thread, egl::Display *dpyPacked, EGLint name, EGLint index); + EGLBoolean SwapBuffersWithFrameTokenANGLE(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Surface *surfacePacked, + EGLFrameTokenANGLE frametoken); +-void ReleaseHighPowerGPUANGLE(Thread *thread, Display *dpyPacked, gl::Context *ctxPacked); +-void ReacquireHighPowerGPUANGLE(Thread *thread, Display *dpyPacked, gl::Context *ctxPacked); +-void HandleGPUSwitchANGLE(Thread *thread, Display *dpyPacked); ++void ReleaseHighPowerGPUANGLE(Thread *thread, egl::Display *dpyPacked, gl::Context *ctxPacked); ++void ReacquireHighPowerGPUANGLE(Thread *thread, egl::Display *dpyPacked, gl::Context *ctxPacked); ++void HandleGPUSwitchANGLE(Thread *thread, egl::Display *dpyPacked); + EGLBoolean QueryDisplayAttribANGLE(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + EGLint attribute, + EGLAttrib *value); + } // namespace egl +diff --git a/third_party/angle/src/libGLESv2/egl_stubs_autogen.h b/third_party/angle/src/libGLESv2/egl_stubs_autogen.h +index 9118495ed..6d7d210d9 100644 +--- a/third_party/angle/src/libGLESv2/egl_stubs_autogen.h ++++ b/third_party/angle/src/libGLESv2/egl_stubs_autogen.h +@@ -33,78 +33,81 @@ class Thread; + struct Config; + + EGLBoolean BindAPI(Thread *thread, EGLenum api); +-EGLBoolean BindTexImage(Thread *thread, Display *dpyPacked, Surface *surfacePacked, EGLint buffer); ++EGLBoolean BindTexImage(Thread *thread, ++ egl::Display *dpyPacked, ++ Surface *surfacePacked, ++ EGLint buffer); + EGLBoolean ChooseConfig(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + const AttributeMap &attrib_listPacked, + EGLConfig *configs, + EGLint config_size, + EGLint *num_config); + EGLint ClientWaitSync(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Sync *syncPacked, + EGLint flags, + EGLTime timeout); + EGLBoolean CopyBuffers(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Surface *surfacePacked, + EGLNativePixmapType target); + EGLContext CreateContext(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Config *configPacked, + gl::Context *share_contextPacked, + const AttributeMap &attrib_listPacked); + EGLImage CreateImage(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + gl::Context *ctxPacked, + EGLenum target, + EGLClientBuffer buffer, + const AttributeMap &attrib_listPacked); + EGLSurface CreatePbufferFromClientBuffer(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + EGLenum buftype, + EGLClientBuffer buffer, + Config *configPacked, + const AttributeMap &attrib_listPacked); + EGLSurface CreatePbufferSurface(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Config *configPacked, + const AttributeMap &attrib_listPacked); + EGLSurface CreatePixmapSurface(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Config *configPacked, + EGLNativePixmapType pixmap, + const AttributeMap &attrib_listPacked); + EGLSurface CreatePlatformPixmapSurface(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Config *configPacked, + void *native_pixmap, + const AttributeMap &attrib_listPacked); + EGLSurface CreatePlatformWindowSurface(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Config *configPacked, + void *native_window, + const AttributeMap &attrib_listPacked); + EGLSync CreateSync(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + EGLenum type, + const AttributeMap &attrib_listPacked); + EGLSurface CreateWindowSurface(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Config *configPacked, + EGLNativeWindowType win, + const AttributeMap &attrib_listPacked); +-EGLBoolean DestroyContext(Thread *thread, Display *dpyPacked, gl::Context *ctxPacked); +-EGLBoolean DestroyImage(Thread *thread, Display *dpyPacked, Image *imagePacked); +-EGLBoolean DestroySurface(Thread *thread, Display *dpyPacked, Surface *surfacePacked); +-EGLBoolean DestroySync(Thread *thread, Display *dpyPacked, Sync *syncPacked); ++EGLBoolean DestroyContext(Thread *thread, egl::Display *dpyPacked, gl::Context *ctxPacked); ++EGLBoolean DestroyImage(Thread *thread, egl::Display *dpyPacked, Image *imagePacked); ++EGLBoolean DestroySurface(Thread *thread, egl::Display *dpyPacked, Surface *surfacePacked); ++EGLBoolean DestroySync(Thread *thread, egl::Display *dpyPacked, Sync *syncPacked); + EGLBoolean GetConfigAttrib(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Config *configPacked, + EGLint attribute, + EGLint *value); + EGLBoolean GetConfigs(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + EGLConfig *configs, + EGLint config_size, + EGLint *num_config); +@@ -119,44 +122,44 @@ EGLDisplay GetPlatformDisplay(Thread *thread, + const AttributeMap &attrib_listPacked); + __eglMustCastToProperFunctionPointerType GetProcAddress(Thread *thread, const char *procname); + EGLBoolean GetSyncAttrib(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Sync *syncPacked, + EGLint attribute, + EGLAttrib *value); +-EGLBoolean Initialize(Thread *thread, Display *dpyPacked, EGLint *major, EGLint *minor); ++EGLBoolean Initialize(Thread *thread, egl::Display *dpyPacked, EGLint *major, EGLint *minor); + EGLBoolean MakeCurrent(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Surface *drawPacked, + Surface *readPacked, + gl::Context *ctxPacked); + EGLenum QueryAPI(Thread *thread); + EGLBoolean QueryContext(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + gl::Context *ctxPacked, + EGLint attribute, + EGLint *value); +-const char *QueryString(Thread *thread, Display *dpyPacked, EGLint name); ++const char *QueryString(Thread *thread, egl::Display *dpyPacked, EGLint name); + EGLBoolean QuerySurface(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Surface *surfacePacked, + EGLint attribute, + EGLint *value); + EGLBoolean ReleaseTexImage(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Surface *surfacePacked, + EGLint buffer); + EGLBoolean ReleaseThread(Thread *thread); + EGLBoolean SurfaceAttrib(Thread *thread, +- Display *dpyPacked, ++ egl::Display *dpyPacked, + Surface *surfacePacked, + EGLint attribute, + EGLint value); +-EGLBoolean SwapBuffers(Thread *thread, Display *dpyPacked, Surface *surfacePacked); +-EGLBoolean SwapInterval(Thread *thread, Display *dpyPacked, EGLint interval); +-EGLBoolean Terminate(Thread *thread, Display *dpyPacked); ++EGLBoolean SwapBuffers(Thread *thread, egl::Display *dpyPacked, Surface *surfacePacked); ++EGLBoolean SwapInterval(Thread *thread, egl::Display *dpyPacked, EGLint interval); ++EGLBoolean Terminate(Thread *thread, egl::Display *dpyPacked); + EGLBoolean WaitClient(Thread *thread); + EGLBoolean WaitGL(Thread *thread); + EGLBoolean WaitNative(Thread *thread, EGLint engine); +-EGLBoolean WaitSync(Thread *thread, Display *dpyPacked, Sync *syncPacked, EGLint flags); ++EGLBoolean WaitSync(Thread *thread, egl::Display *dpyPacked, Sync *syncPacked, EGLint flags); + } // namespace egl + #endif // LIBGLESV2_EGL_STUBS_AUTOGEN_H_ +diff --git a/third_party/angle/src/libGLESv2/entry_points_egl_autogen.cpp b/third_party/angle/src/libGLESv2/entry_points_egl_autogen.cpp +index 3e127ee9d..7671cc7ab 100644 +--- a/third_party/angle/src/libGLESv2/entry_points_egl_autogen.cpp ++++ b/third_party/angle/src/libGLESv2/entry_points_egl_autogen.cpp +@@ -35,7 +35,7 @@ EGLBoolean EGLAPIENTRY EGL_ChooseConfig(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list); + + ANGLE_EGL_VALIDATE(thread, ChooseConfig, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, +@@ -55,8 +55,8 @@ EGLBoolean EGLAPIENTRY EGL_CopyBuffers(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Surface *surfacePacked = PackParam<Surface *>(surface); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Surface *surfacePacked = PackParam<Surface *>(surface); + + ANGLE_EGL_VALIDATE(thread, CopyBuffers, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, + surfacePacked, target); +@@ -77,7 +77,7 @@ EGLContext EGLAPIENTRY EGL_CreateContext(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + Config *configPacked = PackParam<Config *>(config); + gl::Context *share_contextPacked = PackParam<gl::Context *>(share_context); + const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list); +@@ -100,7 +100,7 @@ EGLSurface EGLAPIENTRY EGL_CreatePbufferSurface(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + Config *configPacked = PackParam<Config *>(config); + const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list); + +@@ -123,7 +123,7 @@ EGLSurface EGLAPIENTRY EGL_CreatePixmapSurface(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + Config *configPacked = PackParam<Config *>(config); + const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list); + +@@ -146,7 +146,7 @@ EGLSurface EGLAPIENTRY EGL_CreateWindowSurface(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + Config *configPacked = PackParam<Config *>(config); + const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list); + +@@ -164,8 +164,8 @@ EGLBoolean EGLAPIENTRY EGL_DestroyContext(EGLDisplay dpy, EGLContext ctx) + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- gl::Context *ctxPacked = PackParam<gl::Context *>(ctx); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ gl::Context *ctxPacked = PackParam<gl::Context *>(ctx); + + ANGLE_EGL_VALIDATE(thread, DestroyContext, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, + ctxPacked); +@@ -181,8 +181,8 @@ EGLBoolean EGLAPIENTRY EGL_DestroySurface(EGLDisplay dpy, EGLSurface surface) + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Surface *surfacePacked = PackParam<Surface *>(surface); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Surface *surfacePacked = PackParam<Surface *>(surface); + + ANGLE_EGL_VALIDATE(thread, DestroySurface, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, + surfacePacked); +@@ -203,8 +203,8 @@ EGLBoolean EGLAPIENTRY EGL_GetConfigAttrib(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Config *configPacked = PackParam<Config *>(config); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Config *configPacked = PackParam<Config *>(config); + + ANGLE_EGL_VALIDATE(thread, GetConfigAttrib, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, + configPacked, attribute, value); +@@ -225,7 +225,7 @@ EGLBoolean EGLAPIENTRY EGL_GetConfigs(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + + ANGLE_EGL_VALIDATE(thread, GetConfigs, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, + configs, config_size, num_config); +@@ -303,7 +303,7 @@ EGLBoolean EGLAPIENTRY EGL_Initialize(EGLDisplay dpy, EGLint *major, EGLint *min + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + + ANGLE_EGL_VALIDATE(thread, Initialize, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, + major, minor); +@@ -324,10 +324,10 @@ EGLBoolean EGLAPIENTRY EGL_MakeCurrent(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Surface *drawPacked = PackParam<Surface *>(draw); +- Surface *readPacked = PackParam<Surface *>(read); +- gl::Context *ctxPacked = PackParam<gl::Context *>(ctx); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Surface *drawPacked = PackParam<Surface *>(draw); ++ Surface *readPacked = PackParam<Surface *>(read); ++ gl::Context *ctxPacked = PackParam<gl::Context *>(ctx); + + ANGLE_EGL_VALIDATE(thread, MakeCurrent, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, + drawPacked, readPacked, ctxPacked); +@@ -348,8 +348,8 @@ EGLBoolean EGLAPIENTRY EGL_QueryContext(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- gl::Context *ctxPacked = PackParam<gl::Context *>(ctx); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ gl::Context *ctxPacked = PackParam<gl::Context *>(ctx); + + ANGLE_EGL_VALIDATE(thread, QueryContext, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, + ctxPacked, attribute, value); +@@ -364,7 +364,7 @@ const char *EGLAPIENTRY EGL_QueryString(EGLDisplay dpy, EGLint name) + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + + ANGLE_EGL_VALIDATE(thread, QueryString, GetDisplayIfValid(dpyPacked), const char *, dpyPacked, + name); +@@ -385,8 +385,8 @@ EGLBoolean EGLAPIENTRY EGL_QuerySurface(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Surface *surfacePacked = PackParam<Surface *>(surface); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Surface *surfacePacked = PackParam<Surface *>(surface); + + ANGLE_EGL_VALIDATE(thread, QuerySurface, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, + surfacePacked, attribute, value); +@@ -402,8 +402,8 @@ EGLBoolean EGLAPIENTRY EGL_SwapBuffers(EGLDisplay dpy, EGLSurface surface) + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Surface *surfacePacked = PackParam<Surface *>(surface); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Surface *surfacePacked = PackParam<Surface *>(surface); + + ANGLE_EGL_VALIDATE(thread, SwapBuffers, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, + surfacePacked); +@@ -418,7 +418,7 @@ EGLBoolean EGLAPIENTRY EGL_Terminate(EGLDisplay dpy) + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + + ANGLE_EGL_VALIDATE(thread, Terminate, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked); + +@@ -458,8 +458,8 @@ EGLBoolean EGLAPIENTRY EGL_BindTexImage(EGLDisplay dpy, EGLSurface surface, EGLi + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Surface *surfacePacked = PackParam<Surface *>(surface); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Surface *surfacePacked = PackParam<Surface *>(surface); + + ANGLE_EGL_VALIDATE(thread, BindTexImage, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, + surfacePacked, buffer); +@@ -475,8 +475,8 @@ EGLBoolean EGLAPIENTRY EGL_ReleaseTexImage(EGLDisplay dpy, EGLSurface surface, E + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Surface *surfacePacked = PackParam<Surface *>(surface); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Surface *surfacePacked = PackParam<Surface *>(surface); + + ANGLE_EGL_VALIDATE(thread, ReleaseTexImage, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, + surfacePacked, buffer); +@@ -496,8 +496,8 @@ EGLBoolean EGLAPIENTRY EGL_SurfaceAttrib(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Surface *surfacePacked = PackParam<Surface *>(surface); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Surface *surfacePacked = PackParam<Surface *>(surface); + + ANGLE_EGL_VALIDATE(thread, SurfaceAttrib, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, + surfacePacked, attribute, value); +@@ -512,7 +512,7 @@ EGLBoolean EGLAPIENTRY EGL_SwapInterval(EGLDisplay dpy, EGLint interval) + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + + ANGLE_EGL_VALIDATE(thread, SwapInterval, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, + interval); +@@ -548,7 +548,7 @@ EGLSurface EGLAPIENTRY EGL_CreatePbufferFromClientBuffer(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + Config *configPacked = PackParam<Config *>(config); + const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list); + +@@ -618,8 +618,8 @@ EGLint EGLAPIENTRY EGL_ClientWaitSync(EGLDisplay dpy, EGLSync sync, EGLint flags + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Sync *syncPacked = PackParam<Sync *>(sync); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Sync *syncPacked = PackParam<Sync *>(sync); + + ANGLE_EGL_VALIDATE(thread, ClientWaitSync, GetDisplayIfValid(dpyPacked), EGLint, dpyPacked, + syncPacked, flags, timeout); +@@ -641,7 +641,7 @@ EGLImage EGLAPIENTRY EGL_CreateImage(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + gl::Context *ctxPacked = PackParam<gl::Context *>(ctx); + const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list); + +@@ -664,7 +664,7 @@ EGLSurface EGLAPIENTRY EGL_CreatePlatformPixmapSurface(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + Config *configPacked = PackParam<Config *>(config); + const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list); + +@@ -688,7 +688,7 @@ EGLSurface EGLAPIENTRY EGL_CreatePlatformWindowSurface(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + Config *configPacked = PackParam<Config *>(config); + const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list); + +@@ -707,7 +707,7 @@ EGLSync EGLAPIENTRY EGL_CreateSync(EGLDisplay dpy, EGLenum type, const EGLAttrib + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list); + + ANGLE_EGL_VALIDATE(thread, CreateSync, GetDisplayIfValid(dpyPacked), EGLSync, dpyPacked, type, +@@ -724,8 +724,8 @@ EGLBoolean EGLAPIENTRY EGL_DestroyImage(EGLDisplay dpy, EGLImage image) + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Image *imagePacked = PackParam<Image *>(image); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Image *imagePacked = PackParam<Image *>(image); + + ANGLE_EGL_VALIDATE(thread, DestroyImage, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, + imagePacked); +@@ -741,8 +741,8 @@ EGLBoolean EGLAPIENTRY EGL_DestroySync(EGLDisplay dpy, EGLSync sync) + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Sync *syncPacked = PackParam<Sync *>(sync); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Sync *syncPacked = PackParam<Sync *>(sync); + + ANGLE_EGL_VALIDATE(thread, DestroySync, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, + syncPacked); +@@ -783,8 +783,8 @@ EGLBoolean EGLAPIENTRY EGL_GetSyncAttrib(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Sync *syncPacked = PackParam<Sync *>(sync); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Sync *syncPacked = PackParam<Sync *>(sync); + + ANGLE_EGL_VALIDATE(thread, GetSyncAttrib, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, + syncPacked, attribute, value); +@@ -800,8 +800,8 @@ EGLBoolean EGLAPIENTRY EGL_WaitSync(EGLDisplay dpy, EGLSync sync, EGLint flags) + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Sync *syncPacked = PackParam<Sync *>(sync); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Sync *syncPacked = PackParam<Sync *>(sync); + + ANGLE_EGL_VALIDATE(thread, WaitSync, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, + syncPacked, flags); +diff --git a/third_party/angle/src/libGLESv2/entry_points_egl_ext_autogen.cpp b/third_party/angle/src/libGLESv2/entry_points_egl_ext_autogen.cpp +index d9f4b76ea..76fcf8c17 100644 +--- a/third_party/angle/src/libGLESv2/entry_points_egl_ext_autogen.cpp ++++ b/third_party/angle/src/libGLESv2/entry_points_egl_ext_autogen.cpp +@@ -31,7 +31,7 @@ void EGLAPIENTRY EGL_SetBlobCacheFuncsANDROID(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + + ANGLE_EGL_VALIDATE_VOID(thread, SetBlobCacheFuncsANDROID, GetDisplayIfValid(dpyPacked), + dpyPacked, set, get); +@@ -68,7 +68,7 @@ EGLBoolean EGLAPIENTRY EGL_GetCompositorTimingSupportedANDROID(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + Surface *surfacePacked = PackParam<Surface *>(surface); + CompositorTiming namePacked = PackParam<CompositorTiming>(name); + +@@ -93,8 +93,8 @@ EGLBoolean EGLAPIENTRY EGL_GetCompositorTimingANDROID(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Surface *surfacePacked = PackParam<Surface *>(surface); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Surface *surfacePacked = PackParam<Surface *>(surface); + + ANGLE_EGL_VALIDATE(thread, GetCompositorTimingANDROID, GetDisplayIfValid(dpyPacked), EGLBoolean, + dpyPacked, surfacePacked, numTimestamps, names, values); +@@ -114,8 +114,8 @@ EGLBoolean EGLAPIENTRY EGL_GetNextFrameIdANDROID(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Surface *surfacePacked = PackParam<Surface *>(surface); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Surface *surfacePacked = PackParam<Surface *>(surface); + + ANGLE_EGL_VALIDATE(thread, GetNextFrameIdANDROID, GetDisplayIfValid(dpyPacked), EGLBoolean, + dpyPacked, surfacePacked, frameId); +@@ -134,7 +134,7 @@ EGLBoolean EGLAPIENTRY EGL_GetFrameTimestampSupportedANDROID(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + Surface *surfacePacked = PackParam<Surface *>(surface); + Timestamp timestampPacked = PackParam<Timestamp>(timestamp); + +@@ -161,8 +161,8 @@ EGLBoolean EGLAPIENTRY EGL_GetFrameTimestampsANDROID(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Surface *surfacePacked = PackParam<Surface *>(surface); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Surface *surfacePacked = PackParam<Surface *>(surface); + + ANGLE_EGL_VALIDATE(thread, GetFrameTimestampsANDROID, GetDisplayIfValid(dpyPacked), EGLBoolean, + dpyPacked, surfacePacked, frameId, numTimestamps, timestamps, values); +@@ -193,8 +193,8 @@ EGLint EGLAPIENTRY EGL_DupNativeFenceFDANDROID(EGLDisplay dpy, EGLSyncKHR sync) + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Sync *syncPacked = PackParam<Sync *>(sync); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Sync *syncPacked = PackParam<Sync *>(sync); + + ANGLE_EGL_VALIDATE(thread, DupNativeFenceFDANDROID, GetDisplayIfValid(dpyPacked), EGLint, + dpyPacked, syncPacked); +@@ -214,8 +214,8 @@ EGLBoolean EGLAPIENTRY EGL_PresentationTimeANDROID(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Surface *surfacePacked = PackParam<Surface *>(surface); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Surface *surfacePacked = PackParam<Surface *>(surface); + + ANGLE_EGL_VALIDATE(thread, PresentationTimeANDROID, GetDisplayIfValid(dpyPacked), EGLBoolean, + dpyPacked, surfacePacked, time); +@@ -265,7 +265,7 @@ const char *EGLAPIENTRY EGL_QueryStringiANGLE(EGLDisplay dpy, EGLint name, EGLin + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + + ANGLE_EGL_VALIDATE(thread, QueryStringiANGLE, GetDisplayIfValid(dpyPacked), const char *, + dpyPacked, name, index); +@@ -284,7 +284,7 @@ EGLBoolean EGLAPIENTRY EGL_QueryDisplayAttribANGLE(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + + ANGLE_EGL_VALIDATE(thread, QueryDisplayAttribANGLE, GetDisplayIfValid(dpyPacked), EGLBoolean, + dpyPacked, attribute, value); +@@ -301,8 +301,8 @@ void EGLAPIENTRY EGL_ReleaseHighPowerGPUANGLE(EGLDisplay dpy, EGLContext ctx) + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- gl::Context *ctxPacked = PackParam<gl::Context *>(ctx); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ gl::Context *ctxPacked = PackParam<gl::Context *>(ctx); + + ANGLE_EGL_VALIDATE_VOID(thread, ReleaseHighPowerGPUANGLE, GetDisplayIfValid(dpyPacked), + dpyPacked, ctxPacked); +@@ -318,8 +318,8 @@ void EGLAPIENTRY EGL_ReacquireHighPowerGPUANGLE(EGLDisplay dpy, EGLContext ctx) + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- gl::Context *ctxPacked = PackParam<gl::Context *>(ctx); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ gl::Context *ctxPacked = PackParam<gl::Context *>(ctx); + + ANGLE_EGL_VALIDATE_VOID(thread, ReacquireHighPowerGPUANGLE, GetDisplayIfValid(dpyPacked), + dpyPacked, ctxPacked); +@@ -334,7 +334,7 @@ void EGLAPIENTRY EGL_HandleGPUSwitchANGLE(EGLDisplay dpy) + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + + ANGLE_EGL_VALIDATE_VOID(thread, HandleGPUSwitchANGLE, GetDisplayIfValid(dpyPacked), dpyPacked); + +@@ -350,7 +350,7 @@ EGLint EGLAPIENTRY EGL_ProgramCacheGetAttribANGLE(EGLDisplay dpy, EGLenum attrib + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + + ANGLE_EGL_VALIDATE(thread, ProgramCacheGetAttribANGLE, GetDisplayIfValid(dpyPacked), EGLint, + dpyPacked, attrib); +@@ -375,7 +375,7 @@ void EGLAPIENTRY EGL_ProgramCacheQueryANGLE(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + + ANGLE_EGL_VALIDATE_VOID(thread, ProgramCacheQueryANGLE, GetDisplayIfValid(dpyPacked), dpyPacked, + index, key, keysize, binary, binarysize); +@@ -397,7 +397,7 @@ void EGLAPIENTRY EGL_ProgramCachePopulateANGLE(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + + ANGLE_EGL_VALIDATE_VOID(thread, ProgramCachePopulateANGLE, GetDisplayIfValid(dpyPacked), + dpyPacked, key, keysize, binary, binarysize); +@@ -413,7 +413,7 @@ EGLint EGLAPIENTRY EGL_ProgramCacheResizeANGLE(EGLDisplay dpy, EGLint limit, EGL + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + + ANGLE_EGL_VALIDATE(thread, ProgramCacheResizeANGLE, GetDisplayIfValid(dpyPacked), EGLint, + dpyPacked, limit, mode); +@@ -435,8 +435,8 @@ EGLBoolean EGLAPIENTRY EGL_QuerySurfacePointerANGLE(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Surface *surfacePacked = PackParam<Surface *>(surface); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Surface *surfacePacked = PackParam<Surface *>(surface); + + ANGLE_EGL_VALIDATE(thread, QuerySurfacePointerANGLE, GetDisplayIfValid(dpyPacked), EGLBoolean, + dpyPacked, surfacePacked, attribute, value); +@@ -457,7 +457,7 @@ EGLBoolean EGLAPIENTRY EGL_CreateStreamProducerD3DTextureANGLE(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + Stream *streamPacked = PackParam<Stream *>(stream); + const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list); + +@@ -480,7 +480,7 @@ EGLBoolean EGLAPIENTRY EGL_StreamPostD3DTextureANGLE(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + Stream *streamPacked = PackParam<Stream *>(stream); + const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list); + +@@ -502,8 +502,8 @@ EGLBoolean EGLAPIENTRY EGL_SwapBuffersWithFrameTokenANGLE(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Surface *surfacePacked = PackParam<Surface *>(surface); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Surface *surfacePacked = PackParam<Surface *>(surface); + + ANGLE_EGL_VALIDATE(thread, SwapBuffersWithFrameTokenANGLE, GetDisplayIfValid(dpyPacked), + EGLBoolean, dpyPacked, surfacePacked, frametoken); +@@ -525,8 +525,8 @@ EGLBoolean EGLAPIENTRY EGL_GetMscRateANGLE(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Surface *surfacePacked = PackParam<Surface *>(surface); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Surface *surfacePacked = PackParam<Surface *>(surface); + + ANGLE_EGL_VALIDATE(thread, GetMscRateANGLE, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, + surfacePacked, numerator, denominator); +@@ -549,8 +549,8 @@ EGLBoolean EGLAPIENTRY EGL_GetSyncValuesCHROMIUM(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Surface *surfacePacked = PackParam<Surface *>(surface); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Surface *surfacePacked = PackParam<Surface *>(surface); + + ANGLE_EGL_VALIDATE(thread, GetSyncValuesCHROMIUM, GetDisplayIfValid(dpyPacked), EGLBoolean, + dpyPacked, surfacePacked, ust, msc, sbc); +@@ -602,7 +602,7 @@ EGLBoolean EGLAPIENTRY EGL_QueryDisplayAttribEXT(EGLDisplay dpy, EGLint attribut + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + + ANGLE_EGL_VALIDATE(thread, QueryDisplayAttribEXT, GetDisplayIfValid(dpyPacked), EGLBoolean, + dpyPacked, attribute, value); +@@ -624,7 +624,7 @@ EGLSurface EGLAPIENTRY EGL_CreatePlatformPixmapSurfaceEXT(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + Config *configPacked = PackParam<Config *>(config); + const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list); + +@@ -648,7 +648,7 @@ EGLSurface EGLAPIENTRY EGL_CreatePlatformWindowSurfaceEXT(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + Config *configPacked = PackParam<Config *>(config); + const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list); + +@@ -711,7 +711,7 @@ EGLint EGLAPIENTRY EGL_LabelObjectKHR(EGLDisplay display, + + Thread *thread = egl::GetCurrentThread(); + +- Display *displayPacked = PackParam<Display *>(display); ++ egl::Display *displayPacked = PackParam<egl::Display *>(display); + ObjectType objectTypePacked = PackParam<ObjectType>(objectType); + + ANGLE_EGL_VALIDATE(thread, LabelObjectKHR, GetDisplayIfValid(displayPacked), EGLint, +@@ -746,8 +746,8 @@ EGLint EGLAPIENTRY EGL_ClientWaitSyncKHR(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Sync *syncPacked = PackParam<Sync *>(sync); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Sync *syncPacked = PackParam<Sync *>(sync); + + ANGLE_EGL_VALIDATE(thread, ClientWaitSyncKHR, GetDisplayIfValid(dpyPacked), EGLint, dpyPacked, + syncPacked, flags, timeout); +@@ -764,7 +764,7 @@ EGLSyncKHR EGLAPIENTRY EGL_CreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGL + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list); + + ANGLE_EGL_VALIDATE(thread, CreateSyncKHR, GetDisplayIfValid(dpyPacked), EGLSyncKHR, dpyPacked, +@@ -781,8 +781,8 @@ EGLBoolean EGLAPIENTRY EGL_DestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync) + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Sync *syncPacked = PackParam<Sync *>(sync); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Sync *syncPacked = PackParam<Sync *>(sync); + + ANGLE_EGL_VALIDATE(thread, DestroySyncKHR, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, + syncPacked); +@@ -803,8 +803,8 @@ EGLBoolean EGLAPIENTRY EGL_GetSyncAttribKHR(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Sync *syncPacked = PackParam<Sync *>(sync); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Sync *syncPacked = PackParam<Sync *>(sync); + + ANGLE_EGL_VALIDATE(thread, GetSyncAttribKHR, GetDisplayIfValid(dpyPacked), EGLBoolean, + dpyPacked, syncPacked, attribute, value); +@@ -827,7 +827,7 @@ EGLImageKHR EGLAPIENTRY EGL_CreateImageKHR(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + gl::Context *ctxPacked = PackParam<gl::Context *>(ctx); + const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list); + +@@ -845,8 +845,8 @@ EGLBoolean EGLAPIENTRY EGL_DestroyImageKHR(EGLDisplay dpy, EGLImageKHR image) + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Image *imagePacked = PackParam<Image *>(image); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Image *imagePacked = PackParam<Image *>(image); + + ANGLE_EGL_VALIDATE(thread, DestroyImageKHR, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, + imagePacked); +@@ -863,8 +863,8 @@ EGLBoolean EGLAPIENTRY EGL_SignalSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLenu + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Sync *syncPacked = PackParam<Sync *>(sync); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Sync *syncPacked = PackParam<Sync *>(sync); + + ANGLE_EGL_VALIDATE(thread, SignalSyncKHR, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, + syncPacked, mode); +@@ -889,7 +889,7 @@ EGLStreamKHR EGLAPIENTRY EGL_CreateStreamKHR(EGLDisplay dpy, const EGLint *attri + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list); + + ANGLE_EGL_VALIDATE(thread, CreateStreamKHR, GetDisplayIfValid(dpyPacked), EGLStreamKHR, +@@ -906,8 +906,8 @@ EGLBoolean EGLAPIENTRY EGL_DestroyStreamKHR(EGLDisplay dpy, EGLStreamKHR stream) + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Stream *streamPacked = PackParam<Stream *>(stream); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Stream *streamPacked = PackParam<Stream *>(stream); + + ANGLE_EGL_VALIDATE(thread, DestroyStreamKHR, GetDisplayIfValid(dpyPacked), EGLBoolean, + dpyPacked, streamPacked); +@@ -928,8 +928,8 @@ EGLBoolean EGLAPIENTRY EGL_QueryStreamKHR(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Stream *streamPacked = PackParam<Stream *>(stream); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Stream *streamPacked = PackParam<Stream *>(stream); + + ANGLE_EGL_VALIDATE(thread, QueryStreamKHR, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, + streamPacked, attribute, value); +@@ -950,8 +950,8 @@ EGLBoolean EGLAPIENTRY EGL_QueryStreamu64KHR(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Stream *streamPacked = PackParam<Stream *>(stream); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Stream *streamPacked = PackParam<Stream *>(stream); + + ANGLE_EGL_VALIDATE(thread, QueryStreamu64KHR, GetDisplayIfValid(dpyPacked), EGLBoolean, + dpyPacked, streamPacked, attribute, value); +@@ -971,8 +971,8 @@ EGLBoolean EGLAPIENTRY EGL_StreamAttribKHR(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Stream *streamPacked = PackParam<Stream *>(stream); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Stream *streamPacked = PackParam<Stream *>(stream); + + ANGLE_EGL_VALIDATE(thread, StreamAttribKHR, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, + streamPacked, attribute, value); +@@ -989,8 +989,8 @@ EGLBoolean EGLAPIENTRY EGL_StreamConsumerAcquireKHR(EGLDisplay dpy, EGLStreamKHR + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Stream *streamPacked = PackParam<Stream *>(stream); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Stream *streamPacked = PackParam<Stream *>(stream); + + ANGLE_EGL_VALIDATE(thread, StreamConsumerAcquireKHR, GetDisplayIfValid(dpyPacked), EGLBoolean, + dpyPacked, streamPacked); +@@ -1007,8 +1007,8 @@ EGLBoolean EGLAPIENTRY EGL_StreamConsumerGLTextureExternalKHR(EGLDisplay dpy, EG + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Stream *streamPacked = PackParam<Stream *>(stream); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Stream *streamPacked = PackParam<Stream *>(stream); + + ANGLE_EGL_VALIDATE(thread, StreamConsumerGLTextureExternalKHR, GetDisplayIfValid(dpyPacked), + EGLBoolean, dpyPacked, streamPacked); +@@ -1024,8 +1024,8 @@ EGLBoolean EGLAPIENTRY EGL_StreamConsumerReleaseKHR(EGLDisplay dpy, EGLStreamKHR + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Stream *streamPacked = PackParam<Stream *>(stream); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Stream *streamPacked = PackParam<Stream *>(stream); + + ANGLE_EGL_VALIDATE(thread, StreamConsumerReleaseKHR, GetDisplayIfValid(dpyPacked), EGLBoolean, + dpyPacked, streamPacked); +@@ -1047,8 +1047,8 @@ EGLBoolean EGLAPIENTRY EGL_SwapBuffersWithDamageKHR(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Surface *surfacePacked = PackParam<Surface *>(surface); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Surface *surfacePacked = PackParam<Surface *>(surface); + + ANGLE_EGL_VALIDATE(thread, SwapBuffersWithDamageKHR, GetDisplayIfValid(dpyPacked), EGLBoolean, + dpyPacked, surfacePacked, rects, n_rects); +@@ -1065,8 +1065,8 @@ EGLint EGLAPIENTRY EGL_WaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Sync *syncPacked = PackParam<Sync *>(sync); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Sync *syncPacked = PackParam<Sync *>(sync); + + ANGLE_EGL_VALIDATE(thread, WaitSyncKHR, GetDisplayIfValid(dpyPacked), EGLint, dpyPacked, + syncPacked, flags); +@@ -1090,8 +1090,8 @@ EGLBoolean EGLAPIENTRY EGL_PostSubBufferNV(EGLDisplay dpy, + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); +- Surface *surfacePacked = PackParam<Surface *>(surface); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); ++ Surface *surfacePacked = PackParam<Surface *>(surface); + + ANGLE_EGL_VALIDATE(thread, PostSubBufferNV, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, + surfacePacked, x, y, width, height); +@@ -1112,7 +1112,7 @@ EGLBoolean EGLAPIENTRY EGL_StreamConsumerGLTextureExternalAttribsNV(EGLDisplay d + + Thread *thread = egl::GetCurrentThread(); + +- Display *dpyPacked = PackParam<Display *>(dpy); ++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy); + Stream *streamPacked = PackParam<Stream *>(stream); + const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list); + diff --git a/www-client/chromium/files/chromium-89-compositor-dcheck.patch b/www-client/chromium/files/chromium-89-compositor-dcheck.patch new file mode 100644 index 0000000..2a12ca9 --- /dev/null +++ b/www-client/chromium/files/chromium-89-compositor-dcheck.patch @@ -0,0 +1,13 @@ +diff --git a/cc/metrics/compositor_frame_reporter.cc b/cc/metrics/compositor_frame_reporter.cc +index bab060123..f3ee60127 100644 +--- a/cc/metrics/compositor_frame_reporter.cc ++++ b/cc/metrics/compositor_frame_reporter.cc +@@ -767,7 +767,7 @@ void CompositorFrameReporter::ReportCompositorLatencyHistogram( + + void CompositorFrameReporter::ReportEventLatencyHistograms() const { + for (const auto& event_metrics : events_metrics_) { +- DCHECK(event_metrics); ++ DCHECK(event_metrics.get()); + const std::string histogram_base_name = + GetEventLatencyHistogramBaseName(*event_metrics); + const int event_type_index = static_cast<int>(event_metrics->type()); diff --git a/www-client/chromium/files/chromium-89-content-dcheck-uniqueptr.patch b/www-client/chromium/files/chromium-89-content-dcheck-uniqueptr.patch new file mode 100644 index 0000000..2297062 --- /dev/null +++ b/www-client/chromium/files/chromium-89-content-dcheck-uniqueptr.patch @@ -0,0 +1,13 @@ +diff --git a/content/browser/renderer_host/render_frame_host_manager.cc b/content/browser/renderer_host/render_frame_host_manager.cc +index f020be446..d7cb4656e 100644 +--- a/content/browser/renderer_host/render_frame_host_manager.cc ++++ b/content/browser/renderer_host/render_frame_host_manager.cc +@@ -738,7 +738,7 @@ void RenderFrameHostManager::ValidateSpeculativeRenderFrameHostForBug1146573() { + // This should never be true. + SCOPED_CRASH_KEY_BOOL(ValidateSpeculative, HostsEqual, + speculative_render_frame_host_ == render_frame_host_); +- DCHECK_NE(speculative_render_frame_host_, render_frame_host_); ++ DCHECK_NE(speculative_render_frame_host_.get(), render_frame_host_.get()); + SCOPED_CRASH_KEY_BOOL(ValidateSpeculative, Live, + render_frame_host_->IsRenderFrameLive()); + SCOPED_CRASH_KEY_STRING256( diff --git a/www-client/chromium/files/chromium-89-dawn-string-include.patch b/www-client/chromium/files/chromium-89-dawn-string-include.patch new file mode 100644 index 0000000..ae0bcc8 --- /dev/null +++ b/www-client/chromium/files/chromium-89-dawn-string-include.patch @@ -0,0 +1,13 @@ +diff --git a/third_party/dawn/src/dawn_wire/ChunkedCommandHandler.cpp b/third_party/dawn/src/dawn_wire/ChunkedCommandHandler.cpp +index e91e540fa..502a470e6 100644 +--- a/third_party/dawn/src/dawn_wire/ChunkedCommandHandler.cpp ++++ b/third_party/dawn/src/dawn_wire/ChunkedCommandHandler.cpp +@@ -14,6 +14,8 @@ + + #include "dawn_wire/ChunkedCommandHandler.h" + ++#include <string.h> ++ + #include <algorithm> + + namespace dawn_wire { diff --git a/www-client/chromium/files/chromium-89-pcscan-include.patch b/www-client/chromium/files/chromium-89-pcscan-include.patch new file mode 100644 index 0000000..96fcfb6 --- /dev/null +++ b/www-client/chromium/files/chromium-89-pcscan-include.patch @@ -0,0 +1,12 @@ +diff --git a/base/allocator/partition_allocator/pcscan.cc b/base/allocator/partition_allocator/pcscan.cc +index b8d96e32d..a802a1fae 100644 +--- a/base/allocator/partition_allocator/pcscan.cc ++++ b/base/allocator/partition_allocator/pcscan.cc +@@ -7,6 +7,7 @@ + #include <algorithm> + #include <map> + #include <mutex> ++#include <condition_variable> + #include <numeric> + #include <set> + #include <thread> diff --git a/www-client/chromium/files/chromium-89-quiche-uniqueptr.patch b/www-client/chromium/files/chromium-89-quiche-uniqueptr.patch new file mode 100644 index 0000000..a093522 --- /dev/null +++ b/www-client/chromium/files/chromium-89-quiche-uniqueptr.patch @@ -0,0 +1,13 @@ +diff --git a/net/third_party/quiche/src/quic/core/quic_path_validator.cc b/net/third_party/quiche/src/quic/core/quic_path_validator.cc +index 5d5e7206d..8145252aa 100644 +--- a/net/third_party/quiche/src/quic/core/quic_path_validator.cc ++++ b/net/third_party/quiche/src/quic/core/quic_path_validator.cc +@@ -66,7 +66,7 @@ void QuicPathValidator::StartValidingPath( + std::unique_ptr<QuicPathValidationContext> context, + std::unique_ptr<ResultDelegate> result_delegate) { + CancelPathValidation(); +- DCHECK_NE(nullptr, context); ++ DCHECK_NE(nullptr, context.get()); + QUIC_DLOG(INFO) << "Start validating path " << *context + << " via writer: " << context->WriterToUse(); + diff --git a/www-client/chromium/files/chromium-89-quiche-uniqueptr_r1.patch b/www-client/chromium/files/chromium-89-quiche-uniqueptr_r1.patch new file mode 100644 index 0000000..6872128 --- /dev/null +++ b/www-client/chromium/files/chromium-89-quiche-uniqueptr_r1.patch @@ -0,0 +1,13 @@ +diff --git a/net/third_party/quiche/src/quic/core/quic_path_validator.cc b/net/third_party/quiche/src/quic/core/quic_path_validator.cc +index 0722216a8..834a491e0 100644 +--- a/net/third_party/quiche/src/quic/core/quic_path_validator.cc ++++ b/net/third_party/quiche/src/quic/core/quic_path_validator.cc +@@ -68,7 +68,7 @@ void QuicPathValidator::OnPathResponse(const QuicPathFrameBuffer& probing_data, + void QuicPathValidator::StartPathValidation( + std::unique_ptr<QuicPathValidationContext> context, + std::unique_ptr<ResultDelegate> result_delegate) { +- DCHECK_NE(nullptr, context); ++ DCHECK_NE(nullptr, context.get()); + QUIC_DLOG(INFO) << "Start validating path " << *context + << " via writer: " << context->WriterToUse(); + if (path_context_ != nullptr) { diff --git a/www-client/chromium/files/chromium-89-sstream.patch b/www-client/chromium/files/chromium-89-sstream.patch new file mode 100644 index 0000000..8204fe2 --- /dev/null +++ b/www-client/chromium/files/chromium-89-sstream.patch @@ -0,0 +1,344 @@ +diff --git a/chrome/browser/ui/webui/internals/web_app/web_app_internals_page_handler_impl.cc b/chrome/browser/ui/webui/internals/web_app/web_app_internals_page_handler_impl.cc +index 339fc5a6c..5e23be6fb 100644 +--- a/chrome/browser/ui/webui/internals/web_app/web_app_internals_page_handler_impl.cc ++++ b/chrome/browser/ui/webui/internals/web_app/web_app_internals_page_handler_impl.cc +@@ -23,7 +23,7 @@ namespace { + + template <typename T> + std::string ConvertToString(const T& value) { +- return (std::stringstream() << value).str(); ++ return static_cast<const std::stringstream &>(std::stringstream() << value).str(); + } + + } // namespace +diff --git a/chrome/browser/web_applications/external_web_app_manager.cc b/chrome/browser/web_applications/external_web_app_manager.cc +index 3da14c154..64c2e80a9 100644 +--- a/chrome/browser/web_applications/external_web_app_manager.cc ++++ b/chrome/browser/web_applications/external_web_app_manager.cc +@@ -100,7 +100,7 @@ LoadedConfigs LoadConfigsBlocking(const base::FilePath& config_dir) { + deserializer.Deserialize(nullptr, &error_msg); + if (!app_config) { + result.errors.push_back( +- (std::stringstream() << file << " was not valid JSON: " << error_msg) ++ static_cast<const std::stringstream &>(std::stringstream() << file << " was not valid JSON: " << error_msg) + .str()); + VLOG(1) << result.errors.back(); + continue; +diff --git a/chrome/browser/web_applications/external_web_app_utils.cc b/chrome/browser/web_applications/external_web_app_utils.cc +index 8b3414d06..6d0718198 100644 +--- a/chrome/browser/web_applications/external_web_app_utils.cc ++++ b/chrome/browser/web_applications/external_web_app_utils.cc +@@ -158,7 +158,7 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils, + options.require_manifest = true; + + if (app_config.type() != base::Value::Type::DICTIONARY) { +- return (std::stringstream() ++ return static_cast<const std::stringstream &>(std::stringstream() + << file << " was not a dictionary as the top level") + .str(); + } +@@ -166,18 +166,18 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils, + // user_type + const base::Value* value = app_config.FindListKey(kUserType); + if (!value) { +- return (std::stringstream() << file << " missing " << kUserType).str(); ++ return static_cast<const std::stringstream &>(std::stringstream() << file << " missing " << kUserType).str(); + } + for (const auto& item : value->GetList()) { + if (!item.is_string()) { +- return (std::stringstream() ++ return static_cast<const std::stringstream &>(std::stringstream() + << file << " has invalid " << kUserType << item) + .str(); + } + options.user_type_allowlist.push_back(item.GetString()); + } + if (options.user_type_allowlist.empty()) { +- return (std::stringstream() << file << " has empty " << kUserType).str(); ++ return static_cast<const std::stringstream &>(std::stringstream() << file << " has empty " << kUserType).str(); + } + + // feature_name +@@ -188,18 +188,18 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils, + // app_url + value = app_config.FindKeyOfType(kAppUrl, base::Value::Type::STRING); + if (!value) { +- return (std::stringstream() << file << " had a missing " << kAppUrl).str(); ++ return static_cast<const std::stringstream &>(std::stringstream() << file << " had a missing " << kAppUrl).str(); + } + options.install_url = GURL(value->GetString()); + if (!options.install_url.is_valid()) { +- return (std::stringstream() << file << " had an invalid " << kAppUrl).str(); ++ return static_cast<const std::stringstream &>(std::stringstream() << file << " had an invalid " << kAppUrl).str(); + } + + // only_for_new_users + value = app_config.FindKey(kOnlyForNewUsers); + if (value) { + if (!value->is_bool()) { +- return (std::stringstream() ++ return static_cast<const std::stringstream &>(std::stringstream() + << file << " had an invalid " << kOnlyForNewUsers) + .str(); + } +@@ -211,7 +211,7 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils, + value = app_config.FindKey(kHideFromUser); + if (value) { + if (!value->is_bool()) { +- return (std::stringstream() ++ return static_cast<const std::stringstream &>(std::stringstream() + << file << " had an invalid " << kHideFromUser) + .str(); + } +@@ -226,7 +226,7 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils, + value = app_config.FindKey(kCreateShortcuts); + if (value) { + if (!value->is_bool()) { +- return (std::stringstream() ++ return static_cast<const std::stringstream &>(std::stringstream() + << file << " had an invalid " << kCreateShortcuts) + .str(); + } +@@ -242,7 +242,7 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils, + value = app_config.FindKey(kDisableIfArcSupported); + if (value) { + if (!value->is_bool()) { +- return (std::stringstream() ++ return static_cast<const std::stringstream &>(std::stringstream() + << file << " had an invalid " << kDisableIfArcSupported) + .str(); + } +@@ -253,7 +253,7 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils, + value = app_config.FindKey(kDisableIfTabletFormFactor); + if (value) { + if (!value->is_bool()) { +- return (std::stringstream() ++ return static_cast<const std::stringstream &>(std::stringstream() + << file << " had an invalid " << kDisableIfTabletFormFactor) + .str(); + } +@@ -263,7 +263,7 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils, + // launch_container + value = app_config.FindKeyOfType(kLaunchContainer, base::Value::Type::STRING); + if (!value) { +- return (std::stringstream() ++ return static_cast<const std::stringstream &>(std::stringstream() + << file << " had an invalid " << kLaunchContainer) + .str(); + } +@@ -273,7 +273,7 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils, + } else if (launch_container_str == kLaunchContainerWindow) { + options.user_display_mode = DisplayMode::kStandalone; + } else { +- return (std::stringstream() ++ return static_cast<const std::stringstream &>(std::stringstream() + << file << " had an invalid " << kLaunchContainer << ": " + << launch_container_str) + .str(); +@@ -283,7 +283,7 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils, + value = app_config.FindKey(kLaunchQueryParams); + if (value) { + if (!value->is_string()) { +- return (std::stringstream() ++ return static_cast<const std::stringstream &>(std::stringstream() + << file << " had an invalid " << kLaunchQueryParams) + .str(); + } +@@ -294,7 +294,7 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils, + value = app_config.FindKey(kLoadAndAwaitServiceWorkerRegistration); + if (value) { + if (!value->is_bool()) { +- return (std::stringstream() << file << " had an invalid " ++ return static_cast<const std::stringstream &>(std::stringstream() << file << " had an invalid " + << kLoadAndAwaitServiceWorkerRegistration) + .str(); + } +@@ -305,20 +305,20 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils, + value = app_config.FindKey(kServiceWorkerRegistrationUrl); + if (value) { + if (!options.load_and_await_service_worker_registration) { +- return (std::stringstream() ++ return static_cast<const std::stringstream &>(std::stringstream() + << file << " should not specify a " + << kServiceWorkerRegistrationUrl << " while " + << kLoadAndAwaitServiceWorkerRegistration << " is disabled") + .str(); + } + if (!value->is_string()) { +- return (std::stringstream() ++ return static_cast<const std::stringstream &>(std::stringstream() + << file << " had an invalid " << kServiceWorkerRegistrationUrl) + .str(); + } + options.service_worker_registration_url.emplace(value->GetString()); + if (!options.service_worker_registration_url->is_valid()) { +- return (std::stringstream() ++ return static_cast<const std::stringstream &>(std::stringstream() + << file << " had an invalid " << kServiceWorkerRegistrationUrl) + .str(); + } +@@ -328,7 +328,7 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils, + value = app_config.FindKey(kUninstallAndReplace); + if (value) { + if (!value->is_list()) { +- return (std::stringstream() ++ return static_cast<const std::stringstream &>(std::stringstream() + << file << " had an invalid " << kUninstallAndReplace) + .str(); + } +@@ -336,7 +336,7 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils, + + for (const auto& app_id_value : uninstall_and_replace_values) { + if (!app_id_value.is_string()) { +- return (std::stringstream() << file << " had an invalid " ++ return static_cast<const std::stringstream &>(std::stringstream() << file << " had an invalid " + << kUninstallAndReplace << " entry") + .str(); + } +@@ -348,7 +348,7 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils, + value = app_config.FindKey(kOnlyUseOfflineManifest); + if (value) { + if (!value->is_bool()) { +- return (std::stringstream() ++ return static_cast<const std::stringstream &>(std::stringstream() + << file << " had an invalid " << kOnlyUseOfflineManifest) + .str(); + } +@@ -369,7 +369,7 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils, + } + + if (options.only_use_app_info_factory && !options.app_info_factory) { +- return (std::stringstream() ++ return static_cast<const std::stringstream &>(std::stringstream() + << file << kOnlyUseOfflineManifest << " set with no " + << kOfflineManifest << " available") + .str(); +@@ -389,7 +389,7 @@ WebApplicationInfoFactoryOrError ParseOfflineManifest( + const std::string* name_string = + offline_manifest.FindStringKey(kOfflineManifestName); + if (!name_string) { +- return (std::stringstream() ++ return static_cast<const std::stringstream &>(std::stringstream() + << file << " " << kOfflineManifest << " " << kOfflineManifestName + << " missing or invalid.") + .str(); +@@ -397,7 +397,7 @@ WebApplicationInfoFactoryOrError ParseOfflineManifest( + if (!base::UTF8ToUTF16(name_string->data(), name_string->size(), + &app_info.title) || + app_info.title.empty()) { +- return (std::stringstream() ++ return static_cast<const std::stringstream &>(std::stringstream() + << file << " " << kOfflineManifest << " " << kOfflineManifestName + << " invalid: " << *name_string) + .str(); +@@ -407,14 +407,14 @@ WebApplicationInfoFactoryOrError ParseOfflineManifest( + const std::string* start_url_string = + offline_manifest.FindStringKey(kOfflineManifestStartUrl); + if (!start_url_string) { +- return (std::stringstream() ++ return static_cast<const std::stringstream &>(std::stringstream() + << file << " " << kOfflineManifest << " " + << kOfflineManifestStartUrl << " missing or invalid.") + .str(); + } + app_info.start_url = GURL(*start_url_string); + if (!app_info.start_url.is_valid()) { +- return (std::stringstream() ++ return static_cast<const std::stringstream &>(std::stringstream() + << file << " " << kOfflineManifest << " " + << kOfflineManifestStartUrl << " invalid: " << *start_url_string) + .str(); +@@ -424,21 +424,21 @@ WebApplicationInfoFactoryOrError ParseOfflineManifest( + const std::string* scope_string = + offline_manifest.FindStringKey(kOfflineManifestScope); + if (!scope_string) { +- return (std::stringstream() ++ return static_cast<const std::stringstream &>(std::stringstream() + << file << " " << kOfflineManifest << " " << kOfflineManifestScope + << " missing or invalid.") + .str(); + } + app_info.scope = GURL(*scope_string); + if (!app_info.scope.is_valid()) { +- return (std::stringstream() ++ return static_cast<const std::stringstream &>(std::stringstream() + << file << " " << kOfflineManifest << " " << kOfflineManifestScope + << " invalid: " << *scope_string) + .str(); + } + if (!base::StartsWith(app_info.start_url.path(), app_info.scope.path(), + base::CompareCase::SENSITIVE)) { +- return (std::stringstream() ++ return static_cast<const std::stringstream &>(std::stringstream() + << file << " " << kOfflineManifest << " " << kOfflineManifestScope + << " (" << app_info.start_url << ") not within " + << kOfflineManifestScope << " (" << app_info.scope << ").") +@@ -449,14 +449,14 @@ WebApplicationInfoFactoryOrError ParseOfflineManifest( + const std::string* display_string = + offline_manifest.FindStringKey(kOfflineManifestDisplay); + if (!display_string) { +- return (std::stringstream() ++ return static_cast<const std::stringstream &>(std::stringstream() + << file << " " << kOfflineManifest << " " << kOfflineManifestDisplay + << " missing or invalid.") + .str(); + } + DisplayMode display = blink::DisplayModeFromString(*display_string); + if (display == DisplayMode::kUndefined) { +- return (std::stringstream() ++ return static_cast<const std::stringstream &>(std::stringstream() + << file << " " << kOfflineManifest << " " << kOfflineManifestDisplay + << " invalid: " << display_string) + .str(); +@@ -467,14 +467,14 @@ WebApplicationInfoFactoryOrError ParseOfflineManifest( + const base::Value* icon_files = + offline_manifest.FindListKey(kOfflineManifestIconAnyPngs); + if (!icon_files || icon_files->GetList().empty()) { +- return (std::stringstream() ++ return static_cast<const std::stringstream &>(std::stringstream() + << file << " " << kOfflineManifest << " " + << kOfflineManifestIconAnyPngs << " missing, empty or invalid.") + .str(); + } + for (const base::Value& icon_file : icon_files->GetList()) { + if (!icon_file.is_string()) { +- return (std::stringstream() ++ return static_cast<const std::stringstream &>(std::stringstream() + << file << " " << kOfflineManifest << " " + << kOfflineManifestIconAnyPngs << " " << icon_file << " invalid.") + .str(); +@@ -483,7 +483,7 @@ WebApplicationInfoFactoryOrError ParseOfflineManifest( + base::FilePath icon_path = dir.AppendASCII(icon_file.GetString()); + std::string icon_data; + if (!file_utils.ReadFileToString(icon_path, &icon_data)) { +- return (std::stringstream() << file << " " << kOfflineManifest << " " ++ return static_cast<const std::stringstream &>(std::stringstream() << file << " " << kOfflineManifest << " " + << kOfflineManifestIconAnyPngs << " " + << icon_file << " failed to read.") + .str(); +@@ -493,14 +493,14 @@ WebApplicationInfoFactoryOrError ParseOfflineManifest( + if (!gfx::PNGCodec::Decode( + reinterpret_cast<const unsigned char*>(icon_data.c_str()), + icon_data.size(), &bitmap)) { +- return (std::stringstream() << file << " " << kOfflineManifest << " " ++ return static_cast<const std::stringstream &>(std::stringstream() << file << " " << kOfflineManifest << " " + << kOfflineManifestIconAnyPngs << " " + << icon_file << " failed to decode.") + .str(); + } + + if (bitmap.width() != bitmap.height()) { +- return (std::stringstream() << file << " " << kOfflineManifest << " " ++ return static_cast<const std::stringstream &>(std::stringstream() << file << " " << kOfflineManifest << " " + << kOfflineManifestIconAnyPngs << " " + << icon_file << " must be square: " + << bitmap.width() << "x" << bitmap.height()) +@@ -521,7 +521,7 @@ WebApplicationInfoFactoryOrError ParseOfflineManifest( + SkColor theme_color; + if (!theme_color_argb_hex || + !base::HexStringToUInt(*theme_color_argb_hex, &theme_color)) { +- return (std::stringstream() << file << " " << kOfflineManifest << " " ++ return static_cast<const std::stringstream &>(std::stringstream() << file << " " << kOfflineManifest << " " + << kOfflineManifestThemeColorArgbHex + << " invalid: " << *theme_color_value) + .str(); diff --git a/www-client/chromium/files/chromium-89-uigfx-image-skia.patch b/www-client/chromium/files/chromium-89-uigfx-image-skia.patch new file mode 100644 index 0000000..a96dd00 --- /dev/null +++ b/www-client/chromium/files/chromium-89-uigfx-image-skia.patch @@ -0,0 +1,22 @@ +diff --git a/ui/gfx/image/image_skia.cc b/ui/gfx/image/image_skia.cc +index 6d2748d67..31dfdf5d2 100644 +--- a/ui/gfx/image/image_skia.cc ++++ b/ui/gfx/image/image_skia.cc +@@ -125,7 +125,7 @@ class ImageSkiaStorage : public base::RefCountedThreadSafe<ImageSkiaStorage> { + // one and rescale the image. + // Right now only Windows uses 2 and other platforms use 1 by default. + // TODO(mukai, oshima): abandon 1 code path and use 2 for every platforms. +- std::vector<const ImageSkiaRep>::iterator FindRepresentation( ++ std::vector<ImageSkiaRep>::const_iterator FindRepresentation( + float scale, + bool fetch_new_image) const; + +@@ -211,7 +211,7 @@ bool ImageSkiaStorage::HasRepresentationAtAllScales() const { + return source_ && source_->HasRepresentationAtAllScales(); + } + +-std::vector<const ImageSkiaRep>::iterator ImageSkiaStorage::FindRepresentation( ++std::vector<ImageSkiaRep>::const_iterator ImageSkiaStorage::FindRepresentation( + float scale, + bool fetch_new_image) const { + auto closest_iter = image_reps_.end(); diff --git a/www-client/chromium/files/chromium-89-webui-config-include.patch b/www-client/chromium/files/chromium-89-webui-config-include.patch new file mode 100644 index 0000000..5ed2bd5 --- /dev/null +++ b/www-client/chromium/files/chromium-89-webui-config-include.patch @@ -0,0 +1,12 @@ +diff --git a/ui/webui/webui_config.h b/ui/webui/webui_config.h +index 29990bd5a..44918fa34 100644 +--- a/ui/webui/webui_config.h ++++ b/ui/webui/webui_config.h +@@ -6,6 +6,7 @@ + #define UI_WEBUI_WEBUI_CONFIG_H_ + + #include <string> ++#include <memory> + + #include "base/strings/string_piece.h" + diff --git a/www-client/chromium/files/chromium-90-blink-disable-clang-format.patch b/www-client/chromium/files/chromium-90-blink-disable-clang-format.patch new file mode 100644 index 0000000..2d8ea05 --- /dev/null +++ b/www-client/chromium/files/chromium-90-blink-disable-clang-format.patch @@ -0,0 +1,19 @@ +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 e24764c13..7c5add8f4 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 +@@ -171,13 +171,5 @@ 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.encode('utf-8')) ++ filepath, rendered_text.encode('utf-8')) diff --git a/www-client/chromium/files/chromium-90-compositor-dcheck.patch b/www-client/chromium/files/chromium-90-compositor-dcheck.patch new file mode 100644 index 0000000..d718a68 --- /dev/null +++ b/www-client/chromium/files/chromium-90-compositor-dcheck.patch @@ -0,0 +1,13 @@ +diff --git a/cc/metrics/compositor_frame_reporter.cc b/cc/metrics/compositor_frame_reporter.cc +index fcad7a8cd..152b724c8 100644 +--- a/cc/metrics/compositor_frame_reporter.cc ++++ b/cc/metrics/compositor_frame_reporter.cc +@@ -960,7 +960,7 @@ void CompositorFrameReporter::ReportEventLatencyHistograms() const { + "EventLatency." + total_latency_stage_name; + + for (const auto& event_metrics : events_metrics_) { +- DCHECK(event_metrics); ++ DCHECK(event_metrics.get()); + const std::string histogram_base_name = + GetEventLatencyHistogramBaseName(*event_metrics); + const int event_type_index = static_cast<int>(event_metrics->type()); diff --git a/www-client/chromium/files/chromium-90-disable-nomerge.patch b/www-client/chromium/files/chromium-90-disable-nomerge.patch new file mode 100644 index 0000000..fc4049f --- /dev/null +++ b/www-client/chromium/files/chromium-90-disable-nomerge.patch @@ -0,0 +1,13 @@ +diff --git a/base/compiler_specific.h b/base/compiler_specific.h +index 14a5d6870..b4d31d77e 100644 +--- a/base/compiler_specific.h ++++ b/base/compiler_specific.h +@@ -334,7 +334,7 @@ inline constexpr bool AnalyzerAssumeTrue(bool arg) { + + // Use nomerge attribute to disable optimization of merging multiple same calls. + #if defined(__clang__) && __has_attribute(nomerge) && !defined(OS_CHROMEOS) +-#define NOMERGE [[clang::nomerge]] ++#define NOMERGE //[[clang::nomerge]] + #else + #define NOMERGE + #endif diff --git a/www-client/chromium/files/chromium-90-langdetect-include.patch b/www-client/chromium/files/chromium-90-langdetect-include.patch new file mode 100644 index 0000000..39cd0a8 --- /dev/null +++ b/www-client/chromium/files/chromium-90-langdetect-include.patch @@ -0,0 +1,12 @@ +diff --git a/components/translate/core/language_detection/ngram_hash_ops_utils.cc b/components/translate/core/language_detection/ngram_hash_ops_utils.cc +index cf9103358..dd03a3db4 100644 +--- a/components/translate/core/language_detection/ngram_hash_ops_utils.cc ++++ b/components/translate/core/language_detection/ngram_hash_ops_utils.cc +@@ -4,6 +4,7 @@ + + #include "components/translate/core/language_detection/ngram_hash_ops_utils.h" + ++#include <cstring> + #include <vector> + + #include "third_party/utf/src/include/utf.h" diff --git a/www-client/chromium/files/chromium-90-quantization-util-stdint.patch b/www-client/chromium/files/chromium-90-quantization-util-stdint.patch new file mode 100644 index 0000000..060763a --- /dev/null +++ b/www-client/chromium/files/chromium-90-quantization-util-stdint.patch @@ -0,0 +1,12 @@ +diff --git a/components/translate/core/language_detection/quantization_utils.h b/components/translate/core/language_detection/quantization_utils.h +index eb8f6d1e9..699a48897 100644 +--- a/components/translate/core/language_detection/quantization_utils.h ++++ b/components/translate/core/language_detection/quantization_utils.h +@@ -7,6 +7,7 @@ + + #include <algorithm> + #include <cmath> ++#include <cstdint> + + namespace translate { + diff --git a/www-client/chromium/files/chromium-90-quiche-uniqueptr.patch b/www-client/chromium/files/chromium-90-quiche-uniqueptr.patch new file mode 100644 index 0000000..21183a6 --- /dev/null +++ b/www-client/chromium/files/chromium-90-quiche-uniqueptr.patch @@ -0,0 +1,13 @@ +diff --git a/net/third_party/quiche/src/quic/core/quic_path_validator.cc b/net/third_party/quiche/src/quic/core/quic_path_validator.cc +index f2abef054..b419c9070 100644 +--- a/net/third_party/quiche/src/quic/core/quic_path_validator.cc ++++ b/net/third_party/quiche/src/quic/core/quic_path_validator.cc +@@ -68,7 +68,7 @@ void QuicPathValidator::OnPathResponse(const QuicPathFrameBuffer& probing_data, + void QuicPathValidator::StartPathValidation( + std::unique_ptr<QuicPathValidationContext> context, + std::unique_ptr<ResultDelegate> result_delegate) { +- QUICHE_DCHECK(context); ++ QUICHE_DCHECK(context.get()); + QUIC_DLOG(INFO) << "Start validating path " << *context + << " via writer: " << context->WriterToUse(); + if (path_context_ != nullptr) { diff --git a/www-client/chromium/files/chromium-90-ruy-include.patch b/www-client/chromium/files/chromium-90-ruy-include.patch new file mode 100644 index 0000000..81d5367 --- /dev/null +++ b/www-client/chromium/files/chromium-90-ruy-include.patch @@ -0,0 +1,24 @@ +From 714092f336bb14d2fcc27396ec323b3d843bb962 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <stha09@googlemail.com> +Date: Thu, 4 Mar 2021 15:05:46 +0000 +Subject: [PATCH] IWYU: include limits for std::numeric_limits + +--- + third_party/ruy/src/ruy/block_map.cc | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/third_party/ruy/src/ruy/block_map.cc b/third_party/ruy/src/ruy/block_map.cc +index 44e5039..a7a7559 100644 +--- a/third_party/ruy/src/ruy/block_map.cc ++++ b/third_party/ruy/src/ruy/block_map.cc +@@ -17,6 +17,7 @@ limitations under the License. + + #include <algorithm> + #include <cstdint> ++#include <limits> + + #ifdef RUY_MAKEBLOCKMAP_DEBUG + #include <cstdio> +-- +2.26.2 + diff --git a/www-client/chromium/files/chromium-91-clipboard-ozone.patch b/www-client/chromium/files/chromium-91-clipboard-ozone.patch new file mode 100644 index 0000000..5aac0ee --- /dev/null +++ b/www-client/chromium/files/chromium-91-clipboard-ozone.patch @@ -0,0 +1,48 @@ +diff --git a/ui/base/clipboard/clipboard_factory_ozone.cc b/ui/base/clipboard/clipboard_factory_ozone.cc +index e2a061df8..5463e6bf9 100644 +--- a/ui/base/clipboard/clipboard_factory_ozone.cc ++++ b/ui/base/clipboard/clipboard_factory_ozone.cc +@@ -50,7 +50,8 @@ Clipboard* Clipboard::Create() { + #if defined(USE_X11) && BUILDFLAG(IS_CHROMEOS_LACROS) + NOTREACHED() << "System clipboard integration should be in place."; + #endif +- return new ClipboardNonBacked; ++ return nullptr; ++ //return new ClipboardNonBacked; + } + + } // namespace ui +diff --git a/ui/base/clipboard/clipboard_non_backed.cc b/ui/base/clipboard/clipboard_non_backed.cc +index a6e85cd2f..734c7e961 100644 +--- a/ui/base/clipboard/clipboard_non_backed.cc ++++ b/ui/base/clipboard/clipboard_non_backed.cc +@@ -688,6 +688,7 @@ void ClipboardNonBacked::ReadData(const ClipboardFormatType& format, + #endif + } + ++#if defined(USE_OZONE) + bool ClipboardNonBacked::IsSelectionBufferAvailable() const { + #if BUILDFLAG(IS_CHROMEOS_ASH) + return false; +@@ -695,6 +696,7 @@ bool ClipboardNonBacked::IsSelectionBufferAvailable() const { + return true; + #endif + } ++#endif // defined(USE_OZONE) + + void ClipboardNonBacked::WritePortableRepresentations( + ClipboardBuffer buffer, +diff --git a/ui/base/clipboard/clipboard_non_backed.h b/ui/base/clipboard/clipboard_non_backed.h +index d14ff0ff6..702f02a84 100644 +--- a/ui/base/clipboard/clipboard_non_backed.h ++++ b/ui/base/clipboard/clipboard_non_backed.h +@@ -97,7 +97,9 @@ class COMPONENT_EXPORT(UI_BASE_CLIPBOARD) ClipboardNonBacked + void ReadData(const ClipboardFormatType& format, + const DataTransferEndpoint* data_dst, + std::string* result) const override; ++#if defined(USE_OZONE) + bool IsSelectionBufferAvailable() const override; ++#endif // defined(USE_OZONE) + void WritePortableRepresentations( + ClipboardBuffer buffer, + const ObjectMap& objects, diff --git a/www-client/chromium/files/chromium-91-compiler-r1.patch b/www-client/chromium/files/chromium-91-compiler-r1.patch new file mode 100644 index 0000000..8724c6b --- /dev/null +++ b/www-client/chromium/files/chromium-91-compiler-r1.patch @@ -0,0 +1,165 @@ +From f4d0b0eb899005b4b8b6388e1d8bb82cc0018fc8 Mon Sep 17 00:00:00 2001 +From: Mike Gilbert <floppym@gentoo.org> +Date: Wed, 7 Apr 2021 08:50:04 +0000 +Subject: [PATCH] Disable various compiler configs + +--- + build/config/compiler/BUILD.gn | 59 ++++++++++------------------------ + 1 file changed, 17 insertions(+), 42 deletions(-) + +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index 72ea590..539672d 100644 +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -273,8 +273,6 @@ config("compiler") { + + configs += [ + # See the definitions below. +- ":clang_revision", +- ":compiler_cpu_abi", + ":compiler_codegen", + ":compiler_deterministic", + ] +@@ -518,24 +516,6 @@ config("compiler") { + ldflags += [ "-Wl,-z,keep-text-section-prefix" ] + } + +- if (is_clang && !is_nacl && !use_xcode_clang) { +- cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ] +- +- # TODO(hans): Remove this once Clang generates better optimized debug info +- # by default. https://crbug.com/765793 +- cflags += [ +- "-mllvm", +- "-instcombine-lower-dbg-declare=0", +- ] +- if (!is_debug && use_thin_lto && is_a_target_toolchain) { +- if (is_win) { +- ldflags += [ "-mllvm:-instcombine-lower-dbg-declare=0" ] +- } else { +- ldflags += [ "-Wl,-mllvm,-instcombine-lower-dbg-declare=0" ] +- } +- } +- } +- + # C11/C++11 compiler flags setup. + # --------------------------- + if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) || +@@ -1643,7 +1623,7 @@ config("chromium_code") { + defines = [ "_HAS_NODISCARD" ] + } + } else { +- cflags = [ "-Wall" ] ++ cflags = [] + if (treat_warnings_as_errors) { + cflags += [ "-Werror" ] + +@@ -1652,10 +1632,6 @@ config("chromium_code") { + # well. + ldflags = [ "-Werror" ] + } +- if (is_clang) { +- # Enable extra warnings for chromium_code when we control the compiler. +- cflags += [ "-Wextra" ] +- } + + # In Chromium code, we define __STDC_foo_MACROS in order to get the + # C99 macros on Mac and Linux. +@@ -1664,15 +1640,6 @@ config("chromium_code") { + "__STDC_FORMAT_MACROS", + ] + +- if (!is_debug && !using_sanitizer && current_cpu != "s390x" && +- current_cpu != "s390" && current_cpu != "ppc64" && +- current_cpu != "mips" && current_cpu != "mips64") { +- # Non-chromium code is not guaranteed to compile cleanly with +- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are +- # disabled, so only do that for Release build. +- defines += [ "_FORTIFY_SOURCE=2" ] +- } +- + if (is_mac) { + cflags_objc = [ "-Wobjc-missing-property-synthesis" ] + cflags_objcc = [ "-Wobjc-missing-property-synthesis" ] +@@ -2068,7 +2035,8 @@ config("default_stack_frames") { + } + + # Default "optimization on" config. +-config("optimize") { ++config("optimize") { } ++config("xoptimize") { + if (is_win) { + if (chrome_pgo_phase != 2) { + # Favor size over speed, /O1 must be before the common flags. +@@ -2103,7 +2071,8 @@ config("optimize") { + } + + # Turn off optimizations. +-config("no_optimize") { ++config("no_optimize") { } ++config("xno_optimize") { + if (is_win) { + cflags = [ + "/Od", # Disable optimization. +@@ -2143,7 +2112,8 @@ config("no_optimize") { + # Turns up the optimization level. On Windows, this implies whole program + # optimization and link-time code generation which is very expensive and should + # be used sparingly. +-config("optimize_max") { ++config("optimize_max") { } ++config("xoptimize_max") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2175,7 +2145,8 @@ config("optimize_max") { + # + # TODO(crbug.com/621335) - rework how all of these configs are related + # so that we don't need this disclaimer. +-config("optimize_speed") { ++config("optimize_speed") { } ++config("xoptimize_speed") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2200,7 +2171,8 @@ config("optimize_speed") { + } + } + +-config("optimize_fuzzing") { ++config("optimize_fuzzing") { } ++config("xoptimize_fuzzing") { + cflags = [ "-O1" ] + common_optimize_on_cflags + ldflags = common_optimize_on_ldflags + visibility = [ ":default_optimization" ] +@@ -2319,7 +2291,8 @@ config("win_pdbaltpath") { + } + + # Full symbols. +-config("symbols") { ++config("symbols") { } ++config("xsymbols") { + if (is_win) { + if (is_clang) { + cflags = [ "/Z7" ] # Debug information in the .obj files. +@@ -2422,7 +2395,8 @@ config("symbols") { + # Minimal symbols. + # This config guarantees to hold symbol for stack trace which are shown to user + # when crash happens in unittests running on buildbot. +-config("minimal_symbols") { ++config("minimal_symbols") { } ++config("xminimal_symbols") { + if (is_win) { + # Functions, files, and line tables only. + cflags = [] +@@ -2481,7 +2455,8 @@ config("minimal_symbols") { + # This configuration contains function names only. That is, the compiler is + # told to not generate debug information and the linker then just puts function + # names in the final debug information. +-config("no_symbols") { ++config("no_symbols") { } ++config("xno_symbols") { + if (is_win) { + ldflags = [ "/DEBUG" ] + +-- +2.26.3 diff --git a/www-client/chromium/files/chromium-91-compiler.patch b/www-client/chromium/files/chromium-91-compiler.patch new file mode 100644 index 0000000..e45d4a3 --- /dev/null +++ b/www-client/chromium/files/chromium-91-compiler.patch @@ -0,0 +1,154 @@ +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index 72ea590d6..bc23dce78 100644 +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -273,8 +273,6 @@ config("compiler") { + + configs += [ + # See the definitions below. +- ":clang_revision", +- ":compiler_cpu_abi", + ":compiler_codegen", + ":compiler_deterministic", + ] +@@ -518,24 +516,6 @@ config("compiler") { + ldflags += [ "-Wl,-z,keep-text-section-prefix" ] + } + +- if (is_clang && !is_nacl && !use_xcode_clang) { +- cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ] +- +- # TODO(hans): Remove this once Clang generates better optimized debug info +- # by default. https://crbug.com/765793 +- cflags += [ +- "-mllvm", +- "-instcombine-lower-dbg-declare=0", +- ] +- if (!is_debug && use_thin_lto && is_a_target_toolchain) { +- if (is_win) { +- ldflags += [ "-mllvm:-instcombine-lower-dbg-declare=0" ] +- } else { +- ldflags += [ "-Wl,-mllvm,-instcombine-lower-dbg-declare=0" ] +- } +- } +- } +- + # C11/C++11 compiler flags setup. + # --------------------------- + if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) || +@@ -1643,7 +1623,7 @@ config("chromium_code") { + defines = [ "_HAS_NODISCARD" ] + } + } else { +- cflags = [ "-Wall" ] ++ cflags = [ ] + if (treat_warnings_as_errors) { + cflags += [ "-Werror" ] + +@@ -1652,10 +1632,6 @@ config("chromium_code") { + # well. + ldflags = [ "-Werror" ] + } +- if (is_clang) { +- # Enable extra warnings for chromium_code when we control the compiler. +- cflags += [ "-Wextra" ] +- } + + # In Chromium code, we define __STDC_foo_MACROS in order to get the + # C99 macros on Mac and Linux. +@@ -1664,15 +1640,6 @@ config("chromium_code") { + "__STDC_FORMAT_MACROS", + ] + +- if (!is_debug && !using_sanitizer && current_cpu != "s390x" && +- current_cpu != "s390" && current_cpu != "ppc64" && +- current_cpu != "mips" && current_cpu != "mips64") { +- # Non-chromium code is not guaranteed to compile cleanly with +- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are +- # disabled, so only do that for Release build. +- defines += [ "_FORTIFY_SOURCE=2" ] +- } +- + if (is_mac) { + cflags_objc = [ "-Wobjc-missing-property-synthesis" ] + cflags_objcc = [ "-Wobjc-missing-property-synthesis" ] +@@ -2068,7 +2035,8 @@ config("default_stack_frames") { + } + + # Default "optimization on" config. +-config("optimize") { ++config("optimize") { } ++config("xoptimize") { + if (is_win) { + if (chrome_pgo_phase != 2) { + # Favor size over speed, /O1 must be before the common flags. +@@ -2103,7 +2071,8 @@ config("optimize") { + } + + # Turn off optimizations. +-config("no_optimize") { ++config("no_optimize") { } ++config("xno_optimize") { + if (is_win) { + cflags = [ + "/Od", # Disable optimization. +@@ -2143,7 +2112,8 @@ config("no_optimize") { + # Turns up the optimization level. On Windows, this implies whole program + # optimization and link-time code generation which is very expensive and should + # be used sparingly. +-config("optimize_max") { ++config("optimize_max") { } ++config("xoptimize_max") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2175,7 +2145,8 @@ config("optimize_max") { + # + # TODO(crbug.com/621335) - rework how all of these configs are related + # so that we don't need this disclaimer. +-config("optimize_speed") { ++config("optimize_speed") { } ++config("xoptimize_speed") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2200,7 +2171,8 @@ config("optimize_speed") { + } + } + +-config("optimize_fuzzing") { ++config("optimize_fuzzing") { } ++config("xoptimize_fuzzing") { + cflags = [ "-O1" ] + common_optimize_on_cflags + ldflags = common_optimize_on_ldflags + visibility = [ ":default_optimization" ] +@@ -2319,7 +2291,8 @@ config("win_pdbaltpath") { + } + + # Full symbols. +-config("symbols") { ++config("symbols") { } ++config("xsymbols") { + if (is_win) { + if (is_clang) { + cflags = [ "/Z7" ] # Debug information in the .obj files. +@@ -2422,7 +2395,8 @@ config("symbols") { + # Minimal symbols. + # This config guarantees to hold symbol for stack trace which are shown to user + # when crash happens in unittests running on buildbot. +-config("minimal_symbols") { ++config("minimal_symbols") { } ++config("xminimal_symbols") { + if (is_win) { + # Functions, files, and line tables only. + cflags = [] +@@ -2481,7 +2455,8 @@ config("minimal_symbols") { + # This configuration contains function names only. That is, the compiler is + # told to not generate debug information and the linker then just puts function + # names in the final debug information. +-config("no_symbols") { ++config("no_symbols") { } ++config("xno_symbols") { + if (is_win) { + ldflags = [ "/DEBUG" ] + diff --git a/www-client/chromium/files/chromium-91-disable-nomerge.patch b/www-client/chromium/files/chromium-91-disable-nomerge.patch new file mode 100644 index 0000000..11dc66a --- /dev/null +++ b/www-client/chromium/files/chromium-91-disable-nomerge.patch @@ -0,0 +1,13 @@ +diff --git a/base/compiler_specific.h b/base/compiler_specific.h +index d662305dc..8e99145da 100644 +--- a/base/compiler_specific.h ++++ b/base/compiler_specific.h +@@ -341,7 +341,7 @@ inline constexpr bool AnalyzerAssumeTrue(bool arg) { + + // Use nomerge attribute to disable optimization of merging multiple same calls. + #if defined(__clang__) && __has_attribute(nomerge) +-#define NOMERGE [[clang::nomerge]] ++#define NOMERGE //[[clang::nomerge]] + #else + #define NOMERGE + #endif diff --git a/www-client/chromium/files/chromium-91-libyuv-aarch64.patch b/www-client/chromium/files/chromium-91-libyuv-aarch64.patch new file mode 100644 index 0000000..77b8f4c --- /dev/null +++ b/www-client/chromium/files/chromium-91-libyuv-aarch64.patch @@ -0,0 +1,91 @@ +diff --git a/third_party/libyuv/source/row_neon64.cc b/third_party/libyuv/source/row_neon64.cc +index 350c964..2aab413 100644 +--- a/third_party/libyuv/source/row_neon64.cc ++++ b/third_party/libyuv/source/row_neon64.cc +@@ -1835,7 +1835,7 @@ void ARGBToAB64Row_NEON(const uint8_t* src_argb, + : "+r"(src_argb), // %0 + "+r"(dst_ab64), // %1 + "+r"(width) // %2 +- : "m"(kShuffleARGBToABGR) // %3 ++ : "Q"(kShuffleARGBToABGR) // %3 + : "cc", "memory", "v0", "v1", "v2", "v3", "v4"); + } + +@@ -1859,7 +1859,7 @@ void AR64ToARGBRow_NEON(const uint16_t* src_ar64, + : "+r"(src_ar64), // %0 + "+r"(dst_argb), // %1 + "+r"(width) // %2 +- : "m"(kShuffleAR64ToARGB) // %3 ++ : "Q"(kShuffleAR64ToARGB) // %3 + : "cc", "memory", "v0", "v1", "v2", "v3", "v4"); + } + +@@ -1883,7 +1883,7 @@ void AB64ToARGBRow_NEON(const uint16_t* src_ab64, + : "+r"(src_ab64), // %0 + "+r"(dst_argb), // %1 + "+r"(width) // %2 +- : "m"(kShuffleAB64ToARGB) // %3 ++ : "Q"(kShuffleAB64ToARGB) // %3 + : "cc", "memory", "v0", "v1", "v2", "v3", "v4"); + } + +diff --git a/third_party/libyuv/source/scale_neon64.cc b/third_party/libyuv/source/scale_neon64.cc +index 8656fec..9f9636e 100644 +--- a/third_party/libyuv/source/scale_neon64.cc ++++ b/third_party/libyuv/source/scale_neon64.cc +@@ -601,8 +601,8 @@ void ScaleRowUp2_Bilinear_NEON(const uint8_t* src_ptr, + "umlal v4.8h, v1.8b, v31.8b \n" // 3*near+far (2, odd) + "umlal v5.8h, v0.8b, v31.8b \n" // 3*near+far (2, even) + +- "mov v0.8h, v4.8h \n" +- "mov v1.8h, v5.8h \n" ++ "mov v0.16b, v4.16b \n" ++ "mov v1.16b, v5.16b \n" + "mla v4.8h, v2.8h, v30.8h \n" // 9 3 3 1 (1, odd) + "mla v5.8h, v3.8h, v30.8h \n" // 9 3 3 1 (1, even) + "mla v2.8h, v0.8h, v30.8h \n" // 9 3 3 1 (2, odd) +@@ -642,7 +642,7 @@ void ScaleRowUp2_Linear_12_NEON(const uint16_t* src_ptr, + "ld1 {v1.8h}, [%1], #16 \n" // 12345678 (16b) + "prfm pldl1keep, [%0, 448] \n" // prefetch 7 lines ahead + +- "mov v2.8h, v0.8h \n" ++ "mov v2.16b, v0.16b \n" + "mla v0.8h, v1.8h, v31.8h \n" // 3*near+far (odd) + "mla v1.8h, v2.8h, v31.8h \n" // 3*near+far (even) + +@@ -679,7 +679,7 @@ void ScaleRowUp2_Bilinear_12_NEON(const uint16_t* src_ptr, + "ld1 {v3.8h}, [%2], #16 \n" // 12345678 (16b) + "prfm pldl1keep, [%0, 448] \n" // prefetch 7 lines ahead + +- "mov v0.8h, v2.8h \n" ++ "mov v0.16b, v2.16b \n" + "mla v2.8h, v3.8h, v31.8h \n" // 3*near+far (odd) + "mla v3.8h, v0.8h, v31.8h \n" // 3*near+far (even) + +@@ -687,12 +687,12 @@ void ScaleRowUp2_Bilinear_12_NEON(const uint16_t* src_ptr, + "ld1 {v5.8h}, [%3], #16 \n" // 12345678 (16b) + "prfm pldl1keep, [%1, 448] \n" // prefetch 7 lines ahead + +- "mov v0.8h, v4.8h \n" ++ "mov v0.16b, v4.16b \n" + "mla v4.8h, v5.8h, v31.8h \n" // 3*near+far (odd) + "mla v5.8h, v0.8h, v31.8h \n" // 3*near+far (even) + +- "mov v0.8h, v4.8h \n" +- "mov v1.8h, v5.8h \n" ++ "mov v0.16b, v4.16b \n" ++ "mov v1.16b, v5.16b \n" + "mla v4.8h, v2.8h, v31.8h \n" // 9 3 3 1 (1, odd) + "mla v5.8h, v3.8h, v31.8h \n" // 9 3 3 1 (1, even) + "mla v2.8h, v0.8h, v31.8h \n" // 9 3 3 1 (2, odd) +@@ -887,8 +887,8 @@ void ScaleUVRowUp2_Bilinear_NEON(const uint8_t* src_ptr, + "umlal v4.8h, v1.8b, v31.8b \n" // 3*near+far (2, odd) + "umlal v5.8h, v0.8b, v31.8b \n" // 3*near+far (2, even) + +- "mov v0.8h, v4.8h \n" +- "mov v1.8h, v5.8h \n" ++ "mov v0.16b, v4.16b \n" ++ "mov v1.16b, v5.16b \n" + "mla v4.8h, v2.8h, v30.8h \n" // 9 3 3 1 (1, odd) + "mla v5.8h, v3.8h, v30.8h \n" // 9 3 3 1 (1, even) + "mla v2.8h, v0.8h, v30.8h \n" // 9 3 3 1 (2, odd) diff --git a/www-client/chromium/files/chromium-92-ClassPropertyCaster-namespace.patch b/www-client/chromium/files/chromium-92-ClassPropertyCaster-namespace.patch new file mode 100644 index 0000000..08d7416 --- /dev/null +++ b/www-client/chromium/files/chromium-92-ClassPropertyCaster-namespace.patch @@ -0,0 +1,46 @@ +From 546b72d3b31e5d42e4d6cb783def2c89c977c5a6 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <stha09@googlemail.com> +Date: Fri, 7 May 2021 14:34:29 +0000 +Subject: [PATCH] GCC: drop anonymous namespace from ClassPropertyCaster +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Explicit template specialization is done for ui::ElementIdentifier +in another header. GCC fails to compile this with: + +../../ui/base/interaction/element_identifier.h:208:7: error: + explicit specialization of ‘template<class T> + class ui::{anonymous}::ClassPropertyCaster’ outside its + namespace must use a nested-name-specifier + +This is a known GCC bug (https://gcc.gnu.org/PR92598). +--- + ui/base/class_property.h | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/ui/base/class_property.h b/ui/base/class_property.h +index 4af52ae..25c00e7 100644 +--- a/ui/base/class_property.h ++++ b/ui/base/class_property.h +@@ -137,8 +137,6 @@ class COMPONENT_EXPORT(UI_BASE) PropertyHandler { + std::map<const void*, Value> prop_map_; + }; + +-namespace { +- + // No single new-style cast works for every conversion to/from int64_t, so we + // need this helper class. + template<typename T> +@@ -162,8 +160,6 @@ class ClassPropertyCaster<base::TimeDelta> { + } + }; + +-} // namespace +- + namespace subtle { + + class COMPONENT_EXPORT(UI_BASE) PropertyHelper { +-- +2.26.3 + diff --git a/www-client/chromium/files/chromium-92-base_atomic_include.patch b/www-client/chromium/files/chromium-92-base_atomic_include.patch new file mode 100644 index 0000000..e6faf77 --- /dev/null +++ b/www-client/chromium/files/chromium-92-base_atomic_include.patch @@ -0,0 +1,12 @@ +diff --git a/base/threading/platform_thread.cc b/base/threading/platform_thread.cc +index 3dc218163..f167af4ff 100644 +--- a/base/threading/platform_thread.cc ++++ b/base/threading/platform_thread.cc +@@ -4,6 +4,7 @@ + + #include "base/threading/platform_thread.h" + ++#include <atomic> + #include <memory> + + #include "base/feature_list.h" diff --git a/www-client/chromium/files/chromium-92-glibc-2.33.patch b/www-client/chromium/files/chromium-92-glibc-2.33.patch new file mode 100644 index 0000000..3b2ec6b --- /dev/null +++ b/www-client/chromium/files/chromium-92-glibc-2.33.patch @@ -0,0 +1,146 @@ +diff --git a/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc b/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc +index 05c39f0f5..3a9d6f359 100644 +--- a/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc ++++ b/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc +@@ -280,6 +280,18 @@ ResultExpr EvaluateSyscallImpl(int fs_denied_errno, + return RestrictKillTarget(current_pid, sysno); + } + ++#if defined(__NR_newfstatat) ++ if (sysno == __NR_newfstatat) { ++ return RewriteFstatatSIGSYS(); ++ } ++#endif ++ ++#if defined(__NR_fstatat64) ++ if (sysno == __NR_fstatat64) { ++ return RewriteFstatatSIGSYS(); ++ } ++#endif ++ + // memfd_create is considered a file system syscall which below will be denied + // with fs_denied_errno, we need memfd_create for Mojo shared memory channels. + if (sysno == __NR_memfd_create) { +diff --git a/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc b/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc +index 76eb32493..09aa3f0b1 100644 +--- a/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc ++++ b/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc +@@ -6,6 +6,8 @@ + + #include "sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h" + ++#include <errno.h> ++#include <fcntl.h> + #include <stddef.h> + #include <stdint.h> + #include <string.h> +@@ -355,6 +357,35 @@ intptr_t SIGSYSSchedHandler(const struct arch_seccomp_data& args, + return -ENOSYS; + } + ++intptr_t SIGSYSFstatatHandler(const struct arch_seccomp_data& args, ++ void* aux) { ++ switch (args.nr) { ++#if defined(__NR_newfstatat) ++ case __NR_newfstatat: ++#endif ++#if defined(__NR_fstatat64) ++ case __NR_fstatat64: ++#endif ++#if defined(__NR_newfstatat) || defined(__NR_fstatat64) ++ if (*reinterpret_cast<const char *>(args.args[1]) == '\0' ++ && args.args[3] == static_cast<uint64_t>(AT_EMPTY_PATH)) { ++ return sandbox::sys_fstat64(static_cast<int>(args.args[0]), ++ reinterpret_cast<struct stat64 *>(args.args[2])); ++ } else { ++ errno = EACCES; ++ return -1; ++ } ++ break; ++#endif ++ } ++ ++ CrashSIGSYS_Handler(args, aux); ++ ++ // Should never be reached. ++ RAW_CHECK(false); ++ return -ENOSYS; ++} ++ + bpf_dsl::ResultExpr CrashSIGSYS() { + return bpf_dsl::Trap(CrashSIGSYS_Handler, NULL); + } +@@ -387,6 +418,10 @@ bpf_dsl::ResultExpr RewriteSchedSIGSYS() { + return bpf_dsl::Trap(SIGSYSSchedHandler, NULL); + } + ++bpf_dsl::ResultExpr RewriteFstatatSIGSYS() { ++ return bpf_dsl::Trap(SIGSYSFstatatHandler, NULL); ++} ++ + void AllocateCrashKeys() { + #if !defined(OS_NACL_NONSFI) + if (seccomp_crash_key) +diff --git a/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h b/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h +index 7a958b93b..d0bfab74b 100644 +--- a/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h ++++ b/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h +@@ -62,6 +62,10 @@ SANDBOX_EXPORT intptr_t SIGSYSPtraceFailure(const arch_seccomp_data& args, + // sched_setparam(), sched_setscheduler() + SANDBOX_EXPORT intptr_t SIGSYSSchedHandler(const arch_seccomp_data& args, + void* aux); ++// If the fstatat syscall is actually a disguised fstat, calls the regular fstat ++// syscall, otherwise, crashes in the same way as CrashSIGSYS_Handler. ++SANDBOX_EXPORT intptr_t SIGSYSFstatatHandler(const struct arch_seccomp_data& args, ++ void* aux); + + // Variants of the above functions for use with bpf_dsl. + SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYS(); +@@ -72,6 +76,7 @@ SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYSKill(); + SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYSFutex(); + SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYSPtrace(); + SANDBOX_EXPORT bpf_dsl::ResultExpr RewriteSchedSIGSYS(); ++SANDBOX_EXPORT bpf_dsl::ResultExpr RewriteFstatatSIGSYS(); + + // Allocates a crash key so that Seccomp information can be recorded. + void AllocateCrashKeys(); +diff --git a/sandbox/linux/services/syscall_wrappers.cc b/sandbox/linux/services/syscall_wrappers.cc +index fcfd2aa12..5396b36da 100644 +--- a/sandbox/linux/services/syscall_wrappers.cc ++++ b/sandbox/linux/services/syscall_wrappers.cc +@@ -261,4 +261,13 @@ int sys_sigaction(int signum, + + #endif // defined(MEMORY_SANITIZER) + ++SANDBOX_EXPORT int sys_fstat64(int fd, struct stat64 *buf) ++{ ++#if defined(__NR_fstat64) ++ return syscall(__NR_fstat64, fd, buf); ++#else ++ return syscall(__NR_fstat, fd, buf); ++#endif ++} ++ + } // namespace sandbox +diff --git a/sandbox/linux/services/syscall_wrappers.h b/sandbox/linux/services/syscall_wrappers.h +index 1975bfbd8..ed7ee5a1c 100644 +--- a/sandbox/linux/services/syscall_wrappers.h ++++ b/sandbox/linux/services/syscall_wrappers.h +@@ -17,6 +17,7 @@ struct sock_fprog; + struct rlimit64; + struct cap_hdr; + struct cap_data; ++struct stat64; + + namespace sandbox { + +@@ -84,6 +85,9 @@ SANDBOX_EXPORT int sys_sigaction(int signum, + const struct sigaction* act, + struct sigaction* oldact); + ++// Recent glibc rewrites fstat to fstatat. ++SANDBOX_EXPORT int sys_fstat64(int fd, struct stat64 *buf); ++ + } // namespace sandbox + + #endif // SANDBOX_LINUX_SERVICES_SYSCALL_WRAPPERS_H_ diff --git a/www-client/chromium/files/chromium-92-platform_thread-include.patch b/www-client/chromium/files/chromium-92-platform_thread-include.patch new file mode 100644 index 0000000..881a2a0 --- /dev/null +++ b/www-client/chromium/files/chromium-92-platform_thread-include.patch @@ -0,0 +1,24 @@ +From 49c9ab14152b52edc9f0d8f1245039792f270315 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <stha09@googlemail.com> +Date: Fri, 7 May 2021 09:53:18 +0000 +Subject: [PATCH] IWYU: include atomic for std::atomic + +--- + base/threading/platform_thread.cc | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/base/threading/platform_thread.cc b/base/threading/platform_thread.cc +index 3dc2181..f167af4 100644 +--- a/base/threading/platform_thread.cc ++++ b/base/threading/platform_thread.cc +@@ -4,6 +4,7 @@ + + #include "base/threading/platform_thread.h" + ++#include <atomic> + #include <memory> + + #include "base/feature_list.h" +-- +2.26.3 + diff --git a/www-client/chromium/files/chromium-92-sql-cursor.patch b/www-client/chromium/files/chromium-92-sql-cursor.patch new file mode 100644 index 0000000..a4864ba --- /dev/null +++ b/www-client/chromium/files/chromium-92-sql-cursor.patch @@ -0,0 +1,231 @@ +From 80368f8ba7a8bab13440463a254888311efe3986 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <stha09@googlemail.com> +Date: Tue, 04 May 2021 15:00:19 +0000 +Subject: [PATCH] sql: make VirtualCursor standard layout type + +sql::recover::VirtualCursor needs to be a standard layout type, but +has members of type std::unique_ptr. However, std::unique_ptr is not +guaranteed to be standard layout. Compiling with clang combined with +gcc-11 libstdc++ fails because of this. Replace std::unique_ptr with +raw pointers. + +Bug: 1189788 +Change-Id: Ia6dc388cc5ef1c0f2afc75f8ca45b9f12687ca9c +--- + +diff --git a/sql/recover_module/btree.cc b/sql/recover_module/btree.cc +index 9ecaafe..839318a 100644 +--- a/sql/recover_module/btree.cc ++++ b/sql/recover_module/btree.cc +@@ -135,16 +135,25 @@ + "Move the destructor to the .cc file if it's non-trival"); + #endif // !DCHECK_IS_ON() + +-LeafPageDecoder::LeafPageDecoder(DatabasePageReader* db_reader) noexcept +- : page_id_(db_reader->page_id()), +- db_reader_(db_reader), +- cell_count_(ComputeCellCount(db_reader)), +- next_read_index_(0), +- last_record_size_(0) { ++void LeafPageDecoder::Initialize(DatabasePageReader* db_reader) { ++ DCHECK(db_reader); + DCHECK(IsOnValidPage(db_reader)); ++ page_id_ = db_reader->page_id(); ++ db_reader_ = db_reader; ++ cell_count_ = ComputeCellCount(db_reader); ++ next_read_index_ = 0; ++ last_record_size_ = 0; + DCHECK(DatabasePageReader::IsValidPageId(page_id_)); + } + ++void LeafPageDecoder::Reset() { ++ db_reader_ = nullptr; ++ page_id_ = 0; ++ cell_count_ = 0; ++ next_read_index_ = 0; ++ last_record_size_ = 0; ++} ++ + bool LeafPageDecoder::TryAdvance() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK(CanAdvance()); +diff --git a/sql/recover_module/btree.h b/sql/recover_module/btree.h +index d76d076..33114b0 100644 +--- a/sql/recover_module/btree.h ++++ b/sql/recover_module/btree.h +@@ -102,7 +102,7 @@ + // + // |db_reader| must have been used to read an inner page of a table B-tree. + // |db_reader| must outlive this instance. +- explicit LeafPageDecoder(DatabasePageReader* db_reader) noexcept; ++ explicit LeafPageDecoder() noexcept = default; + ~LeafPageDecoder() noexcept = default; + + LeafPageDecoder(const LeafPageDecoder&) = delete; +@@ -150,6 +150,15 @@ + // read as long as CanAdvance() returns true. + bool TryAdvance(); + ++ // Initialize with DatabasePageReader ++ void Initialize(DatabasePageReader* db_reader); ++ ++ // Reset internal DatabasePageReader ++ void Reset(); ++ ++ // True if DatabasePageReader is valid ++ bool IsValid() { return (db_reader_ != nullptr); } ++ + // True if the given reader may point to an inner page in a table B-tree. + // + // The last ReadPage() call on |db_reader| must have succeeded. +@@ -163,14 +172,14 @@ + static int ComputeCellCount(DatabasePageReader* db_reader); + + // The number of the B-tree page this reader is reading. +- const int64_t page_id_; ++ int64_t page_id_; + // Used to read the tree page. + // + // Raw pointer usage is acceptable because this instance's owner is expected + // to ensure that the DatabasePageReader outlives this. +- DatabasePageReader* const db_reader_; ++ DatabasePageReader* db_reader_; + // Caches the ComputeCellCount() value for this reader's page. +- const int cell_count_ = ComputeCellCount(db_reader_); ++ int cell_count_; + + // The reader's cursor state. + // +diff --git a/sql/recover_module/cursor.cc b/sql/recover_module/cursor.cc +index 0029ff9..42548bc 100644 +--- a/sql/recover_module/cursor.cc ++++ b/sql/recover_module/cursor.cc +@@ -26,7 +26,7 @@ + int VirtualCursor::First() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + inner_decoders_.clear(); +- leaf_decoder_ = nullptr; ++ leaf_decoder_.Reset(); + + AppendPageDecoder(table_->root_page_id()); + return Next(); +@@ -36,18 +36,18 @@ + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + record_reader_.Reset(); + +- while (!inner_decoders_.empty() || leaf_decoder_.get()) { +- if (leaf_decoder_.get()) { +- if (!leaf_decoder_->CanAdvance()) { ++ while (!inner_decoders_.empty() || leaf_decoder_.IsValid()) { ++ if (leaf_decoder_.IsValid()) { ++ if (!leaf_decoder_.CanAdvance()) { + // The leaf has been exhausted. Remove it from the DFS stack. +- leaf_decoder_ = nullptr; ++ leaf_decoder_.Reset(); + continue; + } +- if (!leaf_decoder_->TryAdvance()) ++ if (!leaf_decoder_.TryAdvance()) + continue; + +- if (!payload_reader_.Initialize(leaf_decoder_->last_record_size(), +- leaf_decoder_->last_record_offset())) { ++ if (!payload_reader_.Initialize(leaf_decoder_.last_record_size(), ++ leaf_decoder_.last_record_offset())) { + continue; + } + if (!record_reader_.Initialize()) +@@ -99,13 +99,13 @@ + int64_t VirtualCursor::RowId() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK(record_reader_.IsInitialized()); +- DCHECK(leaf_decoder_.get()); +- return leaf_decoder_->last_record_rowid(); ++ DCHECK(leaf_decoder_.IsValid()); ++ return leaf_decoder_.last_record_rowid(); + } + + void VirtualCursor::AppendPageDecoder(int page_id) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); +- DCHECK(leaf_decoder_.get() == nullptr) ++ DCHECK(!leaf_decoder_.IsValid()) + << __func__ + << " must only be called when the current path has no leaf decoder"; + +@@ -113,7 +113,7 @@ + return; + + if (LeafPageDecoder::IsOnValidPage(&db_reader_)) { +- leaf_decoder_ = std::make_unique<LeafPageDecoder>(&db_reader_); ++ leaf_decoder_.Initialize(&db_reader_); + return; + } + +diff --git a/sql/recover_module/cursor.h b/sql/recover_module/cursor.h +index afcd690..b15c31d 100644 +--- a/sql/recover_module/cursor.h ++++ b/sql/recover_module/cursor.h +@@ -129,7 +129,7 @@ + std::vector<std::unique_ptr<InnerPageDecoder>> inner_decoders_; + + // Decodes the leaf page containing records. +- std::unique_ptr<LeafPageDecoder> leaf_decoder_; ++ LeafPageDecoder leaf_decoder_; + + SEQUENCE_CHECKER(sequence_checker_); + }; +diff --git a/sql/recover_module/pager.cc b/sql/recover_module/pager.cc +index 58e75de..5fe9620 100644 +--- a/sql/recover_module/pager.cc ++++ b/sql/recover_module/pager.cc +@@ -23,8 +23,7 @@ + "ints are not appropriate for representing page IDs"); + + DatabasePageReader::DatabasePageReader(VirtualTable* table) +- : page_data_(std::make_unique<uint8_t[]>(table->page_size())), +- table_(table) { ++ : page_data_(), table_(table) { + DCHECK(table != nullptr); + DCHECK(IsValidPageSize(table->page_size())); + } +@@ -57,8 +56,8 @@ + std::numeric_limits<int64_t>::max(), + "The |read_offset| computation above may overflow"); + +- int sqlite_status = +- RawRead(sqlite_file, read_size, read_offset, page_data_.get()); ++ int sqlite_status = RawRead(sqlite_file, read_size, read_offset, ++ const_cast<uint8_t*>(page_data_.data())); + + // |page_id_| needs to be set to kInvalidPageId if the read failed. + // Otherwise, future ReadPage() calls with the previous |page_id_| value +diff --git a/sql/recover_module/pager.h b/sql/recover_module/pager.h +index 0e388ddc..99314e3 100644 +--- a/sql/recover_module/pager.h ++++ b/sql/recover_module/pager.h +@@ -5,6 +5,7 @@ + #ifndef SQL_RECOVER_MODULE_PAGER_H_ + #define SQL_RECOVER_MODULE_PAGER_H_ + ++#include <array> + #include <cstdint> + #include <memory> + +@@ -70,7 +71,7 @@ + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK_NE(page_id_, kInvalidPageId) + << "Successful ReadPage() required before accessing pager state"; +- return page_data_.get(); ++ return page_data_.data(); + } + + // The number of bytes in the page read by the last ReadPage() call. +@@ -137,7 +138,7 @@ + int page_id_ = kInvalidPageId; + // Stores the bytes of the last page successfully read by ReadPage(). + // The content is undefined if the last call to ReadPage() did not succeed. +- const std::unique_ptr<uint8_t[]> page_data_; ++ const std::array<uint8_t, kMaxPageSize> page_data_; + // Raw pointer usage is acceptable because this instance's owner is expected + // to ensure that the VirtualTable outlives this. + VirtualTable* const table_; diff --git a/www-client/chromium/files/chromium-93-AXPropertyNode-private.patch b/www-client/chromium/files/chromium-93-AXPropertyNode-private.patch new file mode 100644 index 0000000..f184af6 --- /dev/null +++ b/www-client/chromium/files/chromium-93-AXPropertyNode-private.patch @@ -0,0 +1,43 @@ +From 0cdb42df76598037785ca33eb66bdc9ac2c16fd9 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <stha09@googlemail.com> +Date: Sat, 5 Jun 2021 11:16:29 +0000 +Subject: [PATCH] libstdc++: make constructors public in AXPropertyNode + +Making std::allocator<AXPropertyNode> friend of AXPropertyNode is +useless, because std::allocator is free to delegate the task of +construction to a free function or class which is not friend of +AXPropertyNode. libstdc++ uses __gnu_cxx::new_allocator<T> for +construction and fails if constructors of AXPropertyNode are +private. +--- + ui/accessibility/platform/inspect/ax_property_node.h | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +diff --git a/ui/accessibility/platform/inspect/ax_property_node.h b/ui/accessibility/platform/inspect/ax_property_node.h +index 35b8309..78bafa5 100644 +--- a/ui/accessibility/platform/inspect/ax_property_node.h ++++ b/ui/accessibility/platform/inspect/ax_property_node.h +@@ -93,7 +93,6 @@ class AX_EXPORT AXPropertyNode final { + // Returns a tree-like string representation of the node. + std::string ToTreeString(const std::string& indent = "") const; + +- private: + using iterator = std::string::const_iterator; + + explicit AXPropertyNode(iterator key_begin, +@@ -105,11 +104,10 @@ class AX_EXPORT AXPropertyNode final { + iterator value_begin, + iterator value_end); + ++ private: + // Builds a property node struct for a string of NAME(ARG1, ..., ARGN) format, + // where each ARG is a scalar value or a string of the same format. + static iterator Parse(AXPropertyNode* node, iterator begin, iterator end); +- +- friend class std::allocator<AXPropertyNode>; + }; + + } // namespace ui +-- +2.31.1 + diff --git a/www-client/chromium/files/chromium-93-EnumTable-crash.patch b/www-client/chromium/files/chromium-93-EnumTable-crash.patch new file mode 100644 index 0000000..a5c2def --- /dev/null +++ b/www-client/chromium/files/chromium-93-EnumTable-crash.patch @@ -0,0 +1,79 @@ +diff --git a/components/cast_channel/enum_table.h b/components/cast_channel/enum_table.h +index a63ae86..83ada65 100644 +--- a/components/cast_channel/enum_table.h ++++ b/components/cast_channel/enum_table.h +@@ -8,6 +8,7 @@ + #include <cstdint> + #include <cstring> + #include <ostream> ++#include <vector> + + #include "base/check_op.h" + #include "base/macros.h" +@@ -213,7 +214,7 @@ class + + template <typename E> + friend class EnumTable; +- DISALLOW_COPY_AND_ASSIGN(GenericEnumTableEntry); ++ DISALLOW_ASSIGN(GenericEnumTableEntry); + }; + + // Yes, these constructors really needs to be inlined. Even though they look +@@ -251,8 +252,7 @@ class EnumTable { + // Constructor for regular entries. + constexpr Entry(E value, base::StringPiece str) + : GenericEnumTableEntry(static_cast<int32_t>(value), str) {} +- +- DISALLOW_COPY_AND_ASSIGN(Entry); ++ DISALLOW_ASSIGN(Entry); + }; + + static_assert(sizeof(E) <= sizeof(int32_t), +@@ -307,15 +307,14 @@ class EnumTable { + if (is_sorted_) { + const std::size_t index = static_cast<std::size_t>(value); + if (ANALYZER_ASSUME_TRUE(index < data_.size())) { +- const auto& entry = data_.begin()[index]; ++ const auto& entry = data_[index]; + if (ANALYZER_ASSUME_TRUE(entry.has_str())) + return entry.str(); + } + return absl::nullopt; + } + return GenericEnumTableEntry::FindByValue( +- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()), +- data_.size(), static_cast<int32_t>(value)); ++ &data_[0], data_.size(), static_cast<int32_t>(value)); + } + + // This overload of GetString is designed for cases where the argument is a +@@ -343,8 +342,7 @@ class EnumTable { + // enum value directly. + absl::optional<E> GetEnum(base::StringPiece str) const { + auto* entry = GenericEnumTableEntry::FindByString( +- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()), +- data_.size(), str); ++ &data_[0], data_.size(), str); + return entry ? static_cast<E>(entry->value) : absl::optional<E>(); + } + +@@ -359,7 +357,7 @@ class EnumTable { + // Align the data on a cache line boundary. + alignas(64) + #endif +- std::initializer_list<Entry> data_; ++ const std::vector<Entry> data_; + bool is_sorted_; + + constexpr EnumTable(std::initializer_list<Entry> data, bool is_sorted) +@@ -371,8 +369,8 @@ class EnumTable { + + for (std::size_t i = 0; i < data.size(); i++) { + for (std::size_t j = i + 1; j < data.size(); j++) { +- const Entry& ei = data.begin()[i]; +- const Entry& ej = data.begin()[j]; ++ const Entry& ei = data[i]; ++ const Entry& ej = data[j]; + DCHECK(ei.value != ej.value) + << "Found duplicate enum values at indices " << i << " and " << j; + DCHECK(!(ei.has_str() && ej.has_str() && ei.str() == ej.str())) diff --git a/www-client/chromium/files/chromium-93-InkDropHost-crash.patch b/www-client/chromium/files/chromium-93-InkDropHost-crash.patch new file mode 100644 index 0000000..54d16db --- /dev/null +++ b/www-client/chromium/files/chromium-93-InkDropHost-crash.patch @@ -0,0 +1,25 @@ +diff --git a/ui/views/animation/ink_drop_host_view.h b/ui/views/animation/ink_drop_host_view.h +index bd0975b..e5df288 100644 +--- a/ui/views/animation/ink_drop_host_view.h ++++ b/ui/views/animation/ink_drop_host_view.h +@@ -238,6 +238,11 @@ class VIEWS_EXPORT InkDropHost { + // Used to observe View and inform the InkDrop of host-transform changes. + ViewLayerTransformObserver host_view_transform_observer_; + ++ // Declared before |ink_drop_|, because InkDropImpl may call ++ // RemoveInkDropLayer on partly destructed InkDropHost. In ++ // that case |ink_drop_mask_| must be still valid. ++ std::unique_ptr<views::InkDropMask> ink_drop_mask_; ++ + // Should not be accessed directly. Use GetInkDrop() instead. + std::unique_ptr<InkDrop> ink_drop_; + +@@ -261,8 +266,6 @@ class VIEWS_EXPORT InkDropHost { + int ink_drop_small_corner_radius_ = 2; + int ink_drop_large_corner_radius_ = 4; + +- std::unique_ptr<views::InkDropMask> ink_drop_mask_; +- + base::RepeatingCallback<std::unique_ptr<InkDrop>()> create_ink_drop_callback_; + base::RepeatingCallback<std::unique_ptr<InkDropRipple>()> + create_ink_drop_ripple_callback_; diff --git a/www-client/chromium/files/chromium-93-cart-include.patch b/www-client/chromium/files/chromium-93-cart-include.patch new file mode 100644 index 0000000..82ca038 --- /dev/null +++ b/www-client/chromium/files/chromium-93-cart-include.patch @@ -0,0 +1,13 @@ +diff --git a/chrome/browser/cart/cart_db.h b/chrome/browser/cart/cart_db.h +index 82b2a56c3..0f8472f3e 100644 +--- a/chrome/browser/cart/cart_db.h ++++ b/chrome/browser/cart/cart_db.h +@@ -5,6 +5,8 @@ + #ifndef CHROME_BROWSER_CART_CART_DB_H_ + #define CHROME_BROWSER_CART_CART_DB_H_ + ++#include <vector> ++ + #include "base/callback_helpers.h" + #include "base/memory/weak_ptr.h" + diff --git a/www-client/chromium/files/chromium-93-devtools-msg-dispatcher-include.patch b/www-client/chromium/files/chromium-93-devtools-msg-dispatcher-include.patch new file mode 100644 index 0000000..ddb94cf --- /dev/null +++ b/www-client/chromium/files/chromium-93-devtools-msg-dispatcher-include.patch @@ -0,0 +1,12 @@ +diff --git a/chrome/browser/devtools/devtools_embedder_message_dispatcher.h b/chrome/browser/devtools/devtools_embedder_message_dispatcher.h +index 12f8500b7..4007112f3 100644 +--- a/chrome/browser/devtools/devtools_embedder_message_dispatcher.h ++++ b/chrome/browser/devtools/devtools_embedder_message_dispatcher.h +@@ -8,6 +8,7 @@ + #include <map> + #include <memory> + #include <string> ++#include <vector> + + #include "base/callback.h" + #include "ui/gfx/geometry/insets.h" diff --git a/www-client/chromium/files/chromium-93-dnsprefetch-include.patch b/www-client/chromium/files/chromium-93-dnsprefetch-include.patch new file mode 100644 index 0000000..c8d63b6 --- /dev/null +++ b/www-client/chromium/files/chromium-93-dnsprefetch-include.patch @@ -0,0 +1,12 @@ +diff --git a/components/network_hints/renderer/renderer_dns_prefetch.h b/components/network_hints/renderer/renderer_dns_prefetch.h +index 87f1bb1bb..3ead6b3a6 100644 +--- a/components/network_hints/renderer/renderer_dns_prefetch.h ++++ b/components/network_hints/renderer/renderer_dns_prefetch.h +@@ -25,6 +25,7 @@ + + #include <map> + #include <string> ++#include <vector> + + #include "base/callback.h" + #include "base/macros.h" diff --git a/www-client/chromium/files/chromium-93-ext-autoconfirm-include.patch b/www-client/chromium/files/chromium-93-ext-autoconfirm-include.patch new file mode 100644 index 0000000..6bf4fcf --- /dev/null +++ b/www-client/chromium/files/chromium-93-ext-autoconfirm-include.patch @@ -0,0 +1,12 @@ +diff --git a/extensions/browser/extension_dialog_auto_confirm.cc b/extensions/browser/extension_dialog_auto_confirm.cc +index adb4ac3f9..be8b161bc 100644 +--- a/extensions/browser/extension_dialog_auto_confirm.cc ++++ b/extensions/browser/extension_dialog_auto_confirm.cc +@@ -4,6 +4,7 @@ + + #include "extensions/browser/extension_dialog_auto_confirm.h" + ++#include <cstring> + #include <utility> + + #include "base/check.h" diff --git a/www-client/chromium/files/chromium-93-gpu-ipc-include.patch b/www-client/chromium/files/chromium-93-gpu-ipc-include.patch new file mode 100644 index 0000000..24793fa --- /dev/null +++ b/www-client/chromium/files/chromium-93-gpu-ipc-include.patch @@ -0,0 +1,13 @@ +diff --git a/gpu/ipc/gpu_task_scheduler_helper.h b/gpu/ipc/gpu_task_scheduler_helper.h +index 4315277b2..01c9c8ed9 100644 +--- a/gpu/ipc/gpu_task_scheduler_helper.h ++++ b/gpu/ipc/gpu_task_scheduler_helper.h +@@ -5,6 +5,8 @@ + #ifndef GPU_IPC_GPU_TASK_SCHEDULER_HELPER_H_ + #define GPU_IPC_GPU_TASK_SCHEDULER_HELPER_H_ + ++#include <vector> ++ + #include "base/callback.h" + #include "gpu/command_buffer/common/sync_token.h" + #include "gpu/command_buffer/service/sequence_id.h" diff --git a/www-client/chromium/files/chromium-93-hid-chooser-include.patch b/www-client/chromium/files/chromium-93-hid-chooser-include.patch new file mode 100644 index 0000000..7ae8938 --- /dev/null +++ b/www-client/chromium/files/chromium-93-hid-chooser-include.patch @@ -0,0 +1,13 @@ +diff --git a/content/public/browser/hid_chooser.h b/content/public/browser/hid_chooser.h +index d40cf59be..b2b9613cf 100644 +--- a/content/public/browser/hid_chooser.h ++++ b/content/public/browser/hid_chooser.h +@@ -5,6 +5,8 @@ + #ifndef CONTENT_PUBLIC_BROWSER_HID_CHOOSER_H_ + #define CONTENT_PUBLIC_BROWSER_HID_CHOOSER_H_ + ++#include <vector> ++ + #include "base/callback_forward.h" + #include "base/macros.h" + #include "content/common/content_export.h" diff --git a/www-client/chromium/files/chromium-93-lang-prefs-include.patch b/www-client/chromium/files/chromium-93-lang-prefs-include.patch new file mode 100644 index 0000000..7b1829d --- /dev/null +++ b/www-client/chromium/files/chromium-93-lang-prefs-include.patch @@ -0,0 +1,12 @@ +diff --git a/components/language/core/browser/language_prefs.h b/components/language/core/browser/language_prefs.h +index 28c89546c..617d1ed91 100644 +--- a/components/language/core/browser/language_prefs.h ++++ b/components/language/core/browser/language_prefs.h +@@ -7,6 +7,7 @@ + + #include <set> + #include <string> ++#include <vector> + + #include "base/macros.h" + #include "base/strings/string_piece.h" diff --git a/www-client/chromium/files/chromium-93-login-detection-include.patch b/www-client/chromium/files/chromium-93-login-detection-include.patch new file mode 100644 index 0000000..e2a6aa3 --- /dev/null +++ b/www-client/chromium/files/chromium-93-login-detection-include.patch @@ -0,0 +1,12 @@ +diff --git a/chrome/browser/login_detection/oauth_login_detector.h b/chrome/browser/login_detection/oauth_login_detector.h +index 6844529c7..c0c3b185f 100644 +--- a/chrome/browser/login_detection/oauth_login_detector.h ++++ b/chrome/browser/login_detection/oauth_login_detector.h +@@ -7,6 +7,7 @@ + + #include <set> + #include <string> ++#include <vector> + + #include "third_party/abseil-cpp/absl/types/optional.h" + #include "url/gurl.h" diff --git a/www-client/chromium/files/chromium-93-media-ffmpeg-type.patch b/www-client/chromium/files/chromium-93-media-ffmpeg-type.patch new file mode 100644 index 0000000..ca8b98f --- /dev/null +++ b/www-client/chromium/files/chromium-93-media-ffmpeg-type.patch @@ -0,0 +1,36 @@ +diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc +index ac4713b07..492a9a37d 100644 +--- a/media/filters/ffmpeg_demuxer.cc ++++ b/media/filters/ffmpeg_demuxer.cc +@@ -427,11 +427,11 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) { + scoped_refptr<DecoderBuffer> buffer; + + if (type() == DemuxerStream::TEXT) { +- size_t id_size = 0; ++ int id_size = 0; + uint8_t* id_data = av_packet_get_side_data( + packet.get(), AV_PKT_DATA_WEBVTT_IDENTIFIER, &id_size); + +- size_t settings_size = 0; ++ int settings_size = 0; + uint8_t* settings_data = av_packet_get_side_data( + packet.get(), AV_PKT_DATA_WEBVTT_SETTINGS, &settings_size); + +@@ -443,7 +443,7 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) { + buffer = DecoderBuffer::CopyFrom(packet->data, packet->size, + side_data.data(), side_data.size()); + } else { +- size_t side_data_size = 0; ++ int side_data_size = 0; + uint8_t* side_data = av_packet_get_side_data( + packet.get(), AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, &side_data_size); + +@@ -504,7 +504,7 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) { + packet->size - data_offset); + } + +- size_t skip_samples_size = 0; ++ int skip_samples_size = 0; + const uint32_t* skip_samples_ptr = + reinterpret_cast<const uint32_t*>(av_packet_get_side_data( + packet.get(), AV_PKT_DATA_SKIP_SAMPLES, &skip_samples_size)); diff --git a/www-client/chromium/files/chromium-93-media-history-include.patch b/www-client/chromium/files/chromium-93-media-history-include.patch new file mode 100644 index 0000000..4253fd7 --- /dev/null +++ b/www-client/chromium/files/chromium-93-media-history-include.patch @@ -0,0 +1,12 @@ +diff --git a/chrome/browser/media/history/media_history_origin_table.h b/chrome/browser/media/history/media_history_origin_table.h +index c28d5e3a8..32e1757de 100644 +--- a/chrome/browser/media/history/media_history_origin_table.h ++++ b/chrome/browser/media/history/media_history_origin_table.h +@@ -6,6 +6,7 @@ + #define CHROME_BROWSER_MEDIA_HISTORY_MEDIA_HISTORY_ORIGIN_TABLE_H_ + + #include <string> ++#include <vector> + + #include "base/updateable_sequenced_task_runner.h" + #include "chrome/browser/media/history/media_history_table_base.h" diff --git a/www-client/chromium/files/chromium-93-net-http-include.patch b/www-client/chromium/files/chromium-93-net-http-include.patch new file mode 100644 index 0000000..fe64bb7 --- /dev/null +++ b/www-client/chromium/files/chromium-93-net-http-include.patch @@ -0,0 +1,12 @@ +diff --git a/net/http/http_basic_state.h b/net/http/http_basic_state.h +index 5fd1ee514..06c46df6b 100644 +--- a/net/http/http_basic_state.h ++++ b/net/http/http_basic_state.h +@@ -10,6 +10,7 @@ + + #include <memory> + #include <string> ++#include <vector> + + #include "base/macros.h" + #include "base/memory/ref_counted.h" diff --git a/www-client/chromium/files/chromium-93-payment-include.patch b/www-client/chromium/files/chromium-93-payment-include.patch new file mode 100644 index 0000000..588931f --- /dev/null +++ b/www-client/chromium/files/chromium-93-payment-include.patch @@ -0,0 +1,12 @@ +diff --git a/components/payments/core/journey_logger.h b/components/payments/core/journey_logger.h +index 026b38e7e..e63673de3 100644 +--- a/components/payments/core/journey_logger.h ++++ b/components/payments/core/journey_logger.h +@@ -6,6 +6,7 @@ + #define COMPONENTS_PAYMENTS_CORE_JOURNEY_LOGGER_H_ + + #include <string> ++#include <vector> + + #include "base/macros.h" + #include "base/time/time.h" diff --git a/www-client/chromium/files/chromium-93-pdfium-include.patch b/www-client/chromium/files/chromium-93-pdfium-include.patch new file mode 100644 index 0000000..2f601ed --- /dev/null +++ b/www-client/chromium/files/chromium-93-pdfium-include.patch @@ -0,0 +1,12 @@ +diff --git a/third_party/pdfium/core/fxcodec/jpx/cjpx_decoder.cpp b/third_party/pdfium/core/fxcodec/jpx/cjpx_decoder.cpp +index c66985a7f..83a9ba132 100644 +--- a/third_party/pdfium/core/fxcodec/jpx/cjpx_decoder.cpp ++++ b/third_party/pdfium/core/fxcodec/jpx/cjpx_decoder.cpp +@@ -6,6 +6,7 @@ + + #include "core/fxcodec/jpx/cjpx_decoder.h" + ++#include <cstring> + #include <algorithm> + #include <limits> + #include <utility> diff --git a/www-client/chromium/files/chromium-93-phishing-classifier-include.patch b/www-client/chromium/files/chromium-93-phishing-classifier-include.patch new file mode 100644 index 0000000..64a95fe --- /dev/null +++ b/www-client/chromium/files/chromium-93-phishing-classifier-include.patch @@ -0,0 +1,12 @@ +diff --git a/components/safe_browsing/content/renderer/phishing_classifier/phishing_classifier.h b/components/safe_browsing/content/renderer/phishing_classifier/phishing_classifier.h +index e86d14e8d..b3e74406c 100644 +--- a/components/safe_browsing/content/renderer/phishing_classifier/phishing_classifier.h ++++ b/components/safe_browsing/content/renderer/phishing_classifier/phishing_classifier.h +@@ -23,6 +23,7 @@ + #include <memory> + #include <set> + #include <string> ++#include <vector> + + #include "base/callback.h" + #include "base/macros.h" diff --git a/www-client/chromium/files/chromium-93-pwdmgr-include-r1.patch b/www-client/chromium/files/chromium-93-pwdmgr-include-r1.patch new file mode 100644 index 0000000..6721b8b --- /dev/null +++ b/www-client/chromium/files/chromium-93-pwdmgr-include-r1.patch @@ -0,0 +1,12 @@ +diff --git a/components/password_manager/core/browser/hash_password_manager.h b/components/password_manager/core/browser/hash_password_manager.h +index c762c5a8c..85e656edc 100644 +--- a/components/password_manager/core/browser/hash_password_manager.h ++++ b/components/password_manager/core/browser/hash_password_manager.h +@@ -6,6 +6,7 @@ + #define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_HASH_PASSWORD_MANAGER_H_ + + #include <string> ++#include <vector> + + #include "base/callback.h" + #include "base/callback_list.h" diff --git a/www-client/chromium/files/chromium-93-pwdmgr-include.patch b/www-client/chromium/files/chromium-93-pwdmgr-include.patch new file mode 100644 index 0000000..041be9f --- /dev/null +++ b/www-client/chromium/files/chromium-93-pwdmgr-include.patch @@ -0,0 +1,25 @@ +diff --git a/components/password_manager/core/browser/field_info_table.h b/components/password_manager/core/browser/field_info_table.h +index fb6d84005..e4c88aab3 100644 +--- a/components/password_manager/core/browser/field_info_table.h ++++ b/components/password_manager/core/browser/field_info_table.h +@@ -5,6 +5,8 @@ + #ifndef COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_FIELD_INFO_TABLE_H_ + #define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_FIELD_INFO_TABLE_H_ + ++#include <vector> ++ + #include "base/macros.h" + #include "base/time/time.h" + #include "components/autofill/core/browser/field_types.h" +diff --git a/components/password_manager/core/browser/hash_password_manager.h b/components/password_manager/core/browser/hash_password_manager.h +index c762c5a8c..85e656edc 100644 +--- a/components/password_manager/core/browser/hash_password_manager.h ++++ b/components/password_manager/core/browser/hash_password_manager.h +@@ -6,6 +6,7 @@ + #define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_HASH_PASSWORD_MANAGER_H_ + + #include <string> ++#include <vector> + + #include "base/callback.h" + #include "base/callback_list.h" diff --git a/www-client/chromium/files/chromium-93-quiche-logging-include.patch b/www-client/chromium/files/chromium-93-quiche-logging-include.patch new file mode 100644 index 0000000..405a6ae --- /dev/null +++ b/www-client/chromium/files/chromium-93-quiche-logging-include.patch @@ -0,0 +1,13 @@ +diff --git a/net/third_party/quiche/overrides/quiche_platform_impl/quiche_logging_impl.h b/net/third_party/quiche/overrides/quiche_platform_impl/quiche_logging_impl.h +index 8ff5e27f8..326ed9307 100644 +--- a/net/third_party/quiche/overrides/quiche_platform_impl/quiche_logging_impl.h ++++ b/net/third_party/quiche/overrides/quiche_platform_impl/quiche_logging_impl.h +@@ -5,6 +5,8 @@ + #ifndef NET_THIRD_PARTY_QUICHE_OVERRIDES_QUICHE_PLATFORM_IMPL_QUICHE_LOGGING_IMPL_H_ + #define NET_THIRD_PARTY_QUICHE_OVERRIDES_QUICHE_PLATFORM_IMPL_QUICHE_LOGGING_IMPL_H_ + ++#include <vector> ++ + #include "base/check_op.h" + #include "base/logging.h" + #include "base/notreached.h" diff --git a/www-client/chromium/files/chromium-93-site_settings_helper-initialzation.patch b/www-client/chromium/files/chromium-93-site_settings_helper-initialzation.patch new file mode 100644 index 0000000..6551b31 --- /dev/null +++ b/www-client/chromium/files/chromium-93-site_settings_helper-initialzation.patch @@ -0,0 +1,37 @@ +From 7ef6d4ad7ddc7f0c4124bc538c4bd3a8efdd37cd Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <stha09@googlemail.com> +Date: Fri, 4 Jun 2021 06:52:30 +0000 +Subject: [PATCH] GCC: fix brace-initialization with NoDestructor + +GCC requires brace-initialization for NoDestructor and +std::vector<T> for base_types. Therefore change to double +brace-initialzation. +--- + chrome/browser/ui/webui/settings/site_settings_helper.cc | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/browser/ui/webui/settings/site_settings_helper.cc +index 7831684..4478800 100644 +--- a/chrome/browser/ui/webui/settings/site_settings_helper.cc ++++ b/chrome/browser/ui/webui/settings/site_settings_helper.cc +@@ -410,7 +410,7 @@ const std::vector<ContentSettingsType>& GetVisiblePermissionCategories() { + // First build the list of permissions that will be shown regardless of + // `origin`. Some categories such as COOKIES store their data in a custom way, + // so are not included here. +- static base::NoDestructor<std::vector<ContentSettingsType>> base_types({ ++ static base::NoDestructor<std::vector<ContentSettingsType>> base_types{{ + ContentSettingsType::AR, ContentSettingsType::AUTOMATIC_DOWNLOADS, + ContentSettingsType::BACKGROUND_SYNC, + ContentSettingsType::CLIPBOARD_READ_WRITE, +@@ -429,7 +429,7 @@ const std::vector<ContentSettingsType>& GetVisiblePermissionCategories() { + ContentSettingsType::SENSORS, ContentSettingsType::SERIAL_GUARD, + ContentSettingsType::SOUND, ContentSettingsType::USB_GUARD, + ContentSettingsType::VR, +- }); ++ }}; + static bool initialized = false; + if (!initialized) { + // The permission categories in this block are only shown when running with +-- +2.31.1 + diff --git a/www-client/chromium/files/chromium-93-sms-fetcher-include.patch b/www-client/chromium/files/chromium-93-sms-fetcher-include.patch new file mode 100644 index 0000000..91d92de --- /dev/null +++ b/www-client/chromium/files/chromium-93-sms-fetcher-include.patch @@ -0,0 +1,24 @@ +diff --git a/chrome/browser/sharing/sms/sms_remote_fetcher.h b/chrome/browser/sharing/sms/sms_remote_fetcher.h +index 2cbe6acdd..678c1b2e5 100644 +--- a/chrome/browser/sharing/sms/sms_remote_fetcher.h ++++ b/chrome/browser/sharing/sms/sms_remote_fetcher.h +@@ -6,6 +6,7 @@ + #define CHROME_BROWSER_SHARING_SMS_SMS_REMOTE_FETCHER_H_ + + #include <string> ++#include <vector> + + #include "base/callback.h" + #include "third_party/abseil-cpp/absl/types/optional.h" +diff --git a/content/public/browser/sms_fetcher.h b/content/public/browser/sms_fetcher.h +index 13f683243..983d81891 100644 +--- a/content/public/browser/sms_fetcher.h ++++ b/content/public/browser/sms_fetcher.h +@@ -6,6 +6,7 @@ + #define CONTENT_PUBLIC_BROWSER_SMS_FETCHER_H_ + + #include <string> ++#include <vector> + + #include "base/observer_list_types.h" + #include "content/common/content_export.h" diff --git a/www-client/chromium/files/chromium-93-sql-virtual-cursor.patch b/www-client/chromium/files/chromium-93-sql-virtual-cursor.patch new file mode 100644 index 0000000..a4864ba --- /dev/null +++ b/www-client/chromium/files/chromium-93-sql-virtual-cursor.patch @@ -0,0 +1,231 @@ +From 80368f8ba7a8bab13440463a254888311efe3986 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <stha09@googlemail.com> +Date: Tue, 04 May 2021 15:00:19 +0000 +Subject: [PATCH] sql: make VirtualCursor standard layout type + +sql::recover::VirtualCursor needs to be a standard layout type, but +has members of type std::unique_ptr. However, std::unique_ptr is not +guaranteed to be standard layout. Compiling with clang combined with +gcc-11 libstdc++ fails because of this. Replace std::unique_ptr with +raw pointers. + +Bug: 1189788 +Change-Id: Ia6dc388cc5ef1c0f2afc75f8ca45b9f12687ca9c +--- + +diff --git a/sql/recover_module/btree.cc b/sql/recover_module/btree.cc +index 9ecaafe..839318a 100644 +--- a/sql/recover_module/btree.cc ++++ b/sql/recover_module/btree.cc +@@ -135,16 +135,25 @@ + "Move the destructor to the .cc file if it's non-trival"); + #endif // !DCHECK_IS_ON() + +-LeafPageDecoder::LeafPageDecoder(DatabasePageReader* db_reader) noexcept +- : page_id_(db_reader->page_id()), +- db_reader_(db_reader), +- cell_count_(ComputeCellCount(db_reader)), +- next_read_index_(0), +- last_record_size_(0) { ++void LeafPageDecoder::Initialize(DatabasePageReader* db_reader) { ++ DCHECK(db_reader); + DCHECK(IsOnValidPage(db_reader)); ++ page_id_ = db_reader->page_id(); ++ db_reader_ = db_reader; ++ cell_count_ = ComputeCellCount(db_reader); ++ next_read_index_ = 0; ++ last_record_size_ = 0; + DCHECK(DatabasePageReader::IsValidPageId(page_id_)); + } + ++void LeafPageDecoder::Reset() { ++ db_reader_ = nullptr; ++ page_id_ = 0; ++ cell_count_ = 0; ++ next_read_index_ = 0; ++ last_record_size_ = 0; ++} ++ + bool LeafPageDecoder::TryAdvance() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK(CanAdvance()); +diff --git a/sql/recover_module/btree.h b/sql/recover_module/btree.h +index d76d076..33114b0 100644 +--- a/sql/recover_module/btree.h ++++ b/sql/recover_module/btree.h +@@ -102,7 +102,7 @@ + // + // |db_reader| must have been used to read an inner page of a table B-tree. + // |db_reader| must outlive this instance. +- explicit LeafPageDecoder(DatabasePageReader* db_reader) noexcept; ++ explicit LeafPageDecoder() noexcept = default; + ~LeafPageDecoder() noexcept = default; + + LeafPageDecoder(const LeafPageDecoder&) = delete; +@@ -150,6 +150,15 @@ + // read as long as CanAdvance() returns true. + bool TryAdvance(); + ++ // Initialize with DatabasePageReader ++ void Initialize(DatabasePageReader* db_reader); ++ ++ // Reset internal DatabasePageReader ++ void Reset(); ++ ++ // True if DatabasePageReader is valid ++ bool IsValid() { return (db_reader_ != nullptr); } ++ + // True if the given reader may point to an inner page in a table B-tree. + // + // The last ReadPage() call on |db_reader| must have succeeded. +@@ -163,14 +172,14 @@ + static int ComputeCellCount(DatabasePageReader* db_reader); + + // The number of the B-tree page this reader is reading. +- const int64_t page_id_; ++ int64_t page_id_; + // Used to read the tree page. + // + // Raw pointer usage is acceptable because this instance's owner is expected + // to ensure that the DatabasePageReader outlives this. +- DatabasePageReader* const db_reader_; ++ DatabasePageReader* db_reader_; + // Caches the ComputeCellCount() value for this reader's page. +- const int cell_count_ = ComputeCellCount(db_reader_); ++ int cell_count_; + + // The reader's cursor state. + // +diff --git a/sql/recover_module/cursor.cc b/sql/recover_module/cursor.cc +index 0029ff9..42548bc 100644 +--- a/sql/recover_module/cursor.cc ++++ b/sql/recover_module/cursor.cc +@@ -26,7 +26,7 @@ + int VirtualCursor::First() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + inner_decoders_.clear(); +- leaf_decoder_ = nullptr; ++ leaf_decoder_.Reset(); + + AppendPageDecoder(table_->root_page_id()); + return Next(); +@@ -36,18 +36,18 @@ + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + record_reader_.Reset(); + +- while (!inner_decoders_.empty() || leaf_decoder_.get()) { +- if (leaf_decoder_.get()) { +- if (!leaf_decoder_->CanAdvance()) { ++ while (!inner_decoders_.empty() || leaf_decoder_.IsValid()) { ++ if (leaf_decoder_.IsValid()) { ++ if (!leaf_decoder_.CanAdvance()) { + // The leaf has been exhausted. Remove it from the DFS stack. +- leaf_decoder_ = nullptr; ++ leaf_decoder_.Reset(); + continue; + } +- if (!leaf_decoder_->TryAdvance()) ++ if (!leaf_decoder_.TryAdvance()) + continue; + +- if (!payload_reader_.Initialize(leaf_decoder_->last_record_size(), +- leaf_decoder_->last_record_offset())) { ++ if (!payload_reader_.Initialize(leaf_decoder_.last_record_size(), ++ leaf_decoder_.last_record_offset())) { + continue; + } + if (!record_reader_.Initialize()) +@@ -99,13 +99,13 @@ + int64_t VirtualCursor::RowId() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK(record_reader_.IsInitialized()); +- DCHECK(leaf_decoder_.get()); +- return leaf_decoder_->last_record_rowid(); ++ DCHECK(leaf_decoder_.IsValid()); ++ return leaf_decoder_.last_record_rowid(); + } + + void VirtualCursor::AppendPageDecoder(int page_id) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); +- DCHECK(leaf_decoder_.get() == nullptr) ++ DCHECK(!leaf_decoder_.IsValid()) + << __func__ + << " must only be called when the current path has no leaf decoder"; + +@@ -113,7 +113,7 @@ + return; + + if (LeafPageDecoder::IsOnValidPage(&db_reader_)) { +- leaf_decoder_ = std::make_unique<LeafPageDecoder>(&db_reader_); ++ leaf_decoder_.Initialize(&db_reader_); + return; + } + +diff --git a/sql/recover_module/cursor.h b/sql/recover_module/cursor.h +index afcd690..b15c31d 100644 +--- a/sql/recover_module/cursor.h ++++ b/sql/recover_module/cursor.h +@@ -129,7 +129,7 @@ + std::vector<std::unique_ptr<InnerPageDecoder>> inner_decoders_; + + // Decodes the leaf page containing records. +- std::unique_ptr<LeafPageDecoder> leaf_decoder_; ++ LeafPageDecoder leaf_decoder_; + + SEQUENCE_CHECKER(sequence_checker_); + }; +diff --git a/sql/recover_module/pager.cc b/sql/recover_module/pager.cc +index 58e75de..5fe9620 100644 +--- a/sql/recover_module/pager.cc ++++ b/sql/recover_module/pager.cc +@@ -23,8 +23,7 @@ + "ints are not appropriate for representing page IDs"); + + DatabasePageReader::DatabasePageReader(VirtualTable* table) +- : page_data_(std::make_unique<uint8_t[]>(table->page_size())), +- table_(table) { ++ : page_data_(), table_(table) { + DCHECK(table != nullptr); + DCHECK(IsValidPageSize(table->page_size())); + } +@@ -57,8 +56,8 @@ + std::numeric_limits<int64_t>::max(), + "The |read_offset| computation above may overflow"); + +- int sqlite_status = +- RawRead(sqlite_file, read_size, read_offset, page_data_.get()); ++ int sqlite_status = RawRead(sqlite_file, read_size, read_offset, ++ const_cast<uint8_t*>(page_data_.data())); + + // |page_id_| needs to be set to kInvalidPageId if the read failed. + // Otherwise, future ReadPage() calls with the previous |page_id_| value +diff --git a/sql/recover_module/pager.h b/sql/recover_module/pager.h +index 0e388ddc..99314e3 100644 +--- a/sql/recover_module/pager.h ++++ b/sql/recover_module/pager.h +@@ -5,6 +5,7 @@ + #ifndef SQL_RECOVER_MODULE_PAGER_H_ + #define SQL_RECOVER_MODULE_PAGER_H_ + ++#include <array> + #include <cstdint> + #include <memory> + +@@ -70,7 +71,7 @@ + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK_NE(page_id_, kInvalidPageId) + << "Successful ReadPage() required before accessing pager state"; +- return page_data_.get(); ++ return page_data_.data(); + } + + // The number of bytes in the page read by the last ReadPage() call. +@@ -137,7 +138,7 @@ + int page_id_ = kInvalidPageId; + // Stores the bytes of the last page successfully read by ReadPage(). + // The content is undefined if the last call to ReadPage() did not succeed. +- const std::unique_ptr<uint8_t[]> page_data_; ++ const std::array<uint8_t, kMaxPageSize> page_data_; + // Raw pointer usage is acceptable because this instance's owner is expected + // to ensure that the VirtualTable outlives this. + VirtualTable* const table_; diff --git a/www-client/chromium/files/chromium-93-tint-include.patch b/www-client/chromium/files/chromium-93-tint-include.patch new file mode 100644 index 0000000..4bfd448 --- /dev/null +++ b/www-client/chromium/files/chromium-93-tint-include.patch @@ -0,0 +1,24 @@ +From 014e1fb4c7d05f853a24bfa4b4188b99ba9f3907 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <stha09@googlemail.com> +Date: Fri, 4 Jun 2021 21:11:05 +0000 +Subject: [PATCH] IWYU: add cstddef for size_t + +--- + third_party/dawn/third_party/tint/src/sem/block_statement.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/third_party/dawn/third_party/tint/src/sem/block_statement.h b/third_party/dawn/third_party/tint/src/sem/block_statement.h +index f8c8113..9cbd64d 100644 +--- a/third_party/dawn/third_party/tint/src/sem/block_statement.h ++++ b/third_party/dawn/third_party/tint/src/sem/block_statement.h +@@ -15,6 +15,7 @@ + #ifndef SRC_SEM_BLOCK_STATEMENT_H_ + #define SRC_SEM_BLOCK_STATEMENT_H_ + ++#include <cstddef> + #include <vector> + + #include "src/sem/statement.h" +-- +2.31.1 + diff --git a/www-client/chromium/files/chromium-93-ui-event-include.patch b/www-client/chromium/files/chromium-93-ui-event-include.patch new file mode 100644 index 0000000..8431b6b --- /dev/null +++ b/www-client/chromium/files/chromium-93-ui-event-include.patch @@ -0,0 +1,13 @@ +diff --git a/ui/events/event_handler.h b/ui/events/event_handler.h +index 3870be355..81ebc0e7f 100644 +--- a/ui/events/event_handler.h ++++ b/ui/events/event_handler.h +@@ -5,6 +5,8 @@ + #ifndef UI_EVENTS_EVENT_HANDLER_H_ + #define UI_EVENTS_EVENT_HANDLER_H_ + ++#include <vector> ++ + #include "base/containers/stack.h" + #include "base/strings/string_piece.h" + #include "ui/events/events_export.h" diff --git a/www-client/chromium/files/chromium-93-url-loader-throttles-include.patch b/www-client/chromium/files/chromium-93-url-loader-throttles-include.patch new file mode 100644 index 0000000..d4be13f --- /dev/null +++ b/www-client/chromium/files/chromium-93-url-loader-throttles-include.patch @@ -0,0 +1,13 @@ +diff --git a/content/public/browser/url_loader_throttles.h b/content/public/browser/url_loader_throttles.h +index 0e67d38f7..aa0290118 100644 +--- a/content/public/browser/url_loader_throttles.h ++++ b/content/public/browser/url_loader_throttles.h +@@ -5,6 +5,8 @@ + #ifndef CONTENT_PUBLIC_BROWSER_URL_LOADER_THROTTLES_H_ + #define CONTENT_PUBLIC_BROWSER_URL_LOADER_THROTTLES_H_ + ++#include <vector> ++ + #include "base/callback.h" + #include "content/common/content_export.h" + diff --git a/www-client/chromium/files/chromium-93-webapp-include.patch b/www-client/chromium/files/chromium-93-webapp-include.patch new file mode 100644 index 0000000..39f6058 --- /dev/null +++ b/www-client/chromium/files/chromium-93-webapp-include.patch @@ -0,0 +1,12 @@ +diff --git a/chrome/browser/web_applications/components/web_app_shortcut_linux.h b/chrome/browser/web_applications/components/web_app_shortcut_linux.h +index 4f1e5b93e..3d28e8b52 100644 +--- a/chrome/browser/web_applications/components/web_app_shortcut_linux.h ++++ b/chrome/browser/web_applications/components/web_app_shortcut_linux.h +@@ -6,6 +6,7 @@ + #define CHROME_BROWSER_WEB_APPLICATIONS_COMPONENTS_WEB_APP_SHORTCUT_LINUX_H_ + + #include <string> ++#include <vector> + + #include "base/callback.h" + diff --git a/www-client/chromium/files/chromium-93-worksp-ext-include.patch b/www-client/chromium/files/chromium-93-worksp-ext-include.patch new file mode 100644 index 0000000..c91b9b2 --- /dev/null +++ b/www-client/chromium/files/chromium-93-worksp-ext-include.patch @@ -0,0 +1,37 @@ +diff --git a/device/bluetooth/bluetooth_low_energy_scan_filter.h b/device/bluetooth/bluetooth_low_energy_scan_filter.h +index 0af0b3108..cfec68cb1 100644 +--- a/device/bluetooth/bluetooth_low_energy_scan_filter.h ++++ b/device/bluetooth/bluetooth_low_energy_scan_filter.h +@@ -7,6 +7,7 @@ + + #include <stddef.h> + #include <stdint.h> ++#include <memory> + #include <vector> + + #include "base/time/time.h" +diff --git a/ui/base/class_property.h b/ui/base/class_property.h +index f7b2f5598..88b49386a 100644 +--- a/ui/base/class_property.h ++++ b/ui/base/class_property.h +@@ -8,6 +8,7 @@ + #include <stdint.h> + + #include <map> ++#include <memory> + #include <set> + #include <type_traits> + +diff --git a/ui/platform_window/extensions/workspace_extension.cc b/ui/platform_window/extensions/workspace_extension.cc +index b4e21e0f2..78b5d6562 100644 +--- a/ui/platform_window/extensions/workspace_extension.cc ++++ b/ui/platform_window/extensions/workspace_extension.cc +@@ -4,6 +4,8 @@ + + #include "ui/platform_window/extensions/workspace_extension.h" + ++#include <memory> ++ + #include "ui/base/class_property.h" + #include "ui/platform_window/platform_window.h" + diff --git a/www-client/chromium/files/chromium-94-ConversionStorageSql-lambda.patch b/www-client/chromium/files/chromium-94-ConversionStorageSql-lambda.patch new file mode 100644 index 0000000..6746fec --- /dev/null +++ b/www-client/chromium/files/chromium-94-ConversionStorageSql-lambda.patch @@ -0,0 +1,31 @@ +From 45bea088d3771c7ff9f77173e451422452c031b3 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <stha09@googlemail.com> +Date: Mon, 02 Aug 2021 16:57:05 +0000 +Subject: [PATCH] GCC: drop WARN_USED_RESULT in lambda in ConversionStorageSql + +GCC 9.3 only allows GNU attributes between [] and () in lambda +expressions. See https://gcc.gnu.org/PR90333 for details. However, +clang only allows attributes after () only. Seems not strictly +necessary to enforce the attribute here. + +Bug: 819294 +Change-Id: I342deb25239837dea0f6f5e7709b1467789e342b +--- + +diff --git a/content/browser/conversions/conversion_storage_sql.cc b/content/browser/conversions/conversion_storage_sql.cc +index 84bc897..b6fc4e9 100644 +--- a/content/browser/conversions/conversion_storage_sql.cc ++++ b/content/browser/conversions/conversion_storage_sql.cc +@@ -688,9 +688,11 @@ + bool ConversionStorageSql::DeleteExpiredImpressions() { + const int kMaxDeletesPerBatch = 100; + ++ // GCC accepts attribute between [] and () only ++ // clang accepts attribute after () only + auto delete_impressions_from_paged_select = + [this](sql::Statement& statement) +- VALID_CONTEXT_REQUIRED(sequence_checker_) WARN_UNUSED_RESULT -> bool { ++ VALID_CONTEXT_REQUIRED(sequence_checker_) -> bool { + while (true) { + std::vector<int64_t> impression_ids; + while (statement.Step()) { diff --git a/www-client/chromium/files/chromium-94-CustomSpaces-include.patch b/www-client/chromium/files/chromium-94-CustomSpaces-include.patch new file mode 100644 index 0000000..0175775 --- /dev/null +++ b/www-client/chromium/files/chromium-94-CustomSpaces-include.patch @@ -0,0 +1,24 @@ +From 4eeacdaa57b29a079fe09315eb22557c06aa522e Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <stha09@googlemail.com> +Date: Fri, 13 Aug 2021 12:57:42 +0000 +Subject: [PATCH] IWYU: add memory for std::unique_ptr in blink::CustomSpaces + +--- + .../blink/renderer/platform/heap/v8_wrapper/custom_spaces.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/third_party/blink/renderer/platform/heap/v8_wrapper/custom_spaces.h b/third_party/blink/renderer/platform/heap/v8_wrapper/custom_spaces.h +index df0465a..640cb33 100644 +--- a/third_party/blink/renderer/platform/heap/v8_wrapper/custom_spaces.h ++++ b/third_party/blink/renderer/platform/heap/v8_wrapper/custom_spaces.h +@@ -5,6 +5,7 @@ + #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_HEAP_V8_WRAPPER_CUSTOM_SPACES_H_ + #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_HEAP_V8_WRAPPER_CUSTOM_SPACES_H_ + ++#include <memory> + #include <vector> + + #include "third_party/blink/renderer/platform/platform_export.h" +-- +2.31.1 + diff --git a/www-client/chromium/files/chromium-94-compiler.patch b/www-client/chromium/files/chromium-94-compiler.patch new file mode 100644 index 0000000..2b63b3b --- /dev/null +++ b/www-client/chromium/files/chromium-94-compiler.patch @@ -0,0 +1,218 @@ +From f4d0b0eb899005b4b8b6388e1d8bb82cc0018fc8 Mon Sep 17 00:00:00 2001 +From: Mike Gilbert <floppym@gentoo.org> +Date: Sun, 8 Aug 2021 08:50:00 +0000 +Subject: [PATCH] Disable various compiler configs + +--- + build/config/compiler/BUILD.gn | 105 ++++++--------------------------- + 1 file changed, 17 insertions(+), 88 deletions(-) + +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index 0bb155a..e95c023 100644 +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -291,8 +291,6 @@ config("compiler") { + + configs += [ + # See the definitions below. +- ":clang_revision", +- ":compiler_cpu_abi", + ":compiler_codegen", + ":compiler_deterministic", + ] +@@ -530,31 +528,6 @@ config("compiler") { + ldflags += [ "-Wl,-z,keep-text-section-prefix" ] + } + +- if (is_clang && !is_nacl && !use_xcode_clang) { +- cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ] +- +- # TODO(hans): Remove this once Clang generates better optimized debug info +- # by default. https://crbug.com/765793 +- cflags += [ +- "-mllvm", +- "-instcombine-lower-dbg-declare=0", +- ] +- if (!is_debug && use_thin_lto && is_a_target_toolchain) { +- if (is_win) { +- ldflags += [ "-mllvm:-instcombine-lower-dbg-declare=0" ] +- } else { +- ldflags += [ "-Wl,-mllvm,-instcombine-lower-dbg-declare=0" ] +- } +- } +- +- # TODO(crbug.com/1235145): Investigate why/if this should be needed. +- if (is_win) { +- cflags += [ "/clang:-ffp-contract=off" ] +- } else { +- cflags += [ "-ffp-contract=off" ] +- } +- } +- + # C11/C++11 compiler flags setup. + # --------------------------- + if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) || +@@ -1216,45 +1189,6 @@ config("compiler_deterministic") { + } + } + +- # Makes builds independent of absolute file path. +- if (is_clang && strip_absolute_paths_from_debug_symbols) { +- # If debug option is given, clang includes $cwd in debug info by default. +- # For such build, this flag generates reproducible obj files even we use +- # different build directory like "out/feature_a" and "out/feature_b" if +- # we build same files with same compile flag. +- # Other paths are already given in relative, no need to normalize them. +- if (is_nacl) { +- # TODO(https://crbug.com/1231236): Use -ffile-compilation-dir= here. +- cflags += [ +- "-Xclang", +- "-fdebug-compilation-dir", +- "-Xclang", +- ".", +- ] +- } else { +- # -ffile-compilation-dir is an alias for both -fdebug-compilation-dir= +- # and -fcoverage-compilation-dir=. +- cflags += [ "-ffile-compilation-dir=." ] +- } +- if (!is_win) { +- # We don't use clang -cc1as on Windows (yet? https://crbug.com/762167) +- asmflags = [ "-Wa,-fdebug-compilation-dir,." ] +- } +- +- if (is_win && use_lld) { +- if (symbol_level == 2 || (is_clang && using_sanitizer)) { +- # Absolutize source file paths for PDB. Pass the real build directory +- # if the pdb contains source-level debug information and if linker +- # reproducibility is not critical. +- ldflags += [ "/PDBSourcePath:" + rebase_path(root_build_dir) ] +- } else { +- # Use a fake fixed base directory for paths in the pdb to make the pdb +- # output fully deterministic and independent of the build directory. +- ldflags += [ "/PDBSourcePath:o:\fake\prefix" ] +- } +- } +- } +- + # Tells the compiler not to use absolute paths when passing the default + # paths to the tools it invokes. We don't want this because we don't + # really need it and it can mess up the goma cache entries. +@@ -1658,7 +1592,7 @@ config("chromium_code") { + defines = [ "_HAS_NODISCARD" ] + } + } else { +- cflags = [ "-Wall" ] ++ cflags = [] + if (treat_warnings_as_errors) { + cflags += [ "-Werror" ] + +@@ -1667,10 +1601,6 @@ config("chromium_code") { + # well. + ldflags = [ "-Werror" ] + } +- if (is_clang) { +- # Enable extra warnings for chromium_code when we control the compiler. +- cflags += [ "-Wextra" ] +- } + + # In Chromium code, we define __STDC_foo_MACROS in order to get the + # C99 macros on Mac and Linux. +@@ -1679,15 +1609,6 @@ config("chromium_code") { + "__STDC_FORMAT_MACROS", + ] + +- if (!is_debug && !using_sanitizer && current_cpu != "s390x" && +- current_cpu != "s390" && current_cpu != "ppc64" && +- current_cpu != "mips" && current_cpu != "mips64") { +- # Non-chromium code is not guaranteed to compile cleanly with +- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are +- # disabled, so only do that for Release build. +- defines += [ "_FORTIFY_SOURCE=2" ] +- } +- + if (is_mac) { + cflags_objc = [ "-Wobjc-missing-property-synthesis" ] + cflags_objcc = [ "-Wobjc-missing-property-synthesis" ] +@@ -2077,7 +1998,8 @@ config("default_stack_frames") { + } + + # Default "optimization on" config. +-config("optimize") { ++config("optimize") { } ++config("xoptimize") { + if (is_win) { + if (chrome_pgo_phase != 2) { + # Favor size over speed, /O1 must be before the common flags. +@@ -2112,7 +2034,8 @@ config("optimize") { + } + + # Turn off optimizations. +-config("no_optimize") { ++config("no_optimize") { } ++config("xno_optimize") { + if (is_win) { + cflags = [ + "/Od", # Disable optimization. +@@ -2152,7 +2075,8 @@ config("no_optimize") { + # Turns up the optimization level. On Windows, this implies whole program + # optimization and link-time code generation which is very expensive and should + # be used sparingly. +-config("optimize_max") { ++config("optimize_max") { } ++config("xoptimize_max") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2184,7 +2108,8 @@ config("optimize_max") { + # + # TODO(crbug.com/621335) - rework how all of these configs are related + # so that we don't need this disclaimer. +-config("optimize_speed") { ++config("optimize_speed") { } ++config("xoptimize_speed") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2209,7 +2134,8 @@ config("optimize_speed") { + } + } + +-config("optimize_fuzzing") { ++config("optimize_fuzzing") { } ++config("xoptimize_fuzzing") { + cflags = [ "-O1" ] + common_optimize_on_cflags + ldflags = common_optimize_on_ldflags + visibility = [ ":default_optimization" ] +@@ -2328,7 +2254,8 @@ config("win_pdbaltpath") { + } + + # Full symbols. +-config("symbols") { ++config("symbols") { } ++config("xsymbols") { + if (is_win) { + if (is_clang) { + cflags = [ "/Z7" ] # Debug information in the .obj files. +@@ -2431,7 +2358,8 @@ config("symbols") { + # Minimal symbols. + # This config guarantees to hold symbol for stack trace which are shown to user + # when crash happens in unittests running on buildbot. +-config("minimal_symbols") { ++config("minimal_symbols") { } ++config("xminimal_symbols") { + if (is_win) { + # Functions, files, and line tables only. + cflags = [] +@@ -2496,7 +2424,8 @@ config("minimal_symbols") { + # This configuration contains function names only. That is, the compiler is + # told to not generate debug information and the linker then just puts function + # names in the final debug information. +-config("no_symbols") { ++config("no_symbols") { } ++config("xno_symbols") { + if (is_win) { + ldflags = [ "/DEBUG" ] + +-- +2.31.1 diff --git a/www-client/chromium/files/chromium-94-sql-virtual-cursor.patch b/www-client/chromium/files/chromium-94-sql-virtual-cursor.patch new file mode 100644 index 0000000..47b276d --- /dev/null +++ b/www-client/chromium/files/chromium-94-sql-virtual-cursor.patch @@ -0,0 +1,216 @@ +diff --git a/sql/recover_module/btree.cc b/sql/recover_module/btree.cc +index cc9420e5c..62fcaaf79 100644 +--- a/sql/recover_module/btree.cc ++++ b/sql/recover_module/btree.cc +@@ -136,16 +136,25 @@ static_assert(std::is_trivially_destructible<LeafPageDecoder>::value, + "Move the destructor to the .cc file if it's non-trival"); + #endif // !DCHECK_IS_ON() + +-LeafPageDecoder::LeafPageDecoder(DatabasePageReader* db_reader) noexcept +- : page_id_(db_reader->page_id()), +- db_reader_(db_reader), +- cell_count_(ComputeCellCount(db_reader)), +- next_read_index_(0), +- last_record_size_(0) { ++void LeafPageDecoder::Initialize(DatabasePageReader* db_reader) { ++ DCHECK(db_reader); + DCHECK(IsOnValidPage(db_reader)); ++ page_id_ = db_reader->page_id(); ++ db_reader_ = db_reader; ++ cell_count_ = ComputeCellCount(db_reader); ++ next_read_index_ = 0; ++ last_record_size_ = 0; + DCHECK(DatabasePageReader::IsValidPageId(page_id_)); + } + ++void LeafPageDecoder::Reset() { ++ db_reader_ = nullptr; ++ page_id_ = 0; ++ cell_count_ = 0; ++ next_read_index_ = 0; ++ last_record_size_ = 0; ++} ++ + bool LeafPageDecoder::TryAdvance() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK(CanAdvance()); +diff --git a/sql/recover_module/btree.h b/sql/recover_module/btree.h +index eaa087a5c..78ce00e05 100644 +--- a/sql/recover_module/btree.h ++++ b/sql/recover_module/btree.h +@@ -103,7 +103,7 @@ class LeafPageDecoder { + // + // |db_reader| must have been used to read an inner page of a table B-tree. + // |db_reader| must outlive this instance. +- explicit LeafPageDecoder(DatabasePageReader* db_reader) noexcept; ++ explicit LeafPageDecoder() noexcept = default; + ~LeafPageDecoder() noexcept = default; + + LeafPageDecoder(const LeafPageDecoder&) = delete; +@@ -151,6 +151,15 @@ class LeafPageDecoder { + // read as long as CanAdvance() returns true. + bool TryAdvance(); + ++ // Initialize with DatabasePageReader ++ void Initialize(DatabasePageReader* db_reader); ++ ++ // Reset internal DatabasePageReader ++ void Reset(); ++ ++ // True if DatabasePageReader is valid ++ bool IsValid() { return (db_reader_ != nullptr); } ++ + // True if the given reader may point to an inner page in a table B-tree. + // + // The last ReadPage() call on |db_reader| must have succeeded. +@@ -164,14 +173,14 @@ class LeafPageDecoder { + static int ComputeCellCount(DatabasePageReader* db_reader); + + // The number of the B-tree page this reader is reading. +- const int64_t page_id_; ++ int64_t page_id_; + // Used to read the tree page. + // + // Raw pointer usage is acceptable because this instance's owner is expected + // to ensure that the DatabasePageReader outlives this. +- DatabasePageReader* const db_reader_; ++ DatabasePageReader* db_reader_; + // Caches the ComputeCellCount() value for this reader's page. +- const int cell_count_ = ComputeCellCount(db_reader_); ++ int cell_count_; + + // The reader's cursor state. + // +diff --git a/sql/recover_module/cursor.cc b/sql/recover_module/cursor.cc +index 4f827edf1..240de4999 100644 +--- a/sql/recover_module/cursor.cc ++++ b/sql/recover_module/cursor.cc +@@ -28,7 +28,7 @@ VirtualCursor::~VirtualCursor() { + int VirtualCursor::First() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + inner_decoders_.clear(); +- leaf_decoder_ = nullptr; ++ leaf_decoder_.Reset(); + + AppendPageDecoder(table_->root_page_id()); + return Next(); +@@ -38,18 +38,18 @@ int VirtualCursor::Next() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + record_reader_.Reset(); + +- while (!inner_decoders_.empty() || leaf_decoder_.get()) { +- if (leaf_decoder_.get()) { +- if (!leaf_decoder_->CanAdvance()) { ++ while (!inner_decoders_.empty() || leaf_decoder_.IsValid()) { ++ if (leaf_decoder_.IsValid()) { ++ if (!leaf_decoder_.CanAdvance()) { + // The leaf has been exhausted. Remove it from the DFS stack. +- leaf_decoder_ = nullptr; ++ leaf_decoder_.Reset(); + continue; + } +- if (!leaf_decoder_->TryAdvance()) ++ if (!leaf_decoder_.TryAdvance()) + continue; + +- if (!payload_reader_.Initialize(leaf_decoder_->last_record_size(), +- leaf_decoder_->last_record_offset())) { ++ if (!payload_reader_.Initialize(leaf_decoder_.last_record_size(), ++ leaf_decoder_.last_record_offset())) { + continue; + } + if (!record_reader_.Initialize()) +@@ -101,13 +101,13 @@ int VirtualCursor::ReadColumn(int column_index, + int64_t VirtualCursor::RowId() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK(record_reader_.IsInitialized()); +- DCHECK(leaf_decoder_.get()); +- return leaf_decoder_->last_record_rowid(); ++ DCHECK(leaf_decoder_.IsValid()); ++ return leaf_decoder_.last_record_rowid(); + } + + void VirtualCursor::AppendPageDecoder(int page_id) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); +- DCHECK(leaf_decoder_.get() == nullptr) ++ DCHECK(!leaf_decoder_.IsValid()) + << __func__ + << " must only be called when the current path has no leaf decoder"; + +@@ -115,7 +115,7 @@ void VirtualCursor::AppendPageDecoder(int page_id) { + return; + + if (LeafPageDecoder::IsOnValidPage(&db_reader_)) { +- leaf_decoder_ = std::make_unique<LeafPageDecoder>(&db_reader_); ++ leaf_decoder_.Initialize(&db_reader_); + return; + } + +diff --git a/sql/recover_module/cursor.h b/sql/recover_module/cursor.h +index afcd6900e..b15c31d42 100644 +--- a/sql/recover_module/cursor.h ++++ b/sql/recover_module/cursor.h +@@ -129,7 +129,7 @@ class VirtualCursor { + std::vector<std::unique_ptr<InnerPageDecoder>> inner_decoders_; + + // Decodes the leaf page containing records. +- std::unique_ptr<LeafPageDecoder> leaf_decoder_; ++ LeafPageDecoder leaf_decoder_; + + SEQUENCE_CHECKER(sequence_checker_); + }; +diff --git a/sql/recover_module/pager.cc b/sql/recover_module/pager.cc +index 58e75de27..5fe96204e 100644 +--- a/sql/recover_module/pager.cc ++++ b/sql/recover_module/pager.cc +@@ -23,8 +23,7 @@ static_assert(DatabasePageReader::kMaxPageId <= std::numeric_limits<int>::max(), + "ints are not appropriate for representing page IDs"); + + DatabasePageReader::DatabasePageReader(VirtualTable* table) +- : page_data_(std::make_unique<uint8_t[]>(table->page_size())), +- table_(table) { ++ : page_data_(), table_(table) { + DCHECK(table != nullptr); + DCHECK(IsValidPageSize(table->page_size())); + } +@@ -57,8 +56,8 @@ int DatabasePageReader::ReadPage(int page_id) { + std::numeric_limits<int64_t>::max(), + "The |read_offset| computation above may overflow"); + +- int sqlite_status = +- RawRead(sqlite_file, read_size, read_offset, page_data_.get()); ++ int sqlite_status = RawRead(sqlite_file, read_size, read_offset, ++ const_cast<uint8_t*>(page_data_.data())); + + // |page_id_| needs to be set to kInvalidPageId if the read failed. + // Otherwise, future ReadPage() calls with the previous |page_id_| value +diff --git a/sql/recover_module/pager.h b/sql/recover_module/pager.h +index 5976d2167..8dcffa3f2 100644 +--- a/sql/recover_module/pager.h ++++ b/sql/recover_module/pager.h +@@ -5,6 +5,7 @@ + #ifndef SQL_RECOVER_MODULE_PAGER_H_ + #define SQL_RECOVER_MODULE_PAGER_H_ + ++#include <array> + #include <cstdint> + #include <memory> + #include <ostream> +@@ -71,7 +72,7 @@ class DatabasePageReader { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK_NE(page_id_, kInvalidPageId) + << "Successful ReadPage() required before accessing pager state"; +- return page_data_.get(); ++ return page_data_.data(); + } + + // The number of bytes in the page read by the last ReadPage() call. +@@ -138,7 +139,7 @@ class DatabasePageReader { + int page_id_ = kInvalidPageId; + // Stores the bytes of the last page successfully read by ReadPage(). + // The content is undefined if the last call to ReadPage() did not succeed. +- const std::unique_ptr<uint8_t[]> page_data_; ++ const std::array<uint8_t, kMaxPageSize> page_data_; + // Raw pointer usage is acceptable because this instance's owner is expected + // to ensure that the VirtualTable outlives this. + VirtualTable* const table_; diff --git a/www-client/chromium/files/chromium-94-translate.patch b/www-client/chromium/files/chromium-94-translate.patch new file mode 100644 index 0000000..507e7c9 --- /dev/null +++ b/www-client/chromium/files/chromium-94-translate.patch @@ -0,0 +1,98 @@ +From 7cfc45880ce2b181c318fff2a336f655e294644f Mon Sep 17 00:00:00 2001 +From: mcrouse <mcrouse@google.com> +Date: Fri, 20 Aug 2021 17:58:16 -0700 +Subject: [PATCH] [Translate] Fix migration of deprecated pref. + +This migrates old prefs to use a default time rather than a value. + +Bug: 1241228 +Change-Id: I07efec68aa0c06b0bbb13b51657a1c60b2bfcf7e +--- + +diff --git a/components/translate/core/browser/translate_prefs.cc b/components/translate/core/browser/translate_prefs.cc +index f599ec6..375f805 100644 +--- a/components/translate/core/browser/translate_prefs.cc ++++ b/components/translate/core/browser/translate_prefs.cc +@@ -944,8 +944,7 @@ + // Migration should only be necessary once but there could still be old + // Chrome instances that sync the old preference, so do it once per + // startup. +- static bool migrated = false; +- if (migrated) ++ if (migrated_) + return; + DictionaryPrefUpdate never_prompt_list_update(prefs_, + kPrefNeverPromptSitesWithTime); +@@ -954,11 +953,16 @@ + const base::Value* list = prefs_->GetList(kPrefNeverPromptSitesDeprecated); + for (auto& site : list->GetList()) { + if (!never_prompt_list->FindKey(site.GetString())) { +- never_prompt_list->SetKey(site.GetString(), base::Value(0)); ++ never_prompt_list->SetKey(site.GetString(), ++ base::TimeToValue(base::Time::Now())); + } + } + } +- migrated = true; ++ migrated_ = true; ++} ++ ++void TranslatePrefs::ResetMigrationForTesting() { ++ migrated_ = false; + } + + bool TranslatePrefs::IsValueOnNeverPromptList(const char* pref_id, +diff --git a/components/translate/core/browser/translate_prefs.h b/components/translate/core/browser/translate_prefs.h +index b822bed..6d58fd7 100644 +--- a/components/translate/core/browser/translate_prefs.h ++++ b/components/translate/core/browser/translate_prefs.h +@@ -339,6 +339,9 @@ + + static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry); + ++ // Reset |migrated_| to enable testing of pref migrations. ++ void ResetMigrationForTesting(); ++ + private: + FRIEND_TEST_ALL_PREFIXES(TranslatePrefsTest, + UpdateLanguageListFeatureEnabled); +@@ -356,6 +359,7 @@ + FRIEND_TEST_ALL_PREFIXES(TranslatePrefsTest, MoveLanguageUp); + FRIEND_TEST_ALL_PREFIXES(TranslatePrefsTest, MoveLanguageDown); + FRIEND_TEST_ALL_PREFIXES(TranslatePrefsTest, ResetBlockedLanguagesToDefault); ++ FRIEND_TEST_ALL_PREFIXES(TranslatePrefsTest, MigrateNeverPromptSites); + friend class TranslatePrefsTest; + + void ClearNeverPromptSiteList(); +@@ -385,6 +389,9 @@ + + std::unique_ptr<language::LanguagePrefs> language_prefs_; + ++ // Whether any deprecated prefs have been successfully migrated. ++ bool migrated_ = false; ++ + DISALLOW_COPY_AND_ASSIGN(TranslatePrefs); + }; + +diff --git a/components/translate/core/browser/translate_prefs_unittest.cc b/components/translate/core/browser/translate_prefs_unittest.cc +index 601b834..3feb232c 100644 +--- a/components/translate/core/browser/translate_prefs_unittest.cc ++++ b/components/translate/core/browser/translate_prefs_unittest.cc +@@ -931,6 +931,17 @@ + accept_languages_tester_->ExpectAcceptLanguagePrefs("en,it,es,zh,fr"); + } + ++TEST_F(TranslatePrefsTest, MigrateNeverPromptSites) { ++ translate_prefs_->AddValueToNeverPromptList( ++ TranslatePrefs::kPrefNeverPromptSitesDeprecated, "unmigrated.com"); ++ translate_prefs_->ResetMigrationForTesting(); ++ translate_prefs_->MigrateNeverPromptSites(); ++ EXPECT_EQ( ++ std::vector<std::string>({"unmigrated.com"}), ++ translate_prefs_->GetNeverPromptSitesBetween( ++ base::Time::Now() - base::TimeDelta::FromDays(1), base::Time::Max())); ++} ++ + TEST_F(TranslatePrefsTest, SiteNeverPromptList) { + translate_prefs_->AddSiteToNeverPromptList("a.com"); + base::Time t = base::Time::Now(); diff --git a/www-client/chromium/files/chromium-95-hash_traits-include.patch b/www-client/chromium/files/chromium-95-hash_traits-include.patch new file mode 100644 index 0000000..62e559d --- /dev/null +++ b/www-client/chromium/files/chromium-95-hash_traits-include.patch @@ -0,0 +1,30 @@ +From 45441a733187d7462f30b433a663ef7403990d87 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <stha09@googlemail.com> +Date: Fri, 3 Sep 2021 16:19:32 +0000 +Subject: [PATCH] IWYU: add string.h for memset in hash_traits + +--- + third_party/blink/renderer/platform/wtf/hash_traits.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/third_party/blink/renderer/platform/wtf/hash_traits.h b/third_party/blink/renderer/platform/wtf/hash_traits.h +index ca5ed2a..67d1724 100644 +--- a/third_party/blink/renderer/platform/wtf/hash_traits.h ++++ b/third_party/blink/renderer/platform/wtf/hash_traits.h +@@ -22,10 +22,13 @@ + #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_HASH_TRAITS_H_ + #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_HASH_TRAITS_H_ + ++#include <string.h> ++ + #include <limits> + #include <memory> + #include <type_traits> + #include <utility> ++ + #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h" + #include "third_party/blink/renderer/platform/wtf/forward.h" + #include "third_party/blink/renderer/platform/wtf/hash_functions.h" +-- +2.32.0 + diff --git a/www-client/chromium/files/chromium-95-libyuv-aarch64.patch b/www-client/chromium/files/chromium-95-libyuv-aarch64.patch new file mode 100644 index 0000000..8efbaff --- /dev/null +++ b/www-client/chromium/files/chromium-95-libyuv-aarch64.patch @@ -0,0 +1,31 @@ +diff --git a/third_party/libyuv/source/row_neon64.cc b/third_party/libyuv/source/row_neon64.cc +index 350c964..2aab413 100644 +--- a/third_party/libyuv/source/row_neon64.cc ++++ b/third_party/libyuv/source/row_neon64.cc +@@ -1835,7 +1835,7 @@ void ARGBToAB64Row_NEON(const uint8_t* src_argb, + : "+r"(src_argb), // %0 + "+r"(dst_ab64), // %1 + "+r"(width) // %2 +- : "m"(kShuffleARGBToABGR) // %3 ++ : "Q"(kShuffleARGBToABGR) // %3 + : "cc", "memory", "v0", "v1", "v2", "v3", "v4"); + } + +@@ -1859,7 +1859,7 @@ void AR64ToARGBRow_NEON(const uint16_t* src_ar64, + : "+r"(src_ar64), // %0 + "+r"(dst_argb), // %1 + "+r"(width) // %2 +- : "m"(kShuffleAR64ToARGB) // %3 ++ : "Q"(kShuffleAR64ToARGB) // %3 + : "cc", "memory", "v0", "v1", "v2", "v3", "v4"); + } + +@@ -1883,7 +1883,7 @@ void AB64ToARGBRow_NEON(const uint16_t* src_ab64, + : "+r"(src_ab64), // %0 + "+r"(dst_argb), // %1 + "+r"(width) // %2 +- : "m"(kShuffleAB64ToARGB) // %3 ++ : "Q"(kShuffleAB64ToARGB) // %3 + : "cc", "memory", "v0", "v1", "v2", "v3", "v4"); + } + diff --git a/www-client/chromium/files/chromium-95-text_fragments_utils-include.patch b/www-client/chromium/files/chromium-95-text_fragments_utils-include.patch new file mode 100644 index 0000000..e2d6160 --- /dev/null +++ b/www-client/chromium/files/chromium-95-text_fragments_utils-include.patch @@ -0,0 +1,37 @@ +From f48b39ee129132337b93e905c8f304c65766742a Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <stha09@googlemail.com> +Date: Tue, 31 Aug 2021 12:22:35 +0000 +Subject: [PATCH] IWYU: add string.h for strlen in text_fragments_utils + +Remove namespace std from strlen to avoid including cstring as well. +--- + .../shared_highlighting/core/common/text_fragments_utils.cc | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/components/shared_highlighting/core/common/text_fragments_utils.cc b/components/shared_highlighting/core/common/text_fragments_utils.cc +index 9f39ce6..389c09c 100644 +--- a/components/shared_highlighting/core/common/text_fragments_utils.cc ++++ b/components/shared_highlighting/core/common/text_fragments_utils.cc +@@ -4,6 +4,8 @@ + + #include "components/shared_highlighting/core/common/text_fragments_utils.h" + ++#include <string.h> ++ + #include <sstream> + + #include "base/json/json_writer.h" +@@ -54,8 +56,8 @@ bool SplitUrlTextFragmentDirective(const std::string& full_url, + + // We only want to keep what's after the delimiter. + *highlight_directive = +- full_url.substr(pos + std::strlen(kFragmentsUrlDelimiter) + +- std::strlen(kFragmentParameterName)); ++ full_url.substr(pos + strlen(kFragmentsUrlDelimiter) + ++ strlen(kFragmentParameterName)); + return true; + } + +-- +2.31.1 + diff --git a/www-client/chromium/files/chromium-96-AppliedTextDecoration-include.patch b/www-client/chromium/files/chromium-96-AppliedTextDecoration-include.patch new file mode 100644 index 0000000..26b7d0b --- /dev/null +++ b/www-client/chromium/files/chromium-96-AppliedTextDecoration-include.patch @@ -0,0 +1,25 @@ +From 7387c3ccedb190a8d971762b89e1a75c2289537d Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <stha09@googlemail.com> +Date: Sat, 25 Sep 2021 20:52:05 +0000 +Subject: [PATCH] IWYU: add memory for std::unique_ptr in AppliedTextDecoration + +--- + third_party/blink/renderer/core/style/applied_text_decoration.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/third_party/blink/renderer/core/style/applied_text_decoration.h b/third_party/blink/renderer/core/style/applied_text_decoration.h +index b79dc4d..cc050ff 100644 +--- a/third_party/blink/renderer/core/style/applied_text_decoration.h ++++ b/third_party/blink/renderer/core/style/applied_text_decoration.h +@@ -5,6 +5,8 @@ + #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_APPLIED_TEXT_DECORATION_H_ + #define THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_APPLIED_TEXT_DECORATION_H_ + ++#include <memory> ++ + #include "third_party/blink/renderer/core/style/computed_style_constants.h" + #include "third_party/blink/renderer/core/style/text_decoration_thickness.h" + #include "third_party/blink/renderer/platform/geometry/length.h" +-- +2.32.0 + diff --git a/www-client/chromium/files/chromium-96-EnumTable-crash.patch b/www-client/chromium/files/chromium-96-EnumTable-crash.patch new file mode 100644 index 0000000..9736739 --- /dev/null +++ b/www-client/chromium/files/chromium-96-EnumTable-crash.patch @@ -0,0 +1,76 @@ +diff --git a/components/cast_channel/enum_table.h b/components/cast_channel/enum_table.h +index aad9e08..2f3fcad 100644 +--- a/components/cast_channel/enum_table.h ++++ b/components/cast_channel/enum_table.h +@@ -8,6 +8,7 @@ + #include <cstdint> + #include <cstring> + #include <ostream> ++#include <vector> + + #include "base/check_op.h" + #include "base/macros.h" +@@ -188,7 +189,6 @@ class + inline constexpr GenericEnumTableEntry(int32_t value); + inline constexpr GenericEnumTableEntry(int32_t value, base::StringPiece str); + +- GenericEnumTableEntry(const GenericEnumTableEntry&) = delete; + GenericEnumTableEntry& operator=(const GenericEnumTableEntry&) = delete; + + private: +@@ -254,7 +254,6 @@ class EnumTable { + constexpr Entry(E value, base::StringPiece str) + : GenericEnumTableEntry(static_cast<int32_t>(value), str) {} + +- Entry(const Entry&) = delete; + Entry& operator=(const Entry&) = delete; + }; + +@@ -313,15 +312,14 @@ class EnumTable { + if (is_sorted_) { + const std::size_t index = static_cast<std::size_t>(value); + if (ANALYZER_ASSUME_TRUE(index < data_.size())) { +- const auto& entry = data_.begin()[index]; ++ const auto& entry = data_[index]; + if (ANALYZER_ASSUME_TRUE(entry.has_str())) + return entry.str(); + } + return absl::nullopt; + } + return GenericEnumTableEntry::FindByValue( +- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()), +- data_.size(), static_cast<int32_t>(value)); ++ &data_[0], data_.size(), static_cast<int32_t>(value)); + } + + // This overload of GetString is designed for cases where the argument is a +@@ -349,8 +347,7 @@ class EnumTable { + // enum value directly. + absl::optional<E> GetEnum(base::StringPiece str) const { + auto* entry = GenericEnumTableEntry::FindByString( +- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()), +- data_.size(), str); ++ &data_[0], data_.size(), str); + return entry ? static_cast<E>(entry->value) : absl::optional<E>(); + } + +@@ -365,7 +362,7 @@ class EnumTable { + // Align the data on a cache line boundary. + alignas(64) + #endif +- std::initializer_list<Entry> data_; ++ const std::vector<Entry> data_; + bool is_sorted_; + + constexpr EnumTable(std::initializer_list<Entry> data, bool is_sorted) +@@ -377,8 +374,8 @@ class EnumTable { + + for (std::size_t i = 0; i < data.size(); i++) { + for (std::size_t j = i + 1; j < data.size(); j++) { +- const Entry& ei = data.begin()[i]; +- const Entry& ej = data.begin()[j]; ++ const Entry& ei = data[i]; ++ const Entry& ej = data[j]; + DCHECK(ei.value != ej.value) + << "Found duplicate enum values at indices " << i << " and " << j; + DCHECK(!(ei.has_str() && ej.has_str() && ei.str() == ej.str())) diff --git a/www-client/chromium/files/chromium-96-ax_platform-list-init.patch b/www-client/chromium/files/chromium-96-ax_platform-list-init.patch new file mode 100644 index 0000000..49adba4 --- /dev/null +++ b/www-client/chromium/files/chromium-96-ax_platform-list-init.patch @@ -0,0 +1,15 @@ +diff --git a/ui/accessibility/platform/ax_platform_node_auralinux.cc b/ui/accessibility/platform/ax_platform_node_auralinux.cc +index aff693dea..834c328d1 100644 +--- a/ui/accessibility/platform/ax_platform_node_auralinux.cc ++++ b/ui/accessibility/platform/ax_platform_node_auralinux.cc +@@ -5136,8 +5136,8 @@ std::pair<int, int> AXPlatformNodeAuraLinux::GetSelectionOffsetsForAtk() { + std::vector<ax::mojom::Action> AXPlatformNodeAuraLinux::GetSupportedActions() + const { + static const base::NoDestructor<std::vector<ax::mojom::Action>> +- kActionsThatCanBeExposedViaAtkAction( +- {ax::mojom::Action::kDecrement, ax::mojom::Action::kIncrement}); ++ kActionsThatCanBeExposedViaAtkAction{ ++ {ax::mojom::Action::kDecrement, ax::mojom::Action::kIncrement}}; + + // The default action is always included and exposed at the first index. + std::vector<ax::mojom::Action> supported_actions = { diff --git a/www-client/chromium/files/chromium-96-compiler.patch b/www-client/chromium/files/chromium-96-compiler.patch new file mode 100644 index 0000000..9b4b408 --- /dev/null +++ b/www-client/chromium/files/chromium-96-compiler.patch @@ -0,0 +1,200 @@ +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index 67b7097dd..f21f7435a 100644 +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -292,8 +292,6 @@ config("compiler") { + + configs += [ + # See the definitions below. +- ":clang_revision", +- ":compiler_cpu_abi", + ":compiler_codegen", + ":compiler_deterministic", + ] +@@ -532,24 +530,6 @@ config("compiler") { + ldflags += [ "-Wl,-z,keep-text-section-prefix" ] + } + +- if (is_clang && !is_nacl && !use_xcode_clang) { +- cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ] +- +- # TODO(hans): Remove this once Clang generates better optimized debug info +- # by default. https://crbug.com/765793 +- cflags += [ +- "-mllvm", +- "-instcombine-lower-dbg-declare=0", +- ] +- if (!is_debug && use_thin_lto && is_a_target_toolchain) { +- if (is_win) { +- ldflags += [ "-mllvm:-instcombine-lower-dbg-declare=0" ] +- } else { +- ldflags += [ "-Wl,-mllvm,-instcombine-lower-dbg-declare=0" ] +- } +- } +- } +- + # C11/C++11 compiler flags setup. + # --------------------------- + if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) || +@@ -1240,45 +1220,6 @@ config("compiler_deterministic") { + } + } + +- # Makes builds independent of absolute file path. +- if (is_clang && strip_absolute_paths_from_debug_symbols) { +- # If debug option is given, clang includes $cwd in debug info by default. +- # For such build, this flag generates reproducible obj files even we use +- # different build directory like "out/feature_a" and "out/feature_b" if +- # we build same files with same compile flag. +- # Other paths are already given in relative, no need to normalize them. +- if (is_nacl) { +- # TODO(https://crbug.com/1231236): Use -ffile-compilation-dir= here. +- cflags += [ +- "-Xclang", +- "-fdebug-compilation-dir", +- "-Xclang", +- ".", +- ] +- } else { +- # -ffile-compilation-dir is an alias for both -fdebug-compilation-dir= +- # and -fcoverage-compilation-dir=. +- cflags += [ "-ffile-compilation-dir=." ] +- } +- if (!is_win) { +- # We don't use clang -cc1as on Windows (yet? https://crbug.com/762167) +- asmflags = [ "-Wa,-fdebug-compilation-dir,." ] +- } +- +- if (is_win && use_lld) { +- if (symbol_level == 2 || (is_clang && using_sanitizer)) { +- # Absolutize source file paths for PDB. Pass the real build directory +- # if the pdb contains source-level debug information and if linker +- # reproducibility is not critical. +- ldflags += [ "/PDBSourcePath:" + rebase_path(root_build_dir) ] +- } else { +- # Use a fake fixed base directory for paths in the pdb to make the pdb +- # output fully deterministic and independent of the build directory. +- ldflags += [ "/PDBSourcePath:o:\fake\prefix" ] +- } +- } +- } +- + # Tells the compiler not to use absolute paths when passing the default + # paths to the tools it invokes. We don't want this because we don't + # really need it and it can mess up the goma cache entries. +@@ -1558,7 +1499,7 @@ config("chromium_code") { + defines = [ "_HAS_NODISCARD" ] + } + } else { +- cflags = [ "-Wall" ] ++ cflags = [] + if (treat_warnings_as_errors) { + cflags += [ "-Werror" ] + +@@ -1567,10 +1508,6 @@ config("chromium_code") { + # well. + ldflags = [ "-Werror" ] + } +- if (is_clang) { +- # Enable extra warnings for chromium_code when we control the compiler. +- cflags += [ "-Wextra" ] +- } + + # In Chromium code, we define __STDC_foo_MACROS in order to get the + # C99 macros on Mac and Linux. +@@ -1579,15 +1516,6 @@ config("chromium_code") { + "__STDC_FORMAT_MACROS", + ] + +- if (!is_debug && !using_sanitizer && current_cpu != "s390x" && +- current_cpu != "s390" && current_cpu != "ppc64" && +- current_cpu != "mips" && current_cpu != "mips64") { +- # Non-chromium code is not guaranteed to compile cleanly with +- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are +- # disabled, so only do that for Release build. +- defines += [ "_FORTIFY_SOURCE=2" ] +- } +- + if (is_mac) { + cflags_objc = [ "-Wobjc-missing-property-synthesis" ] + cflags_objcc = [ "-Wobjc-missing-property-synthesis" ] +@@ -1955,7 +1883,8 @@ config("default_stack_frames") { + } + + # Default "optimization on" config. +-config("optimize") { ++config("optimize") { } ++config("xoptimize") { + if (is_win) { + if (chrome_pgo_phase != 2) { + # Favor size over speed, /O1 must be before the common flags. +@@ -1995,7 +1924,8 @@ config("optimize") { + } + + # Turn off optimizations. +-config("no_optimize") { ++config("no_optimize") { } ++config("xno_optimize") { + if (is_win) { + cflags = [ + "/Od", # Disable optimization. +@@ -2035,7 +1965,8 @@ config("no_optimize") { + # Turns up the optimization level. On Windows, this implies whole program + # optimization and link-time code generation which is very expensive and should + # be used sparingly. +-config("optimize_max") { ++config("optimize_max") { } ++config("xoptimize_max") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2068,7 +1999,8 @@ config("optimize_max") { + # + # TODO(crbug.com/621335) - rework how all of these configs are related + # so that we don't need this disclaimer. +-config("optimize_speed") { ++config("optimize_speed") { } ++config("xoptimize_speed") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2094,7 +2026,8 @@ config("optimize_speed") { + } + } + +-config("optimize_fuzzing") { ++config("optimize_fuzzing") { } ++config("xoptimize_fuzzing") { + cflags = [ "-O1" ] + common_optimize_on_cflags + rustflags = [ "-Copt-level=1" ] + ldflags = common_optimize_on_ldflags +@@ -2214,7 +2147,8 @@ config("win_pdbaltpath") { + } + + # Full symbols. +-config("symbols") { ++config("symbols") { } ++config("xsymbols") { + if (is_win) { + if (is_clang) { + cflags = [ "/Z7" ] # Debug information in the .obj files. +@@ -2328,7 +2262,8 @@ config("symbols") { + # Minimal symbols. + # This config guarantees to hold symbol for stack trace which are shown to user + # when crash happens in unittests running on buildbot. +-config("minimal_symbols") { ++config("minimal_symbols") { } ++config("xminimal_symbols") { + if (is_win) { + # Functions, files, and line tables only. + cflags = [] +@@ -2400,7 +2335,8 @@ config("minimal_symbols") { + # This configuration contains function names only. That is, the compiler is + # told to not generate debug information and the linker then just puts function + # names in the final debug information. +-config("no_symbols") { ++config("no_symbols") { } ++config("xno_symbols") { + if (is_win) { + ldflags = [ "/DEBUG" ] + diff --git a/www-client/chromium/files/chromium-96-coupondb-include.patch b/www-client/chromium/files/chromium-96-coupondb-include.patch new file mode 100644 index 0000000..d0938d2 --- /dev/null +++ b/www-client/chromium/files/chromium-96-coupondb-include.patch @@ -0,0 +1,13 @@ +diff --git a/chrome/browser/commerce/coupons/coupon_db.h b/chrome/browser/commerce/coupons/coupon_db.h +index f0758f43d..93e2dd3b5 100644 +--- a/chrome/browser/commerce/coupons/coupon_db.h ++++ b/chrome/browser/commerce/coupons/coupon_db.h +@@ -5,6 +5,8 @@ + #ifndef CHROME_BROWSER_COMMERCE_COUPONS_COUPON_DB_H_ + #define CHROME_BROWSER_COMMERCE_COUPONS_COUPON_DB_H_ + ++#include <vector> ++ + #include "base/callback_helpers.h" + #include "base/memory/weak_ptr.h" + #include "url/gurl.h" diff --git a/www-client/chromium/files/chromium-96-template-friend.patch b/www-client/chromium/files/chromium-96-template-friend.patch new file mode 100644 index 0000000..4b8a5e4 --- /dev/null +++ b/www-client/chromium/files/chromium-96-template-friend.patch @@ -0,0 +1,34 @@ +diff --git a/base/memory/safe_ref.h b/base/memory/safe_ref.h +index 7189f8786..162c6744f 100644 +--- a/base/memory/safe_ref.h ++++ b/base/memory/safe_ref.h +@@ -88,9 +88,10 @@ class SafeRef { + private: + template <typename U> + friend class SafeRef; +- friend SafeRef internal::MakeSafeRefFromWeakPtrInternals( ++ template <typename U> ++ friend SafeRef<U> internal::MakeSafeRefFromWeakPtrInternals( + const internal::WeakReference& ref, +- T* ptr); ++ U* ptr); + + // Construction from a from WeakPtr. Will CHECK() if the WeakPtr is already + // invalid. +diff --git a/base/memory/weak_ptr.h b/base/memory/weak_ptr.h +index 17f7b8f87..d042ecff2 100644 +--- a/base/memory/weak_ptr.h ++++ b/base/memory/weak_ptr.h +@@ -289,9 +289,10 @@ class WeakPtr : public internal::WeakPtrBase { + template <typename U> friend class WeakPtr; + friend class SupportsWeakPtr<T>; + friend class WeakPtrFactory<T>; +- friend SafeRef<T> internal::MakeSafeRefFromWeakPtrInternals( ++ template <typename U> ++ friend SafeRef<U> internal::MakeSafeRefFromWeakPtrInternals( + const internal::WeakReference& ref, +- T* ptr); ++ U* ptr); + + WeakPtr(const internal::WeakReference& ref, T* ptr) + : WeakPtrBase(ref, reinterpret_cast<uintptr_t>(ptr)) {} diff --git a/www-client/chromium/files/chromium-angle-inline.patch b/www-client/chromium/files/chromium-angle-inline.patch new file mode 100644 index 0000000..e8975d7 --- /dev/null +++ b/www-client/chromium/files/chromium-angle-inline.patch @@ -0,0 +1,118 @@ +From 4c0a23611b3906855db7b93da2f34aec57930cdf Mon Sep 17 00:00:00 2001 +From: Geoff Lang <geofflang@chromium.org> +Date: Tue, 25 Jun 2019 10:56:29 -0400 +Subject: [PATCH] Update ValidateSamplerParameterBase to use const parameters. + +ValidateSamplerParameterBase is called with both const and non-const +parameter pointers which caused our explicit template instantiations to +not cover all cases resulting in link errors. Force the parameters to +always be const so that our instantiations cover everything. + +BUG=angleproject:3555 + +Change-Id: Ibf92572ba80a689c75dcdc70e5153d9941da76f3 +Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1676305 +Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> +Commit-Queue: Geoff Lang <geofflang@chromium.org> +--- + +diff --git a/third_party/angle/src/libANGLE/validationES.cpp b/third_party/angle/src/libANGLE/validationES.cpp +index 041803a..3f402f6 100644 +--- a/third_party/angle/src/libANGLE/validationES.cpp ++++ b/third_party/angle/src/libANGLE/validationES.cpp +@@ -189,7 +189,9 @@ + } + + template <typename ParamType> +-bool ValidateTextureWrapModeValue(Context *context, ParamType *params, bool restrictedWrapModes) ++bool ValidateTextureWrapModeValue(Context *context, ++ const ParamType *params, ++ bool restrictedWrapModes) + { + switch (ConvertToGLenum(params[0])) + { +@@ -223,7 +225,9 @@ + } + + template <typename ParamType> +-bool ValidateTextureMinFilterValue(Context *context, ParamType *params, bool restrictedMinFilter) ++bool ValidateTextureMinFilterValue(Context *context, ++ const ParamType *params, ++ bool restrictedMinFilter) + { + switch (ConvertToGLenum(params[0])) + { +@@ -252,7 +256,7 @@ + } + + template <typename ParamType> +-bool ValidateTextureMagFilterValue(Context *context, ParamType *params) ++bool ValidateTextureMagFilterValue(Context *context, const ParamType *params) + { + switch (ConvertToGLenum(params[0])) + { +@@ -269,7 +273,7 @@ + } + + template <typename ParamType> +-bool ValidateTextureCompareModeValue(Context *context, ParamType *params) ++bool ValidateTextureCompareModeValue(Context *context, const ParamType *params) + { + // Acceptable mode parameters from GLES 3.0.2 spec, table 3.17 + switch (ConvertToGLenum(params[0])) +@@ -287,7 +291,7 @@ + } + + template <typename ParamType> +-bool ValidateTextureCompareFuncValue(Context *context, ParamType *params) ++bool ValidateTextureCompareFuncValue(Context *context, const ParamType *params) + { + // Acceptable function parameters from GLES 3.0.2 spec, table 3.17 + switch (ConvertToGLenum(params[0])) +@@ -311,7 +315,7 @@ + } + + template <typename ParamType> +-bool ValidateTextureSRGBDecodeValue(Context *context, ParamType *params) ++bool ValidateTextureSRGBDecodeValue(Context *context, const ParamType *params) + { + if (!context->getExtensions().textureSRGBDecode) + { +@@ -5996,7 +6000,7 @@ + GLenum pname, + GLsizei bufSize, + bool vectorParams, +- ParamType *params) ++ const ParamType *params) + { + if (context->getClientMajorVersion() < 3) + { +@@ -6099,8 +6103,13 @@ + return true; + } + +-template bool ValidateSamplerParameterBase(Context *, GLuint, GLenum, GLsizei, bool, GLfloat *); +-template bool ValidateSamplerParameterBase(Context *, GLuint, GLenum, GLsizei, bool, GLint *); ++template bool ValidateSamplerParameterBase(Context *, ++ GLuint, ++ GLenum, ++ GLsizei, ++ bool, ++ const GLfloat *); ++template bool ValidateSamplerParameterBase(Context *, GLuint, GLenum, GLsizei, bool, const GLint *); + template bool ValidateSamplerParameterBase(Context *, + GLuint, + GLenum, +diff --git a/third_party/angle/src/libANGLE/validationES.h b/third_party/angle/src/libANGLE/validationES.h +index c61bda6..4b06d28 100644 +--- a/third_party/angle/src/libANGLE/validationES.h ++++ b/third_party/angle/src/libANGLE/validationES.h +@@ -584,7 +584,7 @@ + GLenum pname, + GLsizei bufSize, + bool vectorParams, +- ParamType *params); ++ const ParamType *params); + + bool ValidateGetInternalFormativBase(Context *context, + GLenum target, diff --git a/www-client/chromium/files/chromium-axobj-ancestoriter-cat-84.patch b/www-client/chromium/files/chromium-axobj-ancestoriter-cat-84.patch new file mode 100644 index 0000000..d554334 --- /dev/null +++ b/www-client/chromium/files/chromium-axobj-ancestoriter-cat-84.patch @@ -0,0 +1,33 @@ +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 <haraken@chromium.org> +Commit-Queue: Piotr Tworek <ptworek@vewd.com> +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<AncestorsIterator> { + 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/www-client/chromium/files/chromium-axtree-incomplete-type-83.patch b/www-client/chromium/files/chromium-axtree-incomplete-type-83.patch new file mode 100644 index 0000000..7a8061a --- /dev/null +++ b/www-client/chromium/files/chromium-axtree-incomplete-type-83.patch @@ -0,0 +1,41 @@ +diff --git a/ui/accessibility/ax_tree.cc b/ui/accessibility/ax_tree.cc +index e90256109..76fa091e2 100644 +--- a/ui/accessibility/ax_tree.cc ++++ b/ui/accessibility/ax_tree.cc +@@ -567,15 +567,6 @@ struct AXTreeUpdateState { + const AXTree& tree; + }; + +-struct AXTree::NodeSetSizePosInSetInfo { +- NodeSetSizePosInSetInfo() = default; +- ~NodeSetSizePosInSetInfo() = default; +- +- int32_t pos_in_set = 0; +- int32_t set_size = 0; +- base::Optional<int> lowest_hierarchical_level; +-}; +- + struct AXTree::OrderedSetContent { + explicit OrderedSetContent(const AXNode* ordered_set = nullptr) + : ordered_set_(ordered_set) {} +diff --git a/ui/accessibility/ax_tree.h b/ui/accessibility/ax_tree.h +index a51ca8de4..ef1633212 100644 +--- a/ui/accessibility/ax_tree.h ++++ b/ui/accessibility/ax_tree.h +@@ -328,7 +328,15 @@ class AX_EXPORT AXTree : public AXNode::OwnerTree { + bool enable_extra_mac_nodes_ = false; + + // Contains pos_in_set and set_size data for an AXNode. +- struct NodeSetSizePosInSetInfo; ++ struct NodeSetSizePosInSetInfo { ++ NodeSetSizePosInSetInfo() = default; ++ ~NodeSetSizePosInSetInfo() = default; ++ ++ int32_t pos_in_set = 0; ++ int32_t set_size = 0; ++ base::Optional<int> 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/www-client/chromium/files/chromium-base-include-84-r1.patch b/www-client/chromium/files/chromium-base-include-84-r1.patch new file mode 100644 index 0000000..1a17ed2 --- /dev/null +++ b/www-client/chromium/files/chromium-base-include-84-r1.patch @@ -0,0 +1,24 @@ +diff --git a/base/check_op.h b/base/check_op.h +index 0943d0cc2..c16df8705 100644 +--- a/base/check_op.h ++++ b/base/check_op.h +@@ -6,6 +6,7 @@ + #define BASE_CHECK_OP_H_ + + #include <cstddef> ++#include <cstring> + #include <type_traits> + + #include "base/check.h" +diff --git a/base/debug/elf_reader.cc b/base/debug/elf_reader.cc +index aea4f3b03..1cf7bf50d 100644 +--- a/base/debug/elf_reader.cc ++++ b/base/debug/elf_reader.cc +@@ -4,6 +4,7 @@ + + #include "base/debug/elf_reader.h" + ++#include <string.h> + #include <arpa/inet.h> + #include <elf.h> + diff --git a/www-client/chromium/files/chromium-base-include-84-r2.patch b/www-client/chromium/files/chromium-base-include-84-r2.patch new file mode 100644 index 0000000..9ac745a --- /dev/null +++ b/www-client/chromium/files/chromium-base-include-84-r2.patch @@ -0,0 +1,12 @@ +diff --git a/base/check_op.h b/base/check_op.h +index 4816df4e8..0087dfe40 100644 +--- a/base/check_op.h ++++ b/base/check_op.h +@@ -6,6 +6,7 @@ + #define BASE_CHECK_OP_H_ + + #include <cstddef> ++#include <cstring> + #include <type_traits> + + #include "base/check.h" diff --git a/www-client/chromium/files/chromium-base-include-84.patch b/www-client/chromium/files/chromium-base-include-84.patch new file mode 100644 index 0000000..9c5846b --- /dev/null +++ b/www-client/chromium/files/chromium-base-include-84.patch @@ -0,0 +1,281 @@ +diff --git a/base/big_endian.cc b/base/big_endian.cc +index 9e9e672e4..a706c4a4e 100644 +--- a/base/big_endian.cc ++++ b/base/big_endian.cc +@@ -4,6 +4,8 @@ + + #include "base/big_endian.h" + ++#include <string.h> ++ + #include "base/numerics/checked_math.h" + #include "base/strings/string_piece.h" + +diff --git a/base/check_op.cc b/base/check_op.cc +index 7e0806464..fcdb8df16 100644 +--- a/base/check_op.cc ++++ b/base/check_op.cc +@@ -12,6 +12,7 @@ + #endif + + #include <cstdio> ++#include <cstring> + #include <sstream> + + namespace logging { +diff --git a/base/debug/elf_reader.cc b/base/debug/elf_reader.cc +index aea4f3b03..1cf7bf50d 100644 +--- a/base/debug/elf_reader.cc ++++ b/base/debug/elf_reader.cc +@@ -4,6 +4,7 @@ + + #include "base/debug/elf_reader.h" + ++#include <string.h> + #include <arpa/inet.h> + #include <elf.h> + +diff --git a/base/files/dir_reader_linux.h b/base/files/dir_reader_linux.h +index f12deeb2f..194cd92b0 100644 +--- a/base/files/dir_reader_linux.h ++++ b/base/files/dir_reader_linux.h +@@ -7,6 +7,7 @@ + + #include <errno.h> + #include <fcntl.h> ++#include <string.h> + #include <stddef.h> + #include <stdint.h> + #include <sys/syscall.h> +diff --git a/base/logging.h b/base/logging.h +index 7644ec188..848718612 100644 +--- a/base/logging.h ++++ b/base/logging.h +@@ -6,6 +6,7 @@ + #define BASE_LOGGING_H_ + + #include <stddef.h> ++#include <string.h> + + #include <cassert> + #include <cstdint> +diff --git a/base/metrics/metrics_hashes.cc b/base/metrics/metrics_hashes.cc +index ef7072a4a..9cd2d5a93 100644 +--- a/base/metrics/metrics_hashes.cc ++++ b/base/metrics/metrics_hashes.cc +@@ -4,6 +4,8 @@ + + #include "base/metrics/metrics_hashes.h" + ++#include <string.h> ++ + #include "base/hash/md5.h" + #include "base/logging.h" + #include "base/sys_byteorder.h" +diff --git a/base/process/environment_internal.cc b/base/process/environment_internal.cc +index 357140fa6..44f5c6603 100644 +--- a/base/process/environment_internal.cc ++++ b/base/process/environment_internal.cc +@@ -5,6 +5,7 @@ + #include "base/process/environment_internal.h" + + #include <stddef.h> ++#include <string.h> + + #include <vector> + +diff --git a/base/strings/string16.cc b/base/strings/string16.cc +index 84962e671..b7df7e161 100644 +--- a/base/strings/string16.cc ++++ b/base/strings/string16.cc +@@ -4,6 +4,8 @@ + + #include "base/strings/string16.h" + ++#include <string.h> ++ + #if defined(WCHAR_T_IS_UTF16) && !defined(_AIX) + + #error This file should not be used on 2-byte wchar_t systems +diff --git a/base/strings/string_piece.cc b/base/strings/string_piece.cc +index c789bc2a0..bfaf99db5 100644 +--- a/base/strings/string_piece.cc ++++ b/base/strings/string_piece.cc +@@ -5,6 +5,7 @@ + + #include "base/strings/string_piece.h" + ++#include <string.h> + #include <limits.h> + + #include <algorithm> +diff --git a/base/strings/sys_string_conversions_posix.cc b/base/strings/sys_string_conversions_posix.cc +index ad794cae2..dad27eaa5 100644 +--- a/base/strings/sys_string_conversions_posix.cc ++++ b/base/strings/sys_string_conversions_posix.cc +@@ -4,6 +4,7 @@ + + #include "base/strings/sys_string_conversions.h" + ++#include <string.h> + #include <stddef.h> + #include <wchar.h> + +diff --git a/base/synchronization/lock_impl.h b/base/synchronization/lock_impl.h +index 830b878e8..cdb66fdca 100644 +--- a/base/synchronization/lock_impl.h ++++ b/base/synchronization/lock_impl.h +@@ -16,6 +16,7 @@ + #elif defined(OS_POSIX) || defined(OS_FUCHSIA) + #include <errno.h> + #include <pthread.h> ++#include <string.h> + #endif + + namespace base { +diff --git a/base/trace_event/blame_context.cc b/base/trace_event/blame_context.cc +index e7599efa8..4b82c5526 100644 +--- a/base/trace_event/blame_context.cc ++++ b/base/trace_event/blame_context.cc +@@ -25,7 +25,7 @@ BlameContext::BlameContext(const char* category, + parent_scope_(parent_context ? parent_context->scope() : nullptr), + parent_id_(parent_context ? parent_context->id() : 0), + category_group_enabled_(nullptr) { +- DCHECK(!parent_context || !std::strcmp(name_, parent_context->name())) ++ DCHECK(!parent_context || !strcmp(name_, parent_context->name())) + << "Parent blame context must have the same name"; + } + +diff --git a/components/network_hints/renderer/dns_prefetch_queue.cc b/components/network_hints/renderer/dns_prefetch_queue.cc +index af34d8df0..7905ad49d 100644 +--- a/components/network_hints/renderer/dns_prefetch_queue.cc ++++ b/components/network_hints/renderer/dns_prefetch_queue.cc +@@ -6,8 +6,11 @@ + + #include "components/network_hints/renderer/dns_prefetch_queue.h" + ++#include <cstring> ++ + #include "base/logging.h" + ++ + namespace network_hints { + + DnsQueue::DnsQueue(BufferSize size) +diff --git a/components/omnibox/browser/on_device_head_model.cc b/components/omnibox/browser/on_device_head_model.cc +index 0fa2ff25e..ad5e9386f 100644 +--- a/components/omnibox/browser/on_device_head_model.cc ++++ b/components/omnibox/browser/on_device_head_model.cc +@@ -4,6 +4,7 @@ + + #include "components/omnibox/browser/on_device_head_model.h" + ++#include <cstring> + #include <algorithm> + + #include "base/logging.h" +diff --git a/google_apis/gcm/base/socket_stream.cc b/google_apis/gcm/base/socket_stream.cc +index d9759e767..bc33dca40 100644 +--- a/google_apis/gcm/base/socket_stream.cc ++++ b/google_apis/gcm/base/socket_stream.cc +@@ -177,7 +177,7 @@ void SocketInputStream::RebuildBuffer() { + DVLOG(1) << "Have " << unread_data_size + << " unread bytes remaining, shifting."; + // Move any remaining unread data to the start of the buffer; +- std::memmove(io_buffer_->data(), unread_data_ptr, unread_data_size); ++ memmove(io_buffer_->data(), unread_data_ptr, unread_data_size); + } else { + DVLOG(1) << "Have " << unread_data_size << " unread bytes remaining."; + } +diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.h b/gpu/command_buffer/service/gles2_cmd_decoder.h +index f4c3014d1..7491797e7 100644 +--- a/gpu/command_buffer/service/gles2_cmd_decoder.h ++++ b/gpu/command_buffer/service/gles2_cmd_decoder.h +@@ -9,6 +9,7 @@ + + #include <stdint.h> + ++#include <cstring> + #include <string> + #include <vector> + +diff --git a/gpu/vulkan/vulkan_device_queue.cc b/gpu/vulkan/vulkan_device_queue.cc +index 4d95330b5..a6a130593 100644 +--- a/gpu/vulkan/vulkan_device_queue.cc ++++ b/gpu/vulkan/vulkan_device_queue.cc +@@ -98,7 +98,7 @@ bool VulkanDeviceQueue::Initialize( + std::find_if(physical_device_info.extensions.begin(), + physical_device_info.extensions.end(), + [extension](const VkExtensionProperties& p) { +- return std::strcmp(extension, p.extensionName) == 0; ++ return strcmp(extension, p.extensionName) == 0; + }); + if (it == physical_device_info.extensions.end()) { + // On Fuchsia, some device extensions are provided by layers. +@@ -118,7 +118,7 @@ bool VulkanDeviceQueue::Initialize( + std::find_if(physical_device_info.extensions.begin(), + physical_device_info.extensions.end(), + [extension](const VkExtensionProperties& p) { +- return std::strcmp(extension, p.extensionName) == 0; ++ return strcmp(extension, p.extensionName) == 0; + }); + if (it == physical_device_info.extensions.end()) { + DLOG(ERROR) << "Optional Vulkan extension " << extension +@@ -255,4 +255,4 @@ std::unique_ptr<VulkanCommandPool> VulkanDeviceQueue::CreateCommandPool() { + return command_pool; + } + +-} // namespace gpu +\ No newline at end of file ++} // namespace gpu +diff --git a/jingle/glue/fake_ssl_client_socket.cc b/jingle/glue/fake_ssl_client_socket.cc +index 54691d935..c61c6c8a1 100644 +--- a/jingle/glue/fake_ssl_client_socket.cc ++++ b/jingle/glue/fake_ssl_client_socket.cc +@@ -7,6 +7,7 @@ + #include <stddef.h> + #include <stdint.h> + #include <cstdlib> ++#include <cstring> + #include <utility> + + #include "base/bind.h" +diff --git a/net/base/datagram_buffer.cc b/net/base/datagram_buffer.cc +index 922d8486e..b7f737405 100644 +--- a/net/base/datagram_buffer.cc ++++ b/net/base/datagram_buffer.cc +@@ -42,7 +42,7 @@ DatagramBuffer::~DatagramBuffer() {} + + void DatagramBuffer::Set(const char* buffer, size_t buf_len) { + length_ = buf_len; +- std::memcpy(data_.get(), buffer, buf_len); ++ memcpy(data_.get(), buffer, buf_len); + } + + char* DatagramBuffer::data() const { +diff --git a/net/reporting/reporting_header_parser.cc b/net/reporting/reporting_header_parser.cc +index 3701d15bf..fc144ed63 100644 +--- a/net/reporting/reporting_header_parser.cc ++++ b/net/reporting/reporting_header_parser.cc +@@ -81,7 +81,7 @@ HeaderEndpointOutcome ProcessEndpoint( + + GURL endpoint_url; + // Support path-absolute-URL string +- if (std::strspn(endpoint_url_string.c_str(), "/") == 1) { ++ if (strspn(endpoint_url_string.c_str(), "/") == 1) { + endpoint_url = group_key.origin.GetURL().Resolve(endpoint_url_string); + } else { + endpoint_url = GURL(endpoint_url_string); +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 fbfdfedff..3b9fd967e 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()) { diff --git a/www-client/chromium/files/chromium-blink-include-bitset-84.patch b/www-client/chromium/files/chromium-blink-include-bitset-84.patch new file mode 100644 index 0000000..95ed89c --- /dev/null +++ b/www-client/chromium/files/chromium-blink-include-bitset-84.patch @@ -0,0 +1,13 @@ +diff --git a/third_party/blink/common/input/web_touch_event.cc b/third_party/blink/common/input/web_touch_event.cc +index 7ef37fec6..b77be3bac 100644 +--- a/third_party/blink/common/input/web_touch_event.cc ++++ b/third_party/blink/common/input/web_touch_event.cc +@@ -4,6 +4,8 @@ + + #include "third_party/blink/public/common/input/web_touch_event.h" + ++#include <bitset> ++ + namespace blink { + + namespace { diff --git a/www-client/chromium/files/chromium-blink-include-limits-84.patch b/www-client/chromium/files/chromium-blink-include-limits-84.patch new file mode 100644 index 0000000..4c6b972 --- /dev/null +++ b/www-client/chromium/files/chromium-blink-include-limits-84.patch @@ -0,0 +1,13 @@ +diff --git a/third_party/blink/renderer/platform/graphics/compositor_element_id.cc b/third_party/blink/renderer/platform/graphics/compositor_element_id.cc +index 86486ca89..a92d89cf2 100644 +--- a/third_party/blink/renderer/platform/graphics/compositor_element_id.cc ++++ b/third_party/blink/renderer/platform/graphics/compositor_element_id.cc +@@ -4,6 +4,8 @@ + + #include "third_party/blink/renderer/platform/graphics/compositor_element_id.h" + ++#include <limits> ++ + namespace blink { + + UniqueObjectId NewUniqueObjectId() { diff --git a/www-client/chromium/files/chromium-blink-include-memory-83.patch b/www-client/chromium/files/chromium-blink-include-memory-83.patch new file mode 100644 index 0000000..b9a6929 --- /dev/null +++ b/www-client/chromium/files/chromium-blink-include-memory-83.patch @@ -0,0 +1,13 @@ +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 f5a7ab038..ef19cfaf6 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 <memory> ++ + #include "base/optional.h" + #include "services/network/public/mojom/trust_tokens.mojom-blink-forward.h" + #include "third_party/blink/renderer/core/core_export.h" diff --git a/www-client/chromium/files/chromium-blink-template.patch b/www-client/chromium/files/chromium-blink-template.patch new file mode 100644 index 0000000..edaf74b --- /dev/null +++ b/www-client/chromium/files/chromium-blink-template.patch @@ -0,0 +1,15 @@ +diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc +index d9fa696c9..028f9f270 100644 +--- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc ++++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc +@@ -1773,8 +1773,9 @@ void BaseRenderingContext2D::putImageData(ImageData* data, + data_length *= context_color_params.BytesPerPixel(); + if (!data_length.IsValid()) + return; ++ size_t dl=data_length.ValueOrDie(); + std::unique_ptr<uint8_t[]> converted_pixels( +- new uint8_t[data_length.ValueOrDie()]); ++ new uint8_t[dl]); + if (data->ImageDataInCanvasColorSettings( + ColorParams().ColorSpace(), PixelFormat(), converted_pixels.get(), + kRGBAColorType)) { diff --git a/www-client/chromium/files/chromium-bluetooth-tuple-84.patch b/www-client/chromium/files/chromium-bluetooth-tuple-84.patch new file mode 100644 index 0000000..b01978c --- /dev/null +++ b/www-client/chromium/files/chromium-bluetooth-tuple-84.patch @@ -0,0 +1,51 @@ +From ded9cf966b7a9b1986bd420866f7cec74e3c2eff Mon Sep 17 00:00:00 2001 +From: David Lechner <david@pybricks.com> +Date: Tue, 09 Jun 2020 11:15:09 -0500 +Subject: [PATCH] [bluetooth] fix compile error in dbus fake bluetooth device client + +This fixes a compile error that was accidentally introduced in +https://crrev.com/2191232. For unknown reasons this does not cause a +compile error with libc++, which is normally used with chromium, but +does cause an error with stdlibc++. + +The API for preparing write requests was not changed in +https://crrev.com/2191232, so the change that introduced this error +was incorrect anyway. This reverts the change that introduced the +error and adds the kTypeRequest argument to the call to WriteValue() +since that was the API that was actually changed in the prior CL. + +Bug: 1092470 +Change-Id: I6f6fe90ab42aea3db8cac95b69aee5095ea33b31 +--- + +diff --git a/device/bluetooth/dbus/fake_bluetooth_device_client.cc b/device/bluetooth/dbus/fake_bluetooth_device_client.cc +index f7136af..23c5fe3 100644 +--- a/device/bluetooth/dbus/fake_bluetooth_device_client.cc ++++ b/device/bluetooth/dbus/fake_bluetooth_device_client.cc +@@ -649,10 +649,9 @@ + for (const auto& prepare_write_request : prepare_write_requests_) { + bluez::BluezDBusManager::Get() + ->GetBluetoothGattCharacteristicClient() +- ->WriteValue(std::get<0>(prepare_write_request), +- std::get<1>(prepare_write_request), +- std::get<2>(prepare_write_request), base::DoNothing(), +- base::DoNothing()); ++ ->WriteValue(prepare_write_request.first, prepare_write_request.second, ++ bluetooth_gatt_characteristic::kTypeRequest, ++ base::DoNothing(), base::DoNothing()); + } + prepare_write_requests_.clear(); + std::move(callback).Run(); +diff --git a/device/bluetooth/dbus/fake_bluetooth_device_client.h b/device/bluetooth/dbus/fake_bluetooth_device_client.h +index b46715b5..98a9676 100644 +--- a/device/bluetooth/dbus/fake_bluetooth_device_client.h ++++ b/device/bluetooth/dbus/fake_bluetooth_device_client.h +@@ -384,7 +384,7 @@ + bool delay_start_discovery_; + + // Pending prepare write requests. +- std::vector<std::tuple<dbus::ObjectPath, std::vector<uint8_t>, std::string>> ++ std::vector<std::pair<dbus::ObjectPath, std::vector<uint8_t>>> + prepare_write_requests_; + + bool should_leave_connections_pending_; diff --git a/www-client/chromium/files/chromium-browser.xml b/www-client/chromium/files/chromium-browser.xml new file mode 100644 index 0000000..2c95a55 --- /dev/null +++ b/www-client/chromium/files/chromium-browser.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE default-apps SYSTEM "gnome-da-list.dtd"> +<default-apps> + <web-browsers> + <web-browser> + <name>Chromium</name> + <executable>chromium-browser</executable> + <command>chromium-browser %s</command> + <icon-name>chromium-browser</icon-name> + <run-in-terminal>false</run-in-terminal> + </web-browser> + </web-browsers> +</default-apps> diff --git a/www-client/chromium/files/chromium-build-gn-83.patch b/www-client/chromium/files/chromium-build-gn-83.patch new file mode 100644 index 0000000..e70ced6 --- /dev/null +++ b/www-client/chromium/files/chromium-build-gn-83.patch @@ -0,0 +1,36 @@ +diff --git a/BUILD.gn b/BUILD.gn +index 4c1f89045..2bfac42ed 100644 +--- a/BUILD.gn ++++ b/BUILD.gn +@@ -1375,17 +1375,17 @@ if (closure_compile) { + # Because of the source assignment filter, many targets end up over-filtering + # their sources if the output directory contains a platform name. Assert that + # this doesn't happen. http://crbug.com/548283 +-assert( +- filter_exclude([ "$root_build_dir/foo" ], +- # List copied from //build/config/BUILDCONFIG.gn. +- [ +- "*\bandroid/*", +- "*\bchromeos/*", +- "*\bcocoa/*", +- "*\bios/*", +- "*\blinux/*", +- "*\bmac/*", +- "*\bposix/*", +- "*\bwin/*", +- ]) != [], +- "Do not use a platform name in your output directory (found \"$root_build_dir\"). http://crbug.com/548283") ++#assert( ++# filter_exclude([ "$root_build_dir/foo" ], ++# # List copied from //build/config/BUILDCONFIG.gn. ++# [ ++# "*\bandroid/*", ++# "*\bchromeos/*", ++# "*\bcocoa/*", ++# "*\bios/*", ++# "*\blinux/*", ++# "*\bmac/*", ++# "*\bposix/*", ++# "*\bwin/*", ++# ]) != [], ++# "Do not use a platform name in your output directory (found \"$root_build_dir\"). http://crbug.com/548283") diff --git a/www-client/chromium/files/chromium-cc-matrics-include-84.patch b/www-client/chromium/files/chromium-cc-matrics-include-84.patch new file mode 100644 index 0000000..b1fa0c7 --- /dev/null +++ b/www-client/chromium/files/chromium-cc-matrics-include-84.patch @@ -0,0 +1,12 @@ +diff --git a/cc/metrics/lcd_text_metrics_reporter.h b/cc/metrics/lcd_text_metrics_reporter.h +index 921131797..b2aede915 100644 +--- a/cc/metrics/lcd_text_metrics_reporter.h ++++ b/cc/metrics/lcd_text_metrics_reporter.h +@@ -6,6 +6,7 @@ + #define CC_METRICS_LCD_TEXT_METRICS_REPORTER_H_ + + #include <cstdint> ++#include <memory> + + #include "base/time/time.h" + #include "cc/cc_export.h" diff --git a/www-client/chromium/files/chromium-cert-share-encrypted-85.patch b/www-client/chromium/files/chromium-cert-share-encrypted-85.patch new file mode 100644 index 0000000..1a393c4 --- /dev/null +++ b/www-client/chromium/files/chromium-cert-share-encrypted-85.patch @@ -0,0 +1,13 @@ +diff --git a/chrome/browser/nearby_sharing/certificates/nearby_share_encrypted_metadata_key.h b/chrome/browser/nearby_sharing/certificates/nearby_share_encrypted_metadata_key.h +index 2893bdeef..6732a12a8 100644 +--- a/chrome/browser/nearby_sharing/certificates/nearby_share_encrypted_metadata_key.h ++++ b/chrome/browser/nearby_sharing/certificates/nearby_share_encrypted_metadata_key.h +@@ -5,6 +5,8 @@ + #ifndef CHROME_BROWSER_NEARBY_SHARING_CERTIFICATES_NEARBY_SHARE_ENCRYPTED_METADATA_KEY_H_ + #define CHROME_BROWSER_NEARBY_SHARING_CERTIFICATES_NEARBY_SHARE_ENCRYPTED_METADATA_KEY_H_ + ++#include <stdint.h> ++ + #include <vector> + + // Holds the encrypted symmetric key--the key used to encrypt user/device diff --git a/www-client/chromium/files/chromium-char-max-84.patch b/www-client/chromium/files/chromium-char-max-84.patch new file mode 100644 index 0000000..0f9c654 --- /dev/null +++ b/www-client/chromium/files/chromium-char-max-84.patch @@ -0,0 +1,12 @@ +diff --git a/components/prefs/pref_value_map.cc b/components/prefs/pref_value_map.cc +index 8a203ac7a..18f160b6e 100644 +--- a/components/prefs/pref_value_map.cc ++++ b/components/prefs/pref_value_map.cc +@@ -4,6 +4,7 @@ + + #include "components/prefs/pref_value_map.h" + ++#include <climits> + #include <map> + #include <memory> + #include <utility> diff --git a/www-client/chromium/files/chromium-clang-format-path-82.patch b/www-client/chromium/files/chromium-clang-format-path-82.patch new file mode 100644 index 0000000..b250479 --- /dev/null +++ b/www-client/chromium/files/chromium-clang-format-path-82.patch @@ -0,0 +1,13 @@ +diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py b/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py +index dc3493cc3..6eeb34a93 100644 +--- a/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py ++++ b/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py +@@ -36,7 +36,7 @@ def init(root_src_dir): + + # //buildtools/<platform>/clang-format + _clang_format_command_path = os.path.join( +- buildtools_platform_dir, "clang-format{}".format(exe_suffix)) ++ "/usr/lib/llvm/10/bin", "clang-format{}".format(exe_suffix)) + + # //buildtools/<platform>/gn + _gn_command_path = os.path.join(buildtools_platform_dir, diff --git a/www-client/chromium/files/chromium-compiler-76.patch b/www-client/chromium/files/chromium-compiler-76.patch new file mode 100644 index 0000000..66f80c0 --- /dev/null +++ b/www-client/chromium/files/chromium-compiler-76.patch @@ -0,0 +1,160 @@ +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index f8a862a6b..41b30dd17 100644 +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -230,8 +230,6 @@ config("compiler") { + + configs += [ + # See the definitions below. +- ":clang_revision", +- ":compiler_cpu_abi", + ":compiler_codegen", + ":compiler_deterministic", + ] +@@ -471,20 +469,6 @@ config("compiler") { + } + } + +- if (is_clang && !is_nacl && !use_xcode_clang) { +- cflags += [ "-fcrash-diagnostics-dir=" + +- rebase_path("//tools/clang/crashreports", root_build_dir) ] +- +- cflags += [ +- # TODO(hans): Remove this once Clang generates better optimized debug info +- # by default. https://crbug.com/765793 +- "-Xclang", +- "-mllvm", +- "-Xclang", +- "-instcombine-lower-dbg-declare=0", +- ] +- } +- + # C11/C++11 compiler flags setup. + # --------------------------- + if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") { +@@ -1523,7 +1507,7 @@ config("chromium_code") { + defines = [ "_HAS_NODISCARD" ] + } + } else { +- cflags = [ "-Wall" ] ++ cflags = [] + if (treat_warnings_as_errors) { + cflags += [ "-Werror" ] + +@@ -1532,10 +1516,6 @@ config("chromium_code") { + # well. + ldflags = [ "-Werror" ] + } +- if (is_clang) { +- # Enable extra warnings for chromium_code when we control the compiler. +- cflags += [ "-Wextra" ] +- } + + # In Chromium code, we define __STDC_foo_MACROS in order to get the + # C99 macros on Mac and Linux. +@@ -1544,15 +1524,6 @@ config("chromium_code") { + "__STDC_FORMAT_MACROS", + ] + +- if (!is_debug && !using_sanitizer && current_cpu != "s390x" && +- current_cpu != "s390" && current_cpu != "ppc64" && +- current_cpu != "mips" && current_cpu != "mips64") { +- # Non-chromium code is not guaranteed to compile cleanly with +- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are +- # disabled, so only do that for Release build. +- defines += [ "_FORTIFY_SOURCE=2" ] +- } +- + if (is_mac) { + cflags_objc = [ "-Wobjc-missing-property-synthesis" ] + cflags_objcc = [ "-Wobjc-missing-property-synthesis" ] +@@ -1941,7 +1912,8 @@ config("default_stack_frames") { + } + + # Default "optimization on" config. +-config("optimize") { ++config("optimize") { } ++config("xoptimize") { + if (is_win) { + # TODO(thakis): Remove is_clang here, https://crbug.com/598772 + if (is_official_build && full_wpo_on_official && !is_clang) { +@@ -1975,7 +1947,8 @@ config("optimize") { + } + + # Same config as 'optimize' but without the WPO flag. +-config("optimize_no_wpo") { ++config("optimize_no_wpo") { } ++config("xoptimize_no_wpo") { + if (is_win) { + # Favor size over speed, /O1 must be before the common flags. The GYP + # build also specifies /Os and /GF but these are implied by /O1. +@@ -1998,7 +1971,8 @@ config("optimize_no_wpo") { + } + + # Turn off optimizations. +-config("no_optimize") { ++config("no_optimize") { } ++config("xno_optimize") { + if (is_win) { + cflags = [ + "/Od", # Disable optimization. +@@ -2026,7 +2000,8 @@ config("no_optimize") { + # Turns up the optimization level. On Windows, this implies whole program + # optimization and link-time code generation which is very expensive and should + # be used sparingly. +-config("optimize_max") { ++config("optimize_max") { } ++config("xoptimize_max") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2073,7 +2048,8 @@ config("optimize_max") { + # + # TODO(crbug.com/621335) - rework how all of these configs are related + # so that we don't need this disclaimer. +-config("optimize_speed") { ++config("optimize_speed") { } ++config("xoptimize_speed") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2111,7 +2087,8 @@ config("optimize_speed") { + } + } + +-config("optimize_fuzzing") { ++config("optimize_fuzzing") { } ++config("xoptimize_fuzzing") { + cflags = [ "-O1" ] + common_optimize_on_cflags + ldflags = common_optimize_on_ldflags + visibility = [ ":default_optimization" ] +@@ -2213,7 +2190,8 @@ config("win_pdbaltpath") { + } + + # Full symbols. +-config("symbols") { ++config("symbols") { } ++config("xsymbols") { + if (is_win) { + if (use_goma || is_clang) { + # Note that with VC++ this requires is_win_fastlink, enforced elsewhere. +@@ -2323,7 +2301,8 @@ config("symbols") { + # Minimal symbols. + # This config guarantees to hold symbol for stack trace which are shown to user + # when crash happens in unittests running on buildbot. +-config("minimal_symbols") { ++config("minimal_symbols") { } ++config("xminimal_symbols") { + if (is_win) { + # Linker symbols for backtraces only. + cflags = [] +@@ -2380,7 +2359,8 @@ config("minimal_symbols") { + } + + # No symbols. +-config("no_symbols") { ++config("no_symbols") { } ++config("xno_symbols") { + if (!is_win) { + cflags = [ "-g0" ] + asmflags = cflags diff --git a/www-client/chromium/files/chromium-compiler-77.patch b/www-client/chromium/files/chromium-compiler-77.patch new file mode 100644 index 0000000..c311e47 --- /dev/null +++ b/www-client/chromium/files/chromium-compiler-77.patch @@ -0,0 +1,160 @@ +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index 72cea8e47..1c59181f8 100644 +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -233,8 +233,6 @@ config("compiler") { + + configs += [ + # See the definitions below. +- ":clang_revision", +- ":compiler_cpu_abi", + ":compiler_codegen", + ":compiler_deterministic", + ] +@@ -474,20 +472,6 @@ config("compiler") { + } + } + +- if (is_clang && !is_nacl && !use_xcode_clang) { +- cflags += [ "-fcrash-diagnostics-dir=" + +- rebase_path("//tools/clang/crashreports", root_build_dir) ] +- +- cflags += [ +- # TODO(hans): Remove this once Clang generates better optimized debug info +- # by default. https://crbug.com/765793 +- "-Xclang", +- "-mllvm", +- "-Xclang", +- "-instcombine-lower-dbg-declare=0", +- ] +- } +- + # C11/C++11 compiler flags setup. + # --------------------------- + if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") { +@@ -1533,7 +1517,7 @@ config("chromium_code") { + defines = [ "_HAS_NODISCARD" ] + } + } else { +- cflags = [ "-Wall" ] ++ cflags = [] + if (treat_warnings_as_errors) { + cflags += [ "-Werror" ] + +@@ -1542,10 +1526,6 @@ config("chromium_code") { + # well. + ldflags = [ "-Werror" ] + } +- if (is_clang) { +- # Enable extra warnings for chromium_code when we control the compiler. +- cflags += [ "-Wextra" ] +- } + + # In Chromium code, we define __STDC_foo_MACROS in order to get the + # C99 macros on Mac and Linux. +@@ -1554,15 +1534,6 @@ config("chromium_code") { + "__STDC_FORMAT_MACROS", + ] + +- if (!is_debug && !using_sanitizer && current_cpu != "s390x" && +- current_cpu != "s390" && current_cpu != "ppc64" && +- current_cpu != "mips" && current_cpu != "mips64") { +- # Non-chromium code is not guaranteed to compile cleanly with +- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are +- # disabled, so only do that for Release build. +- defines += [ "_FORTIFY_SOURCE=2" ] +- } +- + if (is_mac) { + cflags_objc = [ "-Wobjc-missing-property-synthesis" ] + cflags_objcc = [ "-Wobjc-missing-property-synthesis" ] +@@ -1951,7 +1922,8 @@ config("default_stack_frames") { + } + + # Default "optimization on" config. +-config("optimize") { ++config("optimize") { } ++config("xoptimize") { + if (is_win) { + # TODO(thakis): Remove is_clang here, https://crbug.com/598772 + if (is_official_build && full_wpo_on_official && !is_clang) { +@@ -1985,7 +1957,8 @@ config("optimize") { + } + + # Same config as 'optimize' but without the WPO flag. +-config("optimize_no_wpo") { ++config("optimize_no_wpo") { } ++config("xoptimize_no_wpo") { + if (is_win) { + # Favor size over speed, /O1 must be before the common flags. The GYP + # build also specifies /Os and /GF but these are implied by /O1. +@@ -2008,7 +1981,8 @@ config("optimize_no_wpo") { + } + + # Turn off optimizations. +-config("no_optimize") { ++config("no_optimize") { } ++config("xno_optimize") { + if (is_win) { + cflags = [ + "/Od", # Disable optimization. +@@ -2036,7 +2010,8 @@ config("no_optimize") { + # Turns up the optimization level. On Windows, this implies whole program + # optimization and link-time code generation which is very expensive and should + # be used sparingly. +-config("optimize_max") { ++config("optimize_max") { } ++config("xoptimize_max") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2083,7 +2058,8 @@ config("optimize_max") { + # + # TODO(crbug.com/621335) - rework how all of these configs are related + # so that we don't need this disclaimer. +-config("optimize_speed") { ++config("optimize_speed") { } ++config("xoptimize_speed") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2121,7 +2097,8 @@ config("optimize_speed") { + } + } + +-config("optimize_fuzzing") { ++config("optimize_fuzzing") { } ++config("xoptimize_fuzzing") { + cflags = [ "-O1" ] + common_optimize_on_cflags + ldflags = common_optimize_on_ldflags + visibility = [ ":default_optimization" ] +@@ -2223,7 +2200,8 @@ config("win_pdbaltpath") { + } + + # Full symbols. +-config("symbols") { ++config("symbols") { } ++config("xsymbols") { + if (is_win) { + if (use_goma || is_clang) { + # Note that with VC++ this requires is_win_fastlink, enforced elsewhere. +@@ -2333,7 +2311,8 @@ config("symbols") { + # Minimal symbols. + # This config guarantees to hold symbol for stack trace which are shown to user + # when crash happens in unittests running on buildbot. +-config("minimal_symbols") { ++config("minimal_symbols") { } ++config("xminimal_symbols") { + if (is_win) { + # Functions, files, and line tables only. + cflags = [] +@@ -2388,7 +2367,8 @@ config("minimal_symbols") { + } + + # No symbols. +-config("no_symbols") { ++config("no_symbols") { } ++config("xno_symbols") { + if (!is_win) { + cflags = [ "-g0" ] + asmflags = cflags diff --git a/www-client/chromium/files/chromium-compiler-78.patch b/www-client/chromium/files/chromium-compiler-78.patch new file mode 100644 index 0000000..77a8f60 --- /dev/null +++ b/www-client/chromium/files/chromium-compiler-78.patch @@ -0,0 +1,160 @@ +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index bd7245d9a..71d27bcf9 100644 +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -248,8 +248,6 @@ config("compiler") { + + configs += [ + # See the definitions below. +- ":clang_revision", +- ":compiler_cpu_abi", + ":compiler_codegen", + ":compiler_deterministic", + ] +@@ -489,20 +487,6 @@ config("compiler") { + } + } + +- if (is_clang && !is_nacl && !use_xcode_clang) { +- cflags += [ "-fcrash-diagnostics-dir=" + +- rebase_path("//tools/clang/crashreports", root_build_dir) ] +- +- cflags += [ +- # TODO(hans): Remove this once Clang generates better optimized debug info +- # by default. https://crbug.com/765793 +- "-Xclang", +- "-mllvm", +- "-Xclang", +- "-instcombine-lower-dbg-declare=0", +- ] +- } +- + # C11/C++11 compiler flags setup. + # --------------------------- + if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") { +@@ -1538,7 +1522,7 @@ config("chromium_code") { + defines = [ "_HAS_NODISCARD" ] + } + } else { +- cflags = [ "-Wall" ] ++ cflags = [] + if (treat_warnings_as_errors) { + cflags += [ "-Werror" ] + +@@ -1547,10 +1531,6 @@ config("chromium_code") { + # well. + ldflags = [ "-Werror" ] + } +- if (is_clang) { +- # Enable extra warnings for chromium_code when we control the compiler. +- cflags += [ "-Wextra" ] +- } + + # In Chromium code, we define __STDC_foo_MACROS in order to get the + # C99 macros on Mac and Linux. +@@ -1559,15 +1539,6 @@ config("chromium_code") { + "__STDC_FORMAT_MACROS", + ] + +- if (!is_debug && !using_sanitizer && current_cpu != "s390x" && +- current_cpu != "s390" && current_cpu != "ppc64" && +- current_cpu != "mips" && current_cpu != "mips64") { +- # Non-chromium code is not guaranteed to compile cleanly with +- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are +- # disabled, so only do that for Release build. +- defines += [ "_FORTIFY_SOURCE=2" ] +- } +- + if (is_mac) { + cflags_objc = [ "-Wobjc-missing-property-synthesis" ] + cflags_objcc = [ "-Wobjc-missing-property-synthesis" ] +@@ -1968,7 +1939,8 @@ config("default_stack_frames") { + } + + # Default "optimization on" config. +-config("optimize") { ++config("optimize") { } ++config("xoptimize") { + if (is_win) { + # TODO(thakis): Remove is_clang here, https://crbug.com/598772 + if (is_official_build && full_wpo_on_official && !is_clang) { +@@ -1994,7 +1966,8 @@ config("optimize") { + } + + # Same config as 'optimize' but without the WPO flag. +-config("optimize_no_wpo") { ++config("optimize_no_wpo") { } ++config("xoptimize_no_wpo") { + if (is_win) { + # Favor size over speed, /O1 must be before the common flags. The GYP + # build also specifies /Os and /GF but these are implied by /O1. +@@ -2017,7 +1990,8 @@ config("optimize_no_wpo") { + } + + # Turn off optimizations. +-config("no_optimize") { ++config("no_optimize") { } ++config("xno_optimize") { + if (is_win) { + cflags = [ + "/Od", # Disable optimization. +@@ -2045,7 +2019,8 @@ config("no_optimize") { + # Turns up the optimization level. On Windows, this implies whole program + # optimization and link-time code generation which is very expensive and should + # be used sparingly. +-config("optimize_max") { ++config("optimize_max") { } ++config("xoptimize_max") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2084,7 +2059,8 @@ config("optimize_max") { + # + # TODO(crbug.com/621335) - rework how all of these configs are related + # so that we don't need this disclaimer. +-config("optimize_speed") { ++config("optimize_speed") { } ++config("xoptimize_speed") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2114,7 +2090,8 @@ config("optimize_speed") { + } + } + +-config("optimize_fuzzing") { ++config("optimize_fuzzing") { } ++config("xoptimize_fuzzing") { + cflags = [ "-O1" ] + common_optimize_on_cflags + ldflags = common_optimize_on_ldflags + visibility = [ ":default_optimization" ] +@@ -2216,7 +2193,8 @@ config("win_pdbaltpath") { + } + + # Full symbols. +-config("symbols") { ++config("symbols") { } ++config("xsymbols") { + if (is_win) { + if (use_goma || is_clang) { + # Note that with VC++ this requires is_win_fastlink, enforced elsewhere. +@@ -2326,7 +2304,8 @@ config("symbols") { + # Minimal symbols. + # This config guarantees to hold symbol for stack trace which are shown to user + # when crash happens in unittests running on buildbot. +-config("minimal_symbols") { ++config("minimal_symbols") { } ++config("xminimal_symbols") { + if (is_win) { + # Functions, files, and line tables only. + cflags = [] +@@ -2381,7 +2360,8 @@ config("minimal_symbols") { + } + + # No symbols. +-config("no_symbols") { ++config("no_symbols") { } ++config("xno_symbols") { + if (!is_win) { + cflags = [ "-g0" ] + asmflags = cflags diff --git a/www-client/chromium/files/chromium-compiler-82.patch b/www-client/chromium/files/chromium-compiler-82.patch new file mode 100644 index 0000000..62ca00c --- /dev/null +++ b/www-client/chromium/files/chromium-compiler-82.patch @@ -0,0 +1,166 @@ +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index e40194e3f..b47385c34 100644 +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -260,8 +260,6 @@ config("compiler") { + + configs += [ + # See the definitions below. +- ":clang_revision", +- ":compiler_cpu_abi", + ":compiler_codegen", + ":compiler_deterministic", + ] +@@ -486,26 +484,6 @@ config("compiler") { + } + } + +- if (is_clang && !is_nacl && !use_xcode_clang) { +- cflags += [ "-fcrash-diagnostics-dir=" + +- rebase_path("//tools/clang/crashreports", root_build_dir) ] +- +- cflags += [ +- # TODO(hans): Remove this once Clang generates better optimized debug info +- # by default. https://crbug.com/765793 +- "-Xclang", +- "-mllvm", +- "-Xclang", +- "-instcombine-lower-dbg-declare=0", +- ] +- +- if (target_os != "chromeos") { +- # TODO(https://crbug.com/1049161): Remove '-DCLANG_SPAWN_CC1=ON' from build.py instead +- # once this change has marinated a bit. +- cflags += [ "-fintegrated-cc1" ] +- } +- } +- + # C11/C++11 compiler flags setup. + # --------------------------- + if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") { +@@ -1577,7 +1555,7 @@ config("chromium_code") { + defines = [ "_HAS_NODISCARD" ] + } + } else { +- cflags = [ "-Wall" ] ++ cflags = [ ] + if (treat_warnings_as_errors) { + cflags += [ "-Werror" ] + +@@ -1586,10 +1564,6 @@ config("chromium_code") { + # well. + ldflags = [ "-Werror" ] + } +- if (is_clang) { +- # Enable extra warnings for chromium_code when we control the compiler. +- cflags += [ "-Wextra" ] +- } + + # In Chromium code, we define __STDC_foo_MACROS in order to get the + # C99 macros on Mac and Linux. +@@ -1598,15 +1572,6 @@ config("chromium_code") { + "__STDC_FORMAT_MACROS", + ] + +- if (!is_debug && !using_sanitizer && current_cpu != "s390x" && +- current_cpu != "s390" && current_cpu != "ppc64" && +- current_cpu != "mips" && current_cpu != "mips64") { +- # Non-chromium code is not guaranteed to compile cleanly with +- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are +- # disabled, so only do that for Release build. +- defines += [ "_FORTIFY_SOURCE=2" ] +- } +- + if (is_mac) { + cflags_objc = [ "-Wobjc-missing-property-synthesis" ] + cflags_objcc = [ "-Wobjc-missing-property-synthesis" ] +@@ -2010,7 +1975,8 @@ config("default_stack_frames") { + } + + # Default "optimization on" config. +-config("optimize") { ++config("optimize") { } ++config("xoptimize") { + if (is_win) { + # TODO(thakis): Remove is_clang here, https://crbug.com/598772 + if (is_official_build && full_wpo_on_official && !is_clang) { +@@ -2036,7 +2002,8 @@ config("optimize") { + } + + # Same config as 'optimize' but without the WPO flag. +-config("optimize_no_wpo") { ++config("optimize_no_wpo") { } ++config("xoptimize_no_wpo") { + if (is_win) { + # Favor size over speed, /O1 must be before the common flags. The GYP + # build also specifies /Os and /GF but these are implied by /O1. +@@ -2059,7 +2026,8 @@ config("optimize_no_wpo") { + } + + # Turn off optimizations. +-config("no_optimize") { ++config("no_optimize") { } ++config("xno_optimize") { + if (is_win) { + cflags = [ + "/Od", # Disable optimization. +@@ -2093,7 +2061,8 @@ config("no_optimize") { + # Turns up the optimization level. On Windows, this implies whole program + # optimization and link-time code generation which is very expensive and should + # be used sparingly. +-config("optimize_max") { ++config("optimize_max") { } ++config("xoptimize_max") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2132,7 +2101,8 @@ config("optimize_max") { + # + # TODO(crbug.com/621335) - rework how all of these configs are related + # so that we don't need this disclaimer. +-config("optimize_speed") { ++config("optimize_speed") { } ++config("xoptimize_speed") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2162,7 +2132,8 @@ config("optimize_speed") { + } + } + +-config("optimize_fuzzing") { ++config("optimize_fuzzing") { } ++config("xoptimize_fuzzing") { + cflags = [ "-O1" ] + common_optimize_on_cflags + ldflags = common_optimize_on_ldflags + visibility = [ ":default_optimization" ] +@@ -2278,7 +2249,8 @@ config("win_pdbaltpath") { + } + + # Full symbols. +-config("symbols") { ++config("symbols") { } ++config("xsymbols") { + if (is_win) { + if (use_goma || is_clang) { + # Note that with VC++ this requires is_win_fastlink, enforced elsewhere. +@@ -2388,7 +2360,8 @@ config("symbols") { + # Minimal symbols. + # This config guarantees to hold symbol for stack trace which are shown to user + # when crash happens in unittests running on buildbot. +-config("minimal_symbols") { ++config("minimal_symbols") { } ++config("xminimal_symbols") { + if (is_win) { + # Functions, files, and line tables only. + cflags = [] +@@ -2443,7 +2416,8 @@ config("minimal_symbols") { + } + + # No symbols. +-config("no_symbols") { ++config("no_symbols") { } ++config("xno_symbols") { + if (!is_win) { + cflags = [ "-g0" ] + asmflags = cflags diff --git a/www-client/chromium/files/chromium-compiler-83.patch b/www-client/chromium/files/chromium-compiler-83.patch new file mode 100644 index 0000000..cb3c343 --- /dev/null +++ b/www-client/chromium/files/chromium-compiler-83.patch @@ -0,0 +1,150 @@ +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index 6f096b953..0e84f4450 100644 +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -261,8 +261,6 @@ config("compiler") { + + configs += [ + # See the definitions below. +- ":clang_revision", +- ":compiler_cpu_abi", + ":compiler_codegen", + ":compiler_deterministic", + ] +@@ -485,20 +483,6 @@ config("compiler") { + } + } + +- if (is_clang && !is_nacl && !use_xcode_clang) { +- cflags += [ "-fcrash-diagnostics-dir=" + +- rebase_path("//tools/clang/crashreports", root_build_dir) ] +- +- cflags += [ +- # TODO(hans): Remove this once Clang generates better optimized debug info +- # by default. https://crbug.com/765793 +- "-Xclang", +- "-mllvm", +- "-Xclang", +- "-instcombine-lower-dbg-declare=0", +- ] +- } +- + # C11/C++11 compiler flags setup. + # --------------------------- + if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") { +@@ -1545,7 +1529,7 @@ config("chromium_code") { + defines = [ "_HAS_NODISCARD" ] + } + } else { +- cflags = [ "-Wall" ] ++ cflags = [ ] + if (treat_warnings_as_errors) { + cflags += [ "-Werror" ] + +@@ -1554,10 +1538,6 @@ config("chromium_code") { + # well. + ldflags = [ "-Werror" ] + } +- if (is_clang) { +- # Enable extra warnings for chromium_code when we control the compiler. +- cflags += [ "-Wextra" ] +- } + + # In Chromium code, we define __STDC_foo_MACROS in order to get the + # C99 macros on Mac and Linux. +@@ -1566,15 +1546,6 @@ config("chromium_code") { + "__STDC_FORMAT_MACROS", + ] + +- if (!is_debug && !using_sanitizer && current_cpu != "s390x" && +- current_cpu != "s390" && current_cpu != "ppc64" && +- current_cpu != "mips" && current_cpu != "mips64") { +- # Non-chromium code is not guaranteed to compile cleanly with +- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are +- # disabled, so only do that for Release build. +- defines += [ "_FORTIFY_SOURCE=2" ] +- } +- + if (is_mac) { + cflags_objc = [ "-Wobjc-missing-property-synthesis" ] + cflags_objcc = [ "-Wobjc-missing-property-synthesis" ] +@@ -1973,7 +1944,8 @@ config("default_stack_frames") { + } + + # Default "optimization on" config. +-config("optimize") { ++config("optimize") { } ++config("xoptimize") { + if (is_win) { + # Favor size over speed, /O1 must be before the common flags. + # /O1 implies /Os and /GF. +@@ -1994,7 +1966,8 @@ config("optimize") { + } + + # Turn off optimizations. +-config("no_optimize") { ++config("no_optimize") { } ++config("xno_optimize") { + if (is_win) { + cflags = [ + "/Od", # Disable optimization. +@@ -2028,7 +2001,8 @@ config("no_optimize") { + # Turns up the optimization level. On Windows, this implies whole program + # optimization and link-time code generation which is very expensive and should + # be used sparingly. +-config("optimize_max") { ++config("optimize_max") { } ++config("xoptimize_max") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2060,7 +2034,8 @@ config("optimize_max") { + # + # TODO(crbug.com/621335) - rework how all of these configs are related + # so that we don't need this disclaimer. +-config("optimize_speed") { ++config("optimize_speed") { } ++config("xoptimize_speed") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2085,7 +2060,8 @@ config("optimize_speed") { + } + } + +-config("optimize_fuzzing") { ++config("optimize_fuzzing") { } ++config("xoptimize_fuzzing") { + cflags = [ "-O1" ] + common_optimize_on_cflags + ldflags = common_optimize_on_ldflags + visibility = [ ":default_optimization" ] +@@ -2201,7 +2177,8 @@ config("win_pdbaltpath") { + } + + # Full symbols. +-config("symbols") { ++config("symbols") { } ++config("xsymbols") { + if (is_win) { + if (is_clang) { + cflags = [ "/Z7" ] # Debug information in the .obj files. +@@ -2307,7 +2284,8 @@ config("symbols") { + # Minimal symbols. + # This config guarantees to hold symbol for stack trace which are shown to user + # when crash happens in unittests running on buildbot. +-config("minimal_symbols") { ++config("minimal_symbols") { } ++config("xminimal_symbols") { + if (is_win) { + # Functions, files, and line tables only. + cflags = [] +@@ -2364,7 +2342,8 @@ config("minimal_symbols") { + # This configuration contains function names only. That is, the compiler is + # told to not generate debug information and the linker then just puts function + # names in the final debug information. +-config("no_symbols") { ++config("no_symbols") { } ++config("xno_symbols") { + if (is_win) { + ldflags = [ "/DEBUG" ] + diff --git a/www-client/chromium/files/chromium-compiler-84-r1.patch b/www-client/chromium/files/chromium-compiler-84-r1.patch new file mode 100644 index 0000000..2ad6be7 --- /dev/null +++ b/www-client/chromium/files/chromium-compiler-84-r1.patch @@ -0,0 +1,150 @@ +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index 571d37f9d..fc7905808 100644 +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -265,8 +265,6 @@ config("compiler") { + + configs += [ + # See the definitions below. +- ":clang_revision", +- ":compiler_cpu_abi", + ":compiler_codegen", + ":compiler_deterministic", + ] +@@ -495,20 +493,6 @@ config("compiler") { + ldflags += [ "-Wl,-z,keep-text-section-prefix" ] + } + +- if (is_clang && !is_nacl && !use_xcode_clang) { +- cflags += [ "-fcrash-diagnostics-dir=" + +- rebase_path("//tools/clang/crashreports", root_build_dir) ] +- +- cflags += [ +- # TODO(hans): Remove this once Clang generates better optimized debug info +- # by default. https://crbug.com/765793 +- "-Xclang", +- "-mllvm", +- "-Xclang", +- "-instcombine-lower-dbg-declare=0", +- ] +- } +- + # C11/C++11 compiler flags setup. + # --------------------------- + if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") { +@@ -1543,7 +1527,7 @@ config("chromium_code") { + defines = [ "_HAS_NODISCARD" ] + } + } else { +- cflags = [ "-Wall" ] ++ cflags = [ ] + if (treat_warnings_as_errors) { + cflags += [ "-Werror" ] + +@@ -1552,10 +1536,6 @@ config("chromium_code") { + # well. + ldflags = [ "-Werror" ] + } +- if (is_clang) { +- # Enable extra warnings for chromium_code when we control the compiler. +- cflags += [ "-Wextra" ] +- } + + # In Chromium code, we define __STDC_foo_MACROS in order to get the + # C99 macros on Mac and Linux. +@@ -1564,15 +1544,6 @@ config("chromium_code") { + "__STDC_FORMAT_MACROS", + ] + +- if (!is_debug && !using_sanitizer && current_cpu != "s390x" && +- current_cpu != "s390" && current_cpu != "ppc64" && +- current_cpu != "mips" && current_cpu != "mips64") { +- # Non-chromium code is not guaranteed to compile cleanly with +- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are +- # disabled, so only do that for Release build. +- defines += [ "_FORTIFY_SOURCE=2" ] +- } +- + if (is_mac) { + cflags_objc = [ "-Wobjc-missing-property-synthesis" ] + cflags_objcc = [ "-Wobjc-missing-property-synthesis" ] +@@ -1970,7 +1941,8 @@ config("default_stack_frames") { + } + + # Default "optimization on" config. +-config("optimize") { ++config("optimize") { } ++config("xoptimize") { + if (is_win) { + if (chrome_pgo_phase != 2) { + # Favor size over speed, /O1 must be before the common flags. +@@ -1997,7 +1969,8 @@ config("optimize") { + } + + # Turn off optimizations. +-config("no_optimize") { ++config("no_optimize") { } ++config("xno_optimize") { + if (is_win) { + cflags = [ + "/Od", # Disable optimization. +@@ -2031,7 +2004,8 @@ config("no_optimize") { + # Turns up the optimization level. On Windows, this implies whole program + # optimization and link-time code generation which is very expensive and should + # be used sparingly. +-config("optimize_max") { ++config("optimize_max") { } ++config("xoptimize_max") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2063,7 +2037,8 @@ config("optimize_max") { + # + # TODO(crbug.com/621335) - rework how all of these configs are related + # so that we don't need this disclaimer. +-config("optimize_speed") { ++config("optimize_speed") { } ++config("xoptimize_speed") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2088,7 +2063,8 @@ config("optimize_speed") { + } + } + +-config("optimize_fuzzing") { ++config("optimize_fuzzing") { } ++config("xoptimize_fuzzing") { + cflags = [ "-O1" ] + common_optimize_on_cflags + ldflags = common_optimize_on_ldflags + visibility = [ ":default_optimization" ] +@@ -2204,7 +2180,8 @@ config("win_pdbaltpath") { + } + + # Full symbols. +-config("symbols") { ++config("symbols") { } ++config("xsymbols") { + if (is_win) { + if (is_clang) { + cflags = [ "/Z7" ] # Debug information in the .obj files. +@@ -2310,7 +2287,8 @@ config("symbols") { + # Minimal symbols. + # This config guarantees to hold symbol for stack trace which are shown to user + # when crash happens in unittests running on buildbot. +-config("minimal_symbols") { ++config("minimal_symbols") { } ++config("xminimal_symbols") { + if (is_win) { + # Functions, files, and line tables only. + cflags = [] +@@ -2367,7 +2345,8 @@ config("minimal_symbols") { + # This configuration contains function names only. That is, the compiler is + # told to not generate debug information and the linker then just puts function + # names in the final debug information. +-config("no_symbols") { ++config("no_symbols") { } ++config("xno_symbols") { + if (is_win) { + ldflags = [ "/DEBUG" ] + diff --git a/www-client/chromium/files/chromium-compiler-84.patch b/www-client/chromium/files/chromium-compiler-84.patch new file mode 100644 index 0000000..76057d1 --- /dev/null +++ b/www-client/chromium/files/chromium-compiler-84.patch @@ -0,0 +1,150 @@ +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index 4c5e6779e..9280e746f 100644 +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -270,8 +270,6 @@ config("compiler") { + + configs += [ + # See the definitions below. +- ":clang_revision", +- ":compiler_cpu_abi", + ":compiler_codegen", + ":compiler_deterministic", + ] +@@ -500,20 +498,6 @@ config("compiler") { + ldflags += [ "-Wl,-z,keep-text-section-prefix" ] + } + +- if (is_clang && !is_nacl && !use_xcode_clang) { +- cflags += [ "-fcrash-diagnostics-dir=" + +- rebase_path("//tools/clang/crashreports", root_build_dir) ] +- +- cflags += [ +- # TODO(hans): Remove this once Clang generates better optimized debug info +- # by default. https://crbug.com/765793 +- "-Xclang", +- "-mllvm", +- "-Xclang", +- "-instcombine-lower-dbg-declare=0", +- ] +- } +- + # C11/C++11 compiler flags setup. + # --------------------------- + if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") { +@@ -1560,7 +1544,7 @@ config("chromium_code") { + defines = [ "_HAS_NODISCARD" ] + } + } else { +- cflags = [ "-Wall" ] ++ cflags = [ ] + if (treat_warnings_as_errors) { + cflags += [ "-Werror" ] + +@@ -1569,10 +1553,6 @@ config("chromium_code") { + # well. + ldflags = [ "-Werror" ] + } +- if (is_clang) { +- # Enable extra warnings for chromium_code when we control the compiler. +- cflags += [ "-Wextra" ] +- } + + # In Chromium code, we define __STDC_foo_MACROS in order to get the + # C99 macros on Mac and Linux. +@@ -1581,15 +1561,6 @@ config("chromium_code") { + "__STDC_FORMAT_MACROS", + ] + +- if (!is_debug && !using_sanitizer && current_cpu != "s390x" && +- current_cpu != "s390" && current_cpu != "ppc64" && +- current_cpu != "mips" && current_cpu != "mips64") { +- # Non-chromium code is not guaranteed to compile cleanly with +- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are +- # disabled, so only do that for Release build. +- defines += [ "_FORTIFY_SOURCE=2" ] +- } +- + if (is_mac) { + cflags_objc = [ "-Wobjc-missing-property-synthesis" ] + cflags_objcc = [ "-Wobjc-missing-property-synthesis" ] +@@ -1987,7 +1958,8 @@ config("default_stack_frames") { + } + + # Default "optimization on" config. +-config("optimize") { ++config("optimize") { } ++config("xoptimize") { + if (is_win) { + # Favor size over speed, /O1 must be before the common flags. + # /O1 implies /Os and /GF. +@@ -2008,7 +1980,8 @@ config("optimize") { + } + + # Turn off optimizations. +-config("no_optimize") { ++config("no_optimize") { } ++config("xno_optimize") { + if (is_win) { + cflags = [ + "/Od", # Disable optimization. +@@ -2042,7 +2015,8 @@ config("no_optimize") { + # Turns up the optimization level. On Windows, this implies whole program + # optimization and link-time code generation which is very expensive and should + # be used sparingly. +-config("optimize_max") { ++config("optimize_max") { } ++config("xoptimize_max") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2074,7 +2048,8 @@ config("optimize_max") { + # + # TODO(crbug.com/621335) - rework how all of these configs are related + # so that we don't need this disclaimer. +-config("optimize_speed") { ++config("optimize_speed") { } ++config("xoptimize_speed") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2099,7 +2074,8 @@ config("optimize_speed") { + } + } + +-config("optimize_fuzzing") { ++config("optimize_fuzzing") { } ++config("xoptimize_fuzzing") { + cflags = [ "-O1" ] + common_optimize_on_cflags + ldflags = common_optimize_on_ldflags + visibility = [ ":default_optimization" ] +@@ -2215,7 +2191,8 @@ config("win_pdbaltpath") { + } + + # Full symbols. +-config("symbols") { ++config("symbols") { } ++config("xsymbols") { + if (is_win) { + if (is_clang) { + cflags = [ "/Z7" ] # Debug information in the .obj files. +@@ -2321,7 +2298,8 @@ config("symbols") { + # Minimal symbols. + # This config guarantees to hold symbol for stack trace which are shown to user + # when crash happens in unittests running on buildbot. +-config("minimal_symbols") { ++config("minimal_symbols") { } ++config("xminimal_symbols") { + if (is_win) { + # Functions, files, and line tables only. + cflags = [] +@@ -2378,7 +2356,8 @@ config("minimal_symbols") { + # This configuration contains function names only. That is, the compiler is + # told to not generate debug information and the linker then just puts function + # names in the final debug information. +-config("no_symbols") { ++config("no_symbols") { } ++config("xno_symbols") { + if (is_win) { + ldflags = [ "/DEBUG" ] + diff --git a/www-client/chromium/files/chromium-compiler-86.patch b/www-client/chromium/files/chromium-compiler-86.patch new file mode 100644 index 0000000..a740297 --- /dev/null +++ b/www-client/chromium/files/chromium-compiler-86.patch @@ -0,0 +1,162 @@ +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index 3b3cdd898..ed4baae3f 100644 +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -253,8 +253,6 @@ config("compiler") { + + configs += [ + # See the definitions below. +- ":clang_revision", +- ":compiler_cpu_abi", + ":compiler_codegen", + ":compiler_deterministic", + ] +@@ -485,17 +483,6 @@ config("compiler") { + ldflags += [ "-Wl,-z,keep-text-section-prefix" ] + } + +- if (is_clang && !is_nacl && !use_xcode_clang) { +- cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ] +- +- cflags += [ +- # TODO(hans): Remove this once Clang generates better optimized debug info +- # by default. https://crbug.com/765793 +- "-mllvm", +- "-instcombine-lower-dbg-declare=0", +- ] +- } +- + # C11/C++11 compiler flags setup. + # --------------------------- + if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") { +@@ -1061,14 +1048,6 @@ config("compiler_codegen") { + ldflags += [ "-Wl,-mllvm,-enable-machine-outliner=never" ] + } + +- if (is_clang && !is_nacl && !use_xcode_clang && !is_chromeos_device) { +- cflags += [ +- # TODO(thakis): Remove after next clang roll, see reviews.llvm.org/D82998 +- "-mllvm", +- "-basic-aa-recphi=0", +- ] +- } +- + # TODO(thakis): Remove `if (!is_win)` after next clang roll. + if (!is_win) { + asmflags = cflags +@@ -1561,7 +1540,7 @@ config("chromium_code") { + defines = [ "_HAS_NODISCARD" ] + } + } else { +- cflags = [ "-Wall" ] ++ cflags = [ ] + if (treat_warnings_as_errors) { + cflags += [ "-Werror" ] + +@@ -1570,10 +1549,6 @@ config("chromium_code") { + # well. + ldflags = [ "-Werror" ] + } +- if (is_clang) { +- # Enable extra warnings for chromium_code when we control the compiler. +- cflags += [ "-Wextra" ] +- } + + # In Chromium code, we define __STDC_foo_MACROS in order to get the + # C99 macros on Mac and Linux. +@@ -1582,15 +1557,6 @@ config("chromium_code") { + "__STDC_FORMAT_MACROS", + ] + +- if (!is_debug && !using_sanitizer && current_cpu != "s390x" && +- current_cpu != "s390" && current_cpu != "ppc64" && +- current_cpu != "mips" && current_cpu != "mips64") { +- # Non-chromium code is not guaranteed to compile cleanly with +- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are +- # disabled, so only do that for Release build. +- defines += [ "_FORTIFY_SOURCE=2" ] +- } +- + if (is_mac) { + cflags_objc = [ "-Wobjc-missing-property-synthesis" ] + cflags_objcc = [ "-Wobjc-missing-property-synthesis" ] +@@ -1988,7 +1954,8 @@ config("default_stack_frames") { + } + + # Default "optimization on" config. +-config("optimize") { ++config("optimize") { } ++config("xoptimize") { + if (is_win) { + if (chrome_pgo_phase != 2) { + # Favor size over speed, /O1 must be before the common flags. +@@ -2023,7 +1990,8 @@ config("optimize") { + } + + # Turn off optimizations. +-config("no_optimize") { ++config("no_optimize") { } ++config("xno_optimize") { + if (is_win) { + cflags = [ + "/Od", # Disable optimization. +@@ -2063,7 +2031,8 @@ config("no_optimize") { + # Turns up the optimization level. On Windows, this implies whole program + # optimization and link-time code generation which is very expensive and should + # be used sparingly. +-config("optimize_max") { ++config("optimize_max") { } ++config("xoptimize_max") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2095,7 +2064,8 @@ config("optimize_max") { + # + # TODO(crbug.com/621335) - rework how all of these configs are related + # so that we don't need this disclaimer. +-config("optimize_speed") { ++config("optimize_speed") { } ++config("xoptimize_speed") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2120,7 +2090,8 @@ config("optimize_speed") { + } + } + +-config("optimize_fuzzing") { ++config("optimize_fuzzing") { } ++config("xoptimize_fuzzing") { + cflags = [ "-O1" ] + common_optimize_on_cflags + ldflags = common_optimize_on_ldflags + visibility = [ ":default_optimization" ] +@@ -2237,7 +2208,8 @@ config("win_pdbaltpath") { + } + + # Full symbols. +-config("symbols") { ++config("symbols") { } ++config("xsymbols") { + if (is_win) { + if (is_clang) { + cflags = [ "/Z7" ] # Debug information in the .obj files. +@@ -2344,7 +2316,8 @@ config("symbols") { + # Minimal symbols. + # This config guarantees to hold symbol for stack trace which are shown to user + # when crash happens in unittests running on buildbot. +-config("minimal_symbols") { ++config("minimal_symbols") { } ++config("xminimal_symbols") { + if (is_win) { + # Functions, files, and line tables only. + cflags = [] +@@ -2401,7 +2374,8 @@ config("minimal_symbols") { + # This configuration contains function names only. That is, the compiler is + # told to not generate debug information and the linker then just puts function + # names in the final debug information. +-config("no_symbols") { ++config("no_symbols") { } ++config("xno_symbols") { + if (is_win) { + ldflags = [ "/DEBUG" ] + diff --git a/www-client/chromium/files/chromium-compiler-87.patch b/www-client/chromium/files/chromium-compiler-87.patch new file mode 100644 index 0000000..5668bbb --- /dev/null +++ b/www-client/chromium/files/chromium-compiler-87.patch @@ -0,0 +1,147 @@ +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index 16ee9ba..4dd19bd 100644 +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -258,8 +258,6 @@ config("compiler") { + + configs += [ + # See the definitions below. +- ":clang_revision", +- ":compiler_cpu_abi", + ":compiler_codegen", + ":compiler_deterministic", + ] +@@ -492,17 +490,6 @@ config("compiler") { + ldflags += [ "-Wl,-z,keep-text-section-prefix" ] + } + +- if (is_clang && !is_nacl && !use_xcode_clang) { +- cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ] +- +- cflags += [ +- # TODO(hans): Remove this once Clang generates better optimized debug info +- # by default. https://crbug.com/765793 +- "-mllvm", +- "-instcombine-lower-dbg-declare=0", +- ] +- } +- + # C11/C++11 compiler flags setup. + # --------------------------- + if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) || +@@ -1573,7 +1560,7 @@ config("chromium_code") { + defines = [ "_HAS_NODISCARD" ] + } + } else { +- cflags = [ "-Wall" ] ++ cflags = [ ] + if (treat_warnings_as_errors) { + cflags += [ "-Werror" ] + +@@ -1582,10 +1569,6 @@ config("chromium_code") { + # well. + ldflags = [ "-Werror" ] + } +- if (is_clang) { +- # Enable extra warnings for chromium_code when we control the compiler. +- cflags += [ "-Wextra" ] +- } + + # In Chromium code, we define __STDC_foo_MACROS in order to get the + # C99 macros on Mac and Linux. +@@ -1594,15 +1577,6 @@ config("chromium_code") { + "__STDC_FORMAT_MACROS", + ] + +- if (!is_debug && !using_sanitizer && current_cpu != "s390x" && +- current_cpu != "s390" && current_cpu != "ppc64" && +- current_cpu != "mips" && current_cpu != "mips64") { +- # Non-chromium code is not guaranteed to compile cleanly with +- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are +- # disabled, so only do that for Release build. +- defines += [ "_FORTIFY_SOURCE=2" ] +- } +- + if (is_mac) { + cflags_objc = [ "-Wobjc-missing-property-synthesis" ] + cflags_objcc = [ "-Wobjc-missing-property-synthesis" ] +@@ -2000,7 +1974,8 @@ config("default_stack_frames") { + } + + # Default "optimization on" config. +-config("optimize") { ++config("optimize") { } ++config("xoptimize") { + if (is_win) { + if (chrome_pgo_phase != 2) { + # Favor size over speed, /O1 must be before the common flags. +@@ -2035,7 +2010,8 @@ config("optimize") { + } + + # Turn off optimizations. +-config("no_optimize") { ++config("no_optimize") { } ++config("xno_optimize") { + if (is_win) { + cflags = [ + "/Od", # Disable optimization. +@@ -2075,7 +2051,8 @@ config("no_optimize") { + # Turns up the optimization level. On Windows, this implies whole program + # optimization and link-time code generation which is very expensive and should + # be used sparingly. +-config("optimize_max") { ++config("optimize_max") { } ++config("xoptimize_max") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2107,7 +2084,8 @@ config("optimize_max") { + # + # TODO(crbug.com/621335) - rework how all of these configs are related + # so that we don't need this disclaimer. +-config("optimize_speed") { ++config("optimize_speed") { } ++config("xoptimize_speed") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2132,7 +2110,8 @@ config("optimize_speed") { + } + } + +-config("optimize_fuzzing") { ++config("optimize_fuzzing") { } ++config("xoptimize_fuzzing") { + cflags = [ "-O1" ] + common_optimize_on_cflags + ldflags = common_optimize_on_ldflags + visibility = [ ":default_optimization" ] +@@ -2249,7 +2228,8 @@ config("win_pdbaltpath") { + } + + # Full symbols. +-config("symbols") { ++config("symbols") { } ++config("xsymbols") { + if (is_win) { + if (is_clang) { + cflags = [ "/Z7" ] # Debug information in the .obj files. +@@ -2360,7 +2340,8 @@ config("symbols") { + # Minimal symbols. + # This config guarantees to hold symbol for stack trace which are shown to user + # when crash happens in unittests running on buildbot. +-config("minimal_symbols") { ++config("minimal_symbols") { } ++config("xminimal_symbols") { + if (is_win) { + # Functions, files, and line tables only. + cflags = [] +@@ -2413,7 +2394,8 @@ config("minimal_symbols") { + # This configuration contains function names only. That is, the compiler is + # told to not generate debug information and the linker then just puts function + # names in the final debug information. +-config("no_symbols") { ++config("no_symbols") { } ++config("xno_symbols") { + if (is_win) { + ldflags = [ "/DEBUG" ] + diff --git a/www-client/chromium/files/chromium-compiler-r10.patch b/www-client/chromium/files/chromium-compiler-r10.patch new file mode 100644 index 0000000..f2ecdc3 --- /dev/null +++ b/www-client/chromium/files/chromium-compiler-r10.patch @@ -0,0 +1,185 @@ +From a1207cc75454e653030716948d27ec27412f6fe8 Mon Sep 17 00:00:00 2001 +From: Mike Gilbert <floppym@gentoo.org> +Date: Sat, 16 Jun 2019 15:43:27 +0100 +Subject: [PATCH] Disable various compiler configs + +--- + build/config/compiler/BUILD.gn | 64 +++++++++++++--------------------- + 1 file changed, 25 insertions(+), 39 deletions(-) + +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index a3f21b7..0a7bec6 100644 +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -230,8 +230,6 @@ config("compiler") { + + configs += [ + # See the definitions below. +- ":clang_revision", +- ":compiler_cpu_abi", + ":compiler_codegen", + ":compiler_deterministic", + ] +@@ -471,20 +469,6 @@ config("compiler") { + } + } + +- if (is_clang && !is_nacl && !use_xcode_clang) { +- cflags += [ "-fcrash-diagnostics-dir=" + +- rebase_path("//tools/clang/crashreports", root_build_dir) ] +- +- cflags += [ +- # TODO(hans): Remove this once Clang generates better optimized debug info +- # by default. https://crbug.com/765793 +- "-Xclang", +- "-mllvm", +- "-Xclang", +- "-instcombine-lower-dbg-declare=0", +- ] +- } +- + # C11/C++11 compiler flags setup. + # --------------------------- + if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") { +@@ -1431,6 +1415,12 @@ config("default_warnings") { + "-Wno-narrowing", + ] + ++ # -Wno-class-memaccess warns about hash table and vector in blink. ++ # But the violation is intentional. ++ if (!is_nacl) { ++ cflags_cc += [ "-Wno-class-memaccess" ] ++ } ++ + # -Wunused-local-typedefs is broken in gcc, + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63872 + cflags += [ "-Wno-unused-local-typedefs" ] +@@ -1525,7 +1515,7 @@ config("chromium_code") { + defines = [ "_HAS_NODISCARD" ] + } + } else { +- cflags = [ "-Wall" ] ++ cflags = [] + if (treat_warnings_as_errors) { + cflags += [ "-Werror" ] + +@@ -1534,10 +1524,6 @@ config("chromium_code") { + # well. + ldflags = [ "-Werror" ] + } +- if (is_clang) { +- # Enable extra warnings for chromium_code when we control the compiler. +- cflags += [ "-Wextra" ] +- } + + # In Chromium code, we define __STDC_foo_MACROS in order to get the + # C99 macros on Mac and Linux. +@@ -1546,15 +1532,6 @@ config("chromium_code") { + "__STDC_FORMAT_MACROS", + ] + +- if (!is_debug && !using_sanitizer && current_cpu != "s390x" && +- current_cpu != "s390" && current_cpu != "ppc64" && +- current_cpu != "mips" && current_cpu != "mips64") { +- # Non-chromium code is not guaranteed to compile cleanly with +- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are +- # disabled, so only do that for Release build. +- defines += [ "_FORTIFY_SOURCE=2" ] +- } +- + if (is_mac) { + cflags_objc = [ "-Wobjc-missing-property-synthesis" ] + cflags_objcc = [ "-Wobjc-missing-property-synthesis" ] +@@ -1943,7 +1920,8 @@ config("default_stack_frames") { + } + + # Default "optimization on" config. +-config("optimize") { ++config("optimize") { } ++config("xoptimize") { + if (is_win) { + # TODO(thakis): Remove is_clang here, https://crbug.com/598772 + if (is_official_build && full_wpo_on_official && !is_clang) { +@@ -1977,7 +1955,8 @@ config("optimize") { + } + + # Same config as 'optimize' but without the WPO flag. +-config("optimize_no_wpo") { ++config("optimize_no_wpo") { } ++config("xoptimize_no_wpo") { + if (is_win) { + # Favor size over speed, /O1 must be before the common flags. The GYP + # build also specifies /Os and /GF but these are implied by /O1. +@@ -2000,7 +1979,8 @@ config("optimize_no_wpo") { + } + + # Turn off optimizations. +-config("no_optimize") { ++config("no_optimize") { } ++config("xno_optimize") { + if (is_win) { + cflags = [ + "/Od", # Disable optimization. +@@ -2028,7 +2008,8 @@ config("no_optimize") { + # Turns up the optimization level. On Windows, this implies whole program + # optimization and link-time code generation which is very expensive and should + # be used sparingly. +-config("optimize_max") { ++config("optimize_max") { } ++config("xoptimize_max") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2075,7 +2056,8 @@ config("optimize_max") { + # + # TODO(crbug.com/621335) - rework how all of these configs are related + # so that we don't need this disclaimer. +-config("optimize_speed") { ++config("optimize_speed") { } ++config("xoptimize_speed") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2113,7 +2095,8 @@ config("optimize_speed") { + } + } + +-config("optimize_fuzzing") { ++config("optimize_fuzzing") { } ++config("xoptimize_fuzzing") { + cflags = [ "-O1" ] + common_optimize_on_cflags + ldflags = common_optimize_on_ldflags + visibility = [ ":default_optimization" ] +@@ -2215,7 +2198,8 @@ config("win_pdbaltpath") { + } + + # Full symbols. +-config("symbols") { ++config("symbols") { } ++config("xsymbols") { + if (is_win) { + if (use_goma || is_clang) { + # Note that with VC++ this requires is_win_fastlink, enforced elsewhere. +@@ -2325,7 +2309,8 @@ config("symbols") { + # Minimal symbols. + # This config guarantees to hold symbol for stack trace which are shown to user + # when crash happens in unittests running on buildbot. +-config("minimal_symbols") { ++config("minimal_symbols") { } ++config("xminimal_symbols") { + if (is_win) { + # Linker symbols for backtraces only. + cflags = [] +@@ -2382,7 +2367,8 @@ config("minimal_symbols") { + } + + # No symbols. +-config("no_symbols") { ++config("no_symbols") { } ++config("xno_symbols") { + if (!is_win) { + cflags = [ "-g0" ] + asmflags = cflags +-- +2.21.0 + diff --git a/www-client/chromium/files/chromium-compiler-r4.patch b/www-client/chromium/files/chromium-compiler-r4.patch new file mode 100644 index 0000000..3fe73ef --- /dev/null +++ b/www-client/chromium/files/chromium-compiler-r4.patch @@ -0,0 +1,168 @@ +From 777d166eec22c1894108dce985498f75ac5931e8 Mon Sep 17 00:00:00 2001 +From: Mike Gilbert <floppym@gentoo.org> +Date: Wed, 25 Apr 2018 13:22:49 -0400 +Subject: [PATCH] Disable various compiler configs + +--- + build/config/compiler/BUILD.gn | 61 ++++++++++------------------------ + 1 file changed, 18 insertions(+), 43 deletions(-) + +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index 6e38ad782d38..87bbd423f67f 100644 +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -225,8 +225,6 @@ config("compiler") { + + configs += [ + # See the definitions below. +- ":clang_revision", +- ":compiler_cpu_abi", + ":compiler_codegen", + ] + +@@ -488,18 +486,6 @@ config("compiler") { + } + } + +- if (is_clang && !is_nacl && current_toolchain == host_toolchain && +- target_os != "chromeos") { +- cflags += [ +- # TODO(hans): Remove this once Clang generates better optimized debug info +- # by default. https://crbug.com/765793 +- "-Xclang", +- "-mllvm", +- "-Xclang", +- "-instcombine-lower-dbg-declare=0", +- ] +- } +- + # Print absolute paths in diagnostics. There is no precedent for doing this + # on Linux/Mac (GCC doesn't support it), but MSVC does this with /FC and + # Windows developers rely on it (crbug.com/636109) so only do this on Windows. +@@ -1473,10 +1459,6 @@ config("default_warnings") { + cflags += [ + # TODO(thakis): https://crbug.com/753973 + "-Wno-enum-compare-switch", +- +- # Ignore warnings about MSVC optimization pragmas. +- # TODO(thakis): Only for no_chromium_code? http://crbug.com/505314 +- "-Wno-ignored-pragma-optimize", + ] + } + } +@@ -1518,22 +1500,6 @@ config("chromium_code") { + "__STDC_FORMAT_MACROS", + ] + +- if (!is_debug && !using_sanitizer && +- (!is_linux || !is_clang || is_official_build) && +- current_cpu != "s390x" && current_cpu != "s390" && +- current_cpu != "ppc64" && current_cpu != "ppc64" && +- current_cpu != "mips" && current_cpu != "mips64") { +- # _FORTIFY_SOURCE isn't really supported by Clang now, see +- # http://llvm.org/bugs/show_bug.cgi?id=16821. +- # It seems to work fine with Ubuntu 12 headers though, so use it in +- # official builds. +- # +- # Non-chromium code is not guaranteed to compile cleanly with +- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are +- # disabled, so only do that for Release build. +- defines += [ "_FORTIFY_SOURCE=2" ] +- } +- + if (is_mac || is_ios) { + cflags_objc = [ "-Wobjc-missing-property-synthesis" ] + cflags_objcc = [ "-Wobjc-missing-property-synthesis" ] +@@ -1863,7 +1829,8 @@ config("default_stack_frames") { + } + + # Default "optimization on" config. +-config("optimize") { ++config("optimize") { } ++config("xoptimize") { + if (is_win) { + # TODO(thakis): Remove is_clang here, https://crbug.com/598772 + if (is_official_build && full_wpo_on_official && !is_clang) { +@@ -1897,7 +1864,8 @@ config("optimize") { + } + + # Same config as 'optimize' but without the WPO flag. +-config("optimize_no_wpo") { ++config("optimize_no_wpo") { } ++config("xoptimize_no_wpo") { + if (is_win) { + # Favor size over speed, /O1 must be before the common flags. The GYP + # build also specifies /Os and /GF but these are implied by /O1. +@@ -1920,7 +1888,8 @@ config("optimize_no_wpo") { + } + + # Turn off optimizations. +-config("no_optimize") { ++config("no_optimize") { } ++config("xno_optimize") { + if (is_win) { + cflags = [ + "/Od", # Disable optimization. +@@ -1944,7 +1913,8 @@ config("no_optimize") { + # Turns up the optimization level. On Windows, this implies whole program + # optimization and link-time code generation which is very expensive and should + # be used sparingly. +-config("optimize_max") { ++config("optimize_max") { } ++config("xoptimize_max") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -1991,7 +1961,8 @@ config("optimize_max") { + # + # TODO(crbug.com/621335) - rework how all of these configs are related + # so that we don't need this disclaimer. +-config("optimize_speed") { ++config("optimize_speed") { } ++config("xoptimize_speed") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2029,7 +2000,8 @@ config("optimize_speed") { + } + } + +-config("optimize_fuzzing") { ++config("optimize_fuzzing") { } ++config("xoptimize_fuzzing") { + cflags = [ "-O1" ] + common_optimize_on_cflags + ldflags = common_optimize_on_ldflags + visibility = [ ":default_optimization" ] +@@ -2115,7 +2087,8 @@ config("afdo") { + # configs += [ "//build/config/compiler:symbols" ] + + # Full symbols. +-config("symbols") { ++config("symbols") { } ++config("xsymbols") { + if (is_win) { + if (use_goma || is_clang) { + # Note that with VC++ this requires is_win_fastlink, enforced elsewhere. +@@ -2213,7 +2186,8 @@ config("symbols") { + # Minimal symbols. + # This config guarantees to hold symbol for stack trace which are shown to user + # when crash happens in unittests running on buildbot. +-config("minimal_symbols") { ++config("minimal_symbols") { } ++config("xminimal_symbols") { + if (is_win) { + # Linker symbols for backtraces only. + cflags = [] +@@ -2244,7 +2218,8 @@ config("minimal_symbols") { + } + + # No symbols. +-config("no_symbols") { ++config("no_symbols") { } ++config("xno_symbols") { + if (!is_win) { + cflags = [ "-g0" ] + asmflags = cflags +-- +2.18.0 + diff --git a/www-client/chromium/files/chromium-compiler-r6.patch b/www-client/chromium/files/chromium-compiler-r6.patch new file mode 100644 index 0000000..db8d046 --- /dev/null +++ b/www-client/chromium/files/chromium-compiler-r6.patch @@ -0,0 +1,170 @@ +From cec10e55fdb150b33342ad462907fb6202de364e Mon Sep 17 00:00:00 2001 +From: Mike Gilbert <floppym@gentoo.org> +Date: Wed, 25 Apr 2018 13:22:49 -0400 +Subject: [PATCH] Disable various compiler configs + +--- + build/config/compiler/BUILD.gn | 63 ++++++++++------------------------ + 1 file changed, 18 insertions(+), 45 deletions(-) + +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index 0f7a6b48f7b2..c91b702147d4 100644 +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -236,8 +236,6 @@ config("compiler") { + + configs += [ + # See the definitions below. +- ":clang_revision", +- ":compiler_cpu_abi", + ":compiler_codegen", + ] + +@@ -502,17 +500,6 @@ config("compiler") { + } + } + +- if (is_clang && !is_nacl && !use_xcode_clang) { +- cflags += [ +- # TODO(hans): Remove this once Clang generates better optimized debug info +- # by default. https://crbug.com/765793 +- "-Xclang", +- "-mllvm", +- "-Xclang", +- "-instcombine-lower-dbg-declare=0", +- ] +- } +- + # Print absolute paths in diagnostics. There is no precedent for doing this + # on Linux/Mac (GCC doesn't support it), but MSVC does this with /FC and + # Windows developers rely on it (crbug.com/636109) so only do this on Windows. +@@ -1498,13 +1485,6 @@ config("default_warnings") { + cflags += [ + # TODO(thakis): https://crbug.com/753973 + "-Wno-enum-compare-switch", +- +- # Ignore warnings about MSVC optimization pragmas. +- # TODO(thakis): Only for no_chromium_code? http://crbug.com/505314 +- "-Wno-ignored-pragma-optimize", +- +- # TODO(hans): https://crbug.com/890307 +- "-Wno-defaulted-function-deleted", + ] + } + } +@@ -1546,22 +1526,6 @@ config("chromium_code") { + "__STDC_FORMAT_MACROS", + ] + +- if (!is_debug && !using_sanitizer && +- (!is_linux || !is_clang || is_official_build) && +- current_cpu != "s390x" && current_cpu != "s390" && +- current_cpu != "ppc64" && current_cpu != "ppc64" && +- current_cpu != "mips" && current_cpu != "mips64") { +- # _FORTIFY_SOURCE isn't really supported by Clang now, see +- # http://llvm.org/bugs/show_bug.cgi?id=16821. +- # It seems to work fine with Ubuntu 12 headers though, so use it in +- # official builds. +- # +- # Non-chromium code is not guaranteed to compile cleanly with +- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are +- # disabled, so only do that for Release build. +- defines += [ "_FORTIFY_SOURCE=2" ] +- } +- + if (is_mac) { + cflags_objc = [ "-Wobjc-missing-property-synthesis" ] + cflags_objcc = [ "-Wobjc-missing-property-synthesis" ] +@@ -1931,7 +1895,8 @@ config("default_stack_frames") { + } + + # Default "optimization on" config. +-config("optimize") { ++config("optimize") { } ++config("xoptimize") { + if (is_win) { + # TODO(thakis): Remove is_clang here, https://crbug.com/598772 + if (is_official_build && full_wpo_on_official && !is_clang) { +@@ -1965,7 +1930,8 @@ config("optimize") { + } + + # Same config as 'optimize' but without the WPO flag. +-config("optimize_no_wpo") { ++config("optimize_no_wpo") { } ++config("xoptimize_no_wpo") { + if (is_win) { + # Favor size over speed, /O1 must be before the common flags. The GYP + # build also specifies /Os and /GF but these are implied by /O1. +@@ -1988,7 +1954,8 @@ config("optimize_no_wpo") { + } + + # Turn off optimizations. +-config("no_optimize") { ++config("no_optimize") { } ++config("xno_optimize") { + if (is_win) { + cflags = [ + "/Od", # Disable optimization. +@@ -2012,7 +1979,8 @@ config("no_optimize") { + # Turns up the optimization level. On Windows, this implies whole program + # optimization and link-time code generation which is very expensive and should + # be used sparingly. +-config("optimize_max") { ++config("optimize_max") { } ++config("xoptimize_max") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2059,7 +2027,8 @@ config("optimize_max") { + # + # TODO(crbug.com/621335) - rework how all of these configs are related + # so that we don't need this disclaimer. +-config("optimize_speed") { ++config("optimize_speed") { } ++config("xoptimize_speed") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2097,7 +2066,8 @@ config("optimize_speed") { + } + } + +-config("optimize_fuzzing") { ++config("optimize_fuzzing") { } ++config("xoptimize_fuzzing") { + cflags = [ "-O1" ] + common_optimize_on_cflags + ldflags = common_optimize_on_ldflags + visibility = [ ":default_optimization" ] +@@ -2183,7 +2153,8 @@ config("afdo") { + # configs += [ "//build/config/compiler:symbols" ] + + # Full symbols. +-config("symbols") { ++config("symbols") { } ++config("xsymbols") { + if (is_win) { + if (use_goma || is_clang) { + # Note that with VC++ this requires is_win_fastlink, enforced elsewhere. +@@ -2281,7 +2252,8 @@ config("symbols") { + # Minimal symbols. + # This config guarantees to hold symbol for stack trace which are shown to user + # when crash happens in unittests running on buildbot. +-config("minimal_symbols") { ++config("minimal_symbols") { } ++config("xminimal_symbols") { + if (is_win) { + # Linker symbols for backtraces only. + cflags = [] +@@ -2321,7 +2293,8 @@ config("minimal_symbols") { + } + + # No symbols. +-config("no_symbols") { ++config("no_symbols") { } ++config("xno_symbols") { + if (!is_win) { + cflags = [ "-g0" ] + asmflags = cflags +-- +2.19.1 + diff --git a/www-client/chromium/files/chromium-compiler-r7.patch b/www-client/chromium/files/chromium-compiler-r7.patch new file mode 100644 index 0000000..dcf40a8 --- /dev/null +++ b/www-client/chromium/files/chromium-compiler-r7.patch @@ -0,0 +1,176 @@ +From 6ba946c7116f4f1d0b35fc90716b6e940116b74b Mon Sep 17 00:00:00 2001 +From: Mike Gilbert <floppym@gentoo.org> +Date: Wed, 25 Apr 2018 13:22:49 -0400 +Subject: [PATCH] Disable various compiler configs + +--- + build/config/compiler/BUILD.gn | 62 +++++++++++----------------------- + 1 file changed, 19 insertions(+), 43 deletions(-) + +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index 677003ac646c..f38bc908622a 100644 +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -236,8 +236,6 @@ config("compiler") { + + configs += [ + # See the definitions below. +- ":clang_revision", +- ":compiler_cpu_abi", + ":compiler_codegen", + ] + +@@ -502,17 +500,6 @@ config("compiler") { + } + } + +- if (is_clang && !is_nacl && !use_xcode_clang) { +- cflags += [ +- # TODO(hans): Remove this once Clang generates better optimized debug info +- # by default. https://crbug.com/765793 +- "-Xclang", +- "-mllvm", +- "-Xclang", +- "-instcombine-lower-dbg-declare=0", +- ] +- } +- + # Print absolute paths in diagnostics. There is no precedent for doing this + # on Linux/Mac (GCC doesn't support it), but MSVC does this with /FC and + # Windows developers rely on it (crbug.com/636109) so only do this on Windows. +@@ -1512,7 +1499,7 @@ config("chromium_code") { + defines = [ "_HAS_NODISCARD" ] + } + } else { +- cflags = [ "-Wall" ] ++ cflags = [] + if (treat_warnings_as_errors) { + cflags += [ "-Werror" ] + +@@ -1521,10 +1508,6 @@ config("chromium_code") { + # well. + ldflags = [ "-Werror" ] + } +- if (is_clang) { +- # Enable extra warnings for chromium_code when we control the compiler. +- cflags += [ "-Wextra" ] +- } + + # In Chromium code, we define __STDC_foo_MACROS in order to get the + # C99 macros on Mac and Linux. +@@ -1533,22 +1516,6 @@ config("chromium_code") { + "__STDC_FORMAT_MACROS", + ] + +- if (!is_debug && !using_sanitizer && +- (!is_linux || !is_clang || is_official_build) && +- current_cpu != "s390x" && current_cpu != "s390" && +- current_cpu != "ppc64" && current_cpu != "ppc64" && +- current_cpu != "mips" && current_cpu != "mips64") { +- # _FORTIFY_SOURCE isn't really supported by Clang now, see +- # http://llvm.org/bugs/show_bug.cgi?id=16821. +- # It seems to work fine with Ubuntu 12 headers though, so use it in +- # official builds. +- # +- # Non-chromium code is not guaranteed to compile cleanly with +- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are +- # disabled, so only do that for Release build. +- defines += [ "_FORTIFY_SOURCE=2" ] +- } +- + if (is_mac) { + cflags_objc = [ "-Wobjc-missing-property-synthesis" ] + cflags_objcc = [ "-Wobjc-missing-property-synthesis" ] +@@ -1925,7 +1892,8 @@ config("default_stack_frames") { + } + + # Default "optimization on" config. +-config("optimize") { ++config("optimize") { } ++config("xoptimize") { + if (is_win) { + # TODO(thakis): Remove is_clang here, https://crbug.com/598772 + if (is_official_build && full_wpo_on_official && !is_clang) { +@@ -1959,7 +1927,8 @@ config("optimize") { + } + + # Same config as 'optimize' but without the WPO flag. +-config("optimize_no_wpo") { ++config("optimize_no_wpo") { } ++config("xoptimize_no_wpo") { + if (is_win) { + # Favor size over speed, /O1 must be before the common flags. The GYP + # build also specifies /Os and /GF but these are implied by /O1. +@@ -1982,7 +1951,8 @@ config("optimize_no_wpo") { + } + + # Turn off optimizations. +-config("no_optimize") { ++config("no_optimize") { } ++config("xno_optimize") { + if (is_win) { + cflags = [ + "/Od", # Disable optimization. +@@ -2006,7 +1976,8 @@ config("no_optimize") { + # Turns up the optimization level. On Windows, this implies whole program + # optimization and link-time code generation which is very expensive and should + # be used sparingly. +-config("optimize_max") { ++config("optimize_max") { } ++config("xoptimize_max") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2053,7 +2024,8 @@ config("optimize_max") { + # + # TODO(crbug.com/621335) - rework how all of these configs are related + # so that we don't need this disclaimer. +-config("optimize_speed") { ++config("optimize_speed") { } ++config("xoptimize_speed") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2091,7 +2063,8 @@ config("optimize_speed") { + } + } + +-config("optimize_fuzzing") { ++config("optimize_fuzzing") { } ++config("xoptimize_fuzzing") { + cflags = [ "-O1" ] + common_optimize_on_cflags + ldflags = common_optimize_on_ldflags + visibility = [ ":default_optimization" ] +@@ -2193,7 +2166,8 @@ config("win_pdbaltpath") { + } + + # Full symbols. +-config("symbols") { ++config("symbols") { } ++config("xsymbols") { + if (is_win) { + if (use_goma || is_clang) { + # Note that with VC++ this requires is_win_fastlink, enforced elsewhere. +@@ -2294,7 +2268,8 @@ config("symbols") { + # Minimal symbols. + # This config guarantees to hold symbol for stack trace which are shown to user + # when crash happens in unittests running on buildbot. +-config("minimal_symbols") { ++config("minimal_symbols") { } ++config("xminimal_symbols") { + if (is_win) { + # Linker symbols for backtraces only. + cflags = [] +@@ -2337,7 +2312,8 @@ config("minimal_symbols") { + } + + # No symbols. +-config("no_symbols") { ++config("no_symbols") { } ++config("xno_symbols") { + if (!is_win) { + cflags = [ "-g0" ] + asmflags = cflags +-- +2.19.1 + diff --git a/www-client/chromium/files/chromium-compiler-r8.patch b/www-client/chromium/files/chromium-compiler-r8.patch new file mode 100644 index 0000000..117d1e6 --- /dev/null +++ b/www-client/chromium/files/chromium-compiler-r8.patch @@ -0,0 +1,164 @@ +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index 2f01fbbf4..8b487ad77 100644 +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -236,8 +236,6 @@ config("compiler") { + + configs += [ + # See the definitions below. +- ":clang_revision", +- ":compiler_cpu_abi", + ":compiler_codegen", + ] + +@@ -501,17 +499,6 @@ config("compiler") { + } + } + +- if (is_clang && !is_nacl && !use_xcode_clang) { +- cflags += [ +- # TODO(hans): Remove this once Clang generates better optimized debug info +- # by default. https://crbug.com/765793 +- "-Xclang", +- "-mllvm", +- "-Xclang", +- "-instcombine-lower-dbg-declare=0", +- ] +- } +- + # Print absolute paths in diagnostics. There is no precedent for doing this + # on Linux/Mac (GCC doesn't support it), but MSVC does this with /FC and + # Windows developers rely on it (crbug.com/636109) so only do this on Windows. +@@ -1516,7 +1503,7 @@ config("chromium_code") { + defines = [ "_HAS_NODISCARD" ] + } + } else { +- cflags = [ "-Wall" ] ++ cflags = [] + if (treat_warnings_as_errors) { + cflags += [ "-Werror" ] + +@@ -1525,10 +1512,6 @@ config("chromium_code") { + # well. + ldflags = [ "-Werror" ] + } +- if (is_clang) { +- # Enable extra warnings for chromium_code when we control the compiler. +- cflags += [ "-Wextra" ] +- } + + # In Chromium code, we define __STDC_foo_MACROS in order to get the + # C99 macros on Mac and Linux. +@@ -1537,22 +1520,6 @@ config("chromium_code") { + "__STDC_FORMAT_MACROS", + ] + +- if (!is_debug && !using_sanitizer && +- (!is_linux || !is_clang || is_official_build) && +- current_cpu != "s390x" && current_cpu != "s390" && +- current_cpu != "ppc64" && current_cpu != "ppc64" && +- current_cpu != "mips" && current_cpu != "mips64") { +- # _FORTIFY_SOURCE isn't really supported by Clang now, see +- # http://llvm.org/bugs/show_bug.cgi?id=16821. +- # It seems to work fine with Ubuntu 12 headers though, so use it in +- # official builds. +- # +- # Non-chromium code is not guaranteed to compile cleanly with +- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are +- # disabled, so only do that for Release build. +- defines += [ "_FORTIFY_SOURCE=2" ] +- } +- + if (is_mac) { + cflags_objc = [ "-Wobjc-missing-property-synthesis" ] + cflags_objcc = [ "-Wobjc-missing-property-synthesis" ] +@@ -1922,7 +1889,8 @@ config("default_stack_frames") { + } + + # Default "optimization on" config. +-config("optimize") { ++config("optimize") { } ++config("xoptimize") { + if (is_win) { + # TODO(thakis): Remove is_clang here, https://crbug.com/598772 + if (is_official_build && full_wpo_on_official && !is_clang) { +@@ -1956,7 +1924,8 @@ config("optimize") { + } + + # Same config as 'optimize' but without the WPO flag. +-config("optimize_no_wpo") { ++config("optimize_no_wpo") { } ++config("xoptimize_no_wpo") { + if (is_win) { + # Favor size over speed, /O1 must be before the common flags. The GYP + # build also specifies /Os and /GF but these are implied by /O1. +@@ -1979,7 +1948,8 @@ config("optimize_no_wpo") { + } + + # Turn off optimizations. +-config("no_optimize") { ++config("no_optimize") { } ++config("xno_optimize") { + if (is_win) { + cflags = [ + "/Od", # Disable optimization. +@@ -2007,7 +1977,8 @@ config("no_optimize") { + # Turns up the optimization level. On Windows, this implies whole program + # optimization and link-time code generation which is very expensive and should + # be used sparingly. +-config("optimize_max") { ++config("optimize_max") { } ++config("xoptimize_max") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2054,7 +2025,8 @@ config("optimize_max") { + # + # TODO(crbug.com/621335) - rework how all of these configs are related + # so that we don't need this disclaimer. +-config("optimize_speed") { ++config("optimize_speed") { } ++config("xoptimize_speed") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2092,7 +2064,8 @@ config("optimize_speed") { + } + } + +-config("optimize_fuzzing") { ++config("optimize_fuzzing") { } ++config("xoptimize_fuzzing") { + cflags = [ "-O1" ] + common_optimize_on_cflags + ldflags = common_optimize_on_ldflags + visibility = [ ":default_optimization" ] +@@ -2194,7 +2167,8 @@ config("win_pdbaltpath") { + } + + # Full symbols. +-config("symbols") { ++config("symbols") { } ++config("xsymbols") { + if (is_win) { + if (use_goma || is_clang) { + # Note that with VC++ this requires is_win_fastlink, enforced elsewhere. +@@ -2304,7 +2278,8 @@ config("symbols") { + # Minimal symbols. + # This config guarantees to hold symbol for stack trace which are shown to user + # when crash happens in unittests running on buildbot. +-config("minimal_symbols") { ++config("minimal_symbols") { } ++config("xminimal_symbols") { + if (is_win) { + # Linker symbols for backtraces only. + cflags = [] +@@ -2356,7 +2331,8 @@ config("minimal_symbols") { + } + + # No symbols. +-config("no_symbols") { ++config("no_symbols") { } ++config("xno_symbols") { + if (!is_win) { + cflags = [ "-g0" ] + asmflags = cflags diff --git a/www-client/chromium/files/chromium-compiler-r9.patch b/www-client/chromium/files/chromium-compiler-r9.patch new file mode 100644 index 0000000..43cd93e --- /dev/null +++ b/www-client/chromium/files/chromium-compiler-r9.patch @@ -0,0 +1,160 @@ +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index 7db66418e..ce3ba300a 100644 +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -230,8 +230,6 @@ config("compiler") { + + configs += [ + # See the definitions below. +- ":clang_revision", +- ":compiler_cpu_abi", + ":compiler_codegen", + ":compiler_deterministic", + ] +@@ -479,20 +477,6 @@ config("compiler") { + } + } + +- if (is_clang && !is_nacl && !use_xcode_clang) { +- cflags += [ "-fcrash-diagnostics-dir=" + +- rebase_path("//tools/clang/crashreports", root_build_dir) ] +- +- cflags += [ +- # TODO(hans): Remove this once Clang generates better optimized debug info +- # by default. https://crbug.com/765793 +- "-Xclang", +- "-mllvm", +- "-Xclang", +- "-instcombine-lower-dbg-declare=0", +- ] +- } +- + # Print absolute paths in diagnostics. There is no precedent for doing this + # on Linux/Mac (GCC doesn't support it), but MSVC does this with /FC and + # Windows developers rely on it (crbug.com/636109) so only do this on Windows. +@@ -1533,7 +1517,7 @@ config("chromium_code") { + defines = [ "_HAS_NODISCARD" ] + } + } else { +- cflags = [ "-Wall" ] ++ cflags = [] + if (treat_warnings_as_errors) { + cflags += [ "-Werror" ] + +@@ -1542,10 +1526,6 @@ config("chromium_code") { + # well. + ldflags = [ "-Werror" ] + } +- if (is_clang) { +- # Enable extra warnings for chromium_code when we control the compiler. +- cflags += [ "-Wextra" ] +- } + + # In Chromium code, we define __STDC_foo_MACROS in order to get the + # C99 macros on Mac and Linux. +@@ -1554,15 +1534,6 @@ config("chromium_code") { + "__STDC_FORMAT_MACROS", + ] + +- if (!is_debug && !using_sanitizer && current_cpu != "s390x" && +- current_cpu != "s390" && current_cpu != "ppc64" && +- current_cpu != "mips" && current_cpu != "mips64") { +- # Non-chromium code is not guaranteed to compile cleanly with +- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are +- # disabled, so only do that for Release build. +- defines += [ "_FORTIFY_SOURCE=2" ] +- } +- + if (is_mac) { + cflags_objc = [ "-Wobjc-missing-property-synthesis" ] + cflags_objcc = [ "-Wobjc-missing-property-synthesis" ] +@@ -1951,7 +1922,8 @@ config("default_stack_frames") { + } + + # Default "optimization on" config. +-config("optimize") { ++config("optimize") { } ++config("xoptimize") { + if (is_win) { + # TODO(thakis): Remove is_clang here, https://crbug.com/598772 + if (is_official_build && full_wpo_on_official && !is_clang) { +@@ -1985,7 +1957,8 @@ config("optimize") { + } + + # Same config as 'optimize' but without the WPO flag. +-config("optimize_no_wpo") { ++config("optimize_no_wpo") { } ++config("xoptimize_no_wpo") { + if (is_win) { + # Favor size over speed, /O1 must be before the common flags. The GYP + # build also specifies /Os and /GF but these are implied by /O1. +@@ -2008,7 +1981,8 @@ config("optimize_no_wpo") { + } + + # Turn off optimizations. +-config("no_optimize") { ++config("no_optimize") { } ++config("xno_optimize") { + if (is_win) { + cflags = [ + "/Od", # Disable optimization. +@@ -2036,7 +2010,8 @@ config("no_optimize") { + # Turns up the optimization level. On Windows, this implies whole program + # optimization and link-time code generation which is very expensive and should + # be used sparingly. +-config("optimize_max") { ++config("optimize_max") { } ++config("xoptimize_max") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2083,7 +2058,8 @@ config("optimize_max") { + # + # TODO(crbug.com/621335) - rework how all of these configs are related + # so that we don't need this disclaimer. +-config("optimize_speed") { ++config("optimize_speed") { } ++config("xoptimize_speed") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2121,7 +2097,8 @@ config("optimize_speed") { + } + } + +-config("optimize_fuzzing") { ++config("optimize_fuzzing") { } ++config("xoptimize_fuzzing") { + cflags = [ "-O1" ] + common_optimize_on_cflags + ldflags = common_optimize_on_ldflags + visibility = [ ":default_optimization" ] +@@ -2223,7 +2200,8 @@ config("win_pdbaltpath") { + } + + # Full symbols. +-config("symbols") { ++config("symbols") { } ++config("xsymbols") { + if (is_win) { + if (use_goma || is_clang) { + # Note that with VC++ this requires is_win_fastlink, enforced elsewhere. +@@ -2328,7 +2306,8 @@ config("symbols") { + # Minimal symbols. + # This config guarantees to hold symbol for stack trace which are shown to user + # when crash happens in unittests running on buildbot. +-config("minimal_symbols") { ++config("minimal_symbols") { } ++config("xminimal_symbols") { + if (is_win) { + # Linker symbols for backtraces only. + cflags = [] +@@ -2380,7 +2359,8 @@ config("minimal_symbols") { + } + + # No symbols. +-config("no_symbols") { ++config("no_symbols") { } ++config("xno_symbols") { + if (!is_win) { + cflags = [ "-g0" ] + asmflags = cflags diff --git a/www-client/chromium/files/chromium-core-management-svc-84.patch b/www-client/chromium/files/chromium-core-management-svc-84.patch new file mode 100644 index 0000000..89a5f1b --- /dev/null +++ b/www-client/chromium/files/chromium-core-management-svc-84.patch @@ -0,0 +1,12 @@ +diff --git a/components/policy/core/common/management/management_service.h b/components/policy/core/common/management/management_service.h +index cf71a2379..f845bff5c 100644 +--- a/components/policy/core/common/management/management_service.h ++++ b/components/policy/core/common/management/management_service.h +@@ -7,6 +7,7 @@ + + #include "base/containers/flat_set.h" + #include "components/policy/policy_export.h" ++#include <memory> + + namespace policy { + diff --git a/www-client/chromium/files/chromium-crx-install-err-include-83.patch b/www-client/chromium/files/chromium-crx-install-err-include-83.patch new file mode 100644 index 0000000..fc42771 --- /dev/null +++ b/www-client/chromium/files/chromium-crx-install-err-include-83.patch @@ -0,0 +1,13 @@ +diff --git a/extensions/browser/install/crx_install_error.cc b/extensions/browser/install/crx_install_error.cc +index a9765bb0a..ab5870069 100644 +--- a/extensions/browser/install/crx_install_error.cc ++++ b/extensions/browser/install/crx_install_error.cc +@@ -7,6 +7,8 @@ + #include "base/logging.h" + #include "extensions/browser/install/sandboxed_unpacker_failure_reason.h" + ++#include <algorithm> ++ + namespace extensions { + + CrxInstallError::CrxInstallError(CrxInstallErrorType type, diff --git a/www-client/chromium/files/chromium-cursor-80.patch b/www-client/chromium/files/chromium-cursor-80.patch new file mode 100644 index 0000000..4907452 --- /dev/null +++ b/www-client/chromium/files/chromium-cursor-80.patch @@ -0,0 +1,99 @@ +diff --git a/chrome/browser/ui/libgtkui/gtk_ui.cc b/chrome/browser/ui/libgtkui/gtk_ui.cc +index 1aea19a..cf38ee7 100644 +--- a/chrome/browser/ui/libgtkui/gtk_ui.cc ++++ b/chrome/browser/ui/libgtkui/gtk_ui.cc +@@ -845,6 +845,8 @@ + void GtkUi::OnCursorThemeNameChanged(GtkSettings* settings, + GtkParamSpec* param) { + std::string cursor_theme_name = GetCursorThemeName(); ++ if (cursor_theme_name.empty()) ++ return; + for (auto& observer : cursor_theme_observers()) + observer.OnCursorThemeNameChanged(cursor_theme_name); + } +@@ -852,6 +854,8 @@ + void GtkUi::OnCursorThemeSizeChanged(GtkSettings* settings, + GtkParamSpec* param) { + int cursor_theme_size = GetCursorThemeSize(); ++ if (!cursor_theme_size) ++ return; + for (auto& observer : cursor_theme_observers()) + observer.OnCursorThemeSizeChanged(cursor_theme_size); + } +diff --git a/ui/base/cursor/cursor_loader_x11.cc b/ui/base/cursor/cursor_loader_x11.cc +index efc6351..52ab54a 100644 +--- a/ui/base/cursor/cursor_loader_x11.cc ++++ b/ui/base/cursor/cursor_loader_x11.cc +@@ -83,11 +83,8 @@ + : display_(gfx::GetXDisplay()), + invisible_cursor_(CreateInvisibleCursor(), gfx::GetXDisplay()) { + auto* cursor_theme_manager = CursorThemeManagerLinux::GetInstance(); +- if (cursor_theme_manager) { ++ if (cursor_theme_manager) + cursor_theme_observer_.Add(cursor_theme_manager); +- OnCursorThemeNameChanged(cursor_theme_manager->GetCursorThemeName()); +- OnCursorThemeSizeChanged(cursor_theme_manager->GetCursorThemeSize()); +- } + } + + CursorLoaderX11::~CursorLoaderX11() { +diff --git a/ui/base/cursor/cursor_theme_manager_linux.cc b/ui/base/cursor/cursor_theme_manager_linux.cc +index fe8a97f..f825b74 100644 +--- a/ui/base/cursor/cursor_theme_manager_linux.cc ++++ b/ui/base/cursor/cursor_theme_manager_linux.cc +@@ -26,6 +26,12 @@ + void CursorThemeManagerLinux::AddObserver( + CursorThemeManagerLinuxObserver* observer) { + cursor_theme_observers_.AddObserver(observer); ++ std::string name = GetCursorThemeName(); ++ if (!name.empty()) ++ observer->OnCursorThemeNameChanged(name); ++ int size = GetCursorThemeSize(); ++ if (size) ++ observer->OnCursorThemeSizeChanged(size); + } + + void CursorThemeManagerLinux::RemoveObserver( +diff --git a/ui/base/cursor/cursor_theme_manager_linux.h b/ui/base/cursor/cursor_theme_manager_linux.h +index 5304867..464d397 100644 +--- a/ui/base/cursor/cursor_theme_manager_linux.h ++++ b/ui/base/cursor/cursor_theme_manager_linux.h +@@ -22,9 +22,10 @@ + + static CursorThemeManagerLinux* GetInstance(); + +- virtual std::string GetCursorThemeName() = 0; +- virtual int GetCursorThemeSize() = 0; ++ // Adds |observer| and makes initial OnCursorThemNameChanged() and/or ++ // OnCursorThemeSizeChanged() calls if the respective settings were set. + void AddObserver(CursorThemeManagerLinuxObserver* observer); ++ + void RemoveObserver(CursorThemeManagerLinuxObserver* observer); + + protected: +@@ -35,6 +36,9 @@ + return cursor_theme_observers_; + } + ++ virtual std::string GetCursorThemeName() = 0; ++ virtual int GetCursorThemeSize() = 0; ++ + private: + static CursorThemeManagerLinux* instance_; + +diff --git a/ui/base/cursor/cursor_theme_manager_linux_observer.h b/ui/base/cursor/cursor_theme_manager_linux_observer.h +index 3d0c822..73a3b42 100644 +--- a/ui/base/cursor/cursor_theme_manager_linux_observer.h ++++ b/ui/base/cursor/cursor_theme_manager_linux_observer.h +@@ -15,8 +15,11 @@ + class UI_BASE_EXPORT CursorThemeManagerLinuxObserver + : public base::CheckedObserver { + public: ++ // |cursor_theme_name| will be nonempty. + virtual void OnCursorThemeNameChanged( + const std::string& cursor_theme_name) = 0; ++ ++ // |cursor_theme_size| will be nonzero. + virtual void OnCursorThemeSizeChanged(int cursor_theme_size) = 0; + + protected: diff --git a/www-client/chromium/files/chromium-deque-constructor-82.patch b/www-client/chromium/files/chromium-deque-constructor-82.patch new file mode 100644 index 0000000..5c9d237 --- /dev/null +++ b/www-client/chromium/files/chromium-deque-constructor-82.patch @@ -0,0 +1,13 @@ +diff --git a/third_party/blink/renderer/platform/wtf/deque.h b/third_party/blink/renderer/platform/wtf/deque.h +index 29cce7c57..07233c4 100644 +--- a/third_party/blink/renderer/platform/wtf/deque.h ++++ b/third_party/blink/renderer/platform/wtf/deque.h + +@@ -236,6 +236,7 @@ + typedef T& reference; + typedef std::bidirectional_iterator_tag iterator_category; + ++ DequeIterator() = default; + DequeIterator(Deque<T, inlineCapacity, Allocator>* deque, wtf_size_t index) + : Base(deque, index) {} + diff --git a/www-client/chromium/files/chromium-disable-mojovdec.patch b/www-client/chromium/files/chromium-disable-mojovdec.patch new file mode 100644 index 0000000..e694ad2 --- /dev/null +++ b/www-client/chromium/files/chromium-disable-mojovdec.patch @@ -0,0 +1,18 @@ +diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc +index 477caecdb..e152cbddd 100644 +--- a/media/base/media_switches.cc ++++ b/media/base/media_switches.cc +@@ -245,7 +245,12 @@ const base::Feature kMemoryPressureBasedSourceBufferGC{ + + // Enable MojoVideoDecoder, replacing GpuVideoDecoder. + const base::Feature kMojoVideoDecoder{"MojoVideoDecoder", +- base::FEATURE_ENABLED_BY_DEFAULT}; ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) ++ base::FEATURE_DISABLED_BY_DEFAULT ++#else ++ base::FEATURE_ENABLED_BY_DEFAULT ++#endif ++}; + + // Enable The D3D11 Video decoder. Must also enable MojoVideoDecoder for + // this to have any effect. diff --git a/www-client/chromium/files/chromium-ext-no-vector-const-84.patch b/www-client/chromium/files/chromium-ext-no-vector-const-84.patch new file mode 100644 index 0000000..7a02aba --- /dev/null +++ b/www-client/chromium/files/chromium-ext-no-vector-const-84.patch @@ -0,0 +1,40 @@ +diff --git a/extensions/common/features/feature_flags.cc b/extensions/common/features/feature_flags.cc +index 5b63764e4..7efa308db 100644 +--- a/extensions/common/features/feature_flags.cc ++++ b/extensions/common/features/feature_flags.cc +@@ -19,7 +19,7 @@ namespace { + constexpr base::Feature kFeatureFlags[] = { + {"DeclarativeNetRequest", base::FEATURE_ENABLED_BY_DEFAULT}}; + +-const std::vector<const base::Feature>* g_feature_flags_test_override = nullptr; ++const std::vector<base::Feature>* g_feature_flags_test_override = nullptr; + + template <typename T> + const base::Feature* GetFeature(T begin, +@@ -52,8 +52,8 @@ bool IsFeatureFlagEnabled(const std::string& feature_flag) { + } + + ScopedFeatureFlagsOverride CreateScopedFeatureFlagsOverrideForTesting( +- const std::vector<const base::Feature>* features) { +- return base::AutoReset<const std::vector<const base::Feature>*>( ++ const std::vector<base::Feature>* features) { ++ return base::AutoReset<const std::vector<base::Feature>*>( + &g_feature_flags_test_override, features); + } + +diff --git a/extensions/common/features/feature_flags.h b/extensions/common/features/feature_flags.h +index d1a5dd372..b57740b25 100644 +--- a/extensions/common/features/feature_flags.h ++++ b/extensions/common/features/feature_flags.h +@@ -25,9 +25,9 @@ bool IsFeatureFlagEnabled(const std::string& feature_flag); + // in scope. Clients must ensure that |features| remains alive (non-dangling) + // while the returned value is in scope. + using ScopedFeatureFlagsOverride = +- base::AutoReset<const std::vector<const base::Feature>*>; ++ base::AutoReset<const std::vector<base::Feature>*>; + ScopedFeatureFlagsOverride CreateScopedFeatureFlagsOverrideForTesting( +- const std::vector<const base::Feature>* features); ++ const std::vector<base::Feature>* features); + + } // namespace extensions + diff --git a/www-client/chromium/files/chromium-fix-char_traits.patch b/www-client/chromium/files/chromium-fix-char_traits.patch new file mode 100644 index 0000000..4cb9503 --- /dev/null +++ b/www-client/chromium/files/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/www-client/chromium/files/chromium-gamepad-include-84.patch b/www-client/chromium/files/chromium-gamepad-include-84.patch new file mode 100644 index 0000000..36eb40c --- /dev/null +++ b/www-client/chromium/files/chromium-gamepad-include-84.patch @@ -0,0 +1,12 @@ +diff --git a/device/gamepad/public/cpp/gamepad.h b/device/gamepad/public/cpp/gamepad.h +index 67e793a23..c2ead1bd3 100644 +--- a/device/gamepad/public/cpp/gamepad.h ++++ b/device/gamepad/public/cpp/gamepad.h +@@ -7,6 +7,7 @@ + + #include <stddef.h> + #include <cstdint> ++#include <limits> + + #include "base/component_export.h" + #include "base/strings/string16.h" diff --git a/www-client/chromium/files/chromium-gcc-89311.patch b/www-client/chromium/files/chromium-gcc-89311.patch new file mode 100644 index 0000000..40a0e73 --- /dev/null +++ b/www-client/chromium/files/chromium-gcc-89311.patch @@ -0,0 +1,88 @@ +diff --git a/chrome/browser/ui/views/extensions/extension_popup.cc b/chrome/browser/ui/views/extensions/extension_popup.cc +index 3f0985d..57d16ab 100644 +--- a/chrome/browser/ui/views/extensions/extension_popup.cc ++++ b/chrome/browser/ui/views/extensions/extension_popup.cc +@@ -8,7 +8,6 @@ + #include "chrome/browser/devtools/devtools_window.h" + #include "chrome/browser/extensions/extension_view_host.h" + #include "chrome/browser/ui/browser.h" +-#include "chrome/browser/ui/tabs/tab_strip_model.h" + #include "content/public/browser/devtools_agent_host.h" + #include "content/public/browser/notification_details.h" + #include "content/public/browser/notification_source.h" +diff --git a/chrome/browser/ui/views/extensions/extension_popup.h b/chrome/browser/ui/views/extensions/extension_popup.h +index 3661b5b..9018efa 100644 +--- a/chrome/browser/ui/views/extensions/extension_popup.h ++++ b/chrome/browser/ui/views/extensions/extension_popup.h +@@ -9,6 +9,7 @@ + #include "base/compiler_specific.h" + #include "base/macros.h" + #include "base/scoped_observer.h" ++#include "chrome/browser/ui/tabs/tab_strip_model.h" + #include "chrome/browser/ui/tabs/tab_strip_model_observer.h" + #include "chrome/browser/ui/views/extensions/extension_view_views.h" + #include "content/public/browser/devtools_agent_host_observer.h" +diff --git a/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.cc b/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.cc +index 7419243..441929a 100644 +--- a/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.cc ++++ b/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.cc +@@ -9,7 +9,6 @@ + #include "base/single_thread_task_runner.h" + #include "base/threading/thread_task_runner_handle.h" + #include "base/time/time.h" +-#include "chrome/browser/ui/toolbar/toolbar_actions_bar.h" + #include "chrome/browser/ui/views/frame/app_menu_button.h" + #include "chrome/browser/ui/views/frame/browser_view.h" + #include "chrome/browser/ui/views/toolbar/app_menu.h" +diff --git a/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h b/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h +index 2a3ea8e..ac44a4f 100644 +--- a/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h ++++ b/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h +@@ -8,6 +8,7 @@ + #include "base/macros.h" + #include "base/memory/weak_ptr.h" + #include "base/scoped_observer.h" ++#include "chrome/browser/ui/toolbar/toolbar_actions_bar.h" + #include "chrome/browser/ui/toolbar/toolbar_actions_bar_observer.h" + #include "chrome/browser/ui/views/frame/app_menu_button_observer.h" + #include "ui/views/controls/scroll_view.h" +@@ -16,7 +17,6 @@ + class AppMenuButton; + class Browser; + class BrowserActionsContainer; +-class ToolbarActionsBar; + + namespace views { + class MenuItemView; +diff --git a/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.cc b/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.cc +index 342723e..acdc4b7 100644 +--- a/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.cc ++++ b/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.cc +@@ -10,7 +10,6 @@ + #include "chrome/common/chrome_features.h" + #include "chrome/common/extensions/api/url_handlers/url_handlers_parser.h" + #include "content/public/browser/web_contents.h" +-#include "extensions/browser/extension_registry.h" + #include "extensions/common/extension.h" + #include "url/gurl.h" + +diff --git a/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.h b/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.h +index 895e204..11dfdef 100644 +--- a/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.h ++++ b/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.h +@@ -8,6 +8,7 @@ + #include "base/macros.h" + #include "base/scoped_observer.h" + #include "chrome/browser/web_applications/components/web_app_tab_helper_base.h" ++#include "extensions/browser/extension_registry.h" + #include "extensions/browser/extension_registry_observer.h" + + namespace content { +@@ -17,7 +18,6 @@ + namespace extensions { + + class Extension; +-class ExtensionRegistry; + + // Allows to associate a tab with bookmark app. + class BookmarkAppTabHelper : public web_app::WebAppTabHelperBase, diff --git a/www-client/chromium/files/chromium-gcc-initlist.patch b/www-client/chromium/files/chromium-gcc-initlist.patch new file mode 100644 index 0000000..8658264 --- /dev/null +++ b/www-client/chromium/files/chromium-gcc-initlist.patch @@ -0,0 +1,16 @@ +diff --git a/net/third_party/quic/platform/impl/quic_flags_impl.cc b/net/third_party/quic/platform/impl/quic_flags_impl.cc +index 5e6962d1e..2456c80dd 100644 +--- a/net/third_party/quic/platform/impl/quic_flags_impl.cc ++++ b/net/third_party/quic/platform/impl/quic_flags_impl.cc +@@ -153,9 +153,9 @@ std::string QuicFlagRegistry::GetHelp() const { + template <> + bool TypedQuicFlagHelper<bool>::SetFlag(const std::string& s) const { + static const base::NoDestructor<std::set<std::string>> kTrueValues( +- {"", "1", "t", "true", "y", "yes"}); ++ std::initializer_list<std::string>({"", "1", "t", "true", "y", "yes"})); + static const base::NoDestructor<std::set<std::string>> kFalseValues( +- {"0", "f", "false", "n", "no"}); ++ std::initializer_list<std::string>({"0", "f", "false", "n", "no"})); + if (kTrueValues->find(base::ToLowerASCII(s)) != kTrueValues->end()) { + *flag_ = true; + return true; diff --git a/www-client/chromium/files/chromium-gpu-vp9-include-84.patch b/www-client/chromium/files/chromium-gpu-vp9-include-84.patch new file mode 100644 index 0000000..ca95b4a --- /dev/null +++ b/www-client/chromium/files/chromium-gpu-vp9-include-84.patch @@ -0,0 +1,13 @@ +diff --git a/media/gpu/vp9_reference_frame_vector.cc b/media/gpu/vp9_reference_frame_vector.cc +index dc279980e..d560c7295 100644 +--- a/media/gpu/vp9_reference_frame_vector.cc ++++ b/media/gpu/vp9_reference_frame_vector.cc +@@ -6,6 +6,8 @@ + + #include "media/gpu/vp9_picture.h" + ++#include <bitset> ++ + namespace media { + + Vp9ReferenceFrameVector::Vp9ReferenceFrameVector() { diff --git a/www-client/chromium/files/chromium-harfbuzz-r0.patch b/www-client/chromium/files/chromium-harfbuzz-r0.patch new file mode 100644 index 0000000..2d5602d --- /dev/null +++ b/www-client/chromium/files/chromium-harfbuzz-r0.patch @@ -0,0 +1,80 @@ +From 7ae38170a117e909bb28e1470842b68de3501197 Mon Sep 17 00:00:00 2001 +From: Mike Gilbert <floppymaster@gmail.com> +Date: Sun, 21 Oct 2018 10:06:53 -0400 +Subject: [PATCH] blink: add 'const' modifier for harfbuzz hb_codepoint_t + pointers + +This resolves a build failure against harfbuzz 2.0. + +Based on a patch by Alexandre Fierreira. + +Bug: https://bugs.gentoo.org/669034 +--- + .../renderer/platform/fonts/shaping/harfbuzz_face.cc | 2 +- + .../renderer/platform/fonts/skia/skia_text_metrics.cc | 9 +++++++-- + .../renderer/platform/fonts/skia/skia_text_metrics.h | 2 +- + 3 files changed, 9 insertions(+), 4 deletions(-) + +diff --git a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc +index 8e7d91ca371f..e279a5876cb3 100644 +--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc ++++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc +@@ -139,7 +139,7 @@ static hb_position_t HarfBuzzGetGlyphHorizontalAdvance(hb_font_t* hb_font, + static void HarfBuzzGetGlyphHorizontalAdvances(hb_font_t* font, + void* font_data, + unsigned count, +- hb_codepoint_t* first_glyph, ++ const hb_codepoint_t* first_glyph, + unsigned int glyph_stride, + hb_position_t* first_advance, + unsigned int advance_stride, +diff --git a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.cc b/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.cc +index 77ec6209fab9..9f9070921448 100644 +--- a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.cc ++++ b/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.cc +@@ -18,6 +18,11 @@ T* advance_by_byte_size(T* p, unsigned byte_size) { + return reinterpret_cast<T*>(reinterpret_cast<uint8_t*>(p) + byte_size); + } + ++template <class T> ++T* advance_by_byte_size_const(T* p, unsigned byte_size) { ++ return reinterpret_cast<T*>(reinterpret_cast<const uint8_t*>(p) + byte_size); ++} ++ + } // namespace + + SkiaTextMetrics::SkiaTextMetrics(const SkPaint* paint) : paint_(paint) { +@@ -39,7 +44,7 @@ void SkiaTextMetrics::GetGlyphWidthForHarfBuzz(hb_codepoint_t codepoint, + } + + void SkiaTextMetrics::GetGlyphWidthForHarfBuzz(unsigned count, +- hb_codepoint_t* glyphs, ++ const hb_codepoint_t* glyphs, + unsigned glyph_stride, + hb_position_t* advances, + unsigned advance_stride) { +@@ -48,7 +53,7 @@ void SkiaTextMetrics::GetGlyphWidthForHarfBuzz(unsigned count, + // array that copy them to a regular array. + Vector<Glyph, 256> glyph_array(count); + for (unsigned i = 0; i < count; +- i++, glyphs = advance_by_byte_size(glyphs, glyph_stride)) { ++ i++, glyphs = advance_by_byte_size_const(glyphs, glyph_stride)) { + glyph_array[i] = *glyphs; + } + Vector<SkScalar, 256> sk_width_array(count); +diff --git a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.h b/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.h +index 787d8af0375a..3bc4407c641b 100644 +--- a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.h ++++ b/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.h +@@ -19,7 +19,7 @@ class SkiaTextMetrics final { + + void GetGlyphWidthForHarfBuzz(hb_codepoint_t, hb_position_t* width); + void GetGlyphWidthForHarfBuzz(unsigned count, +- hb_codepoint_t* first_glyph, ++ const hb_codepoint_t* first_glyph, + unsigned glyph_stride, + hb_position_t* first_advance, + unsigned advance_stride); +-- +2.19.1 + diff --git a/www-client/chromium/files/chromium-hashtable-iterator-cat-83.patch b/www-client/chromium/files/chromium-hashtable-iterator-cat-83.patch new file mode 100644 index 0000000..777934c --- /dev/null +++ b/www-client/chromium/files/chromium-hashtable-iterator-cat-83.patch @@ -0,0 +1,65 @@ +diff --git a/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h b/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h +index bbf10ef31..e5b627780 100644 +--- a/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h ++++ b/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h +@@ -268,12 +268,14 @@ class CORE_EXPORT SerializedScriptValue + MessagePortChannelArray& GetStreamChannels() { return stream_channels_; } + + bool IsLockedToAgentCluster() const { +- return !wasm_modules_.IsEmpty() || +- !shared_array_buffers_contents_.IsEmpty() || +- std::any_of(attachments_.begin(), attachments_.end(), +- [](const auto& entry) { +- return entry.value->IsLockedToAgentCluster(); +- }); ++ bool ret = !wasm_modules_.IsEmpty() || ++ !shared_array_buffers_contents_.IsEmpty(); ++ if (ret) return true; ++ for (const auto& entry : attachments_) { ++ if (entry.value->IsLockedToAgentCluster()) ++ return true; ++ }; ++ return false; + } + + // Returns true after serializing script values that remote origins cannot +diff --git a/third_party/blink/renderer/platform/wtf/hash_table.h b/third_party/blink/renderer/platform/wtf/hash_table.h +index 1d195f121..1e65c08d8 100644 +--- a/third_party/blink/renderer/platform/wtf/hash_table.h ++++ b/third_party/blink/renderer/platform/wtf/hash_table.h +@@ -272,7 +272,11 @@ class HashTableConstIterator final { + Allocator> + const_iterator; + typedef Value ValueType; ++ using iterator_category = std::bidirectional_iterator_tag; + using value_type = ValueType; ++ using reference = value_type&; ++ using pointer = value_type*; ++ using difference_type = ptrdiff_t; + typedef typename Traits::IteratorConstGetType GetType; + typedef const ValueType* PointerType; + +@@ -540,6 +544,11 @@ class HashTableIterator final { + std::ostream& PrintTo(std::ostream& stream) const { + return iterator_.PrintTo(stream); + } ++ using iterator_category = std::bidirectional_iterator_tag; ++ using value_type = ValueType; ++ using reference = value_type&; ++ using pointer = value_type*; ++ using difference_type = ptrdiff_t; + + private: + const_iterator iterator_; +@@ -2230,6 +2239,11 @@ struct HashTableConstIteratorAdapter { + } + // postfix -- intentionally omitted + typename HashTableType::const_iterator impl_; ++ using iterator_category = std::bidirectional_iterator_tag; ++ using value_type = GetType*; ++ using reference = value_type&; ++ using pointer = value_type*; ++ using difference_type = ptrdiff_t; + }; + + template <typename HashTable, typename Traits> diff --git a/www-client/chromium/files/chromium-include-limits-83.patch b/www-client/chromium/files/chromium-include-limits-83.patch new file mode 100644 index 0000000..840a212 --- /dev/null +++ b/www-client/chromium/files/chromium-include-limits-83.patch @@ -0,0 +1,13 @@ +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 6ab117bc4..43aa602f2 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 <limits> ++ + #include "chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.h" + #include "base/logging.h" + diff --git a/www-client/chromium/files/chromium-include-limits-84.patch b/www-client/chromium/files/chromium-include-limits-84.patch new file mode 100644 index 0000000..d73b36d --- /dev/null +++ b/www-client/chromium/files/chromium-include-limits-84.patch @@ -0,0 +1,12 @@ +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 4881c010b..4d5d7a4fb 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 +@@ -4,6 +4,7 @@ + + #include "chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.h" + ++#include <limits> + #include <math.h> + + #include "base/logging.h" diff --git a/www-client/chromium/files/chromium-inline-node-ptr-84.patch b/www-client/chromium/files/chromium-inline-node-ptr-84.patch new file mode 100644 index 0000000..58ded53 --- /dev/null +++ b/www-client/chromium/files/chromium-inline-node-ptr-84.patch @@ -0,0 +1,13 @@ +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 55ca9e3f7..ee691dfaf 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()) { diff --git a/www-client/chromium/files/chromium-launcher-r3.sh b/www-client/chromium/files/chromium-launcher-r3.sh new file mode 100644 index 0000000..a4fc1a9 --- /dev/null +++ b/www-client/chromium/files/chromium-launcher-r3.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +# Allow the user to override command-line flags, bug #357629. +# This is based on Debian's chromium-browser package, and is intended +# to be consistent with Debian. +for f in /etc/chromium/*; do + [[ -f ${f} ]] && source "${f}" +done + +# Prefer user defined CHROMIUM_USER_FLAGS (from env) over system +# default CHROMIUM_FLAGS (from /etc/chromium/default). +CHROMIUM_FLAGS=${CHROMIUM_USER_FLAGS:-"$CHROMIUM_FLAGS"} + +# Let the wrapped binary know that it has been run through the wrapper +export CHROME_WRAPPER=$(readlink -f "$0") + +PROGDIR=${CHROME_WRAPPER%/*} + +case ":$PATH:" in + *:$PROGDIR:*) + # $PATH already contains $PROGDIR + ;; + *) + # Append $PROGDIR to $PATH + export PATH="$PATH:$PROGDIR" + ;; +esac + +if [[ ${EUID} == 0 && -O ${XDG_CONFIG_HOME:-${HOME}} ]]; then + # Running as root with HOME owned by root. + # Pass --user-data-dir to work around upstream failsafe. + CHROMIUM_FLAGS="--user-data-dir=${XDG_CONFIG_HOME:-${HOME}/.config}/chromium + ${CHROMIUM_FLAGS}" +fi + +# Set the .desktop file name +export CHROME_DESKTOP="chromium-browser-chromium.desktop" + +exec -a "chromium-browser" "$PROGDIR/chrome" --extra-plugin-dir=/usr/lib/nsbrowser/plugins ${CHROMIUM_FLAGS} "$@" diff --git a/www-client/chromium/files/chromium-launcher-r6.sh b/www-client/chromium/files/chromium-launcher-r6.sh new file mode 100644 index 0000000..637cfd6 --- /dev/null +++ b/www-client/chromium/files/chromium-launcher-r6.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +# Allow the user to override command-line flags, bug #357629. +# This is based on Debian's chromium-browser package, and is intended +# to be consistent with Debian. +for f in /etc/chromium/*; do + [[ -f ${f} ]] && source "${f}" +done + +# Prefer user defined CHROMIUM_USER_FLAGS (from env) over system +# default CHROMIUM_FLAGS (from /etc/chromium/default). +CHROMIUM_FLAGS=${CHROMIUM_USER_FLAGS:-"$CHROMIUM_FLAGS"} + +# Let the wrapped binary know that it has been run through the wrapper +export CHROME_WRAPPER=$(readlink -f "$0") + +PROGDIR=${CHROME_WRAPPER%/*} + +case ":$PATH:" in + *:$PROGDIR:*) + # $PATH already contains $PROGDIR + ;; + *) + # Append $PROGDIR to $PATH + export PATH="$PATH:$PROGDIR" + ;; +esac + +if [[ ${EUID} == 0 && -O ${XDG_CONFIG_HOME:-${HOME}} ]]; then + # Running as root with HOME owned by root. + # Pass --user-data-dir to work around upstream failsafe. + CHROMIUM_FLAGS="--user-data-dir=${XDG_CONFIG_HOME:-${HOME}/.config}/chromium + ${CHROMIUM_FLAGS}" +fi + +# Select session type and platform +if @@FORCE_OZONE_PLATFORM@@; then + CHROMIUM_FLAGS="--enable-features=UseOzonePlatform ${CHROMIUM_FLAGS}" +elif @@OZONE_AUTO_SESSION@@ && ! ${DISABLE_OZONE_PLATFORM:-false}; then + if [[ ${XDG_SESSION_TYPE} == wayland || -n ${WAYLAND_DISPLAY} && ${XDG_SESSION_TYPE} != x11 ]]; then + CHROMIUM_FLAGS="--enable-features=UseOzonePlatform ${CHROMIUM_FLAGS}" + fi +fi + +# Set the .desktop file name +export CHROME_DESKTOP="chromium-browser-chromium.desktop" + +exec -a "chromium-browser" "$PROGDIR/chrome" --extra-plugin-dir=/usr/lib/nsbrowser/plugins ${CHROMIUM_FLAGS} "$@" diff --git a/www-client/chromium/files/chromium-launcher-r7.sh b/www-client/chromium/files/chromium-launcher-r7.sh new file mode 100644 index 0000000..1163ff3 --- /dev/null +++ b/www-client/chromium/files/chromium-launcher-r7.sh @@ -0,0 +1,59 @@ +#!/bin/bash + +# Allow the user to override command-line flags, bug #357629. +# This is based on Debian's chromium-browser package, and is intended +# to be consistent with Debian. +for f in /etc/chromium/*; do + [[ -f ${f} ]] && source "${f}" +done + +# Prefer user defined CHROMIUM_USER_FLAGS (from env) over system +# default CHROMIUM_FLAGS (from /etc/chromium/default). +CHROMIUM_FLAGS=${CHROMIUM_USER_FLAGS:-"$CHROMIUM_FLAGS"} + +# Let the wrapped binary know that it has been run through the wrapper +export CHROME_WRAPPER=$(readlink -f "$0") + +PROGDIR=${CHROME_WRAPPER%/*} + +case ":$PATH:" in + *:$PROGDIR:*) + # $PATH already contains $PROGDIR + ;; + *) + # Append $PROGDIR to $PATH + export PATH="$PATH:$PROGDIR" + ;; +esac + +if [[ ${EUID} == 0 && -O ${XDG_CONFIG_HOME:-${HOME}} ]]; then + # Running as root with HOME owned by root. + # Pass --user-data-dir to work around upstream failsafe. + CHROMIUM_FLAGS="--user-data-dir=${XDG_CONFIG_HOME:-${HOME}/.config}/chromium + ${CHROMIUM_FLAGS}" +fi + +# Select session type and platform +if @@OZONE_AUTO_SESSION@@; then + platform= + if [[ ${XDG_SESSION_TYPE} == x11 ]]; then + platform=x11 + elif [[ ${XDG_SESSION_TYPE} == wayland ]]; then + platform=wayland + else + if [[ -n ${WAYLAND_DISPLAY} ]]; then + platform=wayland + else + platform=x11 + fi + fi + if ${DISABLE_OZONE_PLATFORM:-false}; then + platform=x11 + fi + CHROMIUM_FLAGS="--ozone-platform=${platform} ${CHROMIUM_FLAGS}" +fi + +# Set the .desktop file name +export CHROME_DESKTOP="chromium-browser-chromium.desktop" + +exec -a "chromium-browser" "$PROGDIR/chrome" --extra-plugin-dir=/usr/lib/nsbrowser/plugins ${CHROMIUM_FLAGS} "$@" diff --git a/www-client/chromium/files/chromium-layer_tree_impl-stlcompat.patch b/www-client/chromium/files/chromium-layer_tree_impl-stlcompat.patch new file mode 100644 index 0000000..8fd9ff1 --- /dev/null +++ b/www-client/chromium/files/chromium-layer_tree_impl-stlcompat.patch @@ -0,0 +1,13 @@ +diff --git a/cc/trees/layer_tree_impl.h b/cc/trees/layer_tree_impl.h +index f74d18f65..7cdc29e44 100644 +--- a/cc/trees/layer_tree_impl.h ++++ b/cc/trees/layer_tree_impl.h +@@ -194,7 +194,7 @@ class CC_EXPORT LayerTreeImpl { + // Adapts an iterator of std::unique_ptr<LayerImpl> to an iterator of + // LayerImpl*. + template <typename Iterator> +- class IteratorAdapter { ++ class IteratorAdapter : public std::iterator<std::forward_iterator_tag, LayerImpl*> { + public: + explicit IteratorAdapter(Iterator it) : it_(it) {} + bool operator==(IteratorAdapter o) const { return it_ == o.it_; } diff --git a/www-client/chromium/files/chromium-link.patch b/www-client/chromium/files/chromium-link.patch new file mode 100644 index 0000000..d39bba0 --- /dev/null +++ b/www-client/chromium/files/chromium-link.patch @@ -0,0 +1,17 @@ +diff --git a/device/bluetooth/bluetooth_device.cc b/device/bluetooth/bluetooth_device.cc +index dc280146a..cdc2944f4 100644 +--- a/device/bluetooth/bluetooth_device.cc ++++ b/device/bluetooth/bluetooth_device.cc +@@ -513,9 +513,9 @@ void BluetoothDevice::RemoveGattConnection( + } + + void BluetoothDevice::SetAsExpiredForTesting() { +- last_update_time_ = +- base::Time::NowFromSystemTime() - +- (BluetoothAdapter::timeoutSec + base::TimeDelta::FromSeconds(1)); ++ //last_update_time_ = ++ // base::Time::NowFromSystemTime() - ++ // (BluetoothAdapter::timeoutSec + base::TimeDelta::FromSeconds(1)); + } + + void BluetoothDevice::Pair(PairingDelegate* pairing_delegate, diff --git a/www-client/chromium/files/chromium-math.h-r0.patch b/www-client/chromium/files/chromium-math.h-r0.patch new file mode 100644 index 0000000..6c7c747 --- /dev/null +++ b/www-client/chromium/files/chromium-math.h-r0.patch @@ -0,0 +1,29 @@ +From 9f63f94a11abc34d40ede8b8712fa15b5844a8c0 Mon Sep 17 00:00:00 2001 +From: Tom Anderson <thomasanderson@chromium.org> +Date: Sat, 27 Jan 2018 20:03:37 +0000 +Subject: [PATCH] Fix build with glibc 2.27 + +BUG=806340 +TBR=hamelphi@chromium.org + +Change-Id: Ib4e5091212d874d9ad88f3e9a1fdfee3ed7e0d5e +Reviewed-on: https://chromium-review.googlesource.com/890059 +Reviewed-by: Thomas Anderson <thomasanderson@chromium.org> +Reviewed-by: Philippe Hamel <hamelphi@chromium.org> +Commit-Queue: Thomas Anderson <thomasanderson@chromium.org> +Cr-Commit-Position: refs/heads/master@{#532249} +--- + +diff --git a/components/assist_ranker/ranker_example_util.cc b/components/assist_ranker/ranker_example_util.cc +index 54d4dbd..ceedd8f 100644 +--- a/components/assist_ranker/ranker_example_util.cc ++++ b/components/assist_ranker/ranker_example_util.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 <math.h> ++ + #include "components/assist_ranker/ranker_example_util.h" + #include "base/bit_cast.h" + #include "base/format_macros.h" diff --git a/www-client/chromium/files/chromium-media-alloc-84.patch b/www-client/chromium/files/chromium-media-alloc-84.patch new file mode 100644 index 0000000..cc9ca5d --- /dev/null +++ b/www-client/chromium/files/chromium-media-alloc-84.patch @@ -0,0 +1,22 @@ +diff --git a/media/base/media.cc b/media/base/media.cc +index c282ee49a..3feece8a2 100644 +--- a/media/base/media.cc ++++ b/media/base/media.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 <limits> ++ + #include "media/base/media.h" + + #include "base/allocator/buildflags.h" +@@ -41,7 +43,7 @@ class MediaInitializer { + + #if BUILDFLAG(USE_ALLOCATOR_SHIM) + // Remove allocation limit from ffmpeg, so calls go down to shim layer. +- av_max_alloc(0); ++ av_max_alloc(std::numeric_limits<size_t>::max()); + #endif // BUILDFLAG(USE_ALLOCATOR_SHIM) + + #endif // BUILDFLAG(ENABLE_FFMPEG) diff --git a/www-client/chromium/files/chromium-memcpy-r0.patch b/www-client/chromium/files/chromium-memcpy-r0.patch new file mode 100644 index 0000000..dd2fd57 --- /dev/null +++ b/www-client/chromium/files/chromium-memcpy-r0.patch @@ -0,0 +1,35 @@ +From 4942f56ceb6d60d6f54ebca8e6eba8ba01c278e8 Mon Sep 17 00:00:00 2001 +From: Tomas Popela <tomas.popela@gmail.com> +Date: Thu, 7 Dec 2017 22:33:34 +0000 +Subject: [PATCH] memcpy used without including string.h + +Compiling Chromium with Clang 4.0.1 and using libstdc++ will fail on using +memcpy without including string.h. + +Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel +Change-Id: Idced1d5de3baf6b520d4a2d61774120642ead1a8 +Reviewed-on: https://chromium-review.googlesource.com/813737 +Reviewed-by: Thomas Anderson <thomasanderson@chromium.org> +Reviewed-by: vmpstr <vmpstr@chromium.org> +Commit-Queue: Thomas Anderson <thomasanderson@chromium.org> +Cr-Commit-Position: refs/heads/master@{#522579} +--- + cc/paint/raw_memory_transfer_cache_entry.cc | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/cc/paint/raw_memory_transfer_cache_entry.cc b/cc/paint/raw_memory_transfer_cache_entry.cc +index 9e4660c685ee..95ad50b1a338 100644 +--- a/cc/paint/raw_memory_transfer_cache_entry.cc ++++ b/cc/paint/raw_memory_transfer_cache_entry.cc +@@ -4,6 +4,8 @@ + + #include "cc/paint/raw_memory_transfer_cache_entry.h" + ++#include <string.h> ++ + namespace cc { + + ClientRawMemoryTransferCacheEntry::ClientRawMemoryTransferCacheEntry( +-- +2.15.1 + diff --git a/www-client/chromium/files/chromium-mojo-ltm-83.patch b/www-client/chromium/files/chromium-mojo-ltm-83.patch new file mode 100644 index 0000000..f7ab5ee --- /dev/null +++ b/www-client/chromium/files/chromium-mojo-ltm-83.patch @@ -0,0 +1,84 @@ +From f47546873b1517d358815a26cebc6c4d51addbdb Mon Sep 17 00:00:00 2001 +From: Asa Karlsson <asaka@vewd.com> +Date: Wed, 11 Mar 2020 10:51:08 +0100 +Subject: [PATCH] Fix lifetime management of URLLoaderClient::OnUpdateProgress callback. + +The mojo setup for network URLLoader is a 3-way connection: + URLLoader <-> CorsURLLoader <-> URLLoaderClientImpl. + +The network::mojom::URLLoaderClient interface has one function with a +callback defined: URLLoaderClient::OnUpdateProgress. Depending on +timing, this callback may be in progress while the mojo connection is +torn down. If the callback (originating in URLLoader) is in transfer +from CorsURLLoader to URLLoaderClientImpl at that time, the callback +would be dropped (destroyed) due to Receiver (URLLoaderClientImpl) +being destroyed. Since the callback was successfully handed over to +CorsURLLoader first, this will lead to a mojo DCHECK for "<callback> +was destroyed without first either being run or its corresponding +binding being closed". + +By storing the callback in CorsURLLoader and calling it on mojo +disconnect, running the callback is ensured also at untimely +disconnects. + +Bug: 1060502 +Change-Id: Iaedeac975508b3c0e5b4819d4f0b1a061f9c5460 +--- + +diff --git a/services/network/cors/cors_url_loader.cc b/services/network/cors/cors_url_loader.cc +index c25dded..e51d916 100644 +--- a/services/network/cors/cors_url_loader.cc ++++ b/services/network/cors/cors_url_loader.cc +@@ -383,8 +383,20 @@ + OnUploadProgressCallback ack_callback) { + DCHECK(network_loader_); + DCHECK(forwarding_client_); +- forwarding_client_->OnUploadProgress(current_position, total_size, +- std::move(ack_callback)); ++ ++ // We need to store the original callback here to allow us to call ++ // it during mojo disconnect in the case the OnUploadProgress has ++ // not reached the forwarding_client_ yet. Otherwise, the ++ // un-triggered callback will generate a DCHECK when destroyed. ++ pending_upoad_callback_ = std::move(ack_callback); ++ forwarding_client_->OnUploadProgress( ++ current_position, total_size, ++ base::BindOnce(&CorsURLLoader::OnUploadProgressACK, ++ weak_factory_.GetWeakPtr())); ++} ++ ++void CorsURLLoader::OnUploadProgressACK() { ++ std::move(pending_upoad_callback_).Run(); + } + + void CorsURLLoader::OnReceiveCachedMetadata(mojo_base::BigBuffer data) { +@@ -538,6 +550,8 @@ + } + + void CorsURLLoader::OnMojoDisconnect() { ++ if (pending_upoad_callback_) ++ std::move(pending_upoad_callback_).Run(); + HandleComplete(URLLoaderCompletionStatus(net::ERR_ABORTED)); + } + +diff --git a/services/network/cors/cors_url_loader.h b/services/network/cors/cors_url_loader.h +index 3f47a81..6611c6e 100644 +--- a/services/network/cors/cors_url_loader.h ++++ b/services/network/cors/cors_url_loader.h +@@ -108,6 +108,8 @@ + // Handles OnComplete() callback. + void HandleComplete(const URLLoaderCompletionStatus& status); + ++ void OnUploadProgressACK(); ++ + void OnMojoDisconnect(); + + void SetCorsFlagIfNeeded(); +@@ -124,6 +126,7 @@ + const std::string& header_name); + + mojo::Receiver<mojom::URLLoader> receiver_; ++ OnUploadProgressCallback pending_upoad_callback_; + + // We need to save these for redirect, and DevTools. + const int32_t process_id_; diff --git a/www-client/chromium/files/chromium-nearby-inc-86.patch b/www-client/chromium/files/chromium-nearby-inc-86.patch new file mode 100644 index 0000000..2fd2187 --- /dev/null +++ b/www-client/chromium/files/chromium-nearby-inc-86.patch @@ -0,0 +1,10 @@ +--- a/third_party/nearby/src/cpp/platform_v2/base/byte_array.h 2020-07-31 09:49:49.073719408 +0800 ++++ b/third_party/nearby/src/cpp/platform_v2/base/byte_array.h 2020-07-31 09:50:00.025843476 +0800 +@@ -17,6 +17,7 @@ + + #include <array> + #include <cstdint> ++#include <cstring> + #include <string> + #include <type_traits> + #include <utility> diff --git a/www-client/chromium/files/chromium-ngphyscontainer-iterator-cat-83.patch b/www-client/chromium/files/chromium-ngphyscontainer-iterator-cat-83.patch new file mode 100644 index 0000000..1ab52d5 --- /dev/null +++ b/www-client/chromium/files/chromium-ngphyscontainer-iterator-cat-83.patch @@ -0,0 +1,17 @@ +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 b3c7624f4..6efe44a66 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 +@@ -51,6 +51,12 @@ class CORE_EXPORT NGPhysicalContainerFragment : public NGPhysicalFragment { + return current_ != other.current_; + } + ++ using iterator_category = std::forward_iterator_tag; ++ using value_type = NGLink*; ++ using reference = value_type&; ++ using pointer = value_type*; ++ using difference_type = ptrdiff_t; ++ + private: + const NGLink* PostLayoutOrCurrent() const { + post_layout_.fragment = current_->fragment->PostLayout(); diff --git a/www-client/chromium/files/chromium-noexcept-2.patch b/www-client/chromium/files/chromium-noexcept-2.patch new file mode 100644 index 0000000..16aa76b --- /dev/null +++ b/www-client/chromium/files/chromium-noexcept-2.patch @@ -0,0 +1,26 @@ +diff --git a/chrome/browser/media/router/providers/cast/cast_activity_manager.cc b/chrome/browser/media/router/providers/cast/cast_activity_manager.cc +index 5c72abe4f..5e30c24d2 100644 +--- a/chrome/browser/media/router/providers/cast/cast_activity_manager.cc ++++ b/chrome/browser/media/router/providers/cast/cast_activity_manager.cc +@@ -803,7 +803,7 @@ CastActivityManager::DoLaunchSessionParams::DoLaunchSessionParams( + callback(std::move(callback)) {} + + CastActivityManager::DoLaunchSessionParams::DoLaunchSessionParams( +- DoLaunchSessionParams&& other) noexcept = default; ++ DoLaunchSessionParams&& other) = default; + + CastActivityManager::DoLaunchSessionParams::~DoLaunchSessionParams() = default; + +diff --git a/chrome/browser/media/router/providers/cast/cast_activity_manager.h b/chrome/browser/media/router/providers/cast/cast_activity_manager.h +index 325bffc72..08fe0ccca 100644 +--- a/chrome/browser/media/router/providers/cast/cast_activity_manager.h ++++ b/chrome/browser/media/router/providers/cast/cast_activity_manager.h +@@ -295,7 +295,7 @@ class CastActivityManager : public cast_channel::CastMessageHandler::Observer, + const url::Origin& origin, + int tab_id, + mojom::MediaRouteProvider::CreateRouteCallback callback); +- DoLaunchSessionParams(DoLaunchSessionParams&& other) noexcept; ++ DoLaunchSessionParams(DoLaunchSessionParams&& other); + ~DoLaunchSessionParams(); + DoLaunchSessionParams& operator=(DoLaunchSessionParams&&) = delete; + diff --git a/www-client/chromium/files/chromium-noexcept-3.patch b/www-client/chromium/files/chromium-noexcept-3.patch new file mode 100644 index 0000000..b5ca5a3 --- /dev/null +++ b/www-client/chromium/files/chromium-noexcept-3.patch @@ -0,0 +1,26 @@ +diff --git a/storage/browser/fileapi/file_system_url.cc b/storage/browser/fileapi/file_system_url.cc +index b90cf2904..e28b1f85d 100644 +--- a/storage/browser/fileapi/file_system_url.cc ++++ b/storage/browser/fileapi/file_system_url.cc +@@ -26,7 +26,7 @@ FileSystemURL::FileSystemURL() + + FileSystemURL::FileSystemURL(const FileSystemURL& other) = default; + +-FileSystemURL::FileSystemURL(FileSystemURL&& other) noexcept = default; ++FileSystemURL::FileSystemURL(FileSystemURL&& other) = default; + + FileSystemURL& FileSystemURL::operator=(FileSystemURL&& rhs) = default; + +diff --git a/storage/browser/fileapi/file_system_url.h b/storage/browser/fileapi/file_system_url.h +index 8220812d0..f6b8813e2 100644 +--- a/storage/browser/fileapi/file_system_url.h ++++ b/storage/browser/fileapi/file_system_url.h +@@ -82,7 +82,7 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) FileSystemURL { + FileSystemURL(const FileSystemURL& other); + // Constructs FileSystemURL with the contents of |other|, which is left in + // valid but unspecified state. +- FileSystemURL(FileSystemURL&& other) noexcept; ++ FileSystemURL(FileSystemURL&& other); + ~FileSystemURL(); + + // Replaces the contents with those of |rhs|, which is left in valid but diff --git a/www-client/chromium/files/chromium-noexcept.patch b/www-client/chromium/files/chromium-noexcept.patch new file mode 100644 index 0000000..70948a8 --- /dev/null +++ b/www-client/chromium/files/chromium-noexcept.patch @@ -0,0 +1,26 @@ +diff --git a/media/learning/common/labelled_example.cc b/media/learning/common/labelled_example.cc +index 6c8cb7d34..370b6bb05 100644 +--- a/media/learning/common/labelled_example.cc ++++ b/media/learning/common/labelled_example.cc +@@ -17,7 +17,7 @@ LabelledExample::LabelledExample(std::initializer_list<FeatureValue> init_list, + + LabelledExample::LabelledExample(const LabelledExample& rhs) = default; + +-LabelledExample::LabelledExample(LabelledExample&& rhs) noexcept = default; ++LabelledExample::LabelledExample(LabelledExample&& rhs) = default; + + LabelledExample::~LabelledExample() = default; + +diff --git a/media/learning/common/labelled_example.h b/media/learning/common/labelled_example.h +index ee89586f5..b203a567c 100644 +--- a/media/learning/common/labelled_example.h ++++ b/media/learning/common/labelled_example.h +@@ -31,7 +31,7 @@ struct COMPONENT_EXPORT(LEARNING_COMMON) LabelledExample { + LabelledExample(std::initializer_list<FeatureValue> init_list, + TargetValue target); + LabelledExample(const LabelledExample& rhs); +- LabelledExample(LabelledExample&& rhs) noexcept; ++ LabelledExample(LabelledExample&& rhs); + ~LabelledExample(); + + // Comparisons ignore weight, because it's convenient. diff --git a/www-client/chromium/files/chromium-ntp_backgrounds-include-84.patch b/www-client/chromium/files/chromium-ntp_backgrounds-include-84.patch new file mode 100644 index 0000000..bd98ef0 --- /dev/null +++ b/www-client/chromium/files/chromium-ntp_backgrounds-include-84.patch @@ -0,0 +1,12 @@ +diff --git a/chrome/browser/search/background/ntp_backgrounds.h b/chrome/browser/search/background/ntp_backgrounds.h +index 7afc0a230..6a6ad3b48 100644 +--- a/chrome/browser/search/background/ntp_backgrounds.h ++++ b/chrome/browser/search/background/ntp_backgrounds.h +@@ -5,6 +5,7 @@ + #ifndef CHROME_BROWSER_SEARCH_BACKGROUND_NTP_BACKGROUNDS_H_ + #define CHROME_BROWSER_SEARCH_BACKGROUND_NTP_BACKGROUNDS_H_ + ++#include <cstddef> + #include <array> + + class GURL; diff --git a/www-client/chromium/files/chromium-opencv-include-84.patch b/www-client/chromium/files/chromium-opencv-include-84.patch new file mode 100644 index 0000000..4c7b328 --- /dev/null +++ b/www-client/chromium/files/chromium-opencv-include-84.patch @@ -0,0 +1,12 @@ +diff --git a/third_party/opencv/src/emd.cpp b/third_party/opencv/src/emd.cpp +index 30b19f676..834ebe9f4 100644 +--- a/third_party/opencv/src/emd.cpp ++++ b/third_party/opencv/src/emd.cpp +@@ -59,6 +59,7 @@ + #ifdef CHROMIUM_OPENCV + #include "emd_wrapper.h" + ++#include <algorithm> + #include <vector> + #include <cassert> + diff --git a/www-client/chromium/files/chromium-pa13.patch b/www-client/chromium/files/chromium-pa13.patch new file mode 100644 index 0000000..892a318 --- /dev/null +++ b/www-client/chromium/files/chromium-pa13.patch @@ -0,0 +1,82 @@ +From 7ac85fb4cc6f44a21761a591ac497ae3d6bf966d Mon Sep 17 00:00:00 2001 +From: Allan Sandfeld Jensen <allan.jensen@qt.io> +Date: Mon, 23 Sep 2019 13:49:53 +0200 +Subject: [PATCH] Fix building with pulseaudio 13 + +The function signature changed though the ABI stayed the same. + +(Modified to apply on chromium sources too) + +Change-Id: I86ca361b5e4f0c523e1031910df438c23beee876 +Fixes: QTBUG-77037 +Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io> +--- + +diff --git a/media/audio/pulse/pulse.sigs b/media/audio/pulse/pulse.sigs +index 8b58887..daaeb14 100644 +--- a/media/audio/pulse/pulse.sigs ++++ b/media/audio/pulse/pulse.sigs +@@ -24,11 +24,11 @@ + pa_operation* pa_context_get_source_info_by_name(pa_context* c, const char* name, pa_source_info_cb_t cb, void *userdata); + pa_operation* pa_context_get_source_info_list(pa_context* c, pa_source_info_cb_t cb, void* userdata); + pa_operation* pa_context_get_sink_info_list(pa_context* c, pa_sink_info_cb_t cb, void* userdata); +-pa_context_state_t pa_context_get_state(pa_context* c); ++pa_context_state_t pa_context_get_state(const_pa_context_ptr c); + pa_context* pa_context_new(pa_mainloop_api* mainloop, const char* name); + pa_operation* pa_context_set_source_volume_by_index(pa_context* c, uint32_t idx, const pa_cvolume* volume, pa_context_success_cb_t cb, void* userdata); + void pa_context_set_state_callback(pa_context* c, pa_context_notify_cb_t cb, void* userdata); +-pa_operation_state_t pa_operation_get_state(pa_operation* o); ++pa_operation_state_t pa_operation_get_state(const_pa_operation_ptr o); + void pa_context_unref(pa_context* c); + void pa_operation_unref(pa_operation* o); + int pa_stream_begin_write(pa_stream* p, void** data, size_t* nbytes); +@@ -38,23 +38,23 @@ + int pa_stream_disconnect(pa_stream* s); + int pa_stream_drop(pa_stream *p); + pa_operation* pa_stream_flush(pa_stream* s, pa_stream_success_cb_t cb, void* userdata); +-uint32_t pa_stream_get_device_index(pa_stream* s); ++uint32_t pa_stream_get_device_index(const_pa_stream_ptr s); + int pa_stream_get_latency(pa_stream* s, pa_usec_t* r_usec, int* negative); +-pa_stream_state_t pa_stream_get_state(pa_stream* p); ++pa_stream_state_t pa_stream_get_state(const_pa_stream_ptr p); + pa_stream* pa_stream_new(pa_context* c, const char* name, const pa_sample_spec* ss, const pa_channel_map * map); + pa_stream* pa_stream_new_with_proplist(pa_context* c, const char* name, const pa_sample_spec* ss, const pa_channel_map* map, pa_proplist* p); + pa_proplist* pa_proplist_new(void); +-int pa_proplist_contains(pa_proplist* p, const char* key); ++int pa_proplist_contains(const_pa_proplist_ptr p, const char* key); + void pa_proplist_free(pa_proplist* p); +-const char* pa_proplist_gets(pa_proplist* p, const char* key); ++const char* pa_proplist_gets(const_pa_proplist_ptr p, const char* key); + int pa_proplist_sets(pa_proplist* p, const char* key, const char* value); +-size_t pa_stream_readable_size(pa_stream *p); ++size_t pa_stream_readable_size(const_pa_stream_ptr p); + int pa_stream_peek(pa_stream* p, const void** data, size_t* nbytes); + void pa_stream_set_read_callback(pa_stream* p, pa_stream_request_cb_t cb, void* userdata); + void pa_stream_set_state_callback(pa_stream* s, pa_stream_notify_cb_t cb, void* userdata); + int pa_stream_write(pa_stream* p, const void* data, size_t nbytes, pa_free_cb_t free_cb, int64_t offset, pa_seek_mode_t seek); + void pa_stream_set_write_callback(pa_stream *p, pa_stream_request_cb_t cb, void *userdata); + void pa_stream_unref(pa_stream* s); +-int pa_context_errno(pa_context *c); ++int pa_context_errno(const_pa_context_ptr c); + const char* pa_strerror(int error); + pa_cvolume* pa_cvolume_set(pa_cvolume* a, unsigned channels, pa_volume_t v); +diff --git a/chromium/media/audio/pulse/pulse_stub_header.fragment b/chromium/media/audio/pulse/pulse_stub_header.fragment +index 2a2d3e7..cdaa841 100644 +--- a/media/audio/pulse/pulse_stub_header.fragment ++++ b/media/audio/pulse/pulse_stub_header.fragment +@@ -5,4 +5,15 @@ + + #include <pulse/pulseaudio.h> + ++#if PA_MAJOR > 12 ++typedef const pa_context* const_pa_context_ptr; ++typedef const pa_operation* const_pa_operation_ptr; ++typedef const pa_proplist* const_pa_proplist_ptr; ++typedef const pa_stream* const_pa_stream_ptr; ++#else ++typedef pa_context* const_pa_context_ptr; ++typedef pa_operation* const_pa_operation_ptr; ++typedef pa_proplist* const_pa_proplist_ptr; ++typedef pa_stream* const_pa_stream_ptr; ++#endif + } diff --git a/www-client/chromium/files/chromium-pdfium-stdlib-r0.patch b/www-client/chromium/files/chromium-pdfium-stdlib-r0.patch new file mode 100644 index 0000000..1cfa4c5 --- /dev/null +++ b/www-client/chromium/files/chromium-pdfium-stdlib-r0.patch @@ -0,0 +1,30 @@ +From e3ad3deb6a6e79284f3748fa7410311d87df91c5 Mon Sep 17 00:00:00 2001 +From: Henrique Nakashima <hnakashima@chromium.org> +Date: Tue, 4 Sep 2018 16:49:51 +0000 +Subject: [PATCH] IWYU: stdint.h in pdfium_mem_buffer_file_write.h for uint8_t + +Bug: 879900 +Change-Id: I9c15d1c280a23c53d31f2d72c9d0d1db79eab886 +Reviewed-on: https://chromium-review.googlesource.com/1204410 +Reviewed-by: Lei Zhang <thestig@chromium.org> +Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> +Cr-Commit-Position: refs/heads/master@{#588547} +--- + pdf/pdfium/pdfium_mem_buffer_file_write.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/pdf/pdfium/pdfium_mem_buffer_file_write.h b/pdf/pdfium/pdfium_mem_buffer_file_write.h +index 03c54bb63800..82e82d23684d 100644 +--- a/pdf/pdfium/pdfium_mem_buffer_file_write.h ++++ b/pdf/pdfium/pdfium_mem_buffer_file_write.h +@@ -6,6 +6,7 @@ + #define PDF_PDFIUM_PDFIUM_MEM_BUFFER_FILE_WRITE_H_ + + #include <stddef.h> ++#include <stdint.h> + + #include <vector> + +-- +2.19.0 + diff --git a/www-client/chromium/files/chromium-remove-no_check_targets-86.patch b/www-client/chromium/files/chromium-remove-no_check_targets-86.patch new file mode 100644 index 0000000..7661b32 --- /dev/null +++ b/www-client/chromium/files/chromium-remove-no_check_targets-86.patch @@ -0,0 +1,621 @@ +diff --git a/.gn b/.gn +index 3afb64ba2..b239e02c3 100644 +--- a/.gn ++++ b/.gn +@@ -55,311 +55,311 @@ default_args = { + # matching these patterns (see "gn help label_pattern" for format) will not have + # their includes checked for proper dependencies when you run either + # "gn check" or "gn gen --check". +-no_check_targets = [ +- # //chrome/*, https://crbug.com/949535 +- "//chrome/browser/devtools:*", # 114 errors +- "//chrome/browser/media/router/discovery:*", # 26 errors +- "//chrome/browser/media/router:*", # 225 errors +- "//chrome/browser/paint_preview:*", # 4 errors +- "//chrome/browser/profiling_host:*", # 13 errors +- "//chrome/browser/resources/chromeos/zip_archiver/cpp:*", # 2 errors +- "//chrome/browser/safe_browsing/android:*", # 3 errors +- "//chrome/browser/safe_browsing:*", # 85 errors +- "//chrome/browser/safety_check/android:*", # 3 errors +- "//chrome/browser/storage_access_api:*", # 2 errors +- "//chrome/browser/touch_to_fill/android:*", # 8 errors +- "//chrome/browser/touch_to_fill:*", # 5 errors +- "//chrome/browser/updates/announcement_notification:*", # 15 errors +- "//chrome/browser/updates/internal:*", # 8 errors +- "//chrome/browser/updates:*", # 21 errors +- "//chrome/browser:*", # 780 errors +- "//chrome/child:*", # 3 errors +- "//chrome/credential_provider/gaiacp:*", # 1 error +- "//chrome/gpu:*", # 2 errors +- "//chrome/install_static:*", # 4 errors +- "//chrome/notification_helper:*", # 4 errors +- "//chrome/renderer:*", # 42 errors +- "//chrome/services/cups_proxy/public/cpp:*", # 2 errors +- "//chrome/services/cups_proxy:*", # 6 errors +- "//chrome/services/file_util/public/cpp:*", # 13 errors +- "//chrome/services/file_util:*", # 3 errors +- "//chrome/services/ipp_parser:*", # 1 error +- "//chrome/services/media_gallery_util/public/cpp:*", # 6 errors +- "//chrome/services/media_gallery_util:*", # 3 errors +- "//chrome/services/printing:*", # 3 errors +- "//chrome/services/qrcode_generator:*", # 1 error +- "//chrome/services/removable_storage_writer:*", # 1 error +- "//chrome/services/sharing/public/cpp:*", # 2 errors +- "//chrome/services/speech:*", # 5 errors +- "//chrome/services/util_win:*", # 1 error +- "//chrome/test/chromedriver:*", # 115 errors +- "//chrome/test/data/nacl:*", # 350 errors +- "//chrome/test/media_router:*", # 5 errors +- "//chrome/test:*", # 2682 errors +- "//chrome:*", # 7 errors +- +- "//clank/third_party/gvr_shim:*", # 1 error +- "//extensions/browser/api/alarms:*", # 2 errors +- "//extensions/browser/api/app_current_window_internal:*", # 3 errors +- "//extensions/browser/api/app_runtime:*", # 3 errors +- "//extensions/browser/api/app_window:*", # 5 errors +- "//extensions/browser/api/audio:*", # 3 errors +- "//extensions/browser/api/automation_internal:*", # 37 errors +- "//extensions/browser/api/bluetooth_low_energy:*", # 22 errors +- "//extensions/browser/api/bluetooth_socket:*", # 12 errors +- "//extensions/browser/api/cast_channel:*", # 3 errors +- "//extensions/browser/api/cec_private:*", # 4 errors +- "//extensions/browser/api/clipboard:*", # 3 errors +- "//extensions/browser/api/crash_report_private:*", # 1 error +- "//extensions/browser/api/declarative:*", # 20 errors +- "//extensions/browser/api/declarative_content:*", # 2 errors +- "//extensions/browser/api/declarative_net_request/filter_list_converter:*", # 1 +- # error +- "//extensions/browser/api/declarative_net_request:*", # 18 errors +- "//extensions/browser/api/declarative_webrequest:*", # 29 errors +- "//extensions/browser/api/diagnostics:*", # 2 errors +- "//extensions/browser/api/display_source:*", # 7 errors +- "//extensions/browser/api/dns:*", # 3 errors +- "//extensions/browser/api/document_scan:*", # 2 errors +- "//extensions/browser/api/feedback_private:*", # 2 errors +- "//extensions/browser/api/file_handlers:*", # 3 errors +- "//extensions/browser/api/file_system:*", # 1 error +- "//extensions/browser/api/hid:*", # 12 errors +- "//extensions/browser/api/idle:*", # 4 errors +- "//extensions/browser/api/management:*", # 19 errors +- "//extensions/browser/api/messaging:*", # 1 error +- "//extensions/browser/api/metrics_private:*", # 3 errors +- "//extensions/browser/api/mime_handler_private:*", # 1 error +- "//extensions/browser/api/networking_config:*", # 7 errors +- "//extensions/browser/api/networking_private:*", # 14 errors +- "//extensions/browser/api/power:*", # 3 errors +- "//extensions/browser/api/printer_provider:*", # 7 errors +- "//extensions/browser/api/printer_provider_internal:*", # 3 errors +- "//extensions/browser/api/runtime:*", # 6 errors +- "//extensions/browser/api/serial:*", # 10 errors +- "//extensions/browser/api/socket:*", # 11 errors +- "//extensions/browser/api/sockets_tcp:*", # 6 errors +- "//extensions/browser/api/sockets_tcp_server:*", # 8 errors +- "//extensions/browser/api/sockets_udp:*", # 9 errors +- "//extensions/browser/api/storage:*", # 9 errors +- "//extensions/browser/api/system_cpu:*", # 1 error +- "//extensions/browser/api/system_display:*", # 3 errors +- "//extensions/browser/api/system_info:*", # 8 errors +- "//extensions/browser/api/system_memory:*", # 1 error +- "//extensions/browser/api/system_network:*", # 2 errors +- "//extensions/browser/api/system_power_source:*", # 2 errors +- "//extensions/browser/api/system_storage:*", # 6 errors +- "//extensions/browser/api/test:*", # 1 error +- "//extensions/browser/api/usb:*", # 12 errors +- "//extensions/browser/api/virtual_keyboard:*", # 1 error +- "//extensions/browser/api/virtual_keyboard_private:*", # 2 errors +- "//extensions/browser/api/vpn_provider:*", # 13 errors +- "//extensions/browser/api/web_request:*", # 37 errors +- "//extensions/browser/api/webcam_private:*", # 8 errors +- "//extensions/browser/api:*", # 7 errors +- "//extensions/browser/updater:*", # 31 errors +- "//extensions/browser/value_store:*", # 5 errors +- "//extensions/browser:*", # 20 errors +- "//extensions:*", # 75 errors +- "//headless:*", # 167 errors +- "//jingle:*", # 4 errors +- "//native_client/src/trusted/service_runtime:*", # 2 errors +- "//ppapi/cpp/private:*", # 1 error +- "//ppapi/host:*", # 1 error +- "//ppapi/native_client/src/untrusted/pnacl_irt_shim:*", # 197 errors +- "//ppapi/proxy:*", # 31 errors +- "//ppapi/shared_impl:*", # 3 errors +- "//ppapi/thunk:*", # 1071 errors +- "//ppapi:*", # 3 errors +- "//remoting/base/grpc_support:*", # 14 errors +- "//remoting/base/grpc_test_support:*", # 1 error +- "//remoting/base:*", # 6 errors +- "//remoting/client/audio:*", # 7 errors +- "//remoting/client/display:*", # 55 errors +- "//remoting/client/input:*", # 17 errors +- "//remoting/client/jni:*", # 8 errors +- "//remoting/client/notification:*", # 12 errors +- "//remoting/client/ui:*", # 13 errors +- "//remoting/client:*", # 20 errors +- "//remoting/codec:*", # 32 errors +- "//remoting/host/chromeos:*", # 10 errors +- "//remoting/host/file_transfer:*", # 43 errors +- "//remoting/host/input_monitor:*", # 3 errors +- "//remoting/host/installer/mac:*", # 1 error +- "//remoting/host/it2me:*", # 18 errors +- "//remoting/host/linux:*", # 64 errors +- "//remoting/host/mac:*", # 49 errors +- "//remoting/host/native_messaging:*", # 3 errors +- "//remoting/host/security_key:*", # 68 errors +- "//remoting/host/setup:*", # 9 errors +- "//remoting/host/win:*", # 43 errors +- "//remoting/host:*", # 164 errors +- "//remoting/ios/app/settings:*", # 6 errors +- "//remoting/ios/app:*", # 9 errors +- "//remoting/ios/audio:*", # 5 errors +- "//remoting/ios/domain:*", # 2 errors +- "//remoting/ios/facade:*", # 8 errors +- "//remoting/ios/persistence:*", # 10 errors +- "//remoting/ios/session:*", # 7 errors +- "//remoting/ios:*", # 2 errors +- "//remoting/protocol:*", # 142 errors +- "//remoting/signaling:*", # 30 errors +- "//remoting/test:*", # 20 errors +- "//remoting:*", # 27 errors +- "//sandbox/linux:*", # 13 errors +- "//sandbox/mac:*", # 14 errors +- "//sandbox/win:*", # 7 errors +- +- # //third_party/blink/*, https://crbug.com/800764 +- "//third_party/blink/common:*", # 9 errors +- "//third_party/blink/renderer/bindings/core/v8:*", # 1 error +- "//third_party/blink/renderer/controller:*", # 191 errors +- "//third_party/blink/renderer/core/accessibility:*", # 27 errors +- "//third_party/blink/renderer/core/animation:*", # 506 errors +- "//third_party/blink/renderer/core/animation_frame:*", # 4 errors +- "//third_party/blink/renderer/core/aom:*", # 23 errors +- "//third_party/blink/renderer/core/clipboard:*", # 43 errors +- "//third_party/blink/renderer/core/content_capture:*", # 12 errors +- "//third_party/blink/renderer/core/context_features:*", # 3 errors +- "//third_party/blink/renderer/core/css:*", # 835 errors +- "//third_party/blink/renderer/core/display_lock:*", # 36 errors +- "//third_party/blink/renderer/core/dom:*", # 706 errors +- "//third_party/blink/renderer/core/editing:*", # 847 errors +- "//third_party/blink/renderer/core/events:*", # 173 errors +- "//third_party/blink/renderer/core/execution_context:*", # 48 errors +- "//third_party/blink/renderer/core/exported:*", # 470 errors +- "//third_party/blink/renderer/core/feature_policy:*", # 15 errors +- "//third_party/blink/renderer/core/fetch:*", # 134 errors +- "//third_party/blink/renderer/core/fileapi:*", # 55 errors +- "//third_party/blink/renderer/core/frame:*", # 864 errors +- "//third_party/blink/renderer/core/fullscreen:*", # 32 errors +- "//third_party/blink/renderer/core/geometry:*", # 39 errors +- "//third_party/blink/renderer/core/html/parser:*", # 133 errors +- "//third_party/blink/renderer/core/html:*", # 1662 errors +- "//third_party/blink/renderer/core/imagebitmap:*", # 34 errors +- "//third_party/blink/renderer/core/input:*", # 240 errors +- "//third_party/blink/renderer/core/inspector:*", # 594 errors +- "//third_party/blink/renderer/core/intersection_observer:*", # 50 errors +- "//third_party/blink/renderer/core/layout/svg:*", # 193 errors +- "//third_party/blink/renderer/core/layout:*", # 920 errors +- "//third_party/blink/renderer/core/loader:*", # 421 errors +- "//third_party/blink/renderer/core/mathml:*", # 11 errors +- "//third_party/blink/renderer/core/messaging:*", # 30 errors +- "//third_party/blink/renderer/core/mojo:*", # 44 errors +- "//third_party/blink/renderer/core/offscreencanvas:*", # 22 errors +- "//third_party/blink/renderer/core/origin_trials:*", # 12 errors +- "//third_party/blink/renderer/core/page:*", # 500 errors +- "//third_party/blink/renderer/core/paint:*", # 788 errors +- "//third_party/blink/renderer/core/probe:*", # 9 errors +- "//third_party/blink/renderer/core/resize_observer:*", # 29 errors +- "//third_party/blink/renderer/core/script:*", # 155 errors +- "//third_party/blink/renderer/core/scroll:*", # 29 errors +- "//third_party/blink/renderer/core/streams:*", # 75 errors +- "//third_party/blink/renderer/core/style:*", # 86 errors +- "//third_party/blink/renderer/core/svg:*", # 297 errors +- "//third_party/blink/renderer/core/timezone:*", # 8 errors +- "//third_party/blink/renderer/core/timing:*", # 170 errors +- "//third_party/blink/renderer/core/trustedtypes:*", # 27 errors +- "//third_party/blink/renderer/core/typed_arrays:*", # 24 errors +- "//third_party/blink/renderer/core/url:*", # 7 errors +- "//third_party/blink/renderer/core/workers:*", # 289 errors +- "//third_party/blink/renderer/core/xml:*", # 119 errors +- "//third_party/blink/renderer/core/xmlhttprequest:*", # 49 errors +- "//third_party/blink/renderer/core:*", # 823 errors +- "//third_party/blink/renderer/modules/accessibility:*", # 7 errors +- "//third_party/blink/renderer/modules/animationworklet:*", # 1 error +- "//third_party/blink/renderer/modules/background_fetch:*", # 4 errors +- "//third_party/blink/renderer/modules/background_sync:*", # 6 errors +- "//third_party/blink/renderer/modules/cache_storage:*", # 3 errors +- "//third_party/blink/renderer/modules/canvas:*", # 1 error +- "//third_party/blink/renderer/modules/clipboard:*", # 1 error +- "//third_party/blink/renderer/modules/contacts_picker:*", # 1 error +- "//third_party/blink/renderer/modules/content_index:*", # 3 errors +- "//third_party/blink/renderer/modules/cookie_store:*", # 8 errors +- "//third_party/blink/renderer/modules/credentialmanager:*", # 1 error +- "//third_party/blink/renderer/modules/csspaint:*", # 2 errors +- "//third_party/blink/renderer/modules/device_orientation:*", # 5 errors +- "//third_party/blink/renderer/modules/encryptedmedia:*", # 3 errors +- "//third_party/blink/renderer/modules/exported:*", # 16 errors +- "//third_party/blink/renderer/modules/font_access:*", # 3 errors +- "//third_party/blink/renderer/modules/gamepad:*", # 1 error +- "//third_party/blink/renderer/modules/imagecapture:*", # 2 errors +- "//third_party/blink/renderer/modules/installedapp:*", # 1 error +- "//third_party/blink/renderer/modules/launch:*", # 3 errors +- "//third_party/blink/renderer/modules/manifest:*", # 2 errors +- "//third_party/blink/renderer/modules/media_capabilities:*", # 5 errors +- "//third_party/blink/renderer/modules/media_controls:*", # 31 errors +- "//third_party/blink/renderer/modules/mediacapturefromelement:*", # 14 errors +- "//third_party/blink/renderer/modules/mediarecorder:*", # 1 error +- "//third_party/blink/renderer/modules/mediastream:*", # 29 errors +- "//third_party/blink/renderer/modules/native_file_system:*", # 2 errors +- "//third_party/blink/renderer/modules/nfc:*", # 2 errors +- "//third_party/blink/renderer/modules/notifications:*", # 5 errors +- "//third_party/blink/renderer/modules/payments/goods:*", # 1 error +- "//third_party/blink/renderer/modules/payments:*", # 22 errors +- "//third_party/blink/renderer/modules/peerconnection:*", # 43 errors +- "//third_party/blink/renderer/modules/push_messaging:*", # 12 errors +- "//third_party/blink/renderer/modules/quota:*", # 1 error +- "//third_party/blink/renderer/modules/remoteplayback:*", # 3 errors +- "//third_party/blink/renderer/modules/serial:*", # 1 error +- "//third_party/blink/renderer/modules/service_worker:*", # 23 errors +- "//third_party/blink/renderer/modules/shapedetection:*", # 4 errors +- "//third_party/blink/renderer/modules/srcobject:*", # 1 error +- "//third_party/blink/renderer/modules/storage:*", # 3 errors +- "//third_party/blink/renderer/modules/wake_lock:*", # 1 error +- "//third_party/blink/renderer/modules/webaudio:*", # 5 errors +- "//third_party/blink/renderer/modules/webcodecs:*", # 13 errors +- "//third_party/blink/renderer/modules/webgl:*", # 3 errors +- "//third_party/blink/renderer/modules/webgpu:*", # 6 errors +- "//third_party/blink/renderer/modules/webmidi:*", # 1 error +- "//third_party/blink/renderer/modules/webtransport:*", # 16 errors +- "//third_party/blink/renderer/modules/worklet:*", # 2 errors +- "//third_party/blink/renderer/modules/xr:*", # 13 errors +- "//third_party/blink/renderer/modules:*", # 321 errors +- "//third_party/blink/renderer/platform/blob:*", # 16 errors +- "//third_party/blink/renderer/platform/heap:*", # 65 errors +- "//third_party/blink/renderer/platform/instrumentation:*", # 13 errors +- "//third_party/blink/renderer/platform/loader:*", # 180 errors +- "//third_party/blink/renderer/platform/network:*", # 15 errors +- "//third_party/blink/renderer/platform/scheduler:*", # 45 errors +- "//third_party/blink/renderer/platform/wtf:*", # 2 errors +- "//third_party/blink/renderer/platform:*", # 72 errors +- +- "//third_party/breakpad:*", # 34 errors +- "//third_party/ced/*", +- "//third_party/crashpad/crashpad/client:*", # 1 error +- "//third_party/crashpad/crashpad/compat:*", # 2 errors +- "//third_party/crashpad/crashpad/snapshot:*", # 1 error +- "//third_party/crashpad/crashpad/test:*", # 2 errors +- "//third_party/crashpad/crashpad/util:*", # 2 errors +- "//third_party/dav1d:*", # 95 errors +- "//third_party/ffmpeg:*", # 1 error +- "//third_party/icu/*", +- "//third_party/libvpx:*", # 164 errors +- "//third_party/libwebp:*", # 80 errors, https://crbug.com/800762 +- "//third_party/openscreen/src/cast/common:*", # 4 errors +- "//third_party/openscreen/src/cast/receiver:*", # 1 error +- "//third_party/openscreen/src/cast/streaming:*", # 66 errors +- "//third_party/openscreen/src/discovery:*", # 36 errors +- "//third_party/openscreen/src/osp/impl/quic:*", # 16 errors +- "//third_party/openscreen/src/osp/msgs:*", # 5 errors +- "//third_party/openscreen/src/osp/public:*", # 1 error +- "//third_party/openscreen/src/osp:*", # 13 errors +- "//third_party/openscreen/src/util:*", # 29 errors +- "//third_party/pdfium/samples:*", # 1 error +- "//third_party/pdfium/third_party:*", # 2 errors +- "//third_party/pdfium:*", # 1 error +- +- # //v8/*, https://crbug.com/v8/7330 +- "//v8/src/inspector:*", # 20 errors +- "//v8/test/cctest:*", # 26 errors +- "//v8/test/unittests:*", # 11 errors +- "//v8/test/wasm-api-tests:*", # 13 errors +- "//v8/third_party/inspector_protocol:*", # 2 errors +- "//v8/tools/debug_helper:*", # 9 errors +- "//v8/tools/v8windbg:*", # 2 errors +- "//v8:*", # 1871 errors +-] ++#no_check_targets = [ ++# # //chrome/*, https://crbug.com/949535 ++# "//chrome/browser/devtools:*", # 114 errors ++# "//chrome/browser/media/router/discovery:*", # 26 errors ++# "//chrome/browser/media/router:*", # 225 errors ++# "//chrome/browser/paint_preview:*", # 4 errors ++# "//chrome/browser/profiling_host:*", # 13 errors ++# "//chrome/browser/resources/chromeos/zip_archiver/cpp:*", # 2 errors ++# "//chrome/browser/safe_browsing/android:*", # 3 errors ++# "//chrome/browser/safe_browsing:*", # 85 errors ++# "//chrome/browser/safety_check/android:*", # 3 errors ++# "//chrome/browser/storage_access_api:*", # 2 errors ++# "//chrome/browser/touch_to_fill/android:*", # 8 errors ++# "//chrome/browser/touch_to_fill:*", # 5 errors ++# "//chrome/browser/updates/announcement_notification:*", # 15 errors ++# "//chrome/browser/updates/internal:*", # 8 errors ++# "//chrome/browser/updates:*", # 21 errors ++# "//chrome/browser:*", # 780 errors ++# "//chrome/child:*", # 3 errors ++# "//chrome/credential_provider/gaiacp:*", # 1 error ++# "//chrome/gpu:*", # 2 errors ++# "//chrome/install_static:*", # 4 errors ++# "//chrome/notification_helper:*", # 4 errors ++# "//chrome/renderer:*", # 42 errors ++# "//chrome/services/cups_proxy/public/cpp:*", # 2 errors ++# "//chrome/services/cups_proxy:*", # 6 errors ++# "//chrome/services/file_util/public/cpp:*", # 13 errors ++# "//chrome/services/file_util:*", # 3 errors ++# "//chrome/services/ipp_parser:*", # 1 error ++# "//chrome/services/media_gallery_util/public/cpp:*", # 6 errors ++# "//chrome/services/media_gallery_util:*", # 3 errors ++# "//chrome/services/printing:*", # 3 errors ++# "//chrome/services/qrcode_generator:*", # 1 error ++# "//chrome/services/removable_storage_writer:*", # 1 error ++# "//chrome/services/sharing/public/cpp:*", # 2 errors ++# "//chrome/services/speech:*", # 5 errors ++# "//chrome/services/util_win:*", # 1 error ++# "//chrome/test/chromedriver:*", # 115 errors ++# "//chrome/test/data/nacl:*", # 350 errors ++# "//chrome/test/media_router:*", # 5 errors ++# "//chrome/test:*", # 2682 errors ++# "//chrome:*", # 7 errors ++# ++# "//clank/third_party/gvr_shim:*", # 1 error ++# "//extensions/browser/api/alarms:*", # 2 errors ++# "//extensions/browser/api/app_current_window_internal:*", # 3 errors ++# "//extensions/browser/api/app_runtime:*", # 3 errors ++# "//extensions/browser/api/app_window:*", # 5 errors ++# "//extensions/browser/api/audio:*", # 3 errors ++# "//extensions/browser/api/automation_internal:*", # 37 errors ++# "//extensions/browser/api/bluetooth_low_energy:*", # 22 errors ++# "//extensions/browser/api/bluetooth_socket:*", # 12 errors ++# "//extensions/browser/api/cast_channel:*", # 3 errors ++# "//extensions/browser/api/cec_private:*", # 4 errors ++# "//extensions/browser/api/clipboard:*", # 3 errors ++# "//extensions/browser/api/crash_report_private:*", # 1 error ++# "//extensions/browser/api/declarative:*", # 20 errors ++# "//extensions/browser/api/declarative_content:*", # 2 errors ++# "//extensions/browser/api/declarative_net_request/filter_list_converter:*", # 1 ++# # error ++# "//extensions/browser/api/declarative_net_request:*", # 18 errors ++# "//extensions/browser/api/declarative_webrequest:*", # 29 errors ++# "//extensions/browser/api/diagnostics:*", # 2 errors ++# "//extensions/browser/api/display_source:*", # 7 errors ++# "//extensions/browser/api/dns:*", # 3 errors ++# "//extensions/browser/api/document_scan:*", # 2 errors ++# "//extensions/browser/api/feedback_private:*", # 2 errors ++# "//extensions/browser/api/file_handlers:*", # 3 errors ++# "//extensions/browser/api/file_system:*", # 1 error ++# "//extensions/browser/api/hid:*", # 12 errors ++# "//extensions/browser/api/idle:*", # 4 errors ++# "//extensions/browser/api/management:*", # 19 errors ++# "//extensions/browser/api/messaging:*", # 1 error ++# "//extensions/browser/api/metrics_private:*", # 3 errors ++# "//extensions/browser/api/mime_handler_private:*", # 1 error ++# "//extensions/browser/api/networking_config:*", # 7 errors ++# "//extensions/browser/api/networking_private:*", # 14 errors ++# "//extensions/browser/api/power:*", # 3 errors ++# "//extensions/browser/api/printer_provider:*", # 7 errors ++# "//extensions/browser/api/printer_provider_internal:*", # 3 errors ++# "//extensions/browser/api/runtime:*", # 6 errors ++# "//extensions/browser/api/serial:*", # 10 errors ++# "//extensions/browser/api/socket:*", # 11 errors ++# "//extensions/browser/api/sockets_tcp:*", # 6 errors ++# "//extensions/browser/api/sockets_tcp_server:*", # 8 errors ++# "//extensions/browser/api/sockets_udp:*", # 9 errors ++# "//extensions/browser/api/storage:*", # 9 errors ++# "//extensions/browser/api/system_cpu:*", # 1 error ++# "//extensions/browser/api/system_display:*", # 3 errors ++# "//extensions/browser/api/system_info:*", # 8 errors ++# "//extensions/browser/api/system_memory:*", # 1 error ++# "//extensions/browser/api/system_network:*", # 2 errors ++# "//extensions/browser/api/system_power_source:*", # 2 errors ++# "//extensions/browser/api/system_storage:*", # 6 errors ++# "//extensions/browser/api/test:*", # 1 error ++# "//extensions/browser/api/usb:*", # 12 errors ++# "//extensions/browser/api/virtual_keyboard:*", # 1 error ++# "//extensions/browser/api/virtual_keyboard_private:*", # 2 errors ++# "//extensions/browser/api/vpn_provider:*", # 13 errors ++# "//extensions/browser/api/web_request:*", # 37 errors ++# "//extensions/browser/api/webcam_private:*", # 8 errors ++# "//extensions/browser/api:*", # 7 errors ++# "//extensions/browser/updater:*", # 31 errors ++# "//extensions/browser/value_store:*", # 5 errors ++# "//extensions/browser:*", # 20 errors ++# "//extensions:*", # 75 errors ++# "//headless:*", # 167 errors ++# "//jingle:*", # 4 errors ++# "//native_client/src/trusted/service_runtime:*", # 2 errors ++# "//ppapi/cpp/private:*", # 1 error ++# "//ppapi/host:*", # 1 error ++# "//ppapi/native_client/src/untrusted/pnacl_irt_shim:*", # 197 errors ++# "//ppapi/proxy:*", # 31 errors ++# "//ppapi/shared_impl:*", # 3 errors ++# "//ppapi/thunk:*", # 1071 errors ++# "//ppapi:*", # 3 errors ++# "//remoting/base/grpc_support:*", # 14 errors ++# "//remoting/base/grpc_test_support:*", # 1 error ++# "//remoting/base:*", # 6 errors ++# "//remoting/client/audio:*", # 7 errors ++# "//remoting/client/display:*", # 55 errors ++# "//remoting/client/input:*", # 17 errors ++# "//remoting/client/jni:*", # 8 errors ++# "//remoting/client/notification:*", # 12 errors ++# "//remoting/client/ui:*", # 13 errors ++# "//remoting/client:*", # 20 errors ++# "//remoting/codec:*", # 32 errors ++# "//remoting/host/chromeos:*", # 10 errors ++# "//remoting/host/file_transfer:*", # 43 errors ++# "//remoting/host/input_monitor:*", # 3 errors ++# "//remoting/host/installer/mac:*", # 1 error ++# "//remoting/host/it2me:*", # 18 errors ++# "//remoting/host/linux:*", # 64 errors ++# "//remoting/host/mac:*", # 49 errors ++# "//remoting/host/native_messaging:*", # 3 errors ++# "//remoting/host/security_key:*", # 68 errors ++# "//remoting/host/setup:*", # 9 errors ++# "//remoting/host/win:*", # 43 errors ++# "//remoting/host:*", # 164 errors ++# "//remoting/ios/app/settings:*", # 6 errors ++# "//remoting/ios/app:*", # 9 errors ++# "//remoting/ios/audio:*", # 5 errors ++# "//remoting/ios/domain:*", # 2 errors ++# "//remoting/ios/facade:*", # 8 errors ++# "//remoting/ios/persistence:*", # 10 errors ++# "//remoting/ios/session:*", # 7 errors ++# "//remoting/ios:*", # 2 errors ++# "//remoting/protocol:*", # 142 errors ++# "//remoting/signaling:*", # 30 errors ++# "//remoting/test:*", # 20 errors ++# "//remoting:*", # 27 errors ++# "//sandbox/linux:*", # 13 errors ++# "//sandbox/mac:*", # 14 errors ++# "//sandbox/win:*", # 7 errors ++# ++# # //third_party/blink/*, https://crbug.com/800764 ++# "//third_party/blink/common:*", # 9 errors ++# "//third_party/blink/renderer/bindings/core/v8:*", # 1 error ++# "//third_party/blink/renderer/controller:*", # 191 errors ++# "//third_party/blink/renderer/core/accessibility:*", # 27 errors ++# "//third_party/blink/renderer/core/animation:*", # 506 errors ++# "//third_party/blink/renderer/core/animation_frame:*", # 4 errors ++# "//third_party/blink/renderer/core/aom:*", # 23 errors ++# "//third_party/blink/renderer/core/clipboard:*", # 43 errors ++# "//third_party/blink/renderer/core/content_capture:*", # 12 errors ++# "//third_party/blink/renderer/core/context_features:*", # 3 errors ++# "//third_party/blink/renderer/core/css:*", # 835 errors ++# "//third_party/blink/renderer/core/display_lock:*", # 36 errors ++# "//third_party/blink/renderer/core/dom:*", # 706 errors ++# "//third_party/blink/renderer/core/editing:*", # 847 errors ++# "//third_party/blink/renderer/core/events:*", # 173 errors ++# "//third_party/blink/renderer/core/execution_context:*", # 48 errors ++# "//third_party/blink/renderer/core/exported:*", # 470 errors ++# "//third_party/blink/renderer/core/feature_policy:*", # 15 errors ++# "//third_party/blink/renderer/core/fetch:*", # 134 errors ++# "//third_party/blink/renderer/core/fileapi:*", # 55 errors ++# "//third_party/blink/renderer/core/frame:*", # 864 errors ++# "//third_party/blink/renderer/core/fullscreen:*", # 32 errors ++# "//third_party/blink/renderer/core/geometry:*", # 39 errors ++# "//third_party/blink/renderer/core/html/parser:*", # 133 errors ++# "//third_party/blink/renderer/core/html:*", # 1662 errors ++# "//third_party/blink/renderer/core/imagebitmap:*", # 34 errors ++# "//third_party/blink/renderer/core/input:*", # 240 errors ++# "//third_party/blink/renderer/core/inspector:*", # 594 errors ++# "//third_party/blink/renderer/core/intersection_observer:*", # 50 errors ++# "//third_party/blink/renderer/core/layout/svg:*", # 193 errors ++# "//third_party/blink/renderer/core/layout:*", # 920 errors ++# "//third_party/blink/renderer/core/loader:*", # 421 errors ++# "//third_party/blink/renderer/core/mathml:*", # 11 errors ++# "//third_party/blink/renderer/core/messaging:*", # 30 errors ++# "//third_party/blink/renderer/core/mojo:*", # 44 errors ++# "//third_party/blink/renderer/core/offscreencanvas:*", # 22 errors ++# "//third_party/blink/renderer/core/origin_trials:*", # 12 errors ++# "//third_party/blink/renderer/core/page:*", # 500 errors ++# "//third_party/blink/renderer/core/paint:*", # 788 errors ++# "//third_party/blink/renderer/core/probe:*", # 9 errors ++# "//third_party/blink/renderer/core/resize_observer:*", # 29 errors ++# "//third_party/blink/renderer/core/script:*", # 155 errors ++# "//third_party/blink/renderer/core/scroll:*", # 29 errors ++# "//third_party/blink/renderer/core/streams:*", # 75 errors ++# "//third_party/blink/renderer/core/style:*", # 86 errors ++# "//third_party/blink/renderer/core/svg:*", # 297 errors ++# "//third_party/blink/renderer/core/timezone:*", # 8 errors ++# "//third_party/blink/renderer/core/timing:*", # 170 errors ++# "//third_party/blink/renderer/core/trustedtypes:*", # 27 errors ++# "//third_party/blink/renderer/core/typed_arrays:*", # 24 errors ++# "//third_party/blink/renderer/core/url:*", # 7 errors ++# "//third_party/blink/renderer/core/workers:*", # 289 errors ++# "//third_party/blink/renderer/core/xml:*", # 119 errors ++# "//third_party/blink/renderer/core/xmlhttprequest:*", # 49 errors ++# "//third_party/blink/renderer/core:*", # 823 errors ++# "//third_party/blink/renderer/modules/accessibility:*", # 7 errors ++# "//third_party/blink/renderer/modules/animationworklet:*", # 1 error ++# "//third_party/blink/renderer/modules/background_fetch:*", # 4 errors ++# "//third_party/blink/renderer/modules/background_sync:*", # 6 errors ++# "//third_party/blink/renderer/modules/cache_storage:*", # 3 errors ++# "//third_party/blink/renderer/modules/canvas:*", # 1 error ++# "//third_party/blink/renderer/modules/clipboard:*", # 1 error ++# "//third_party/blink/renderer/modules/contacts_picker:*", # 1 error ++# "//third_party/blink/renderer/modules/content_index:*", # 3 errors ++# "//third_party/blink/renderer/modules/cookie_store:*", # 8 errors ++# "//third_party/blink/renderer/modules/credentialmanager:*", # 1 error ++# "//third_party/blink/renderer/modules/csspaint:*", # 2 errors ++# "//third_party/blink/renderer/modules/device_orientation:*", # 5 errors ++# "//third_party/blink/renderer/modules/encryptedmedia:*", # 3 errors ++# "//third_party/blink/renderer/modules/exported:*", # 16 errors ++# "//third_party/blink/renderer/modules/font_access:*", # 3 errors ++# "//third_party/blink/renderer/modules/gamepad:*", # 1 error ++# "//third_party/blink/renderer/modules/imagecapture:*", # 2 errors ++# "//third_party/blink/renderer/modules/installedapp:*", # 1 error ++# "//third_party/blink/renderer/modules/launch:*", # 3 errors ++# "//third_party/blink/renderer/modules/manifest:*", # 2 errors ++# "//third_party/blink/renderer/modules/media_capabilities:*", # 5 errors ++# "//third_party/blink/renderer/modules/media_controls:*", # 31 errors ++# "//third_party/blink/renderer/modules/mediacapturefromelement:*", # 14 errors ++# "//third_party/blink/renderer/modules/mediarecorder:*", # 1 error ++# "//third_party/blink/renderer/modules/mediastream:*", # 29 errors ++# "//third_party/blink/renderer/modules/native_file_system:*", # 2 errors ++# "//third_party/blink/renderer/modules/nfc:*", # 2 errors ++# "//third_party/blink/renderer/modules/notifications:*", # 5 errors ++# "//third_party/blink/renderer/modules/payments/goods:*", # 1 error ++# "//third_party/blink/renderer/modules/payments:*", # 22 errors ++# "//third_party/blink/renderer/modules/peerconnection:*", # 43 errors ++# "//third_party/blink/renderer/modules/push_messaging:*", # 12 errors ++# "//third_party/blink/renderer/modules/quota:*", # 1 error ++# "//third_party/blink/renderer/modules/remoteplayback:*", # 3 errors ++# "//third_party/blink/renderer/modules/serial:*", # 1 error ++# "//third_party/blink/renderer/modules/service_worker:*", # 23 errors ++# "//third_party/blink/renderer/modules/shapedetection:*", # 4 errors ++# "//third_party/blink/renderer/modules/srcobject:*", # 1 error ++# "//third_party/blink/renderer/modules/storage:*", # 3 errors ++# "//third_party/blink/renderer/modules/wake_lock:*", # 1 error ++# "//third_party/blink/renderer/modules/webaudio:*", # 5 errors ++# "//third_party/blink/renderer/modules/webcodecs:*", # 13 errors ++# "//third_party/blink/renderer/modules/webgl:*", # 3 errors ++# "//third_party/blink/renderer/modules/webgpu:*", # 6 errors ++# "//third_party/blink/renderer/modules/webmidi:*", # 1 error ++# "//third_party/blink/renderer/modules/webtransport:*", # 16 errors ++# "//third_party/blink/renderer/modules/worklet:*", # 2 errors ++# "//third_party/blink/renderer/modules/xr:*", # 13 errors ++# "//third_party/blink/renderer/modules:*", # 321 errors ++# "//third_party/blink/renderer/platform/blob:*", # 16 errors ++# "//third_party/blink/renderer/platform/heap:*", # 65 errors ++# "//third_party/blink/renderer/platform/instrumentation:*", # 13 errors ++# "//third_party/blink/renderer/platform/loader:*", # 180 errors ++# "//third_party/blink/renderer/platform/network:*", # 15 errors ++# "//third_party/blink/renderer/platform/scheduler:*", # 45 errors ++# "//third_party/blink/renderer/platform/wtf:*", # 2 errors ++# "//third_party/blink/renderer/platform:*", # 72 errors ++# ++# "//third_party/breakpad:*", # 34 errors ++# "//third_party/ced/*", ++# "//third_party/crashpad/crashpad/client:*", # 1 error ++# "//third_party/crashpad/crashpad/compat:*", # 2 errors ++# "//third_party/crashpad/crashpad/snapshot:*", # 1 error ++# "//third_party/crashpad/crashpad/test:*", # 2 errors ++# "//third_party/crashpad/crashpad/util:*", # 2 errors ++# "//third_party/dav1d:*", # 95 errors ++# "//third_party/ffmpeg:*", # 1 error ++# "//third_party/icu/*", ++# "//third_party/libvpx:*", # 164 errors ++# "//third_party/libwebp:*", # 80 errors, https://crbug.com/800762 ++# "//third_party/openscreen/src/cast/common:*", # 4 errors ++# "//third_party/openscreen/src/cast/receiver:*", # 1 error ++# "//third_party/openscreen/src/cast/streaming:*", # 66 errors ++# "//third_party/openscreen/src/discovery:*", # 36 errors ++# "//third_party/openscreen/src/osp/impl/quic:*", # 16 errors ++# "//third_party/openscreen/src/osp/msgs:*", # 5 errors ++# "//third_party/openscreen/src/osp/public:*", # 1 error ++# "//third_party/openscreen/src/osp:*", # 13 errors ++# "//third_party/openscreen/src/util:*", # 29 errors ++# "//third_party/pdfium/samples:*", # 1 error ++# "//third_party/pdfium/third_party:*", # 2 errors ++# "//third_party/pdfium:*", # 1 error ++# ++# # //v8/*, https://crbug.com/v8/7330 ++# "//v8/src/inspector:*", # 20 errors ++# "//v8/test/cctest:*", # 26 errors ++# "//v8/test/unittests:*", # 11 errors ++# "//v8/test/wasm-api-tests:*", # 13 errors ++# "//v8/third_party/inspector_protocol:*", # 2 errors ++# "//v8/tools/debug_helper:*", # 9 errors ++# "//v8/tools/v8windbg:*", # 2 errors ++# "//v8:*", # 1871 errors ++#] + + # These are the list of GN files that run exec_script. This whitelist exists + # to force additional review for new uses of exec_script, which is strongly diff --git a/www-client/chromium/files/chromium-renderer-std-nullptr-83.patch b/www-client/chromium/files/chromium-renderer-std-nullptr-83.patch new file mode 100644 index 0000000..f95916e --- /dev/null +++ b/www-client/chromium/files/chromium-renderer-std-nullptr-83.patch @@ -0,0 +1,13 @@ +diff --git a/third_party/blink/renderer/platform/bindings/v8_set_return_value.h b/third_party/blink/renderer/platform/bindings/v8_set_return_value.h +index 07cae22f1..7871f557d 100644 +--- a/third_party/blink/renderer/platform/bindings/v8_set_return_value.h ++++ b/third_party/blink/renderer/platform/bindings/v8_set_return_value.h +@@ -51,7 +51,7 @@ void V8SetReturnValue(const CallbackInfo& info, const v8::Local<S> value) { + + // nullptr + template <typename CallbackInfo> +-void V8SetReturnValue(const CallbackInfo& info, nullptr_t) { ++void V8SetReturnValue(const CallbackInfo& info, std::nullptr_t) { + info.GetReturnValue().SetNull(); + } + diff --git a/www-client/chromium/files/chromium-revert-crrev-2147485-84.patch b/www-client/chromium/files/chromium-revert-crrev-2147485-84.patch new file mode 100644 index 0000000..3c6e2b1 --- /dev/null +++ b/www-client/chromium/files/chromium-revert-crrev-2147485-84.patch @@ -0,0 +1,369 @@ +diff --git a/content/browser/devtools/protocol/page_handler.cc b/content/browser/devtools/protocol/page_handler.cc +index b1821434b..929b63ab8 100644 +--- a/content/browser/devtools/protocol/page_handler.cc ++++ b/content/browser/devtools/protocol/page_handler.cc +@@ -961,14 +961,14 @@ Response PageHandler::SetDownloadBehavior(const std::string& behavior, + + void PageHandler::GetAppManifest( + std::unique_ptr<GetAppManifestCallback> 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 a/content/browser/frame_host/render_document_host_user_data_browsertest.cc b/content/browser/frame_host/render_document_host_user_data_browsertest.cc +index 09dff7842..290e5509b 100644 +--- a/content/browser/frame_host/render_document_host_user_data_browsertest.cc ++++ b/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<Data> 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 a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc +index 23bc92faa..e95952a01 100644 +--- a/content/browser/frame_host/render_frame_host_impl.cc ++++ b/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<ActiveURLMessageFilter>(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 a/content/browser/frame_host/render_frame_host_impl.h b/content/browser/frame_host/render_frame_host_impl.h +index bfd421386..2bba134e0 100644 +--- a/content/browser/frame_host/render_frame_host_impl.h ++++ b/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 a/content/browser/manifest/manifest_manager_host.cc b/content/browser/manifest/manifest_manager_host.cc +index 68ea016c6..b063e0d1e 100644 +--- a/content/browser/manifest/manifest_manager_host.cc ++++ b/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<blink::mojom::ManifestUrlChangeObserver> +- 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<GetManifestCallback> 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<GURL>& 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<WebContentsImpl*>(web_contents) ++ } ++ static_cast<WebContentsImpl*>(web_contents()) + ->NotifyManifestUrlChanged(manifest_url); + } + +-RENDER_DOCUMENT_HOST_USER_DATA_KEY_IMPL(ManifestManagerHost) + } // namespace content +diff --git a/content/browser/manifest/manifest_manager_host.h b/content/browser/manifest/manifest_manager_host.h +index 57f51dc9f..3dc0bbf6e 100644 +--- a/content/browser/manifest/manifest_manager_host.h ++++ b/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<ManifestManagerHost>, +- 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<blink::mojom::ManifestUrlChangeObserver> +- receiver); +- +- static ManifestManagerHost* GetOrCreateForCurrentDocument( +- RenderFrameHostImpl* rfh); ++ // WebContentsObserver ++ void RenderFrameDeleted(RenderFrameHost* render_frame_host) override; + + private: +- explicit ManifestManagerHost(RenderFrameHost* render_frame_host); +- +- friend class RenderDocumentHostUserData<ManifestManagerHost>; +- + using CallbackMap = base::IDMap<std::unique_ptr<GetManifestCallback>>; + + blink::mojom::ManifestManager& GetManifestManager(); +@@ -68,14 +60,13 @@ class ManifestManagerHost + // blink::mojom::ManifestUrlChangeObserver: + void ManifestUrlChanged(const base::Optional<GURL>& manifest_url) override; + +- RenderFrameHost* manifest_manager_frame_; ++ RenderFrameHost* manifest_manager_frame_ = nullptr; + mojo::Remote<blink::mojom::ManifestManager> manifest_manager_; + CallbackMap callbacks_; + +- mojo::AssociatedReceiver<blink::mojom::ManifestUrlChangeObserver> +- manifest_url_change_observer_receiver_{this}; ++ WebContentsFrameReceiverSet<blink::mojom::ManifestUrlChangeObserver> ++ manifest_url_change_observer_receivers_; + +- RENDER_DOCUMENT_HOST_USER_DATA_KEY_DECL(); + DISALLOW_COPY_AND_ASSIGN(ManifestManagerHost); + }; + +diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc +index 024415bb0..115f480ce 100644 +--- a/content/browser/web_contents/web_contents_impl.cc ++++ b/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 a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h +index 59510b1f8..e86be96fc 100644 +--- a/content/browser/web_contents/web_contents_impl.h ++++ b/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<GURL>& 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<ScreenOrientationProvider> screen_orientation_provider_; + ++ std::unique_ptr<ManifestManagerHost> 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 a/content/public/browser/render_document_host_user_data.cc b/content/public/browser/render_document_host_user_data.cc +index 3b58bf8a3..b1b385455 100644 +--- a/content/public/browser/render_document_host_user_data.cc ++++ b/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<RenderFrameHostImpl*>(rfh)->RemoveRenderDocumentHostUserData(key); +-} +- + } // namespace content +diff --git a/content/public/browser/render_document_host_user_data.h b/content/public/browser/render_document_host_user_data.h +index a138fd60a..f55f24f60 100644 +--- a/content/public/browser/render_document_host_user_data.h ++++ b/content/public/browser/render_document_host_user_data.h +@@ -22,9 +22,6 @@ CONTENT_EXPORT void SetRenderDocumentHostUserData( + const void* key, + std::unique_ptr<base::SupportsUserData::Data> 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<T*>(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/www-client/chromium/files/chromium-revert-e7963c4-78.patch b/www-client/chromium/files/chromium-revert-e7963c4-78.patch new file mode 100644 index 0000000..fe7e1a6 --- /dev/null +++ b/www-client/chromium/files/chromium-revert-e7963c4-78.patch @@ -0,0 +1,335 @@ +diff --git a/chrome/test/chromedriver/client/chromedriver.py b/chrome/test/chromedriver/client/chromedriver.py +index 74b780e5f..8bd1cc004 100644 +--- a/chrome/test/chromedriver/client/chromedriver.py ++++ b/chrome/test/chromedriver/client/chromedriver.py +@@ -653,7 +653,3 @@ class ChromeDriver(object): + if signCount is not None: + options['signCount'] = signCount + return self.ExecuteCommand(Command.ADD_CREDENTIAL, options) +- +- def GetCredentials(self, authenticatorId): +- params = {'authenticatorId': authenticatorId} +- return self.ExecuteCommand(Command.GET_CREDENTIALS, params) +diff --git a/chrome/test/chromedriver/client/command_executor.py b/chrome/test/chromedriver/client/command_executor.py +index 2286d839f..de27e1a3c 100644 +--- a/chrome/test/chromedriver/client/command_executor.py ++++ b/chrome/test/chromedriver/client/command_executor.py +@@ -176,9 +176,6 @@ class Command(object): + ADD_CREDENTIAL = ( + _Method.POST, + '/session/:sessionId/webauthn/authenticator/:authenticatorId/credential') +- GET_CREDENTIALS = ( +- _Method.GET, +- '/session/:sessionId/webauthn/authenticator/:authenticatorId/credentials') + + # Custom Chrome commands. + IS_LOADING = (_Method.GET, '/session/:sessionId/is_loading') +diff --git a/chrome/test/chromedriver/server/http_handler.cc b/chrome/test/chromedriver/server/http_handler.cc +index 737e34dce..0c9a00119 100644 +--- a/chrome/test/chromedriver/server/http_handler.cc ++++ b/chrome/test/chromedriver/server/http_handler.cc +@@ -764,14 +764,6 @@ HttpHandler::HttpHandler( + "AddCredential", + base::BindRepeating(&ExecuteWebAuthnCommand, + base::BindRepeating(&ExecuteAddCredential)))), +- CommandMapping( +- kGet, +- "session/:sessionId/webauthn/authenticator/:authenticatorId/" +- "credentials", +- WrapToCommand("GetCredentials", +- base::BindRepeating( +- &ExecuteWebAuthnCommand, +- base::BindRepeating(&ExecuteGetCredentials)))), + + // + // Non-standard extension commands +diff --git a/chrome/test/chromedriver/test/run_py_tests.py b/chrome/test/chromedriver/test/run_py_tests.py +index 15e986899..d59650004 100755 +--- a/chrome/test/chromedriver/test/run_py_tests.py ++++ b/chrome/test/chromedriver/test/run_py_tests.py +@@ -226,7 +226,6 @@ _ANDROID_NEGATIVE_FILTER['chrome'] = ( + 'ChromeDriverSecureContextTest.testAddVirtualAuthenticator', + 'ChromeDriverSecureContextTest.testRemoveVirtualAuthenticator', + 'ChromeDriverSecureContextTest.testAddCredential', +- 'ChromeDriverSecureContextTest.testGetCredentials', + ] + ) + _ANDROID_NEGATIVE_FILTER['chrome_stable'] = ( +@@ -2018,11 +2017,6 @@ class ChromeDriverTest(ChromeDriverBaseTestWithWebServer): + + # Tests that require a secure context. + class ChromeDriverSecureContextTest(ChromeDriverBaseTest): +- # The example attestation private key from the U2F spec at +- # https://fidoalliance.org/specs/fido-u2f-v1.2-ps-20170411/fido-u2f-raw-message-formats-v1.2-ps-20170411.html#registration-example +- # PKCS.8 encoded without encryption, as a base64url string. +- privateKey = "MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg8_zMDQDYAxlU-Qhk1Dwkf0v18GZca1DMF3SaJ9HPdmShRANCAASNYX5lyVCOZLzFZzrIKmeZ2jwURmgsJYxGP__fWN_S-j5sN4tT15XEpN_7QZnt14YvI6uvAgO0uJEboFaZlOEB" +- + @staticmethod + def GlobalSetUp(): + cert_path = os.path.join(chrome_paths.GetTestData(), +@@ -2039,21 +2033,6 @@ class ChromeDriverSecureContextTest(ChromeDriverBaseTest): + return ChromeDriverSecureContextTest._https_server.GetUrl( + host) + file_path + +- # Encodes a string in URL-safe base64 with no padding. +- @staticmethod +- def URLSafeBase64Encode(string): +- encoded = base64.urlsafe_b64encode(string) +- while encoded[-1] == "=": +- encoded = encoded[0:-1] +- return encoded +- +- # Decodes a base64 string with no padding. +- @staticmethod +- def UrlSafeBase64Decode(string): +- string = string.encode("utf-8") +- string += "=" * (4 - len(string) % 4) +- return base64.urlsafe_b64decode(string) +- + def setUp(self): + self._driver = self.CreateDriver( + chrome_switches=['host-resolver-rules=MAP * 127.0.0.1']) +@@ -2101,6 +2080,10 @@ class ChromeDriverSecureContextTest(ChromeDriverBaseTest): + self._driver.RemoveVirtualAuthenticator, response['authenticatorId']) + + def testAddCredential(self): ++ # The example attestation private key from the U2F spec at ++ # https://fidoalliance.org/specs/fido-u2f-v1.2-ps-20170411/fido-u2f-raw-message-formats-v1.2-ps-20170411.html#registration-example ++ # PKCS.8 encoded without encryption. ++ privateKey = "MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg8/zMDQDYAxlU+Qhk1Dwkf0v18GZca1DMF3SaJ9HPdmShRANCAASNYX5lyVCOZLzFZzrIKmeZ2jwURmgsJYxGP//fWN/S+j5sN4tT15XEpN/7QZnt14YvI6uvAgO0uJEboFaZlOEB" + + script = """ + let done = arguments[0]; +@@ -2123,78 +2106,16 @@ class ChromeDriverSecureContextTest(ChromeDriverBaseTest): + # Register a credential and try authenticating with it. + self._driver.AddCredential( + authenticatorId = authenticatorId, +- credentialId = self.URLSafeBase64Encode("cred-1"), ++ credentialId = base64.b64encode("cred-1"), + isResidentCredential=False, + rpId="chromedriver.test", +- privateKey=self.privateKey, ++ privateKey=privateKey, + signCount=1, + ) + + result = self._driver.ExecuteAsyncScript(script) + self.assertEquals('OK', result['status']) + +- def testAddCredentialBase64Errors(self): +- # Test that AddCredential checks UrlBase64 parameteres. +- self._driver.Load(self.GetHttpsUrlForFile( +- '/chromedriver/webauthn_test.html', 'chromedriver.test')) +- +- authenticatorId = self._driver.AddVirtualAuthenticator( +- protocol = 'ctap2', +- transport = 'usb', +- hasResidentKey = False, +- hasUserVerification = False, +- )['authenticatorId'] +- +- # Try adding a credentialId that is encoded in vanilla base64. +- self.assertRaisesRegexp( +- chromedriver.InvalidArgument, +- 'credentialId must be a base64url encoded string', +- self._driver.AddCredential, authenticatorId, '_0n+wWqg=', +- False, "chromedriver.test", self.privateKey, None, 1, +- ) +- +- # Try adding a credentialId that is not a string. +- self.assertRaisesRegexp( +- chromedriver.InvalidArgument, +- 'credentialId must be a base64url encoded string', +- self._driver.AddCredential, authenticatorId, 1, +- False, "chromedriver.test", self.privateKey, None, 1, +- ) +- +- def testGetCredentials(self): +- script = """ +- let done = arguments[0]; +- registerCredential({ +- authenticatorSelection: { +- requireResidentKey: true, +- }, +- }).then(done); +- """ +- self._driver.Load(self.GetHttpsUrlForFile( +- '/chromedriver/webauthn_test.html', 'chromedriver.test')) +- authenticatorId = self._driver.AddVirtualAuthenticator( +- protocol = 'ctap2', +- transport = 'usb', +- hasResidentKey = True, +- hasUserVerification = True, +- )['authenticatorId'] +- +- # Register a credential via the webauthn API. +- result = self._driver.ExecuteAsyncScript(script) +- self.assertEquals('OK', result['status']) +- credentialId = result['credential']['id'] +- +- # GetCredentials should return the credential that was just created. +- credentials = self._driver.GetCredentials(authenticatorId)['credentials'] +- self.assertEquals(1, len(credentials)) +- self.assertEquals(credentialId, credentials[0]['credentialId']) +- self.assertEquals(True, credentials[0]['isResidentCredential']) +- self.assertEquals('chromedriver.test', credentials[0]['rpId']) +- self.assertEquals(chr(1), +- self.UrlSafeBase64Decode(credentials[0]['userHandle'])) +- self.assertEquals(1, credentials[0]['signCount']) +- self.assertTrue(credentials[0]['privateKey']) +- + # Tests in the following class are expected to be moved to ChromeDriverTest + # class when we no longer support the legacy mode. + class ChromeDriverW3cTest(ChromeDriverBaseTestWithWebServer): +diff --git a/chrome/test/chromedriver/webauthn_commands.cc b/chrome/test/chromedriver/webauthn_commands.cc +index b0d4d62bc..32c8a4a61 100644 +--- a/chrome/test/chromedriver/webauthn_commands.cc ++++ b/chrome/test/chromedriver/webauthn_commands.cc +@@ -6,8 +6,6 @@ + + #include <utility> + +-#include "base/base64.h" +-#include "base/base64url.h" + #include "base/callback.h" + #include "base/containers/flat_map.h" + #include "base/values.h" +@@ -17,8 +15,6 @@ + + namespace { + +-static constexpr char kBase64UrlError[] = " must be a base64url encoded string"; +- + // Creates a base::DictionaryValue by cloning the parameters specified by + // |mapping| from |params|. + base::DictionaryValue MapParams( +@@ -33,48 +29,6 @@ base::DictionaryValue MapParams( + return options; + } + +-// Converts the string |keys| in |params| from base64url to base64. Returns a +-// status error if conversion of one of the keys failed. +-Status ConvertBase64UrlToBase64(base::Value* params, +- const std::vector<const std::string> keys) { +- for (const std::string key : keys) { +- base::Value* maybe_value = params->FindKey(key); +- if (!maybe_value) +- continue; +- +- if (!maybe_value->is_string()) +- return Status(kInvalidArgument, key + kBase64UrlError); +- +- std::string& value = maybe_value->GetString(); +- std::string temp; +- if (!Base64UrlDecode(value, base::Base64UrlDecodePolicy::IGNORE_PADDING, +- &temp)) { +- return Status(kInvalidArgument, key + kBase64UrlError); +- } +- +- base::Base64Encode(temp, &value); +- } +- +- return Status(kOk); +-} +- +-// Converts the string |keys| in |params| from base64 to base64url. +-void ConvertBase64ToBase64Url(base::Value* params, +- const std::vector<const std::string> keys) { +- for (const std::string key : keys) { +- std::string* maybe_value = params->FindStringKey(key); +- if (!maybe_value) +- continue; +- +- std::string temp; +- bool result = base::Base64Decode(*maybe_value, &temp); +- DCHECK(result); +- +- base::Base64UrlEncode(temp, base::Base64UrlEncodePolicy::OMIT_PADDING, +- maybe_value); +- } +-} +- + } // namespace + + Status ExecuteWebAuthnCommand(const WebAuthnCommand& command, +@@ -125,40 +79,18 @@ Status ExecuteRemoveVirtualAuthenticator(WebView* web_view, + Status ExecuteAddCredential(WebView* web_view, + const base::Value& params, + std::unique_ptr<base::Value>* value) { +- base::DictionaryValue mapped_params = MapParams( +- { +- {"authenticatorId", "authenticatorId"}, +- {"credential.credentialId", "credentialId"}, +- {"credential.isResidentCredential", "isResidentCredential"}, +- {"credential.rpId", "rpId"}, +- {"credential.privateKey", "privateKey"}, +- {"credential.userHandle", "userHandle"}, +- {"credential.signCount", "signCount"}, +- }, +- params); +- Status status = +- ConvertBase64UrlToBase64(mapped_params.FindKey("credential"), +- {"credentialId", "privateKey", "userHandle"}); +- if (status.IsError()) +- return status; +- +- return web_view->SendCommandAndGetResult("WebAuthn.addCredential", +- std::move(mapped_params), value); +-} +- +-Status ExecuteGetCredentials(WebView* web_view, +- const base::Value& params, +- std::unique_ptr<base::Value>* value) { +- Status status = web_view->SendCommandAndGetResult( +- "WebAuthn.getCredentials", +- MapParams({{"authenticatorId", "authenticatorId"}}, params), value); +- if (status.IsError()) +- return status; +- +- for (base::Value& credential : (*value)->FindKey("credentials")->GetList()) { +- ConvertBase64ToBase64Url(&credential, +- {"credentialId", "privateKey", "userHandle"}); +- } +- +- return status; ++ return web_view->SendCommandAndGetResult( ++ "WebAuthn.addCredential", ++ MapParams( ++ { ++ {"authenticatorId", "authenticatorId"}, ++ {"credential.credentialId", "credentialId"}, ++ {"credential.isResidentCredential", "isResidentCredential"}, ++ {"credential.rpId", "rpId"}, ++ {"credential.privateKey", "privateKey"}, ++ {"credential.userHandle", "userHandle"}, ++ {"credential.signCount", "signCount"}, ++ }, ++ params), ++ value); + } +diff --git a/chrome/test/chromedriver/webauthn_commands.h b/chrome/test/chromedriver/webauthn_commands.h +index dcc278428..fd75ecfed 100644 +--- a/chrome/test/chromedriver/webauthn_commands.h ++++ b/chrome/test/chromedriver/webauthn_commands.h +@@ -44,9 +44,4 @@ Status ExecuteAddCredential(WebView* web_view, + const base::Value& params, + std::unique_ptr<base::Value>* value); + +-// Retrieve all the credentials stored in an authenticator. +-Status ExecuteGetCredentials(WebView* web_view, +- const base::Value& params, +- std::unique_ptr<base::Value>* value); +- + #endif // CHROME_TEST_CHROMEDRIVER_WEBAUTHN_COMMANDS_H_ +diff --git a/device/fido/virtual_ctap2_device.cc b/device/fido/virtual_ctap2_device.cc +index 672b61cb5..843bd0f4e 100644 +--- a/device/fido/virtual_ctap2_device.cc ++++ b/device/fido/virtual_ctap2_device.cc +@@ -864,7 +864,6 @@ base::Optional<CtapDeviceResponseCode> VirtualCtap2Device::OnMakeCredential( + + registration.is_resident = true; + registration.user = request.user; +- registration.rp = request.rp; + } + + if (request.cred_protect) { diff --git a/www-client/chromium/files/chromium-serviceworker-83.patch b/www-client/chromium/files/chromium-serviceworker-83.patch new file mode 100644 index 0000000..a836e7f --- /dev/null +++ b/www-client/chromium/files/chromium-serviceworker-83.patch @@ -0,0 +1,130 @@ +From 0914a38252f205fc04fa50e858b24fa5f535ab11 Mon Sep 17 00:00:00 2001 +From: Hiroki Nakagawa <nhiroki@chromium.org> +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<int64_t version_id, std::unique_ptr<ServiceWorkerObjectHost>>. + +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<ServiceWorkerObjectHost> 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<EmbeddedWorkerTestHelper> helper_; + scoped_refptr<ServiceWorkerRegistration> 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<EmbeddedWorkerTestHelper>(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/www-client/chromium/files/chromium-shim_headers.patch b/www-client/chromium/files/chromium-shim_headers.patch new file mode 100644 index 0000000..9372632 --- /dev/null +++ b/www-client/chromium/files/chromium-shim_headers.patch @@ -0,0 +1,48 @@ +From e273172bbafedca36984fc40f4aa6c44b79ac2ef Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <stha09@googlemail.com> +Date: Fri, 25 Dec 2020 09:10:32 +0000 +Subject: [PATCH] shim_headers: fix outputs generation + +--- + build/shim_headers.gni | 11 +++++++---- + 1 file changed, 7 insertions(+), 4 deletions(-) + +diff --git a/build/shim_headers.gni b/build/shim_headers.gni +index 0900cba..5138647 100644 +--- a/build/shim_headers.gni ++++ b/build/shim_headers.gni +@@ -6,6 +6,8 @@ template("shim_headers") { + action_name = "gen_${target_name}" + config_name = "${target_name}_config" + shim_headers_path = "${root_gen_dir}/shim_headers/${target_name}" ++ shim_root_path = rebase_path(invoker.root_path) ++ shim_rel_path = rebase_path("${shim_root_path}", rebase_path("//")) + + config(config_name) { + include_dirs = [ shim_headers_path ] +@@ -16,7 +18,7 @@ template("shim_headers") { + args = [ + "--generate", + "--headers-root", +- rebase_path(invoker.root_path), ++ "${shim_root_path}", + "--output-directory", + rebase_path(shim_headers_path), + ] +@@ -27,9 +29,10 @@ template("shim_headers") { + ] + } + args += invoker.headers +- +- outputs = process_file_template(invoker.headers, +- "${shim_headers_path}/{{source_file_part}}") ++ outputs = [] ++ foreach(shim_header, invoker.headers) { ++ outputs += [ "${shim_headers_path}/${shim_rel_path}/" + shim_header ] ++ } + } + + group(target_name) { +-- +2.26.2 + diff --git a/www-client/chromium/files/chromium-simhash-include-84.patch b/www-client/chromium/files/chromium-simhash-include-84.patch new file mode 100644 index 0000000..eb77921 --- /dev/null +++ b/www-client/chromium/files/chromium-simhash-include-84.patch @@ -0,0 +1,26 @@ +diff --git a/components/federated_learning/sim_hash.cc b/components/federated_learning/sim_hash.cc +index 3624459f3..9287dbe72 100644 +--- a/components/federated_learning/sim_hash.cc ++++ b/components/federated_learning/sim_hash.cc +@@ -6,6 +6,7 @@ + + #include "base/hash/legacy_hash.h" + ++#include <cmath> + #include <algorithm> + + namespace federated_learning { +diff --git a/components/federated_learning/sim_hash.h b/components/federated_learning/sim_hash.h +index 55030d9d2..26087e74e 100644 +--- a/components/federated_learning/sim_hash.h ++++ b/components/federated_learning/sim_hash.h +@@ -5,7 +5,9 @@ + #ifndef COMPONENTS_FEDERATED_LEARNING_SIM_HASH_H_ + #define COMPONENTS_FEDERATED_LEARNING_SIM_HASH_H_ + ++#include <stdint.h> + #include <set> ++#include <string> + #include <unordered_set> + + namespace federated_learning { diff --git a/www-client/chromium/files/chromium-simhash-include-85.patch b/www-client/chromium/files/chromium-simhash-include-85.patch new file mode 100644 index 0000000..4075548 --- /dev/null +++ b/www-client/chromium/files/chromium-simhash-include-85.patch @@ -0,0 +1,15 @@ +diff --git a/components/federated_learning/sim_hash.h b/components/federated_learning/sim_hash.h +index 55030d9d2..ab7e57132 100644 +--- a/components/federated_learning/sim_hash.h ++++ b/components/federated_learning/sim_hash.h +@@ -5,7 +5,10 @@ + #ifndef COMPONENTS_FEDERATED_LEARNING_SIM_HASH_H_ + #define COMPONENTS_FEDERATED_LEARNING_SIM_HASH_H_ + ++#include <stdint.h> ++ + #include <set> ++#include <string> + #include <unordered_set> + + namespace federated_learning { diff --git a/www-client/chromium/files/chromium-sqrt.patch b/www-client/chromium/files/chromium-sqrt.patch new file mode 100644 index 0000000..4e391fd --- /dev/null +++ b/www-client/chromium/files/chromium-sqrt.patch @@ -0,0 +1,13 @@ +diff --git a/ui/gfx/color_utils.cc b/ui/gfx/color_utils.cc +index c868cd54b..ed33c5c18 100644 +--- a/ui/gfx/color_utils.cc ++++ b/ui/gfx/color_utils.cc +@@ -431,7 +431,7 @@ SkColor SetDarkestColorForTesting(SkColor color) { + // GetContrastRatio(kWhiteLuminance, g_luminance_midpoint). The formula below + // can be verified by plugging it into how GetContrastRatio() operates. + g_luminance_midpoint = +- std::sqrtf((dark_luminance + 0.05f) * (kWhiteLuminance + 0.05f)) - 0.05f; ++ (float)std::sqrt((dark_luminance + 0.05f) * (kWhiteLuminance + 0.05f)) - 0.05f; + + return previous_darkest_color; + } diff --git a/www-client/chromium/files/chromium-std-nullptr-83.patch b/www-client/chromium/files/chromium-std-nullptr-83.patch new file mode 100644 index 0000000..a2efc76 --- /dev/null +++ b/www-client/chromium/files/chromium-std-nullptr-83.patch @@ -0,0 +1,22 @@ +diff --git a/third_party/blink/renderer/core/typed_arrays/array_buffer_view_helpers.h b/third_party/blink/renderer/core/typed_arrays/array_buffer_view_helpers.h +index a6b8547f5..5fa03cb35 100644 +--- a/third_party/blink/renderer/core/typed_arrays/array_buffer_view_helpers.h ++++ b/third_party/blink/renderer/core/typed_arrays/array_buffer_view_helpers.h +@@ -36,7 +36,7 @@ class NotShared { + template <typename U, std::enable_if_t<std::is_base_of<T, U>::value, int> = 0> + NotShared(const NotShared<U>& other) : typed_array_(other.Get()) {} + +- explicit NotShared(nullptr_t) {} ++ explicit NotShared(std::nullptr_t) {} + explicit NotShared(T* typed_array) : typed_array_(typed_array) { + DCHECK(!typed_array || !typed_array->IsShared()); + } +@@ -95,7 +95,7 @@ class MaybeShared { + template <typename U, std::enable_if_t<std::is_base_of<T, U>::value, int> = 0> + MaybeShared(const MaybeShared<U>& other) : typed_array_(other.Get()) {} + +- explicit MaybeShared(nullptr_t) {} ++ explicit MaybeShared(std::nullptr_t) {} + // [AllowShared] array buffer view may be a view of non-shared array buffer, + // so we don't check if the buffer is SharedArrayBuffer or not. + // https://heycam.github.io/webidl/#AllowShared diff --git a/www-client/chromium/files/chromium-stdint.patch b/www-client/chromium/files/chromium-stdint.patch new file mode 100644 index 0000000..8774439 --- /dev/null +++ b/www-client/chromium/files/chromium-stdint.patch @@ -0,0 +1,21 @@ +From 0235c2b657d936f3cdb09053776e5929fc84704b Mon Sep 17 00:00:00 2001 +From: Tomas Popela <tomas.popela@gmail.com> +Date: Wed, 31 Jan 2018 18:57:07 +0000 +Subject: [PATCH] Add missing stdint include + +diff --git a/chrome/browser/vr/sample_queue.cc b/chrome/browser/vr/sample_queue.cc +index c2ca777ce90c..53cb3aab1576 100644 +--- a/chrome/browser/vr/sample_queue.cc ++++ b/chrome/browser/vr/sample_queue.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 <stdint.h> ++ + #include "chrome/browser/vr/sample_queue.h" + + namespace vr { +-- +2.16.2 + diff --git a/www-client/chromium/files/chromium-stdset.patch b/www-client/chromium/files/chromium-stdset.patch new file mode 100644 index 0000000..6ac0346 --- /dev/null +++ b/www-client/chromium/files/chromium-stdset.patch @@ -0,0 +1,13 @@ +diff --git a/components/language/core/browser/language_prefs.cc b/components/language/core/browser/language_prefs.cc +index 317aa1d82..df258ca62 100644 +--- a/components/language/core/browser/language_prefs.cc ++++ b/components/language/core/browser/language_prefs.cc +@@ -85,7 +85,7 @@ void LanguagePrefs::ResetEmptyFluentLanguagesToDefault() { + } + + base::Value LanguagePrefs::GetDefaultFluentLanguages() { +- std::set<const std::string> languages; ++ std::set<std::string> languages; + #if defined(OS_CHROMEOS) + // Preferred languages. + std::string language = language::kFallbackInputMethodLocale; diff --git a/www-client/chromium/files/chromium-string_view-79.patch b/www-client/chromium/files/chromium-string_view-79.patch new file mode 100644 index 0000000..11ad56d --- /dev/null +++ b/www-client/chromium/files/chromium-string_view-79.patch @@ -0,0 +1,78 @@ +diff --git a/components/safe_browsing/browser/threat_details.cc b/components/safe_browsing/browser/threat_details.cc +index 05bcd3ff3..5149e911d 100644 +--- a/components/safe_browsing/browser/threat_details.cc ++++ b/components/safe_browsing/browser/threat_details.cc +@@ -8,7 +8,6 @@ + + #include <stddef.h> + #include <stdint.h> +-#include <string_view> + #include <unordered_set> + #include <utility> + #include <vector> +@@ -18,6 +17,7 @@ + #include "base/lazy_instance.h" + #include "base/metrics/histogram_macros.h" + #include "base/stl_util.h" ++#include "base/strings/string_piece.h" + #include "base/strings/string_util.h" + #include "base/task/post_task.h" + #include "components/history/core/browser/history_service.h" +@@ -312,7 +312,7 @@ void TrimElements(const std::set<int> target_ids, + } + + void DisableBackForwardCache(content::RenderFrameHost* rfh, +- std::string_view reason) { ++ base::StringPiece reason) { + content::WebContents::FromRenderFrameHost(rfh) + ->GetController() + .GetBackForwardCache() +diff --git a/content/browser/frame_host/back_forward_cache_impl.cc b/content/browser/frame_host/back_forward_cache_impl.cc +index a7c06949b..3c72b7e9e 100644 +--- a/content/browser/frame_host/back_forward_cache_impl.cc ++++ b/content/browser/frame_host/back_forward_cache_impl.cc +@@ -360,7 +360,7 @@ void BackForwardCacheImpl::PostTaskToDestroyEvictedFrames() { + } + + void BackForwardCacheImpl::DisableForRenderFrameHost(GlobalFrameRoutingId id, +- std::string_view reason) { ++ base::StringPiece reason) { + DCHECK_CURRENTLY_ON(BrowserThread::UI); + auto* rfh = RenderFrameHostImpl::FromID(id); + if (rfh) +diff --git a/content/browser/frame_host/back_forward_cache_impl.h b/content/browser/frame_host/back_forward_cache_impl.h +index 712594a3d..6ed6931a3 100644 +--- a/content/browser/frame_host/back_forward_cache_impl.h ++++ b/content/browser/frame_host/back_forward_cache_impl.h +@@ -175,7 +175,7 @@ class CONTENT_EXPORT BackForwardCacheImpl : public BackForwardCache { + + // BackForwardCache: + void DisableForRenderFrameHost(GlobalFrameRoutingId id, +- std::string_view reason) override; ++ base::StringPiece reason) override; + + private: + // Destroys all evicted frames in the BackForwardCache. +diff --git a/content/public/browser/back_forward_cache.h b/content/public/browser/back_forward_cache.h +index f7abe8bec..bb7298651 100644 +--- a/content/public/browser/back_forward_cache.h ++++ b/content/public/browser/back_forward_cache.h +@@ -5,8 +5,7 @@ + #ifndef CONTENT_PUBLIC_BROWSER_BACK_FORWARD_CACHE_H_ + #define CONTENT_PUBLIC_BROWSER_BACK_FORWARD_CACHE_H_ + +-#include <string_view> +- ++#include "base/strings/string_piece.h" + #include "content/common/content_export.h" + #include "content/public/browser/global_routing_id.h" + +@@ -43,7 +42,7 @@ class CONTENT_EXPORT BackForwardCache { + // |id|: If no RenderFrameHost can be found for the given id nothing happens. + // |reason|: Free form string to be used in logging and metrics. + virtual void DisableForRenderFrameHost(GlobalFrameRoutingId id, +- std::string_view reason) = 0; ++ base::StringPiece reason) = 0; + + protected: + BackForwardCache() = default; diff --git a/www-client/chromium/files/chromium-swiftshader-77.patch b/www-client/chromium/files/chromium-swiftshader-77.patch new file mode 100644 index 0000000..34d5032 --- /dev/null +++ b/www-client/chromium/files/chromium-swiftshader-77.patch @@ -0,0 +1,53 @@ +diff --git a/third_party/swiftshader/src/OpenGL/libEGL/BUILD.gn b/third_party/swiftshader/src/OpenGL/libEGL/BUILD.gn +index f4c826d..993ca6a 100644 +--- a/third_party/swiftshader/src/OpenGL/libEGL/BUILD.gn ++++ b/third_party/swiftshader/src/OpenGL/libEGL/BUILD.gn +@@ -78,6 +78,9 @@ + if (use_x11) { + sources += [ "../../Main/libX11.cpp" ] + } ++ inputs = [ ++ "libEGL.lds", ++ ] + ldflags = + [ "-Wl,--version-script=" + rebase_path("libEGL.lds", root_build_dir) ] + } +diff --git a/third_party/swiftshader/src/OpenGL/libGLESv2/BUILD.gn b/third_party/swiftshader/src/OpenGL/libGLESv2/BUILD.gn +index 571b08a..d7037ca 100644 +--- a/third_party/swiftshader/src/OpenGL/libGLESv2/BUILD.gn ++++ b/third_party/swiftshader/src/OpenGL/libGLESv2/BUILD.gn +@@ -127,6 +127,9 @@ + if (is_mac) { + ldflags = [ "-Wl,-install_name,@rpath/libswiftshader_libGLESv2.dylib" ] + } else if (is_linux) { ++ inputs = [ ++ "libGLESv2.lds", ++ ] + ldflags = [ "-Wl,--version-script=" + + rebase_path("libGLESv2.lds", root_build_dir) ] + } +diff --git a/third_party/swiftshader/src/Vulkan/BUILD.gn b/third_party/swiftshader/src/Vulkan/BUILD.gn +index 2627f03..6aeaec8 100644 +--- a/third_party/swiftshader/src/Vulkan/BUILD.gn ++++ b/third_party/swiftshader/src/Vulkan/BUILD.gn +@@ -99,7 +99,6 @@ + "VulkanPlatform.h", + "libVulkan.cpp", + "libvk_swiftshader.def", +- "libvk_swiftshader.lds", + "main.cpp", + "resource.h", + ] +@@ -109,8 +108,10 @@ + output_name = "libvulkan" + output_dir = "$root_out_dir/swiftshader" + +- if (is_linux) +- { ++ if (is_linux) { ++ inputs = [ ++ "libvk_swiftshader.lds", ++ ] + ldflags = [ "-Wl,--version-script=" + + rebase_path("libvk_swiftshader.lds", root_build_dir) ] + } diff --git a/www-client/chromium/files/chromium-unbundle-zlib.patch b/www-client/chromium/files/chromium-unbundle-zlib.patch new file mode 100644 index 0000000..d6c45ad --- /dev/null +++ b/www-client/chromium/files/chromium-unbundle-zlib.patch @@ -0,0 +1,25 @@ +From e1bbdec720a333937bd1b990ae0f7ee97db0d3b0 Mon Sep 17 00:00:00 2001 +From: Your Name <you@example.com> +Date: Fri, 28 Jun 2019 15:56:23 +0000 +Subject: [PATCH] update zlib + +--- + third_party/perfetto/gn/BUILD.gn | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/third_party/perfetto/gn/BUILD.gn b/third_party/perfetto/gn/BUILD.gn +index c951f5f..297eee3 100644 +--- a/third_party/perfetto/gn/BUILD.gn ++++ b/third_party/perfetto/gn/BUILD.gn +@@ -200,7 +200,7 @@ group("zlib") { + "//buildtools:zlib", + ] + } else if (build_with_chromium) { +- public_configs = [ "//third_party/zlib:zlib_config" ] ++ public_configs = [ "//third_party/zlib:system_zlib" ] + public_deps = [ + "//third_party/zlib", + ] +-- +2.21.0 + diff --git a/www-client/chromium/files/chromium-union.patch b/www-client/chromium/files/chromium-union.patch new file mode 100644 index 0000000..be41f6d --- /dev/null +++ b/www-client/chromium/files/chromium-union.patch @@ -0,0 +1,54 @@ +diff --git a/base/values.h b/base/values.h +index 6f2cd3cc3..7f148d259 100644 +--- a/base/values.h ++++ b/base/values.h +@@ -415,42 +415,13 @@ class BASE_EXPORT Value { + // of 24, without losing any information. Results are unchanged for x86, + // x86_64 and arm64 (16, 32 and 32 bytes respectively). + union { +- struct { +- // TODO(crbug.com/646113): Make these private once DictionaryValue and +- // ListValue are properly inlined. +- Type type_ : 8; +- }; +- struct { +- Type bool_type_ : 8; +- bool bool_value_; +- }; +- struct { +- Type int_type_ : 8; +- int int_value_; +- }; +- struct { +- Type double_type_ : 8; +- // Subtle: On architectures that require it, the compiler will ensure +- // that |double_value_|'s offset is a multiple of 8 (e.g. 32-bit ARM). +- // See technical note above to understand why it is important. +- double double_value_; +- }; +- struct { +- Type string_type_ : 8; +- std::string string_value_; +- }; +- struct { +- Type binary_type_ : 8; +- BlobStorage binary_value_; +- }; +- struct { +- Type dict_type_ : 8; +- DictStorage dict_; +- }; +- struct { +- Type list_type_ : 8; +- ListStorage list_; +- }; ++ bool bool_value_; ++ int int_value_; ++ double double_value_; ++ std::string string_value_; ++ BlobStorage binary_value_; ++ DictStorage dict_; ++ ListStorage list_; + }; + + private: diff --git a/www-client/chromium/files/chromium-unique_ptr-80-r1.patch b/www-client/chromium/files/chromium-unique_ptr-80-r1.patch new file mode 100644 index 0000000..fb377db --- /dev/null +++ b/www-client/chromium/files/chromium-unique_ptr-80-r1.patch @@ -0,0 +1,13 @@ +diff --git a/third_party/blink/renderer/core/core_initializer.h b/third_party/blink/renderer/core/core_initializer.h +index 5e67f468f..3f6d8de03 100644 +--- a/third_party/blink/renderer/core/core_initializer.h ++++ b/third_party/blink/renderer/core/core_initializer.h +@@ -31,6 +31,8 @@ + #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_CORE_INITIALIZER_H_ + #define THIRD_PARTY_BLINK_RENDERER_CORE_CORE_INITIALIZER_H_ + ++#include <memory> ++ + #include "base/macros.h" + #include "third_party/blink/public/common/dom_storage/session_storage_namespace_id.h" + #include "third_party/blink/renderer/core/core_export.h" diff --git a/www-client/chromium/files/chromium-unique_ptr-80.patch b/www-client/chromium/files/chromium-unique_ptr-80.patch new file mode 100644 index 0000000..4da5f0b --- /dev/null +++ b/www-client/chromium/files/chromium-unique_ptr-80.patch @@ -0,0 +1,12 @@ +diff --git a/net/dns/address_info.h b/net/dns/address_info.h +index 782898535..95bc277c3 100644 +--- a/net/dns/address_info.h ++++ b/net/dns/address_info.h +@@ -5,6 +5,7 @@ + #ifndef NET_DNS_ADDRESS_INFO_H_ + #define NET_DNS_ADDRESS_INFO_H_ + ++#include <memory> + #include <string> + #include <tuple> + diff --git a/www-client/chromium/files/chromium-use-oauth2-client-switches-as-default.patch b/www-client/chromium/files/chromium-use-oauth2-client-switches-as-default.patch new file mode 100644 index 0000000..9d9c57b --- /dev/null +++ b/www-client/chromium/files/chromium-use-oauth2-client-switches-as-default.patch @@ -0,0 +1,17 @@ +diff -upr chromium-89.0.4389.58.orig/google_apis/google_api_keys.cc chromium-89.0.4389.58/google_apis/google_api_keys.cc +--- chromium-89.0.4389.58.orig/google_apis/google_api_keys.cc 2021-02-24 22:37:18.494007649 +0000 ++++ chromium-89.0.4389.58/google_apis/google_api_keys.cc 2021-02-24 22:35:00.865777600 +0000 +@@ -154,11 +154,11 @@ class APIKeyCache { + + std::string default_client_id = CalculateKeyValue( + GOOGLE_DEFAULT_CLIENT_ID, +- STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), nullptr, ++ STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), ::switches::kOAuth2ClientID, + std::string(), environment.get(), command_line, gaia_config); + std::string default_client_secret = CalculateKeyValue( + GOOGLE_DEFAULT_CLIENT_SECRET, +- STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), nullptr, ++ STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), ::switches::kOAuth2ClientSecret, + std::string(), environment.get(), command_line, gaia_config); + + // We currently only allow overriding the baked-in values for the diff --git a/www-client/chromium/files/chromium-vaapi-76-r1.patch b/www-client/chromium/files/chromium-vaapi-76-r1.patch new file mode 100644 index 0000000..6080901 --- /dev/null +++ b/www-client/chromium/files/chromium-vaapi-76-r1.patch @@ -0,0 +1,213 @@ +diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc +index f3759b099..11c0982ab 100644 +--- a/chrome/browser/about_flags.cc ++++ b/chrome/browser/about_flags.cc +@@ -1314,7 +1314,7 @@ const FeatureEntry kFeatureEntries[] = { + "disable-accelerated-video-decode", + flag_descriptions::kAcceleratedVideoDecodeName, + flag_descriptions::kAcceleratedVideoDecodeDescription, +- kOsMac | kOsWin | kOsCrOS | kOsAndroid, ++ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux, + SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode), + }, + #if defined(OS_CHROMEOS) +@@ -1768,12 +1768,12 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)}, + #endif // ENABLE_ISOLATED_XR_SERVICE + #endif // ENABLE_VR +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + {"disable-accelerated-mjpeg-decode", + flag_descriptions::kAcceleratedMjpegDecodeName, +- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS, ++ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux, + SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)}, +-#endif // OS_CHROMEOS ++#endif // OS_CHROMEOS OS_LINUX + {"v8-cache-options", flag_descriptions::kV8CacheOptionsName, + flag_descriptions::kV8CacheOptionsDescription, kOsAll, + MULTI_VALUE_TYPE(kV8CacheOptionsChoices)}, +diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc +index d05bc47f4..5d5c77b5e 100644 +--- a/chrome/browser/flag_descriptions.cc ++++ b/chrome/browser/flag_descriptions.cc +@@ -2760,13 +2760,22 @@ const char kMacSystemMediaPermissionsInfoUiDescription[] = + + // Chrome OS ------------------------------------------------------------------- + +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) + + const char kAcceleratedMjpegDecodeName[] = + "Hardware-accelerated mjpeg decode for captured frame"; + const char kAcceleratedMjpegDecodeDescription[] = + "Enable hardware-accelerated mjpeg decode for captured frame where " + "available."; ++const char kVaapiJpegImageDecodeAccelerationName[] = ++ "VA-API JPEG decode acceleration for images"; ++const char kVaapiJpegImageDecodeAccelerationDescription[] = ++ "Enable or disable decode acceleration of JPEG images (as opposed to camera" ++ " captures) using the VA-API."; ++ ++#endif // defined(OS_CHROMEOS) defined(OS_LINUX) and !defined(OS_ANDROID) ++ ++#if defined(OS_CHROMEOS) + + const char kAppServiceAshName[] = "App Service Ash"; + const char kAppServiceAshDescription[] = +diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h +index aef7105e3..149c5c034 100644 +--- a/chrome/browser/flag_descriptions.h ++++ b/chrome/browser/flag_descriptions.h +@@ -1650,11 +1650,17 @@ extern const char kPermissionPromptPersistenceToggleDescription[]; + + // Chrome OS ------------------------------------------------------------------ + +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) + + extern const char kAcceleratedMjpegDecodeName[]; + extern const char kAcceleratedMjpegDecodeDescription[]; + ++extern const char kVaapiJpegImageDecodeAccelerationName[]; ++extern const char kVaapiJpegImageDecodeAccelerationDescription[]; ++ ++#endif ++ ++#if defined(OS_CHROMEOS) + extern const char kAppServiceAshName[]; + extern const char kAppServiceAshDescription[]; + +diff --git a/components/viz/service/main/viz_main_impl.cc b/components/viz/service/main/viz_main_impl.cc +index 53292ae76..d5007860c 100644 +--- a/components/viz/service/main/viz_main_impl.cc ++++ b/components/viz/service/main/viz_main_impl.cc +@@ -36,7 +36,7 @@ std::unique_ptr<base::Thread> CreateAndStartIOThread() { + // It should be possible to use |main_task_runner_| for doing IO tasks. + base::Thread::Options thread_options(base::MessageLoop::TYPE_IO, 0); + thread_options.priority = base::ThreadPriority::NORMAL; +-#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) ++#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) || defined(OS_LINUX) + // TODO(reveman): Remove this in favor of setting it explicitly for each + // type of process. + thread_options.priority = base::ThreadPriority::DISPLAY; +diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn +index 2b1165264..fec963bd9 100644 +--- a/content/gpu/BUILD.gn ++++ b/content/gpu/BUILD.gn +@@ -6,6 +6,7 @@ import("//build/config/jumbo.gni") + import("//build/config/ui.gni") + import("//gpu/vulkan/features.gni") + import("//media/media_options.gni") ++import("//media/gpu/args.gni") + import("//ui/ozone/ozone.gni") + + # See //content/BUILD.gn for how this works. +@@ -127,4 +128,8 @@ target(link_target_type, "gpu_sources") { + (!is_chromecast || is_cast_desktop_build)) { + configs += [ "//build/config/linux/dri" ] + } ++ # Use vaapi on desktop Linux builds when use_vaapi is set ++ if (is_desktop_linux && use_vaapi) { ++ public_configs = [ "//media/gpu:libva_config" ] ++ } + } +diff --git a/content/gpu/gpu_main.cc b/content/gpu/gpu_main.cc +index a838f0ccf..4c891fb92 100644 +--- a/content/gpu/gpu_main.cc ++++ b/content/gpu/gpu_main.cc +@@ -288,7 +288,7 @@ int GpuMain(const MainFunctionParams& parameters) { + + base::PlatformThread::SetName("CrGpuMain"); + +-#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) ++#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) || defined(OS_LINUX) + // Set thread priority before sandbox initialization. + base::PlatformThread::SetCurrentThreadPriority(base::ThreadPriority::DISPLAY); + #endif +@@ -321,7 +321,7 @@ int GpuMain(const MainFunctionParams& parameters) { + GetContentClient()->SetGpuInfo(gpu_init->gpu_info()); + + base::ThreadPriority io_thread_priority = base::ThreadPriority::NORMAL; +-#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) ++#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) || defined(OS_LINUX) + io_thread_priority = base::ThreadPriority::DISPLAY; + #endif + +diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json +index 0042a3457..efe1b3f4d 100644 +--- a/gpu/config/software_rendering_list.json ++++ b/gpu/config/software_rendering_list.json +@@ -369,17 +369,6 @@ + "all" + ] + }, +- { +- "id": 48, +- "description": "Accelerated video decode is unavailable on Linux", +- "cr_bugs": [137247], +- "os": { +- "type": "linux" +- }, +- "features": [ +- "accelerated_video_decode" +- ] +- }, + { + "id": 50, + "description": "Disable VMware software renderer on older Mesa", +diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc +index 2e364d0cf..728cab164 100644 +--- a/media/base/media_switches.cc ++++ b/media/base/media_switches.cc +@@ -520,7 +520,7 @@ bool IsVideoCaptureAcceleratedJpegDecodingEnabled() { + switches::kUseFakeMjpegDecodeAccelerator)) { + return true; + } +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + return true; + #endif + return false; +diff --git a/media/filters/BUILD.gn b/media/filters/BUILD.gn +index 1324da986..b4d235f50 100644 +--- a/media/filters/BUILD.gn ++++ b/media/filters/BUILD.gn +@@ -5,6 +5,7 @@ + import("//build/config/jumbo.gni") + import("//media/media_options.gni") + import("//third_party/libaom/options.gni") ++import("//media/gpu/args.gni") + + jumbo_source_set("filters") { + # Do not expand the visibility here without double-checking with OWNERS, this +@@ -207,7 +208,7 @@ jumbo_source_set("filters") { + deps += [ "//media/base/android" ] + } + +- if (current_cpu != "arm" && is_linux) { ++ if (use_vaapi && is_linux) { + sources += [ + "h264_bitstream_buffer.cc", + "h264_bitstream_buffer.h", +diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn +index 2020a4c23..af61e3e75 100644 +--- a/media/gpu/BUILD.gn ++++ b/media/gpu/BUILD.gn +@@ -499,9 +499,16 @@ if (use_v4l2_codec || use_vaapi || is_mac || is_win) { + if (use_ozone) { + deps += [ "//ui/ozone" ] + } ++ public_configs = [ ":libva_config" ] + } + } + ++import("//build/config/linux/pkg_config.gni") ++ ++pkg_config("libva_config") { ++ packages = [ "libva" ] ++} ++ + static_library("test_support") { + visibility = [ "//media:test_support" ] + testonly = true diff --git a/www-client/chromium/files/chromium-vaapi-76.patch b/www-client/chromium/files/chromium-vaapi-76.patch new file mode 100644 index 0000000..6b9c372 --- /dev/null +++ b/www-client/chromium/files/chromium-vaapi-76.patch @@ -0,0 +1,218 @@ +diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc +index e727a7633..321ec6374 100644 +--- a/chrome/browser/about_flags.cc ++++ b/chrome/browser/about_flags.cc +@@ -1344,7 +1344,7 @@ const FeatureEntry kFeatureEntries[] = { + "disable-accelerated-video-decode", + flag_descriptions::kAcceleratedVideoDecodeName, + flag_descriptions::kAcceleratedVideoDecodeDescription, +- kOsMac | kOsWin | kOsCrOS | kOsAndroid, ++ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux, + SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode), + }, + #if defined(OS_WIN) +@@ -1840,12 +1840,12 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)}, + #endif // ENABLE_ISOLATED_XR_SERVICE + #endif // ENABLE_VR +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + {"disable-accelerated-mjpeg-decode", + flag_descriptions::kAcceleratedMjpegDecodeName, +- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS, ++ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux, + SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)}, +-#endif // OS_CHROMEOS ++#endif // OS_CHROMEOS OS_LINUX + {"v8-cache-options", flag_descriptions::kV8CacheOptionsName, + flag_descriptions::kV8CacheOptionsDescription, kOsAll, + MULTI_VALUE_TYPE(kV8CacheOptionsChoices)}, +diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc +index e935e0fd6..3225adb3b 100644 +--- a/chrome/browser/flag_descriptions.cc ++++ b/chrome/browser/flag_descriptions.cc +@@ -2873,13 +2873,22 @@ const char kMacSystemMediaPermissionsInfoUiDescription[] = + + // Chrome OS ------------------------------------------------------------------- + +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) + + const char kAcceleratedMjpegDecodeName[] = + "Hardware-accelerated mjpeg decode for captured frame"; + const char kAcceleratedMjpegDecodeDescription[] = + "Enable hardware-accelerated mjpeg decode for captured frame where " + "available."; ++const char kVaapiJpegImageDecodeAccelerationName[] = ++ "VA-API JPEG decode acceleration for images"; ++const char kVaapiJpegImageDecodeAccelerationDescription[] = ++ "Enable or disable decode acceleration of JPEG images (as opposed to camera" ++ " captures) using the VA-API."; ++ ++#endif // defined(OS_CHROMEOS) defined(OS_LINUX) and !defined(OS_ANDROID) ++ ++#if defined(OS_CHROMEOS) + + const char kAppServiceAshName[] = "App Service Ash"; + const char kAppServiceAshDescription[] = +diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h +index 8450a5b76..80b68b724 100644 +--- a/chrome/browser/flag_descriptions.h ++++ b/chrome/browser/flag_descriptions.h +@@ -1723,11 +1723,17 @@ extern const char kPermissionPromptPersistenceToggleDescription[]; + + // Chrome OS ------------------------------------------------------------------ + +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) + + extern const char kAcceleratedMjpegDecodeName[]; + extern const char kAcceleratedMjpegDecodeDescription[]; + ++extern const char kVaapiJpegImageDecodeAccelerationName[]; ++extern const char kVaapiJpegImageDecodeAccelerationDescription[]; ++ ++#endif ++ ++#if defined(OS_CHROMEOS) + extern const char kAppServiceAshName[]; + extern const char kAppServiceAshDescription[]; + +diff --git a/components/viz/service/main/viz_main_impl.cc b/components/viz/service/main/viz_main_impl.cc +index a5a38f8ec..7a110c4f9 100644 +--- a/components/viz/service/main/viz_main_impl.cc ++++ b/components/viz/service/main/viz_main_impl.cc +@@ -36,7 +36,7 @@ std::unique_ptr<base::Thread> CreateAndStartIOThread() { + // It should be possible to use |main_task_runner_| for doing IO tasks. + base::Thread::Options thread_options(base::MessageLoop::TYPE_IO, 0); + thread_options.priority = base::ThreadPriority::NORMAL; +-#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) ++#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) || defined(OS_LINUX) + // TODO(reveman): Remove this in favor of setting it explicitly for each + // type of process. + thread_options.priority = base::ThreadPriority::DISPLAY; +diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn +index 2b1165264..fec963bd9 100644 +--- a/content/gpu/BUILD.gn ++++ b/content/gpu/BUILD.gn +@@ -6,6 +6,7 @@ import("//build/config/jumbo.gni") + import("//build/config/ui.gni") + import("//gpu/vulkan/features.gni") + import("//media/media_options.gni") ++import("//media/gpu/args.gni") + import("//ui/ozone/ozone.gni") + + # See //content/BUILD.gn for how this works. +@@ -127,4 +128,8 @@ target(link_target_type, "gpu_sources") { + (!is_chromecast || is_cast_desktop_build)) { + configs += [ "//build/config/linux/dri" ] + } ++ # Use vaapi on desktop Linux builds when use_vaapi is set ++ if (is_desktop_linux && use_vaapi) { ++ public_configs = [ "//media/gpu:libva_config" ] ++ } + } +diff --git a/content/gpu/gpu_main.cc b/content/gpu/gpu_main.cc +index a838f0ccf..4c891fb92 100644 +--- a/content/gpu/gpu_main.cc ++++ b/content/gpu/gpu_main.cc +@@ -288,7 +288,7 @@ int GpuMain(const MainFunctionParams& parameters) { + + base::PlatformThread::SetName("CrGpuMain"); + +-#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) ++#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) || defined(OS_LINUX) + // Set thread priority before sandbox initialization. + base::PlatformThread::SetCurrentThreadPriority(base::ThreadPriority::DISPLAY); + #endif +@@ -321,7 +321,7 @@ int GpuMain(const MainFunctionParams& parameters) { + GetContentClient()->SetGpuInfo(gpu_init->gpu_info()); + + base::ThreadPriority io_thread_priority = base::ThreadPriority::NORMAL; +-#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) ++#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) || defined(OS_LINUX) + io_thread_priority = base::ThreadPriority::DISPLAY; + #endif + +diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json +index d4c3b4364..935fdeb86 100644 +--- a/gpu/config/software_rendering_list.json ++++ b/gpu/config/software_rendering_list.json +@@ -369,17 +369,6 @@ + "all" + ] + }, +- { +- "id": 48, +- "description": "Accelerated video decode is unavailable on Linux", +- "cr_bugs": [137247], +- "os": { +- "type": "linux" +- }, +- "features": [ +- "accelerated_video_decode" +- ] +- }, + { + "id": 50, + "description": "Disable VMware software renderer on older Mesa", +diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc +index a8b11a3b9..a6ac202f9 100644 +--- a/media/base/media_switches.cc ++++ b/media/base/media_switches.cc +@@ -509,7 +509,7 @@ bool IsVideoCaptureAcceleratedJpegDecodingEnabled() { + switches::kUseFakeMjpegDecodeAccelerator)) { + return true; + } +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + return true; + #endif + return false; +diff --git a/media/filters/BUILD.gn b/media/filters/BUILD.gn +index 4fac91144..7086ada95 100644 +--- a/media/filters/BUILD.gn ++++ b/media/filters/BUILD.gn +@@ -5,6 +5,7 @@ + import("//build/config/jumbo.gni") + import("//media/media_options.gni") + import("//third_party/libaom/options.gni") ++import("//media/gpu/args.gni") + + jumbo_source_set("filters") { + # Do not expand the visibility here without double-checking with OWNERS, this +@@ -211,7 +212,7 @@ jumbo_source_set("filters") { + deps += [ "//media/base/android" ] + } + +- if (current_cpu != "arm" && is_linux) { ++ if (use_vaapi && is_linux) { + sources += [ + "h264_bitstream_buffer.cc", + "h264_bitstream_buffer.h", +diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn +index 6eed6db69..ffd81b968 100644 +--- a/media/gpu/BUILD.gn ++++ b/media/gpu/BUILD.gn +@@ -510,6 +510,13 @@ if (use_v4l2_codec || use_vaapi || is_mac || is_win) { + } + } + ++import("//build/config/linux/pkg_config.gni") ++ ++pkg_config("libva_config") { ++ packages = [ "libva" ] ++} ++ ++ + if (use_v4l2_codec || use_vaapi) { + test("jpeg_encode_accelerator_unittest") { + deps = [ +@@ -580,6 +587,7 @@ if (is_chromeos || is_linux) { + if (use_ozone) { + deps += [ "//ui/ozone" ] + } ++ public_configs = [ ":libva_config" ] + } + } + diff --git a/www-client/chromium/files/chromium-vaapi-77.patch b/www-client/chromium/files/chromium-vaapi-77.patch new file mode 100644 index 0000000..01ad8c5 --- /dev/null +++ b/www-client/chromium/files/chromium-vaapi-77.patch @@ -0,0 +1,213 @@ +diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc +index b6747f0d7..5c8a4d3e1 100644 +--- a/chrome/browser/about_flags.cc ++++ b/chrome/browser/about_flags.cc +@@ -1420,7 +1420,7 @@ const FeatureEntry kFeatureEntries[] = { + "disable-accelerated-video-decode", + flag_descriptions::kAcceleratedVideoDecodeName, + flag_descriptions::kAcceleratedVideoDecodeDescription, +- kOsMac | kOsWin | kOsCrOS | kOsAndroid, ++ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux, + SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode), + }, + { +@@ -1867,12 +1867,12 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)}, + #endif // ENABLE_ISOLATED_XR_SERVICE + #endif // ENABLE_VR +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + {"disable-accelerated-mjpeg-decode", + flag_descriptions::kAcceleratedMjpegDecodeName, +- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS, ++ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux, + SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)}, +-#endif // OS_CHROMEOS ++#endif // OS_CHROMEOS OS_LINUX + {"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName, + flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop, + FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)}, +diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc +index 8573fb58f..ece9a30ea 100644 +--- a/chrome/browser/flag_descriptions.cc ++++ b/chrome/browser/flag_descriptions.cc +@@ -2791,13 +2791,22 @@ const char kMacSystemMediaPermissionsInfoUiDescription[] = + + // Chrome OS ------------------------------------------------------------------- + +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) + + const char kAcceleratedMjpegDecodeName[] = + "Hardware-accelerated mjpeg decode for captured frame"; + const char kAcceleratedMjpegDecodeDescription[] = + "Enable hardware-accelerated mjpeg decode for captured frame where " + "available."; ++const char kVaapiJpegImageDecodeAccelerationName[] = ++ "VA-API JPEG decode acceleration for images"; ++const char kVaapiJpegImageDecodeAccelerationDescription[] = ++ "Enable or disable decode acceleration of JPEG images (as opposed to camera" ++ " captures) using the VA-API."; ++ ++#endif // defined(OS_CHROMEOS) defined(OS_LINUX) and !defined(OS_ANDROID) ++ ++#if defined(OS_CHROMEOS) + + const char kAppServiceAshName[] = "App Service Ash"; + const char kAppServiceAshDescription[] = +diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h +index f21e223fc..f9527ea64 100644 +--- a/chrome/browser/flag_descriptions.h ++++ b/chrome/browser/flag_descriptions.h +@@ -1661,11 +1661,17 @@ extern const char kPermissionPromptPersistenceToggleDescription[]; + + // Chrome OS ------------------------------------------------------------------ + +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) + + extern const char kAcceleratedMjpegDecodeName[]; + extern const char kAcceleratedMjpegDecodeDescription[]; + ++extern const char kVaapiJpegImageDecodeAccelerationName[]; ++extern const char kVaapiJpegImageDecodeAccelerationDescription[]; ++ ++#endif ++ ++#if defined(OS_CHROMEOS) + extern const char kAppServiceAshName[]; + extern const char kAppServiceAshDescription[]; + +diff --git a/components/viz/service/main/viz_main_impl.cc b/components/viz/service/main/viz_main_impl.cc +index 53292ae76..d5007860c 100644 +--- a/components/viz/service/main/viz_main_impl.cc ++++ b/components/viz/service/main/viz_main_impl.cc +@@ -36,7 +36,7 @@ std::unique_ptr<base::Thread> CreateAndStartIOThread() { + // It should be possible to use |main_task_runner_| for doing IO tasks. + base::Thread::Options thread_options(base::MessageLoop::TYPE_IO, 0); + thread_options.priority = base::ThreadPriority::NORMAL; +-#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) ++#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) || defined(OS_LINUX) + // TODO(reveman): Remove this in favor of setting it explicitly for each + // type of process. + thread_options.priority = base::ThreadPriority::DISPLAY; +diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn +index 29e78fec4..0ab429013 100644 +--- a/content/gpu/BUILD.gn ++++ b/content/gpu/BUILD.gn +@@ -6,6 +6,7 @@ import("//build/config/jumbo.gni") + import("//build/config/ui.gni") + import("//gpu/vulkan/features.gni") + import("//media/media_options.gni") ++import("//media/gpu/args.gni") + import("//ui/ozone/ozone.gni") + + # See //content/BUILD.gn for how this works. +@@ -128,4 +129,8 @@ target(link_target_type, "gpu_sources") { + (!is_chromecast || is_cast_desktop_build)) { + configs += [ "//build/config/linux/dri" ] + } ++ # Use vaapi on desktop Linux builds when use_vaapi is set ++ if (is_desktop_linux && use_vaapi) { ++ public_configs = [ "//media/gpu:libva_config" ] ++ } + } +diff --git a/content/gpu/gpu_main.cc b/content/gpu/gpu_main.cc +index bf47f4738..73a8b2daa 100644 +--- a/content/gpu/gpu_main.cc ++++ b/content/gpu/gpu_main.cc +@@ -294,7 +294,7 @@ int GpuMain(const MainFunctionParams& parameters) { + + base::PlatformThread::SetName("CrGpuMain"); + +-#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) ++#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) || defined(OS_LINUX) + // Set thread priority before sandbox initialization. + base::PlatformThread::SetCurrentThreadPriority(base::ThreadPriority::DISPLAY); + #endif +@@ -327,7 +327,7 @@ int GpuMain(const MainFunctionParams& parameters) { + GetContentClient()->SetGpuInfo(gpu_init->gpu_info()); + + base::ThreadPriority io_thread_priority = base::ThreadPriority::NORMAL; +-#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) ++#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) || defined(OS_LINUX) + io_thread_priority = base::ThreadPriority::DISPLAY; + #endif + +diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json +index 03e251547..9eb0f1148 100644 +--- a/gpu/config/software_rendering_list.json ++++ b/gpu/config/software_rendering_list.json +@@ -368,17 +368,6 @@ + "all" + ] + }, +- { +- "id": 48, +- "description": "Accelerated video decode is unavailable on Linux", +- "cr_bugs": [137247], +- "os": { +- "type": "linux" +- }, +- "features": [ +- "accelerated_video_decode" +- ] +- }, + { + "id": 50, + "description": "Disable VMware software renderer on older Mesa", +diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc +index 4652a24f4..4e5259a9e 100644 +--- a/media/base/media_switches.cc ++++ b/media/base/media_switches.cc +@@ -528,7 +528,7 @@ bool IsVideoCaptureAcceleratedJpegDecodingEnabled() { + switches::kUseFakeMjpegDecodeAccelerator)) { + return true; + } +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + return true; + #endif + return false; +diff --git a/media/filters/BUILD.gn b/media/filters/BUILD.gn +index 13d433354..8d89253fb 100644 +--- a/media/filters/BUILD.gn ++++ b/media/filters/BUILD.gn +@@ -5,6 +5,7 @@ + import("//build/config/jumbo.gni") + import("//media/media_options.gni") + import("//third_party/libaom/options.gni") ++import("//media/gpu/args.gni") + + jumbo_source_set("filters") { + # Do not expand the visibility here without double-checking with OWNERS, this +@@ -196,7 +197,7 @@ jumbo_source_set("filters") { + deps += [ "//media/base/android" ] + } + +- if (current_cpu != "arm" && is_linux) { ++ if (use_vaapi && is_linux) { + sources += [ + "h264_bitstream_buffer.cc", + "h264_bitstream_buffer.h", +diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn +index b3f43cd64..1d4a432fd 100644 +--- a/media/gpu/BUILD.gn ++++ b/media/gpu/BUILD.gn +@@ -521,9 +521,16 @@ if (use_v4l2_codec || use_vaapi || is_mac || is_win) { + if (use_ozone) { + deps += [ "//ui/ozone" ] + } ++ public_configs = [ ":libva_config" ] + } + } + ++import("//build/config/linux/pkg_config.gni") ++ ++pkg_config("libva_config") { ++ packages = [ "libva" ] ++} ++ + static_library("test_support") { + visibility = [ "//media:test_support" ] + testonly = true diff --git a/www-client/chromium/files/chromium-vaapi-78-r1.patch b/www-client/chromium/files/chromium-vaapi-78-r1.patch new file mode 100644 index 0000000..8e9aeb4 --- /dev/null +++ b/www-client/chromium/files/chromium-vaapi-78-r1.patch @@ -0,0 +1,220 @@ +diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc +index ce15485ef..097b757dd 100644 +--- a/chrome/browser/about_flags.cc ++++ b/chrome/browser/about_flags.cc +@@ -1704,7 +1704,7 @@ const FeatureEntry kFeatureEntries[] = { + "disable-accelerated-video-decode", + flag_descriptions::kAcceleratedVideoDecodeName, + flag_descriptions::kAcceleratedVideoDecodeDescription, +- kOsMac | kOsWin | kOsCrOS | kOsAndroid, ++ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux, + SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode), + }, + { +@@ -2184,12 +2184,12 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)}, + #endif // !defined(OS_ANDROID) + #endif // ENABLE_VR +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + {"disable-accelerated-mjpeg-decode", + flag_descriptions::kAcceleratedMjpegDecodeName, +- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS, ++ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux, + SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)}, +-#endif // OS_CHROMEOS ++#endif // OS_CHROMEOS OS_LINUX + {"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName, + flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop, + FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)}, +diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc +index 87d4934a5..2f4842e2e 100644 +--- a/chrome/browser/flag_descriptions.cc ++++ b/chrome/browser/flag_descriptions.cc +@@ -3049,7 +3049,7 @@ const char kMacSystemMediaPermissionsInfoUiDescription[] = + + // Chrome OS ------------------------------------------------------------------- + +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) + + const char kAcceleratedMjpegDecodeName[] = + "Hardware-accelerated mjpeg decode for captured frame"; +@@ -3057,6 +3057,21 @@ const char kAcceleratedMjpegDecodeDescription[] = + "Enable hardware-accelerated mjpeg decode for captured frame where " + "available."; + ++const char kVaapiJpegImageDecodeAccelerationName[] = ++ "VA-API JPEG decode acceleration for images"; ++const char kVaapiJpegImageDecodeAccelerationDescription[] = ++ "Enable or disable decode acceleration of JPEG images (as opposed to camera" ++ " captures) using the VA-API."; ++ ++const char kVaapiWebPImageDecodeAccelerationName[] = ++ "VA-API WebP decode acceleration for images"; ++const char kVaapiWebPImageDecodeAccelerationDescription[] = ++ "Enable or disable decode acceleration of WebP images using the VA-API."; ++ ++#endif ++ ++#if defined(OS_CHROMEOS) ++ + const char kAggregatedMlAppRankingName[] = "Rank suggested apps with ML."; + const char kAggregatedMlAppRankingDescription[] = + "Use the aggregated ML model to rank the suggested apps."; +@@ -3577,17 +3592,6 @@ const char kUsbguardDescription[] = + " until Chrome OS is unlocked to protect against malicious USB devices." + " Already connected USB devices will continue to function."; + +-const char kVaapiJpegImageDecodeAccelerationName[] = +- "VA-API JPEG decode acceleration for images"; +-const char kVaapiJpegImageDecodeAccelerationDescription[] = +- "Enable or disable decode acceleration of JPEG images (as opposed to camera" +- " captures) using the VA-API."; +- +-const char kVaapiWebPImageDecodeAccelerationName[] = +- "VA-API WebP decode acceleration for images"; +-const char kVaapiWebPImageDecodeAccelerationDescription[] = +- "Enable or disable decode acceleration of WebP images using the VA-API."; +- + const char kVirtualKeyboardName[] = "Virtual Keyboard"; + const char kVirtualKeyboardDescription[] = "Enable virtual keyboard support."; + +diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h +index 1b73f5985..61d965e7d 100644 +--- a/chrome/browser/flag_descriptions.h ++++ b/chrome/browser/flag_descriptions.h +@@ -1812,11 +1812,21 @@ extern const char kPermissionPromptPersistenceToggleDescription[]; + + // Chrome OS ------------------------------------------------------------------ + +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) + + extern const char kAcceleratedMjpegDecodeName[]; + extern const char kAcceleratedMjpegDecodeDescription[]; + ++extern const char kVaapiJpegImageDecodeAccelerationName[]; ++extern const char kVaapiJpegImageDecodeAccelerationDescription[]; ++ ++extern const char kVaapiWebPImageDecodeAccelerationName[]; ++extern const char kVaapiWebPImageDecodeAccelerationDescription[]; ++ ++#endif ++ ++#if defined(OS_CHROMEOS) ++ + extern const char kAggregatedMlAppRankingName[]; + extern const char kAggregatedMlAppRankingDescription[]; + +@@ -2144,12 +2154,6 @@ extern const char kUsbguardDescription[]; + extern const char kUseMonitorColorSpaceName[]; + extern const char kUseMonitorColorSpaceDescription[]; + +-extern const char kVaapiJpegImageDecodeAccelerationName[]; +-extern const char kVaapiJpegImageDecodeAccelerationDescription[]; +- +-extern const char kVaapiWebPImageDecodeAccelerationName[]; +-extern const char kVaapiWebPImageDecodeAccelerationDescription[]; +- + extern const char kVirtualKeyboardName[]; + extern const char kVirtualKeyboardDescription[]; + +diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn +index 0939d25cc..69f31c724 100644 +--- a/content/gpu/BUILD.gn ++++ b/content/gpu/BUILD.gn +@@ -6,6 +6,7 @@ import("//build/config/jumbo.gni") + import("//build/config/ui.gni") + import("//gpu/vulkan/features.gni") + import("//media/media_options.gni") ++import("//media/gpu/args.gni") + import("//ui/ozone/ozone.gni") + + # See //content/BUILD.gn for how this works. +@@ -128,4 +129,8 @@ target(link_target_type, "gpu_sources") { + (!is_chromecast || is_cast_desktop_build)) { + configs += [ "//build/config/linux/dri" ] + } ++ # Use vaapi on desktop Linux builds when use_vaapi is set ++ if (is_desktop_linux && use_vaapi) { ++ public_configs = [ "//media/gpu:libva_config" ] ++ } + } +diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json +index ea1294e4c..5ba052ec6 100644 +--- a/gpu/config/software_rendering_list.json ++++ b/gpu/config/software_rendering_list.json +@@ -332,17 +332,6 @@ + "all" + ] + }, +- { +- "id": 48, +- "description": "Accelerated video decode is unavailable on Linux", +- "cr_bugs": [137247], +- "os": { +- "type": "linux" +- }, +- "features": [ +- "accelerated_video_decode" +- ] +- }, + { + "id": 50, + "description": "Disable VMware software renderer on older Mesa", +diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc +index 08c606b39..0ac5dce80 100644 +--- a/media/base/media_switches.cc ++++ b/media/base/media_switches.cc +@@ -582,7 +582,7 @@ bool IsVideoCaptureAcceleratedJpegDecodingEnabled() { + switches::kUseFakeMjpegDecodeAccelerator)) { + return true; + } +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + return true; + #endif + return false; +diff --git a/media/filters/BUILD.gn b/media/filters/BUILD.gn +index ac554920d..e10321d88 100644 +--- a/media/filters/BUILD.gn ++++ b/media/filters/BUILD.gn +@@ -5,6 +5,7 @@ + import("//build/config/jumbo.gni") + import("//media/media_options.gni") + import("//third_party/libaom/options.gni") ++import("//media/gpu/args.gni") + + jumbo_source_set("filters") { + # Do not expand the visibility here without double-checking with OWNERS, this +@@ -196,7 +197,7 @@ jumbo_source_set("filters") { + deps += [ "//media/base/android" ] + } + +- if (current_cpu != "arm" && is_linux) { ++ if (use_vaapi && is_linux) { + sources += [ + "h264_bitstream_buffer.cc", + "h264_bitstream_buffer.h", +diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn +index 85cb6c363..95ae2bb1e 100644 +--- a/media/gpu/BUILD.gn ++++ b/media/gpu/BUILD.gn +@@ -525,9 +525,16 @@ if (use_v4l2_codec || use_vaapi || is_mac || is_win) { + if (use_ozone) { + deps += [ "//ui/ozone" ] + } ++ public_configs = [ ":libva_config" ] + } + } + ++import("//build/config/linux/pkg_config.gni") ++ ++pkg_config("libva_config") { ++ packages = [ "libva" ] ++} ++ + static_library("test_support") { + visibility = [ "//media:test_support" ] + testonly = true diff --git a/www-client/chromium/files/chromium-vaapi-78.patch b/www-client/chromium/files/chromium-vaapi-78.patch new file mode 100644 index 0000000..8525792 --- /dev/null +++ b/www-client/chromium/files/chromium-vaapi-78.patch @@ -0,0 +1,178 @@ +diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc +index 1f68539de..e739ed7e0 100644 +--- a/chrome/browser/about_flags.cc ++++ b/chrome/browser/about_flags.cc +@@ -1605,7 +1605,7 @@ const FeatureEntry kFeatureEntries[] = { + "disable-accelerated-video-decode", + flag_descriptions::kAcceleratedVideoDecodeName, + flag_descriptions::kAcceleratedVideoDecodeDescription, +- kOsMac | kOsWin | kOsCrOS | kOsAndroid, ++ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux, + SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode), + }, + { +@@ -2075,12 +2075,12 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)}, + #endif // !defined(OS_ANDROID) + #endif // ENABLE_VR +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + {"disable-accelerated-mjpeg-decode", + flag_descriptions::kAcceleratedMjpegDecodeName, +- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS, ++ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux, + SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)}, +-#endif // OS_CHROMEOS ++#endif // OS_CHROMEOS OS_LINUX + {"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName, + flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop, + FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)}, +diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc +index 81b32eb3e..0b3396198 100644 +--- a/chrome/browser/flag_descriptions.cc ++++ b/chrome/browser/flag_descriptions.cc +@@ -2919,13 +2919,22 @@ const char kMacSystemMediaPermissionsInfoUiDescription[] = + + // Chrome OS ------------------------------------------------------------------- + +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) + + const char kAcceleratedMjpegDecodeName[] = + "Hardware-accelerated mjpeg decode for captured frame"; + const char kAcceleratedMjpegDecodeDescription[] = + "Enable hardware-accelerated mjpeg decode for captured frame where " + "available."; ++const char kVaapiJpegImageDecodeAccelerationName[] = ++ "VA-API JPEG decode acceleration for images"; ++const char kVaapiJpegImageDecodeAccelerationDescription[] = ++ "Enable or disable decode acceleration of JPEG images (as opposed to camera" ++ " captures) using the VA-API."; ++ ++#endif // defined(OS_CHROMEOS) defined(OS_LINUX) and !defined(OS_ANDROID) ++ ++#if defined(OS_CHROMEOS) + + const char kAppServiceAshName[] = "App Service Ash"; + const char kAppServiceAshDescription[] = +diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h +index e079d7aa2..761d28974 100644 +--- a/chrome/browser/flag_descriptions.h ++++ b/chrome/browser/flag_descriptions.h +@@ -1733,11 +1733,17 @@ extern const char kPermissionPromptPersistenceToggleDescription[]; + + // Chrome OS ------------------------------------------------------------------ + +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) + + extern const char kAcceleratedMjpegDecodeName[]; + extern const char kAcceleratedMjpegDecodeDescription[]; + ++extern const char kVaapiJpegImageDecodeAccelerationName[]; ++extern const char kVaapiJpegImageDecodeAccelerationDescription[]; ++ ++#endif ++ ++#if defined(OS_CHROMEOS) + extern const char kAppServiceAshName[]; + extern const char kAppServiceAshDescription[]; + +diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn +index 0939d25cc..69f31c724 100644 +--- a/content/gpu/BUILD.gn ++++ b/content/gpu/BUILD.gn +@@ -6,6 +6,7 @@ import("//build/config/jumbo.gni") + import("//build/config/ui.gni") + import("//gpu/vulkan/features.gni") + import("//media/media_options.gni") ++import("//media/gpu/args.gni") + import("//ui/ozone/ozone.gni") + + # See //content/BUILD.gn for how this works. +@@ -128,4 +129,8 @@ target(link_target_type, "gpu_sources") { + (!is_chromecast || is_cast_desktop_build)) { + configs += [ "//build/config/linux/dri" ] + } ++ # Use vaapi on desktop Linux builds when use_vaapi is set ++ if (is_desktop_linux && use_vaapi) { ++ public_configs = [ "//media/gpu:libva_config" ] ++ } + } +diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json +index 9def82b55..1f5a03ea0 100644 +--- a/gpu/config/software_rendering_list.json ++++ b/gpu/config/software_rendering_list.json +@@ -368,17 +368,6 @@ + "all" + ] + }, +- { +- "id": 48, +- "description": "Accelerated video decode is unavailable on Linux", +- "cr_bugs": [137247], +- "os": { +- "type": "linux" +- }, +- "features": [ +- "accelerated_video_decode" +- ] +- }, + { + "id": 50, + "description": "Disable VMware software renderer on older Mesa", +diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc +index 37f1a2380..d21c59439 100644 +--- a/media/base/media_switches.cc ++++ b/media/base/media_switches.cc +@@ -550,7 +550,7 @@ bool IsVideoCaptureAcceleratedJpegDecodingEnabled() { + switches::kUseFakeMjpegDecodeAccelerator)) { + return true; + } +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + return true; + #endif + return false; +diff --git a/media/filters/BUILD.gn b/media/filters/BUILD.gn +index f33ca5866..70736d7fc 100644 +--- a/media/filters/BUILD.gn ++++ b/media/filters/BUILD.gn +@@ -5,6 +5,7 @@ + import("//build/config/jumbo.gni") + import("//media/media_options.gni") + import("//third_party/libaom/options.gni") ++import("//media/gpu/args.gni") + + jumbo_source_set("filters") { + # Do not expand the visibility here without double-checking with OWNERS, this +@@ -196,7 +197,7 @@ jumbo_source_set("filters") { + deps += [ "//media/base/android" ] + } + +- if (current_cpu != "arm" && is_linux) { ++ if (use_vaapi && is_linux) { + sources += [ + "h264_bitstream_buffer.cc", + "h264_bitstream_buffer.h", +diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn +index eec3b7fc7..aa27959b1 100644 +--- a/media/gpu/BUILD.gn ++++ b/media/gpu/BUILD.gn +@@ -533,9 +533,16 @@ if (use_v4l2_codec || use_vaapi || is_mac || is_win) { + if (use_ozone) { + deps += [ "//ui/ozone" ] + } ++ public_configs = [ ":libva_config" ] + } + } + ++import("//build/config/linux/pkg_config.gni") ++ ++pkg_config("libva_config") { ++ packages = [ "libva" ] ++} ++ + static_library("test_support") { + visibility = [ "//media:test_support" ] + testonly = true diff --git a/www-client/chromium/files/chromium-vaapi-79.patch b/www-client/chromium/files/chromium-vaapi-79.patch new file mode 100644 index 0000000..dc2c1ee --- /dev/null +++ b/www-client/chromium/files/chromium-vaapi-79.patch @@ -0,0 +1,220 @@ +diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc +index 2a4ca2365..a657df74d 100644 +--- a/chrome/browser/about_flags.cc ++++ b/chrome/browser/about_flags.cc +@@ -1747,7 +1747,7 @@ const FeatureEntry kFeatureEntries[] = { + "disable-accelerated-video-decode", + flag_descriptions::kAcceleratedVideoDecodeName, + flag_descriptions::kAcceleratedVideoDecodeDescription, +- kOsMac | kOsWin | kOsCrOS | kOsAndroid, ++ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux, + SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode), + }, + { +@@ -2219,12 +2219,12 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)}, + #endif // !defined(OS_ANDROID) + #endif // ENABLE_VR +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + {"disable-accelerated-mjpeg-decode", + flag_descriptions::kAcceleratedMjpegDecodeName, +- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS, ++ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux, + SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)}, +-#endif // OS_CHROMEOS ++#endif // OS_CHROMEOS OS_LINUX + {"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName, + flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop, + FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)}, +diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc +index 929544e4f..be0884a73 100644 +--- a/chrome/browser/flag_descriptions.cc ++++ b/chrome/browser/flag_descriptions.cc +@@ -3080,7 +3080,7 @@ const char kMacSystemMediaPermissionsInfoUiDescription[] = + + // Chrome OS ------------------------------------------------------------------- + +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) + + const char kAcceleratedMjpegDecodeName[] = + "Hardware-accelerated mjpeg decode for captured frame"; +@@ -3088,6 +3088,21 @@ const char kAcceleratedMjpegDecodeDescription[] = + "Enable hardware-accelerated mjpeg decode for captured frame where " + "available."; + ++const char kVaapiJpegImageDecodeAccelerationName[] = ++ "VA-API JPEG decode acceleration for images"; ++const char kVaapiJpegImageDecodeAccelerationDescription[] = ++ "Enable or disable decode acceleration of JPEG images (as opposed to camera" ++ " captures) using the VA-API."; ++ ++const char kVaapiWebPImageDecodeAccelerationName[] = ++ "VA-API WebP decode acceleration for images"; ++const char kVaapiWebPImageDecodeAccelerationDescription[] = ++ "Enable or disable decode acceleration of WebP images using the VA-API."; ++ ++#endif ++ ++#if defined(OS_CHROMEOS) ++ + const char kAggregatedMlAppRankingName[] = "Rank suggested apps with ML."; + const char kAggregatedMlAppRankingDescription[] = + "Use the aggregated ML model to rank the suggested apps."; +@@ -3618,17 +3633,6 @@ const char kUsbguardDescription[] = + " until Chrome OS is unlocked to protect against malicious USB devices." + " Already connected USB devices will continue to function."; + +-const char kVaapiJpegImageDecodeAccelerationName[] = +- "VA-API JPEG decode acceleration for images"; +-const char kVaapiJpegImageDecodeAccelerationDescription[] = +- "Enable or disable decode acceleration of JPEG images (as opposed to camera" +- " captures) using the VA-API."; +- +-const char kVaapiWebPImageDecodeAccelerationName[] = +- "VA-API WebP decode acceleration for images"; +-const char kVaapiWebPImageDecodeAccelerationDescription[] = +- "Enable or disable decode acceleration of WebP images using the VA-API."; +- + const char kVirtualKeyboardName[] = "Virtual Keyboard"; + const char kVirtualKeyboardDescription[] = "Enable virtual keyboard support."; + +diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h +index dc9450374..93fc6f14f 100644 +--- a/chrome/browser/flag_descriptions.h ++++ b/chrome/browser/flag_descriptions.h +@@ -1822,11 +1822,21 @@ extern const char kPermissionPromptPersistenceToggleDescription[]; + + // Chrome OS ------------------------------------------------------------------ + +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) + + extern const char kAcceleratedMjpegDecodeName[]; + extern const char kAcceleratedMjpegDecodeDescription[]; + ++extern const char kVaapiJpegImageDecodeAccelerationName[]; ++extern const char kVaapiJpegImageDecodeAccelerationDescription[]; ++ ++extern const char kVaapiWebPImageDecodeAccelerationName[]; ++extern const char kVaapiWebPImageDecodeAccelerationDescription[]; ++ ++#endif ++ ++#if defined(OS_CHROMEOS) ++ + extern const char kAggregatedMlAppRankingName[]; + extern const char kAggregatedMlAppRankingDescription[]; + +@@ -2160,12 +2170,6 @@ extern const char kUseFakeDeviceForMediaStreamDescription[]; + extern const char kUseMonitorColorSpaceName[]; + extern const char kUseMonitorColorSpaceDescription[]; + +-extern const char kVaapiJpegImageDecodeAccelerationName[]; +-extern const char kVaapiJpegImageDecodeAccelerationDescription[]; +- +-extern const char kVaapiWebPImageDecodeAccelerationName[]; +-extern const char kVaapiWebPImageDecodeAccelerationDescription[]; +- + extern const char kVirtualKeyboardName[]; + extern const char kVirtualKeyboardDescription[]; + +diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn +index 0939d25cc..69f31c724 100644 +--- a/content/gpu/BUILD.gn ++++ b/content/gpu/BUILD.gn +@@ -6,6 +6,7 @@ import("//build/config/jumbo.gni") + import("//build/config/ui.gni") + import("//gpu/vulkan/features.gni") + import("//media/media_options.gni") ++import("//media/gpu/args.gni") + import("//ui/ozone/ozone.gni") + + # See //content/BUILD.gn for how this works. +@@ -128,4 +129,8 @@ target(link_target_type, "gpu_sources") { + (!is_chromecast || is_cast_desktop_build)) { + configs += [ "//build/config/linux/dri" ] + } ++ # Use vaapi on desktop Linux builds when use_vaapi is set ++ if (is_desktop_linux && use_vaapi) { ++ public_configs = [ "//media/gpu:libva_config" ] ++ } + } +diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json +index ea1294e4c..5ba052ec6 100644 +--- a/gpu/config/software_rendering_list.json ++++ b/gpu/config/software_rendering_list.json +@@ -332,17 +332,6 @@ + "all" + ] + }, +- { +- "id": 48, +- "description": "Accelerated video decode is unavailable on Linux", +- "cr_bugs": [137247], +- "os": { +- "type": "linux" +- }, +- "features": [ +- "accelerated_video_decode" +- ] +- }, + { + "id": 50, + "description": "Disable VMware software renderer on older Mesa", +diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc +index e7b6efa18..2a3ad90ae 100644 +--- a/media/base/media_switches.cc ++++ b/media/base/media_switches.cc +@@ -612,7 +612,7 @@ bool IsVideoCaptureAcceleratedJpegDecodingEnabled() { + switches::kUseFakeMjpegDecodeAccelerator)) { + return true; + } +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + return true; + #endif + return false; +diff --git a/media/filters/BUILD.gn b/media/filters/BUILD.gn +index 481216a18..bde7319e6 100644 +--- a/media/filters/BUILD.gn ++++ b/media/filters/BUILD.gn +@@ -5,6 +5,7 @@ + import("//build/config/jumbo.gni") + import("//media/media_options.gni") + import("//third_party/libaom/options.gni") ++import("//media/gpu/args.gni") + + jumbo_source_set("filters") { + # Do not expand the visibility here without double-checking with OWNERS, this +@@ -196,7 +197,7 @@ jumbo_source_set("filters") { + deps += [ "//media/base/android" ] + } + +- if (current_cpu != "arm" && is_linux) { ++ if (use_vaapi && is_linux) { + sources += [ + "h264_bitstream_buffer.cc", + "h264_bitstream_buffer.h", +diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn +index c290ec2ef..1c06865b8 100644 +--- a/media/gpu/BUILD.gn ++++ b/media/gpu/BUILD.gn +@@ -530,9 +530,16 @@ if (use_v4l2_codec || use_vaapi || is_mac || is_win) { + if (use_ozone) { + deps += [ "//ui/ozone" ] + } ++ public_configs = [ ":libva_config" ] + } + } + ++import("//build/config/linux/pkg_config.gni") ++ ++pkg_config("libva_config") { ++ packages = [ "libva" ] ++} ++ + static_library("test_support") { + visibility = [ "//media/gpu/*" ] + testonly = true diff --git a/www-client/chromium/files/chromium-vaapi-80.patch b/www-client/chromium/files/chromium-vaapi-80.patch new file mode 100644 index 0000000..d9982dd --- /dev/null +++ b/www-client/chromium/files/chromium-vaapi-80.patch @@ -0,0 +1,168 @@ +diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc +index f9ddeca39..a581bca3d 100644 +--- a/chrome/browser/about_flags.cc ++++ b/chrome/browser/about_flags.cc +@@ -1754,7 +1754,7 @@ const FeatureEntry kFeatureEntries[] = { + "disable-accelerated-video-decode", + flag_descriptions::kAcceleratedVideoDecodeName, + flag_descriptions::kAcceleratedVideoDecodeDescription, +- kOsMac | kOsWin | kOsCrOS | kOsAndroid, ++ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux, + SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode), + }, + { +@@ -2228,12 +2228,12 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)}, + #endif // !defined(OS_ANDROID) + #endif // ENABLE_VR +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + {"disable-accelerated-mjpeg-decode", + flag_descriptions::kAcceleratedMjpegDecodeName, +- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS, ++ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux, + SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)}, +-#endif // OS_CHROMEOS ++#endif // OS_CHROMEOS OS_LINUX + {"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName, + flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop, + FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)}, +diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc +index 90a193991..87d1eedac 100644 +--- a/chrome/browser/flag_descriptions.cc ++++ b/chrome/browser/flag_descriptions.cc +@@ -3132,7 +3132,7 @@ const char kMetalDescription[] = + + // Chrome OS ------------------------------------------------------------------- + +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) + + const char kAcceleratedMjpegDecodeName[] = + "Hardware-accelerated mjpeg decode for captured frame"; +@@ -3140,6 +3140,21 @@ const char kAcceleratedMjpegDecodeDescription[] = + "Enable hardware-accelerated mjpeg decode for captured frame where " + "available."; + ++const char kVaapiJpegImageDecodeAccelerationName[] = ++ "VA-API JPEG decode acceleration for images"; ++const char kVaapiJpegImageDecodeAccelerationDescription[] = ++ "Enable or disable decode acceleration of JPEG images (as opposed to camera" ++ " captures) using the VA-API."; ++ ++const char kVaapiWebPImageDecodeAccelerationName[] = ++ "VA-API WebP decode acceleration for images"; ++const char kVaapiWebPImageDecodeAccelerationDescription[] = ++ "Enable or disable decode acceleration of WebP images using the VA-API."; ++ ++#endif ++ ++#if defined(OS_CHROMEOS) ++ + const char kAggregatedMlAppRankingName[] = "Rank suggested apps with ML."; + const char kAggregatedMlAppRankingDescription[] = + "Use the aggregated ML model to rank the suggested apps."; +diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h +index 4d7349337..ea4838826 100644 +--- a/chrome/browser/flag_descriptions.h ++++ b/chrome/browser/flag_descriptions.h +@@ -1847,11 +1847,21 @@ extern const char kPermissionPromptPersistenceToggleDescription[]; + + // Chrome OS ------------------------------------------------------------------ + +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) + + extern const char kAcceleratedMjpegDecodeName[]; + extern const char kAcceleratedMjpegDecodeDescription[]; + ++extern const char kVaapiJpegImageDecodeAccelerationName[]; ++extern const char kVaapiJpegImageDecodeAccelerationDescription[]; ++ ++extern const char kVaapiWebPImageDecodeAccelerationName[]; ++extern const char kVaapiWebPImageDecodeAccelerationDescription[]; ++ ++#endif ++ ++#if defined(OS_CHROMEOS) ++ + extern const char kAggregatedMlAppRankingName[]; + extern const char kAggregatedMlAppRankingDescription[]; + +diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn +index fde557cc3..b150ccbad 100644 +--- a/content/gpu/BUILD.gn ++++ b/content/gpu/BUILD.gn +@@ -6,6 +6,7 @@ import("//build/config/jumbo.gni") + import("//build/config/ui.gni") + import("//gpu/vulkan/features.gni") + import("//media/media_options.gni") ++import("//media/gpu/args.gni") + import("//ui/ozone/ozone.gni") + + # See //content/BUILD.gn for how this works. +@@ -129,4 +130,8 @@ target(link_target_type, "gpu_sources") { + (!is_chromecast || is_cast_desktop_build)) { + configs += [ "//build/config/linux/dri" ] + } ++ # Use vaapi on desktop Linux builds when use_vaapi is set ++ if (is_desktop_linux && use_vaapi) { ++ public_configs = [ "//media/gpu:libva_config" ] ++ } + } +diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json +index c1da1d8b7..bd83de134 100644 +--- a/gpu/config/software_rendering_list.json ++++ b/gpu/config/software_rendering_list.json +@@ -332,17 +332,6 @@ + "all" + ] + }, +- { +- "id": 48, +- "description": "Accelerated video decode is unavailable on Linux", +- "cr_bugs": [137247], +- "os": { +- "type": "linux" +- }, +- "features": [ +- "accelerated_video_decode" +- ] +- }, + { + "id": 50, + "description": "Disable VMware software renderer on older Mesa", +diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc +index 981cb7a08..33f3e8312 100644 +--- a/media/base/media_switches.cc ++++ b/media/base/media_switches.cc +@@ -632,7 +632,7 @@ bool IsVideoCaptureAcceleratedJpegDecodingEnabled() { + switches::kUseFakeMjpegDecodeAccelerator)) { + return true; + } +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + return true; + #endif + return false; +diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn +index 875c3515a..db52819f9 100644 +--- a/media/gpu/BUILD.gn ++++ b/media/gpu/BUILD.gn +@@ -456,9 +456,16 @@ if (use_v4l2_codec || use_vaapi || is_mac || is_win) { + if (use_ozone) { + deps += [ "//ui/ozone" ] + } ++ public_configs = [ ":libva_config" ] + } + } + ++import("//build/config/linux/pkg_config.gni") ++ ++pkg_config("libva_config") { ++ packages = [ "libva" ] ++} ++ + static_library("test_support") { + visibility = [ "//media/gpu/*" ] + testonly = true diff --git a/www-client/chromium/files/chromium-vaapi-81.patch b/www-client/chromium/files/chromium-vaapi-81.patch new file mode 100644 index 0000000..aac31c0 --- /dev/null +++ b/www-client/chromium/files/chromium-vaapi-81.patch @@ -0,0 +1,181 @@ +diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc +index 54c97b37d..8a72db3ab 100644 +--- a/chrome/browser/about_flags.cc ++++ b/chrome/browser/about_flags.cc +@@ -1846,7 +1846,7 @@ const FeatureEntry kFeatureEntries[] = { + "disable-accelerated-video-decode", + flag_descriptions::kAcceleratedVideoDecodeName, + flag_descriptions::kAcceleratedVideoDecodeDescription, +- kOsMac | kOsWin | kOsCrOS | kOsAndroid, ++ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux, + SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode), + }, + { +@@ -2307,12 +2307,12 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)}, + #endif // !defined(OS_ANDROID) + #endif // ENABLE_VR +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + {"disable-accelerated-mjpeg-decode", + flag_descriptions::kAcceleratedMjpegDecodeName, +- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS, ++ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux, + SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)}, +-#endif // OS_CHROMEOS ++#endif // OS_CHROMEOS OS_LINUX + {"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName, + flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop, + FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)}, +diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc +index 5c2b3f3fa..67edf526e 100644 +--- a/chrome/browser/flag_descriptions.cc ++++ b/chrome/browser/flag_descriptions.cc +@@ -3172,7 +3172,7 @@ const char kMetalDescription[] = + + // Chrome OS ------------------------------------------------------------------- + +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) + + const char kAcceleratedMjpegDecodeName[] = + "Hardware-accelerated mjpeg decode for captured frame"; +@@ -3180,6 +3180,21 @@ const char kAcceleratedMjpegDecodeDescription[] = + "Enable hardware-accelerated mjpeg decode for captured frame where " + "available."; + ++const char kVaapiJpegImageDecodeAccelerationName[] = ++ "VA-API JPEG decode acceleration for images"; ++const char kVaapiJpegImageDecodeAccelerationDescription[] = ++ "Enable or disable decode acceleration of JPEG images (as opposed to camera" ++ " captures) using the VA-API."; ++ ++const char kVaapiWebPImageDecodeAccelerationName[] = ++ "VA-API WebP decode acceleration for images"; ++const char kVaapiWebPImageDecodeAccelerationDescription[] = ++ "Enable or disable decode acceleration of WebP images using the VA-API."; ++ ++#endif ++ ++#if defined(OS_CHROMEOS) ++ + const char kAggregatedMlAppRankingName[] = "Rank suggested apps with ML."; + const char kAggregatedMlAppRankingDescription[] = + "Use the aggregated ML model to rank the suggested apps."; +diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h +index 384a7bed3..719b1fce5 100644 +--- a/chrome/browser/flag_descriptions.h ++++ b/chrome/browser/flag_descriptions.h +@@ -1872,11 +1872,21 @@ extern const char kPermissionPromptPersistenceToggleDescription[]; + + // Chrome OS ------------------------------------------------------------------ + +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) + + extern const char kAcceleratedMjpegDecodeName[]; + extern const char kAcceleratedMjpegDecodeDescription[]; + ++extern const char kVaapiJpegImageDecodeAccelerationName[]; ++extern const char kVaapiJpegImageDecodeAccelerationDescription[]; ++ ++extern const char kVaapiWebPImageDecodeAccelerationName[]; ++extern const char kVaapiWebPImageDecodeAccelerationDescription[]; ++ ++#endif ++ ++#if defined(OS_CHROMEOS) ++ + extern const char kAggregatedMlAppRankingName[]; + extern const char kAggregatedMlAppRankingDescription[]; + +diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn +index d777b767b..34df35560 100644 +--- a/content/gpu/BUILD.gn ++++ b/content/gpu/BUILD.gn +@@ -6,6 +6,7 @@ import("//build/config/jumbo.gni") + import("//build/config/ui.gni") + import("//gpu/vulkan/features.gni") + import("//media/media_options.gni") ++import("//media/gpu/args.gni") + import("//ui/ozone/ozone.gni") + + # See //content/BUILD.gn for how this works. +@@ -134,4 +135,8 @@ target(link_target_type, "gpu_sources") { + (!is_chromecast || is_cast_desktop_build)) { + configs += [ "//build/config/linux/dri" ] + } ++ # Use vaapi on desktop Linux builds when use_vaapi is set ++ if (is_desktop_linux && use_vaapi) { ++ public_configs = [ "//media/gpu:libva_config" ] ++ } + } +diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json +index 837bb8dd2..36c79fe83 100644 +--- a/gpu/config/software_rendering_list.json ++++ b/gpu/config/software_rendering_list.json +@@ -332,17 +332,6 @@ + "all" + ] + }, +- { +- "id": 48, +- "description": "Accelerated video decode is unavailable on Linux", +- "cr_bugs": [137247], +- "os": { +- "type": "linux" +- }, +- "features": [ +- "accelerated_video_decode" +- ] +- }, + { + "id": 50, + "description": "Disable VMware software renderer on older Mesa", +diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc +index d089b3975..2c8c2b885 100644 +--- a/media/base/media_switches.cc ++++ b/media/base/media_switches.cc +@@ -653,7 +653,7 @@ bool IsVideoCaptureAcceleratedJpegDecodingEnabled() { + switches::kUseFakeMjpegDecodeAccelerator)) { + return true; + } +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + return true; + #endif + return false; +diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn +index 76514826b..080a1d2ee 100644 +--- a/media/gpu/BUILD.gn ++++ b/media/gpu/BUILD.gn +@@ -455,9 +455,16 @@ if (use_v4l2_codec || use_vaapi || is_mac || is_win) { + if (use_ozone) { + deps += [ "//ui/ozone" ] + } ++ public_configs = [ ":libva_config" ] + } + } + ++import("//build/config/linux/pkg_config.gni") ++ ++pkg_config("libva_config") { ++ packages = [ "libva" ] ++} ++ + static_library("test_support") { + visibility = [ "//media/gpu/*" ] + testonly = true +diff --git a/media/gpu/test/BUILD.gn b/media/gpu/test/BUILD.gn +index 21ff52759..9f3232a1b 100644 +--- a/media/gpu/test/BUILD.gn ++++ b/media/gpu/test/BUILD.gn +@@ -158,7 +158,7 @@ if (use_vaapi || use_v4l2_codec) { + } + } + +-if (is_chromeos) { ++if (is_chromeos || is_linux) { + static_library("local_gpu_memory_buffer_manager") { + testonly = true + sources = [ diff --git a/www-client/chromium/files/chromium-vaapi-82.patch b/www-client/chromium/files/chromium-vaapi-82.patch new file mode 100644 index 0000000..18115e3 --- /dev/null +++ b/www-client/chromium/files/chromium-vaapi-82.patch @@ -0,0 +1,186 @@ +diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc +index 77785e7a8..303f8c9f7 100644 +--- a/chrome/browser/about_flags.cc ++++ b/chrome/browser/about_flags.cc +@@ -1957,7 +1957,7 @@ const FeatureEntry kFeatureEntries[] = { + "disable-accelerated-video-decode", + flag_descriptions::kAcceleratedVideoDecodeName, + flag_descriptions::kAcceleratedVideoDecodeDescription, +- kOsMac | kOsWin | kOsCrOS | kOsAndroid, ++ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux, + SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode), + }, + { +@@ -2390,12 +2390,12 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)}, + #endif // !defined(OS_ANDROID) + #endif // ENABLE_VR +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + {"disable-accelerated-mjpeg-decode", + flag_descriptions::kAcceleratedMjpegDecodeName, +- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS, ++ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux, + SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)}, +-#endif // OS_CHROMEOS ++#endif // OS_CHROMEOS OS_LINUX + {"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName, + flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop, + FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)}, +diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc +index 3a5ea1399..f92d626fa 100644 +--- a/chrome/browser/flag_descriptions.cc ++++ b/chrome/browser/flag_descriptions.cc +@@ -2995,7 +2995,7 @@ const char kMetalDescription[] = + + // Chrome OS ------------------------------------------------------------------- + +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) + + const char kAcceleratedMjpegDecodeName[] = + "Hardware-accelerated mjpeg decode for captured frame"; +@@ -3003,6 +3003,21 @@ const char kAcceleratedMjpegDecodeDescription[] = + "Enable hardware-accelerated mjpeg decode for captured frame where " + "available."; + ++const char kVaapiJpegImageDecodeAccelerationName[] = ++ "VA-API JPEG decode acceleration for images"; ++const char kVaapiJpegImageDecodeAccelerationDescription[] = ++ "Enable or disable decode acceleration of JPEG images (as opposed to camera" ++ " captures) using the VA-API."; ++ ++const char kVaapiWebPImageDecodeAccelerationName[] = ++ "VA-API WebP decode acceleration for images"; ++const char kVaapiWebPImageDecodeAccelerationDescription[] = ++ "Enable or disable decode acceleration of WebP images using the VA-API."; ++ ++#endif ++ ++#if defined(OS_CHROMEOS) ++ + const char kAggregatedMlAppRankingName[] = "Rank suggested apps with ML."; + const char kAggregatedMlAppRankingDescription[] = + "Use the aggregated ML model to rank the suggested apps."; +diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h +index a3c3bf194..8e0730dbd 100644 +--- a/chrome/browser/flag_descriptions.h ++++ b/chrome/browser/flag_descriptions.h +@@ -1724,11 +1724,21 @@ extern const char kMetalDescription[]; + + // Chrome OS ------------------------------------------------------------------ + +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) + + extern const char kAcceleratedMjpegDecodeName[]; + extern const char kAcceleratedMjpegDecodeDescription[]; + ++extern const char kVaapiJpegImageDecodeAccelerationName[]; ++extern const char kVaapiJpegImageDecodeAccelerationDescription[]; ++ ++extern const char kVaapiWebPImageDecodeAccelerationName[]; ++extern const char kVaapiWebPImageDecodeAccelerationDescription[]; ++ ++#endif ++ ++#if defined(OS_CHROMEOS) ++ + extern const char kAggregatedMlAppRankingName[]; + extern const char kAggregatedMlAppRankingDescription[]; + +diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn +index 088c791f0..464cf018c 100644 +--- a/content/gpu/BUILD.gn ++++ b/content/gpu/BUILD.gn +@@ -6,6 +6,7 @@ import("//build/config/jumbo.gni") + import("//build/config/ui.gni") + import("//gpu/vulkan/features.gni") + import("//media/media_options.gni") ++import("//media/gpu/args.gni") + import("//ui/ozone/ozone.gni") + + # See //content/BUILD.gn for how this works. +@@ -131,4 +132,8 @@ target(link_target_type, "gpu_sources") { + (!is_chromecast || is_cast_desktop_build)) { + configs += [ "//build/config/linux/dri" ] + } ++ # Use vaapi on desktop Linux builds when use_vaapi is set ++ if (is_desktop_linux && use_vaapi) { ++ public_configs = [ "//media/gpu:libva_config" ] ++ } + } +diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json +index 22712bdbf..a06dd19a5 100644 +--- a/gpu/config/software_rendering_list.json ++++ b/gpu/config/software_rendering_list.json +@@ -335,22 +335,6 @@ + "all" + ] + }, +- { +- "id": 48, +- "description": "Accelerated video decode is unavailable on Linux", +- "cr_bugs": [137247, 1032907], +- "os": { +- "type": "linux" +- }, +- "exceptions": [ +- { +- "machine_model_name": ["Chromecast"] +- } +- ], +- "features": [ +- "accelerated_video_decode" +- ] +- }, + { + "id": 50, + "description": "Disable VMware software renderer on older Mesa", +diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc +index 4b271023c..94b0d8c79 100644 +--- a/media/base/media_switches.cc ++++ b/media/base/media_switches.cc +@@ -693,7 +693,7 @@ bool IsVideoCaptureAcceleratedJpegDecodingEnabled() { + switches::kUseFakeMjpegDecodeAccelerator)) { + return true; + } +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + return true; + #endif + return false; +diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn +index 13443f3d3..195208fed 100644 +--- a/media/gpu/BUILD.gn ++++ b/media/gpu/BUILD.gn +@@ -451,9 +451,16 @@ if (use_v4l2_codec || use_vaapi || is_mac || is_win) { + if (use_ozone) { + deps += [ "//ui/ozone" ] + } ++ public_configs = [ ":libva_config" ] + } + } + ++import("//build/config/linux/pkg_config.gni") ++ ++pkg_config("libva_config") { ++ packages = [ "libva" ] ++} ++ + static_library("test_support") { + visibility = [ "//media/gpu/*" ] + testonly = true +diff --git a/media/gpu/test/BUILD.gn b/media/gpu/test/BUILD.gn +index 8d1275a43..71e5c9dca 100644 +--- a/media/gpu/test/BUILD.gn ++++ b/media/gpu/test/BUILD.gn +@@ -152,7 +152,7 @@ if (use_vaapi || use_v4l2_codec) { + } + } + +-if (is_chromeos) { ++if (is_chromeos || is_linux) { + static_library("local_gpu_memory_buffer_manager") { + testonly = true + sources = [ diff --git a/www-client/chromium/files/chromium-vaapi-83.patch b/www-client/chromium/files/chromium-vaapi-83.patch new file mode 100644 index 0000000..d614b94 --- /dev/null +++ b/www-client/chromium/files/chromium-vaapi-83.patch @@ -0,0 +1,186 @@ +diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc +index 0524711d0..0477b7bbd 100644 +--- a/chrome/browser/about_flags.cc ++++ b/chrome/browser/about_flags.cc +@@ -2092,7 +2092,7 @@ const FeatureEntry kFeatureEntries[] = { + "disable-accelerated-video-decode", + flag_descriptions::kAcceleratedVideoDecodeName, + flag_descriptions::kAcceleratedVideoDecodeDescription, +- kOsMac | kOsWin | kOsCrOS | kOsAndroid, ++ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux, + SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode), + }, + { +@@ -2514,12 +2514,12 @@ const FeatureEntry kFeatureEntries[] = { + flag_descriptions::kWebXrForceRuntimeDescription, kOsDesktop, + MULTI_VALUE_TYPE(kWebXrForceRuntimeChoices)}, + #endif // ENABLE_VR +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + {"disable-accelerated-mjpeg-decode", + flag_descriptions::kAcceleratedMjpegDecodeName, +- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS, ++ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux, + SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)}, +-#endif // OS_CHROMEOS ++#endif // OS_CHROMEOS OS_LINUX + {"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName, + flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop, + FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)}, +diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc +index 834232048..a77b963af 100644 +--- a/chrome/browser/flag_descriptions.cc ++++ b/chrome/browser/flag_descriptions.cc +@@ -2954,7 +2954,7 @@ const char kMetalDescription[] = + + // Chrome OS ------------------------------------------------------------------- + +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) + + const char kAcceleratedMjpegDecodeName[] = + "Hardware-accelerated mjpeg decode for captured frame"; +@@ -2962,6 +2962,21 @@ const char kAcceleratedMjpegDecodeDescription[] = + "Enable hardware-accelerated mjpeg decode for captured frame where " + "available."; + ++const char kVaapiJpegImageDecodeAccelerationName[] = ++ "VA-API JPEG decode acceleration for images"; ++const char kVaapiJpegImageDecodeAccelerationDescription[] = ++ "Enable or disable decode acceleration of JPEG images (as opposed to camera" ++ " captures) using the VA-API."; ++ ++const char kVaapiWebPImageDecodeAccelerationName[] = ++ "VA-API WebP decode acceleration for images"; ++const char kVaapiWebPImageDecodeAccelerationDescription[] = ++ "Enable or disable decode acceleration of WebP images using the VA-API."; ++ ++#endif ++ ++#if defined(OS_CHROMEOS) ++ + const char kAggregatedMlAppRankingName[] = "Rank suggested apps with ML."; + const char kAggregatedMlAppRankingDescription[] = + "Use the aggregated ML model to rank the suggested apps."; +diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h +index f497d6197..5762ce62e 100644 +--- a/chrome/browser/flag_descriptions.h ++++ b/chrome/browser/flag_descriptions.h +@@ -1696,11 +1696,21 @@ extern const char kMetalDescription[]; + + // Chrome OS ------------------------------------------------------------------ + +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) + + extern const char kAcceleratedMjpegDecodeName[]; + extern const char kAcceleratedMjpegDecodeDescription[]; + ++extern const char kVaapiJpegImageDecodeAccelerationName[]; ++extern const char kVaapiJpegImageDecodeAccelerationDescription[]; ++ ++extern const char kVaapiWebPImageDecodeAccelerationName[]; ++extern const char kVaapiWebPImageDecodeAccelerationDescription[]; ++ ++#endif ++ ++#if defined(OS_CHROMEOS) ++ + extern const char kAggregatedMlAppRankingName[]; + extern const char kAggregatedMlAppRankingDescription[]; + +diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn +index 64ebb18c5..682b4ffeb 100644 +--- a/content/gpu/BUILD.gn ++++ b/content/gpu/BUILD.gn +@@ -6,6 +6,7 @@ import("//build/config/jumbo.gni") + import("//build/config/ui.gni") + import("//gpu/vulkan/features.gni") + import("//media/media_options.gni") ++import("//media/gpu/args.gni") + import("//ui/ozone/ozone.gni") + + # See //content/BUILD.gn for how this works. +@@ -133,4 +134,8 @@ target(link_target_type, "gpu_sources") { + (!is_chromecast || is_cast_desktop_build)) { + configs += [ "//build/config/linux/dri" ] + } ++ # Use vaapi on desktop Linux builds when use_vaapi is set ++ if (is_desktop_linux && use_vaapi) { ++ public_configs = [ "//media/gpu:libva_config" ] ++ } + } +diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json +index 7eefd9966..747971b46 100644 +--- a/gpu/config/software_rendering_list.json ++++ b/gpu/config/software_rendering_list.json +@@ -335,22 +335,6 @@ + "all" + ] + }, +- { +- "id": 48, +- "description": "Accelerated video decode is unavailable on Linux", +- "cr_bugs": [137247, 1032907], +- "os": { +- "type": "linux" +- }, +- "exceptions": [ +- { +- "machine_model_name": ["Chromecast"] +- } +- ], +- "features": [ +- "accelerated_video_decode" +- ] +- }, + { + "id": 50, + "description": "Disable VMware software renderer on older Mesa", +diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc +index bc7f518ae..eed869232 100644 +--- a/media/base/media_switches.cc ++++ b/media/base/media_switches.cc +@@ -714,7 +714,7 @@ bool IsVideoCaptureAcceleratedJpegDecodingEnabled() { + switches::kUseFakeMjpegDecodeAccelerator)) { + return true; + } +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + return true; + #endif + return false; +diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn +index be9406674..95782e01a 100644 +--- a/media/gpu/BUILD.gn ++++ b/media/gpu/BUILD.gn +@@ -457,9 +457,16 @@ if (use_v4l2_codec || use_vaapi || is_mac || is_win) { + if (use_ozone) { + deps += [ "//ui/ozone" ] + } ++ public_configs = [ ":libva_config" ] + } + } + ++import("//build/config/linux/pkg_config.gni") ++ ++pkg_config("libva_config") { ++ packages = [ "libva" ] ++} ++ + static_library("test_support") { + visibility = [ "//media/gpu/*" ] + testonly = true +diff --git a/media/gpu/test/BUILD.gn b/media/gpu/test/BUILD.gn +index 5dd95ec1f..3dd7a1a20 100644 +--- a/media/gpu/test/BUILD.gn ++++ b/media/gpu/test/BUILD.gn +@@ -182,7 +182,7 @@ if (use_vaapi || use_v4l2_codec) { + } + } + +-if (is_chromeos) { ++if (is_chromeos || is_linux) { + static_library("local_gpu_memory_buffer_manager") { + testonly = true + sources = [ diff --git a/www-client/chromium/files/chromium-vaapi-87.patch b/www-client/chromium/files/chromium-vaapi-87.patch new file mode 100644 index 0000000..508a2f4 --- /dev/null +++ b/www-client/chromium/files/chromium-vaapi-87.patch @@ -0,0 +1,137 @@ +diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc +index 78eedbcbf..eda2d0c48 100644 +--- a/chrome/browser/about_flags.cc ++++ b/chrome/browser/about_flags.cc +@@ -3150,12 +3150,12 @@ const FeatureEntry kFeatureEntries[] = { + flag_descriptions::kWebXrForceRuntimeDescription, kOsDesktop, + MULTI_VALUE_TYPE(kWebXrForceRuntimeChoices)}, + #endif // ENABLE_VR +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + {"disable-accelerated-mjpeg-decode", + flag_descriptions::kAcceleratedMjpegDecodeName, +- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS, ++ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux, + SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)}, +-#endif // OS_CHROMEOS ++#endif // OS_CHROMEOS OS_LINUX + {"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName, + flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop, + FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)}, +diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc +index e4f4cf856..d448035db 100644 +--- a/chrome/browser/flag_descriptions.cc ++++ b/chrome/browser/flag_descriptions.cc +@@ -3542,7 +3542,7 @@ const char kVideoToolboxVp9DecodingDescription[] = + + // Chrome OS ------------------------------------------------------------------- + +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) + + const char kAcceleratedMjpegDecodeName[] = + "Hardware-accelerated mjpeg decode for captured frame"; +@@ -3550,6 +3550,21 @@ const char kAcceleratedMjpegDecodeDescription[] = + "Enable hardware-accelerated mjpeg decode for captured frame where " + "available."; + ++const char kVaapiJpegImageDecodeAccelerationName[] = ++ "VA-API JPEG decode acceleration for images"; ++const char kVaapiJpegImageDecodeAccelerationDescription[] = ++ "Enable or disable decode acceleration of JPEG images (as opposed to camera" ++ " captures) using the VA-API."; ++ ++const char kVaapiWebPImageDecodeAccelerationName[] = ++ "VA-API WebP decode acceleration for images"; ++const char kVaapiWebPImageDecodeAccelerationDescription[] = ++ "Enable or disable decode acceleration of WebP images using the VA-API."; ++ ++#endif ++ ++#if defined(OS_CHROMEOS) ++ + const char kAggregatedMlAppRankingName[] = "Rank suggested apps with ML."; + const char kAggregatedMlAppRankingDescription[] = + "Use the aggregated ML model to rank the suggested apps."; +diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h +index a8a80f118..beddafe6f 100644 +--- a/chrome/browser/flag_descriptions.h ++++ b/chrome/browser/flag_descriptions.h +@@ -2041,11 +2041,21 @@ extern const char kVideoToolboxVp9DecodingDescription[]; + + // Chrome OS ------------------------------------------------------------------ + +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) + + extern const char kAcceleratedMjpegDecodeName[]; + extern const char kAcceleratedMjpegDecodeDescription[]; + ++extern const char kVaapiJpegImageDecodeAccelerationName[]; ++extern const char kVaapiJpegImageDecodeAccelerationDescription[]; ++ ++extern const char kVaapiWebPImageDecodeAccelerationName[]; ++extern const char kVaapiWebPImageDecodeAccelerationDescription[]; ++ ++#endif ++ ++#if defined(OS_CHROMEOS) ++ + extern const char kAggregatedMlAppRankingName[]; + extern const char kAggregatedMlAppRankingDescription[]; + +diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn +index 747df62b1..eb973a881 100644 +--- a/content/gpu/BUILD.gn ++++ b/content/gpu/BUILD.gn +@@ -5,6 +5,7 @@ + import("//build/config/ui.gni") + import("//gpu/vulkan/features.gni") + import("//media/media_options.gni") ++import("//media/gpu/args.gni") + import("//ui/ozone/ozone.gni") + + # See //content/BUILD.gn for how this works. +@@ -128,4 +129,8 @@ target(link_target_type, "gpu_sources") { + (!is_chromecast || is_cast_desktop_build)) { + configs += [ "//build/config/linux/dri" ] + } ++ # Use vaapi on desktop Linux builds when use_vaapi is set ++ if (is_desktop_linux && use_vaapi) { ++ public_configs = [ "//media/gpu:libva_config" ] ++ } + } +diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc +index d9cf7349d..03d6ba73f 100644 +--- a/media/base/media_switches.cc ++++ b/media/base/media_switches.cc +@@ -792,7 +792,7 @@ bool IsVideoCaptureAcceleratedJpegDecodingEnabled() { + switches::kUseFakeMjpegDecodeAccelerator)) { + return true; + } +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + return true; + #endif + return false; +diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn +index e3d961939..4e2963f9f 100644 +--- a/media/gpu/BUILD.gn ++++ b/media/gpu/BUILD.gn +@@ -462,9 +462,16 @@ if (use_v4l2_codec || use_vaapi || is_mac || is_win) { + if (use_ozone) { + deps += [ "//ui/ozone" ] + } ++ public_configs = [ ":libva_config" ] + } + } + ++import("//build/config/linux/pkg_config.gni") ++ ++pkg_config("libva_config") { ++ packages = [ "libva" ] ++} ++ + static_library("test_support") { + visibility = [ "//media/gpu/*" ] + testonly = true diff --git a/www-client/chromium/files/chromium-vaapi-fix-87.patch b/www-client/chromium/files/chromium-vaapi-fix-87.patch new file mode 100644 index 0000000..231434b --- /dev/null +++ b/www-client/chromium/files/chromium-vaapi-fix-87.patch @@ -0,0 +1,200 @@ +diff --git a/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc b/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc +index 843cf226e..af0389503 100644 +--- a/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc ++++ b/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc +@@ -7,6 +7,8 @@ + #include "media/gpu/vaapi/va_surface.h" + #include "media/gpu/vaapi/vaapi_wrapper.h" + #include "ui/base/ui_base_features.h" ++#include "ui/gfx/x/connection.h" ++#include "ui/gfx/x/xproto.h" + #include "ui/gl/gl_bindings.h" + #include "ui/gl/gl_image_egl_pixmap.h" + #include "ui/gl/scoped_binders.h" +@@ -15,25 +17,31 @@ namespace media { + + namespace { + +-inline Pixmap CreatePixmap(const gfx::Size& size) { +- auto* display = gfx::GetXDisplay(); +- if (!display) +- return 0; ++inline ::Pixmap CreatePixmap(const gfx::Size& size) { ++ auto* connection = x11::Connection::Get(); ++ if (!connection->Ready()) ++ return base::strict_cast<::Pixmap>(x11::Pixmap::None); + +- int screen = DefaultScreen(display); +- auto root = XRootWindow(display, screen); +- if (root == BadValue) +- return 0; ++ auto root = connection->default_root(); + +- XWindowAttributes win_attr = {}; +- // returns 0 on failure, see: +- // https://tronche.com/gui/x/xlib/introduction/errors.html#Status +- if (!XGetWindowAttributes(display, root, &win_attr)) +- return 0; ++ uint8_t depth = 0; ++ if (auto reply = connection->GetGeometry({root}).Sync()) ++ depth = reply->depth; ++ else ++ return base::strict_cast<::Pixmap>(x11::Pixmap::None); + + // TODO(tmathmeyer) should we use the depth from libva instead of root window? +- return XCreatePixmap(display, root, size.width(), size.height(), +- win_attr.depth); ++ auto pixmap = connection->GenerateId<x11::Pixmap>(); ++ uint16_t pixmap_width, pixmap_height; ++ if (!base::CheckedNumeric<int>(size.width()).AssignIfValid(&pixmap_width) || ++ !base::CheckedNumeric<int>(size.height()).AssignIfValid(&pixmap_height)) { ++ return base::strict_cast<::Pixmap>(x11::Pixmap::None); ++ } ++ auto req = connection->CreatePixmap( ++ {depth, pixmap, root, pixmap_width, pixmap_height}); ++ if (req.Sync().error) ++ pixmap = x11::Pixmap::None; ++ return base::strict_cast<::Pixmap>(pixmap); + } + + } // namespace +@@ -71,11 +79,8 @@ VaapiPictureNativePixmapAngle::~VaapiPictureNativePixmapAngle() { + DCHECK_EQ(glGetError(), static_cast<GLenum>(GL_NO_ERROR)); + } + +- if (x_pixmap_) { +- if (auto* display = gfx::GetXDisplay()) { +- XFreePixmap(display, x_pixmap_); +- } +- } ++ if (x_pixmap_) ++ x11::Connection::Get()->FreePixmap({static_cast<x11::Pixmap>(x_pixmap_)}); + } + + Status VaapiPictureNativePixmapAngle::Allocate(gfx::BufferFormat format) { +diff --git a/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h b/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h +index de4698abe..41f52376d 100644 +--- a/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h ++++ b/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h +@@ -46,7 +46,7 @@ class VaapiPictureNativePixmapAngle : public VaapiPictureNativePixmap { + VASurfaceID va_surface_id() const override; + + private: +- Pixmap x_pixmap_ = 0; ++ ::Pixmap x_pixmap_ = 0; + + DISALLOW_COPY_AND_ASSIGN(VaapiPictureNativePixmapAngle); + }; +diff --git a/media/gpu/vaapi/vaapi_picture_tfp.cc b/media/gpu/vaapi/vaapi_picture_tfp.cc +index 9ff0372fa..a571b4b2b 100644 +--- a/media/gpu/vaapi/vaapi_picture_tfp.cc ++++ b/media/gpu/vaapi/vaapi_picture_tfp.cc +@@ -7,6 +7,7 @@ + #include "media/gpu/vaapi/va_surface.h" + #include "media/gpu/vaapi/vaapi_wrapper.h" + #include "ui/base/ui_base_features.h" ++#include "ui/gfx/x/connection.h" + #include "ui/gfx/x/x11_types.h" + #include "ui/gl/gl_bindings.h" + #include "ui/gl/gl_image_glx.h" +@@ -33,7 +34,7 @@ VaapiTFPPicture::VaapiTFPPicture( + texture_id, + client_texture_id, + texture_target), +- x_display_(gfx::GetXDisplay()), ++ connection_(x11::Connection::Get()), + x_pixmap_(0) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK(!features::IsUsingOzonePlatform()); +@@ -49,7 +50,7 @@ VaapiTFPPicture::~VaapiTFPPicture() { + } + + if (x_pixmap_) +- XFreePixmap(x_display_, x_pixmap_); ++ connection_->FreePixmap({static_cast<x11::Pixmap>(x_pixmap_)}); + } + + Status VaapiTFPPicture::Initialize() { +@@ -84,16 +85,33 @@ Status VaapiTFPPicture::Allocate(gfx::BufferFormat format) { + return StatusCode::kVaapiUnsupportedFormat; + } + +- XWindowAttributes win_attr; +- int screen = DefaultScreen(x_display_); +- XGetWindowAttributes(x_display_, XRootWindow(x_display_, screen), &win_attr); ++ if (!connection_->Ready()) ++ return StatusCode::kVaapiNoPixmap; ++ ++ auto root = connection_->default_root(); ++ ++ uint8_t depth = 0; ++ if (auto reply = connection_->GetGeometry({root}).Sync()) ++ depth = reply->depth; ++ else ++ return StatusCode::kVaapiNoPixmap; ++ + // TODO(posciak): pass the depth required by libva, not the RootWindow's + // depth +- x_pixmap_ = XCreatePixmap(x_display_, XRootWindow(x_display_, screen), +- size_.width(), size_.height(), win_attr.depth); +- if (!x_pixmap_) { ++ auto pixmap = connection_->GenerateId<x11::Pixmap>(); ++ uint16_t pixmap_width, pixmap_height; ++ if (!base::CheckedNumeric<int>(size_.width()).AssignIfValid(&pixmap_width) || ++ !base::CheckedNumeric<int>(size_.height()) ++ .AssignIfValid(&pixmap_height)) { ++ return StatusCode::kVaapiNoPixmap; ++ } ++ auto req = connection_->CreatePixmap( ++ {depth, pixmap, root, pixmap_width, pixmap_height}); ++ if (req.Sync().error) { + DLOG(ERROR) << "Failed creating an X Pixmap for TFP"; + return StatusCode::kVaapiNoPixmap; ++ } else { ++ x_pixmap_ = base::strict_cast<::Pixmap>(pixmap); + } + + return Initialize(); +diff --git a/media/gpu/vaapi/vaapi_picture_tfp.h b/media/gpu/vaapi/vaapi_picture_tfp.h +index c4eb2c1b5..8da323717 100644 +--- a/media/gpu/vaapi/vaapi_picture_tfp.h ++++ b/media/gpu/vaapi/vaapi_picture_tfp.h +@@ -11,6 +11,7 @@ + #include "base/memory/ref_counted.h" + #include "media/gpu/vaapi/vaapi_picture.h" + #include "ui/gfx/geometry/size.h" ++#include "ui/gfx/x/connection.h" + #include "ui/gl/gl_bindings.h" + + namespace gl { +@@ -47,9 +48,9 @@ class VaapiTFPPicture : public VaapiPicture { + private: + Status Initialize(); + +- Display* x_display_; ++ x11::Connection* const connection_; + +- Pixmap x_pixmap_; ++ ::Pixmap x_pixmap_; + scoped_refptr<gl::GLImageGLX> glx_image_; + + DISALLOW_COPY_AND_ASSIGN(VaapiTFPPicture); +diff --git a/media/gpu/vaapi/vaapi_wrapper.cc b/media/gpu/vaapi/vaapi_wrapper.cc +index 2ad0b997e..a98823343 100644 +--- a/media/gpu/vaapi/vaapi_wrapper.cc ++++ b/media/gpu/vaapi/vaapi_wrapper.cc +@@ -57,8 +57,13 @@ + #include "ui/gl/gl_implementation.h" + + #if defined(USE_X11) +-#include <va/va_x11.h> + #include "ui/gfx/x/x11_types.h" // nogncheck ++ ++typedef XID Drawable; ++ ++extern "C" { ++#include "media/gpu/vaapi/va_x11.sigs" ++} + #endif + + #if defined(USE_OZONE) diff --git a/www-client/chromium/files/chromium-vaapi-signature.patch b/www-client/chromium/files/chromium-vaapi-signature.patch new file mode 100644 index 0000000..c84cc37 --- /dev/null +++ b/www-client/chromium/files/chromium-vaapi-signature.patch @@ -0,0 +1,26 @@ +diff --git a/media/gpu/vaapi/vaapi_picture_tfp.cc b/media/gpu/vaapi/vaapi_picture_tfp.cc +index dca5b5c46..f65d580da 100644 +--- a/media/gpu/vaapi/vaapi_picture_tfp.cc ++++ b/media/gpu/vaapi/vaapi_picture_tfp.cc +@@ -97,7 +97,7 @@ bool VaapiTFPPicture::Allocate(gfx::BufferFormat format) { + + bool VaapiTFPPicture::ImportGpuMemoryBufferHandle( + gfx::BufferFormat format, +- const gfx::GpuMemoryBufferHandle& gpu_memory_buffer_handle) { ++ gfx::GpuMemoryBufferHandle gpu_memory_buffer_handle) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + NOTIMPLEMENTED() << "GpuMemoryBufferHandle import not implemented"; + return false; +diff --git a/media/gpu/vaapi/vaapi_picture_tfp.h b/media/gpu/vaapi/vaapi_picture_tfp.h +index a9ba8a1c5..9fb27a5cd 100644 +--- a/media/gpu/vaapi/vaapi_picture_tfp.h ++++ b/media/gpu/vaapi/vaapi_picture_tfp.h +@@ -40,7 +40,7 @@ class VaapiTFPPicture : public VaapiPicture { + bool Allocate(gfx::BufferFormat format) override; + bool ImportGpuMemoryBufferHandle( + gfx::BufferFormat format, +- const gfx::GpuMemoryBufferHandle& gpu_memory_buffer_handle) override; ++ gfx::GpuMemoryBufferHandle gpu_memory_buffer_handle) override; + bool DownloadFromSurface(const scoped_refptr<VASurface>& va_surface) override; + + private: diff --git a/www-client/chromium/files/chromium-vector-include-81.patch b/www-client/chromium/files/chromium-vector-include-81.patch new file mode 100644 index 0000000..21c0bb1 --- /dev/null +++ b/www-client/chromium/files/chromium-vector-include-81.patch @@ -0,0 +1,13 @@ +diff --git a/chrome/browser/ui/autofill/payments/virtual_card_selection_dialog_controller.h b/chrome/browser/ui/autofill/payments/virtual_card_selection_dialog_controller.h +index 401717c18..952bbad4a 100644 +--- a/chrome/browser/ui/autofill/payments/virtual_card_selection_dialog_controller.h ++++ b/chrome/browser/ui/autofill/payments/virtual_card_selection_dialog_controller.h +@@ -5,6 +5,8 @@ + #ifndef CHROME_BROWSER_UI_AUTOFILL_PAYMENTS_VIRTUAL_CARD_SELECTION_DIALOG_CONTROLLER_H_ + #define CHROME_BROWSER_UI_AUTOFILL_PAYMENTS_VIRTUAL_CARD_SELECTION_DIALOG_CONTROLLER_H_ + ++#include <vector> ++ + #include "base/macros.h" + #include "base/strings/string16.h" + diff --git a/www-client/chromium/files/chromium-vector-init.patch b/www-client/chromium/files/chromium-vector-init.patch new file mode 100644 index 0000000..ba8a18f --- /dev/null +++ b/www-client/chromium/files/chromium-vector-init.patch @@ -0,0 +1,13 @@ +diff --git a/chrome/browser/ui/tabs/tab_strip_model_observer.h b/chrome/browser/ui/tabs/tab_strip_model_observer.h +index 8dacb579e..495e31bc5 100644 +--- a/chrome/browser/ui/tabs/tab_strip_model_observer.h ++++ b/chrome/browser/ui/tabs/tab_strip_model_observer.h +@@ -125,7 +125,7 @@ class TabStripModelChange { + + private: + const Type type_ = kSelectionOnly; +- const std::vector<Delta> deltas_; ++ const std::vector<Delta> deltas_ = {}; + + DISALLOW_COPY_AND_ASSIGN(TabStripModelChange); + }; diff --git a/www-client/chromium/files/chromium-vk.patch b/www-client/chromium/files/chromium-vk.patch new file mode 100644 index 0000000..c170c9c --- /dev/null +++ b/www-client/chromium/files/chromium-vk.patch @@ -0,0 +1,21 @@ +diff --git a/third_party/skia/src/gpu/vk/GrVkVulkan.h b/third_party/skia/src/gpu/vk/GrVkVulkan.h +index 1b78dc766..3bea44b20 100644 +--- a/third_party/skia/src/gpu/vk/GrVkVulkan.h ++++ b/third_party/skia/src/gpu/vk/GrVkVulkan.h +@@ -14,14 +14,14 @@ + #error "Skia's private vulkan header must be included before any other vulkan header." + #endif + +-#include "../../../include/third_party/vulkan/vulkan/vulkan_core.h" ++#include "vulkan/vulkan_core.h" + + #ifdef SK_BUILD_FOR_ANDROID + #ifdef VULKAN_ANDROID_H_ + #error "Skia's private vulkan android header must be included before any other vulkan header." + #endif + // This is needed to get android extensions for external memory +-#include "../../../include/third_party/vulkan/vulkan/vulkan_android.h" ++#include "vulkan/vulkan_android.h" + #endif + + #endif diff --git a/www-client/chromium/files/chromium-vr.patch b/www-client/chromium/files/chromium-vr.patch new file mode 100644 index 0000000..00230bb --- /dev/null +++ b/www-client/chromium/files/chromium-vr.patch @@ -0,0 +1,47 @@ +diff --git a/tools/perf/contrib/vr_benchmarks/BUILD.gn b/tools/perf/contrib/vr_benchmarks/BUILD.gn +index fef976f5c..14547d8e7 100644 +--- a/tools/perf/contrib/vr_benchmarks/BUILD.gn ++++ b/tools/perf/contrib/vr_benchmarks/BUILD.gn +@@ -56,22 +56,23 @@ group("vr_perf_tests") { + + # Copies files to the gen/ directory and creates a manifest so that the VR + # assets component can be used during Telemetry tests. +-action("generate_vr_assets_profile") { +- script = "generate_vr_assets_profile.py" +- +- # We should re-run anytime the version or any related files change. +- inputs = [ +- "//chrome/browser/resources/vr/assets/google_chrome", +- "//chrome/browser/resources/vr/assets/VERSION", +- "//chrome/browser/resources/vr/assets/vr_assets_component_files.json", +- ] +- outputs = [ +- "$target_gen_dir/vr_assets_profile/", +- ] +- args = [ +- "--output", +- rebase_path(target_gen_dir, root_build_dir), +- "--asset-dir", +- rebase_path("//chrome/browser/resources/vr/assets", root_build_dir), +- ] +-} ++#action("generate_vr_assets_profile") { ++# script = "generate_vr_assets_profile.py" ++# ++# # We should re-run anytime the version or any related files change. ++# inputs = [ ++# "//chrome/browser/resources/vr/assets/google_chrome", ++# "//chrome/browser/resources/vr/assets/VERSION", ++# "//chrome/browser/resources/vr/assets/vr_assets_component_files.json", ++# ] ++# outputs = [ ++# "$target_gen_dir/vr_assets_profile/", ++# ] ++# args = [ ++# "--output", ++# rebase_path(target_gen_dir, root_build_dir), ++# "--asset-dir", ++# rebase_path("//chrome/browser/resources/vr/assets", root_build_dir), ++# ] ++#} ++# diff --git a/www-client/chromium/files/chromium-webrtc-include-84.patch b/www-client/chromium/files/chromium-webrtc-include-84.patch new file mode 100644 index 0000000..48ea179 --- /dev/null +++ b/www-client/chromium/files/chromium-webrtc-include-84.patch @@ -0,0 +1,10 @@ +--- a/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h 2020-05-22 15:16:41.083666290 +0800 ++++ b/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h 2020-05-22 15:16:05.620205159 +0800 +@@ -11,6 +11,7 @@ + #ifndef MODULES_AUDIO_PROCESSING_AEC3_CLOCKDRIFT_DETECTOR_H_ + #define MODULES_AUDIO_PROCESSING_AEC3_CLOCKDRIFT_DETECTOR_H_ + ++#include <cstddef> + #include <array> + + namespace webrtc { diff --git a/www-client/chromium/files/chromium-webrtc-r0.patch b/www-client/chromium/files/chromium-webrtc-r0.patch new file mode 100644 index 0000000..e14b185 --- /dev/null +++ b/www-client/chromium/files/chromium-webrtc-r0.patch @@ -0,0 +1,34 @@ +From 7f90e2cceda0458cf56026eb6ccffb961a47804b Mon Sep 17 00:00:00 2001 +From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> +Date: Fri, 13 Oct 2017 15:49:32 +0200 +Subject: [PATCH] IWYU: Include math.h for round(3). + +math.h was being implicitly included, which can break the build with +alternative libc implementations. + +Bug: None +Change-Id: I969b320b65d0f44abb33d3e1036cfbcb859a4952 +Reviewed-on: https://webrtc-review.googlesource.com/9384 +Reviewed-by: Tommi <tommi@webrtc.org> +Commit-Queue: Raphael Kubo da Costa (rakuco) <raphael.kubo.da.costa@intel.com> +Cr-Commit-Position: refs/heads/master@{#20292} +--- + p2p/base/port.cc | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/p2p/base/port.cc b/p2p/base/port.cc +index a1b478d11..81aa0aadb 100644 +--- a/third_party/webrtc/p2p/base/port.cc ++++ b/third_party/webrtc/p2p/base/port.cc +@@ -10,6 +10,8 @@ + + #include "p2p/base/port.h" + ++#include <math.h> ++ + #include <algorithm> + #include <vector> + +-- +2.15.0.rc2 + diff --git a/www-client/chromium/files/chromium-webrtc.patch b/www-client/chromium/files/chromium-webrtc.patch new file mode 100644 index 0000000..07b770b --- /dev/null +++ b/www-client/chromium/files/chromium-webrtc.patch @@ -0,0 +1,13 @@ +diff --git a/third_party/webrtc/api/ice_transport_factory.cc b/third_party/webrtc/api/ice_transport_factory.cc +index b632f0913..6cc399aef 100644 +--- a/third_party/webrtc/api/ice_transport_factory.cc ++++ b/third_party/webrtc/api/ice_transport_factory.cc +@@ -42,7 +42,7 @@ class IceTransportWithTransportChannel : public IceTransportInterface { + } + + private: +- const rtc::ThreadChecker thread_checker_; ++ const rtc::ThreadChecker thread_checker_{}; + const std::unique_ptr<cricket::IceTransportInternal> internal_ + RTC_GUARDED_BY(thread_checker_); + }; diff --git a/www-client/chromium/files/chromium-widevine-80.patch b/www-client/chromium/files/chromium-widevine-80.patch new file mode 100644 index 0000000..ac03150 --- /dev/null +++ b/www-client/chromium/files/chromium-widevine-80.patch @@ -0,0 +1,11 @@ +diff --git a/third_party/widevine/cdm/widevine_cdm_version.h b/third_party/widevine/cdm/widevine_cdm_version.h +index dd6efed02..eaa017197 100644 +--- a/third_party/widevine/cdm/widevine_cdm_version.h ++++ b/third_party/widevine/cdm/widevine_cdm_version.h +@@ -11,5 +11,6 @@ + // If the Widevine CDM is available define the following: + // - WIDEVINE_CDM_VERSION_STRING (with the version of the CDM that's available + // as a string, e.g., "1.0.123.456"). ++#define WIDEVINE_CDM_VERSION_STRING "unknown" + + #endif // WIDEVINE_CDM_VERSION_H_ diff --git a/www-client/chromium/files/chromium-widevine-r2.patch b/www-client/chromium/files/chromium-widevine-r2.patch new file mode 100644 index 0000000..5527f7f --- /dev/null +++ b/www-client/chromium/files/chromium-widevine-r2.patch @@ -0,0 +1,39 @@ +Minimal patch to get chromium to compile with widevine support. + +Exactly the same as -r1, but we now need to patch +ninja to pretty please not terminate our build. + +caveat emptor: it's in no way clear that building chromium this +way is safer, from a security perspective, than whatever Google +Chrome does. + +Upstream appears to be cooking up a code-signing trust-chain +which may protect users against malicious cdm blobs; I doubt +we benefit from these using this kludge. Ideally, someone +would look into this more carefully than I have ... tbh as +soon as I got my "stories" back, I pretty much lost interest :) + +-gmt + +-- +--- a/third_party/widevine/cdm/stub/widevine_cdm_version.h ++++ b/third_party/widevine/cdm/stub/widevine_cdm_version.h +@@ -10,6 +10,7 @@ + + #include "third_party/widevine/cdm/widevine_cdm_common.h" + ++#define WIDEVINE_CDM_VERSION_STRING "unknown" + #define WIDEVINE_CDM_AVAILABLE + + #endif // WIDEVINE_CDM_VERSION_H_ +--- a/third_party/widevine/cdm/BUILD.gn ++++ b/third_party/widevine/cdm/BUILD.gn +@@ -11,7 +11,7 @@ import("//third_party/widevine/cdm/widev + # Internal Cast builds set enable_widevine=true to bring in Widevine support. + # TODO(xhwang): Support component updated CDM on other platforms and remove this + # assert. +-assert(!enable_widevine || is_win || is_mac || is_chromecast, ++assert(!enable_widevine || is_win || is_mac || is_chromecast || is_linux, + "Component updated CDM only supported on Windows and Mac for now.") + + widevine_arch = current_cpu diff --git a/www-client/chromium/files/chromium-widevine-r3.patch b/www-client/chromium/files/chromium-widevine-r3.patch new file mode 100644 index 0000000..a126084 --- /dev/null +++ b/www-client/chromium/files/chromium-widevine-r3.patch @@ -0,0 +1,23 @@ +From 5818fdbef3d399fe1bfbb56f81e59184e1a8e467 Mon Sep 17 00:00:00 2001 +From: Mike Gilbert <floppymaster@gmail.com> +Date: Sun, 14 Oct 2018 20:04:03 -0400 +Subject: [PATCH] Define WIDEVINE_CDM_VERSION_STRING + +--- + third_party/widevine/cdm/widevine_cdm_version.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/third_party/widevine/cdm/widevine_cdm_version.h b/third_party/widevine/cdm/widevine_cdm_version.h +index dd6efed02646..eaa017197e61 100644 +--- a/third_party/widevine/cdm/widevine_cdm_version.h ++++ b/third_party/widevine/cdm/widevine_cdm_version.h +@@ -11,5 +11,6 @@ + // If the Widevine CDM is available define the following: + // - WIDEVINE_CDM_VERSION_STRING (with the version of the CDM that's available + // as a string, e.g., "1.0.123.456"). ++#define WIDEVINE_CDM_VERSION_STRING "unknown" + + #endif // WIDEVINE_CDM_VERSION_H_ +-- +2.19.1 + diff --git a/www-client/chromium/files/chromium-widevine-r4.patch b/www-client/chromium/files/chromium-widevine-r4.patch new file mode 100644 index 0000000..d5a3be8 --- /dev/null +++ b/www-client/chromium/files/chromium-widevine-r4.patch @@ -0,0 +1,26 @@ +Define WIDEVINE_CDM_VERSION_STRING && re-re-re-patch for latest ninja + +Stolen from Arch basically. + +gmt + +--- a/chrome/common/chrome_content_client.cc ++++ b/chrome/common/chrome_content_client.cc +@@ -99,7 +99,7 @@ + // Registers Widevine CDM if Widevine is enabled, the Widevine CDM is + // bundled and not a component. When the Widevine CDM is a component, it is + // registered in widevine_cdm_component_installer.cc. +-#if BUILDFLAG(BUNDLE_WIDEVINE_CDM) && !BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT) ++#if BUILDFLAG(ENABLE_WIDEVINE) && !BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT) + #define REGISTER_BUNDLED_WIDEVINE_CDM + #include "third_party/widevine/cdm/widevine_cdm_common.h" // nogncheck + // TODO(crbug.com/663554): Needed for WIDEVINE_CDM_VERSION_STRING. Support +--- a/third_party/widevine/cdm/widevine_cdm_version.h ++++ b/third_party/widevine/cdm/widevine_cdm_version.h +@@ -11,5 +11,6 @@ + // If the Widevine CDM is available define the following: + // - WIDEVINE_CDM_VERSION_STRING (with the version of the CDM that's available + // as a string, e.g., "1.0.123.456"). ++#define WIDEVINE_CDM_VERSION_STRING "unknown" + + #endif // WIDEVINE_CDM_VERSION_H_ diff --git a/www-client/chromium/files/chromium-wpt-gn-78.patch b/www-client/chromium/files/chromium-wpt-gn-78.patch new file mode 100644 index 0000000..fc750e8 --- /dev/null +++ b/www-client/chromium/files/chromium-wpt-gn-78.patch @@ -0,0 +1,13 @@ +diff --git a/third_party/blink/tools/BUILD.gn b/third_party/blink/tools/BUILD.gn +index d3004ee7b..ef293e3bf 100644 +--- a/third_party/blink/tools/BUILD.gn ++++ b/third_party/blink/tools/BUILD.gn +@@ -13,7 +13,7 @@ action("build_wpt_metadata") { + "../../third_party/blink/web_tests/WPTOverrideExpectations", + ] + outputs = [ +- "$root_out_dir/wpt_expectations_metadata/", ++ "$root_out_dir/wpt_expectations_metadata", + ] + data = [ + # Include the blinkpy tools to access expectations data diff --git a/www-client/chromium/files/chromium-zlib-78.patch b/www-client/chromium/files/chromium-zlib-78.patch new file mode 100644 index 0000000..a1da45f --- /dev/null +++ b/www-client/chromium/files/chromium-zlib-78.patch @@ -0,0 +1,11 @@ +--- a/third_party/perfetto/gn/BUILD.gn 2019-09-06 23:54:00.697132348 +0800 ++++ b/third_party/perfetto/gn/BUILD.gn 2019-09-06 23:54:41.235747858 +0800 +@@ -276,7 +276,7 @@ + "//buildtools:zlib", + ] + } else { +- public_configs = [ "//third_party/zlib:zlib_config" ] ++ public_configs = [ "//third_party/zlib:system_zlib" ] + public_deps = [ + "//third_party/zlib", + ] diff --git a/www-client/chromium/files/chromium-zlib-82.patch b/www-client/chromium/files/chromium-zlib-82.patch new file mode 100644 index 0000000..1585445 --- /dev/null +++ b/www-client/chromium/files/chromium-zlib-82.patch @@ -0,0 +1,9 @@ +--- a/third_party/perfetto/gn/BUILD.gn 2019-09-06 23:54:00.697132348 +0800 ++++ b/third_party/perfetto/gn/BUILD.gn 2019-09-06 23:54:41.235747858 +0800 +@@ -299,4 +299,4 @@ + public_deps = [ "//buildtools:zlib" ] + } else { +- public_configs = [ "//third_party/zlib:zlib_config" ] ++ public_configs = [ "//third_party/zlib:system_zlib" ] + public_deps = [ "//third_party/zlib" ] + diff --git a/www-client/chromium/files/chromium.default b/www-client/chromium/files/chromium.default new file mode 100644 index 0000000..c140cde --- /dev/null +++ b/www-client/chromium/files/chromium.default @@ -0,0 +1,5 @@ +# Default settings for chromium. This file is sourced by /bin/bash from +# the chromium launcher. + +# Options to pass to chromium. +#CHROMIUM_FLAGS="" |