summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Gilbert <floppym@gentoo.org>2019-02-15 15:25:18 -0500
committerMike Gilbert <floppym@gentoo.org>2019-02-15 15:26:24 -0500
commita18dfb2bc7b05084f42d203433a8fbc74998f86b (patch)
tree7d300b92e51cd539e286ca09c5ddbcfacb354771 /www-client/chromium/files
parentlicenses: Rename SSPL to SSPL-1. (diff)
downloadgentoo-a18dfb2bc7b05084f42d203433a8fbc74998f86b.tar.gz
gentoo-a18dfb2bc7b05084f42d203433a8fbc74998f86b.tar.bz2
gentoo-a18dfb2bc7b05084f42d203433a8fbc74998f86b.zip
www-client/chromium: beta channel bump (73.0.3683.27)
Package-Manager: Portage-2.3.59_p2, Repoman-2.3.12_p67 Signed-off-by: Mike Gilbert <floppym@gentoo.org>
Diffstat (limited to 'www-client/chromium/files')
-rw-r--r--www-client/chromium/files/chromium-73-gcc-0.patch108
-rw-r--r--www-client/chromium/files/chromium-73-gcc-1.patch99
-rw-r--r--www-client/chromium/files/chromium-73-gcc-2.patch51
-rw-r--r--www-client/chromium/files/chromium-73-gcc-3.patch69
-rw-r--r--www-client/chromium/files/chromium-73-gcc-4.patch59
-rw-r--r--www-client/chromium/files/chromium-73-gcc-5.patch65
6 files changed, 451 insertions, 0 deletions
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 000000000000..5a50700fd936
--- /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 000000000000..c3f8e42d0616
--- /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 000000000000..9d1f05a4d62d
--- /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 000000000000..9cc6cf2fab65
--- /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 000000000000..df7d6301f7eb
--- /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 000000000000..033861e2bfbb
--- /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
+