commit 147974b2604ad9944cfcbdb63891ba0512e9213f
Author: Akarshan Biswas <akarshan.biswas(a)gmail.com>
Date: Fri Mar 15 15:20:32 2019 +0530
Update to 73.0.3683.75
Update BuildRequires for ozone, libva; used pkgconfig instead
.gitignore | 1 +
chromium-gcc8-r630084.patch | 108 +
chromium-gcc8-r630140.patch | 51 +
chromium-gcc8-r630249.patch | 69 +
chromium-gcc8-r630355.patch | 99 +
chromium-gcc8-r631472.patch | 59 +
chromium-gcc8-r631962.patch | 65 +
chromium-gcc8-r632385.patch | 100 +
chromium-system-icu.patch | 20 +-
chromium-vaapi.spec | 48 +-
chromium-webrtc-includes.patch | 16754 ---------------------------------------
enable-vaapi.patch | 86 +-
fix-the-VA_CHECK_VERSION.patch | 74 -
nounrar.patch | 55 +-
relax-libva-version.patch | 56 -
sources | 2 +-
16 files changed, 643 insertions(+), 17004 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 27f05b1..5e5feff 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,3 +8,4 @@
/chromium-72.0.3626.81.tar.xz
/chromium-72.0.3626.109.tar.xz
/chromium-72.0.3626.121.tar.xz
+/chromium-73.0.3683.75.tar.xz
diff --git a/chromium-gcc8-r630084.patch b/chromium-gcc8-r630084.patch
new file mode 100644
index 0000000..5a50700
--- /dev/null
+++ b/chromium-gcc8-r630084.patch
@@ -0,0 +1,108 @@
+From 2c3b57cafbbb38c13a519c9d2fda8b65691d9564 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)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(a)intel.com>
+Reviewed-by: Thomas Anderson <thomasanderson(a)chromium.org>
+Reviewed-by: Primiano Tucci <primiano(a)chromium.org>
+Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa(a)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/chromium-gcc8-r630140.patch b/chromium-gcc8-r630140.patch
new file mode 100644
index 0000000..9d1f05a
--- /dev/null
+++ b/chromium-gcc8-r630140.patch
@@ -0,0 +1,51 @@
+From a5ba6f9bb7665040045dc0f8087407096630ad7b Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)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(a)intel.com>
+Reviewed-by: Peter Kasting <pkasting(a)chromium.org>
+Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa(a)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/chromium-gcc8-r630249.patch b/chromium-gcc8-r630249.patch
new file mode 100644
index 0000000..9cc6cf2
--- /dev/null
+++ b/chromium-gcc8-r630249.patch
@@ -0,0 +1,69 @@
+From c33e832cc145c696d2157796c7640e659740dafa Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)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(a)intel.com>
+Reviewed-by: Ryan Hamilton <rch(a)chromium.org>
+Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa(a)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/chromium-gcc8-r630355.patch b/chromium-gcc8-r630355.patch
new file mode 100644
index 0000000..c3f8e42
--- /dev/null
+++ b/chromium-gcc8-r630355.patch
@@ -0,0 +1,99 @@
+From 130a5ae24a02daba8729ba2216bcaf3dbfacea69 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)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(a)chromium.org>
+Reviewed-by: Frank Liberato <liberato(a)chromium.org>
+Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)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/chromium-gcc8-r631472.patch b/chromium-gcc8-r631472.patch
new file mode 100644
index 0000000..df7d630
--- /dev/null
+++ b/chromium-gcc8-r631472.patch
@@ -0,0 +1,59 @@
+From bdd76190e54e6a0e11343dd19e4bf1d06956fa48 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)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(a)intel.com>
+Commit-Queue: Kentaro Hara <haraken(a)chromium.org>
+Reviewed-by: Kentaro Hara <haraken(a)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/chromium-gcc8-r631962.patch b/chromium-gcc8-r631962.patch
new file mode 100644
index 0000000..033861e
--- /dev/null
+++ b/chromium-gcc8-r631962.patch
@@ -0,0 +1,65 @@
+From 78b0f0dfa9e6f3c37b71102c01def92f1ab8c330 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)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(a)chromium.org>
+Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Reviewed-by: mark a. foltz <mfoltz(a)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/chromium-gcc8-r632385.patch b/chromium-gcc8-r632385.patch
new file mode 100644
index 0000000..d8eca1e
--- /dev/null
+++ b/chromium-gcc8-r632385.patch
@@ -0,0 +1,100 @@
+From cf4c534f04c223f8a9d65407852e2a531a6d7fb6 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)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(a)intel.com>
+Commit-Queue: Alan Cutter <alancutter(a)chromium.org>
+Reviewed-by: Finnur Thorarinsson <finnur(a)chromium.org>
+Reviewed-by: Alan Cutter <alancutter(a)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 80b5a17eb84f..656640e21e58 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 ae8853766e15..ab007fe09e9a 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 d0ebf139b57d..beeaed9bf431 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/browser_view.h"
+ #include "chrome/browser/ui/views/toolbar/app_menu.h"
+ #include "chrome/browser/ui/views/toolbar/browser_actions_container.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 d9814594270a..f5fee9f4fbe7 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/toolbar/app_menu_observer.h"
+ #include "ui/views/controls/scroll_view.h"
+@@ -15,7 +16,6 @@
+ class AppMenu;
+ class Browser;
+ class BrowserActionsContainer;
+-class ToolbarActionsBar;
+
+ namespace views {
+ class MenuItemView;
diff --git a/chromium-system-icu.patch b/chromium-system-icu.patch
index 4b153d9..661cbad 100644
--- a/chromium-system-icu.patch
+++ b/chromium-system-icu.patch
@@ -1,6 +1,17 @@
----
chromium-72.0.3626.7.orig/third_party/blink/renderer/platform/text/character_property_data.h 2018-12-12
14:38:52.691743205 +0100
-+++
chromium-72.0.3626.7/third_party/blink/renderer/platform/text/character_property_data.h 2018-12-12
14:49:27.320195000 +0100
-@@ -247,7 +247,7 @@ static const UChar32 kIsHangulRanges[] =
+From 3f1965594ac532a55b419ecb4bcf7d0c8de6744f Mon Sep 17 00:00:00 2001
+From: Akarshan Biswas <akarshan.biswas(a)gmail.com>
+Date: Thu, 14 Mar 2019 17:47:30 +0530
+Subject: [PATCH] Fix building with system icu
+
+---
+ .../blink/renderer/platform/text/character_property_data.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/blink/renderer/platform/text/character_property_data.h
b/third_party/blink/renderer/platform/text/character_property_data.h
+index 7d2cf90cb..572aec782 100644
+--- a/third_party/blink/renderer/platform/text/character_property_data.h
++++ b/third_party/blink/renderer/platform/text/character_property_data.h
+@@ -247,7 +247,7 @@ static const UChar32 kIsHangulRanges[] = {
0xFFA0, 0xFFDC,
};
@@ -9,3 +20,6 @@
#if !defined(USING_SYSTEM_ICU)
// Freezed trie tree, see character_property_data_generator.cc.
+--
+2.20.1
+
diff --git a/chromium-vaapi.spec b/chromium-vaapi.spec
index 1edf3c9..4d884a3 100644
--- a/chromium-vaapi.spec
+++ b/chromium-vaapi.spec
@@ -67,7 +67,7 @@
%global ozone 0
##############################Package Definitions######################################
Name: chromium-vaapi
-Version: 72.0.3626.121
+Version: 73.0.3683.75
Release: 1%{?dist}
Summary: A Chromium web browser with video decoding acceleration
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL
and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -117,8 +117,14 @@ BuildRequires: pkgconfig(xtst), pkgconfig(xscrnsaver)
BuildRequires: pkgconfig(dbus-1), pkgconfig(libudev)
BuildRequires: pkgconfig(gnome-keyring-1)
BuildRequires: pkgconfig(libffi)
+#for vaapi
+BuildRequires: pkgconfig(libva)
%if %{ozone}
-BuildRequires: mesa-libgbm-devel
+BuildRequires: pkgconfig(gbm)
+BuildRequires: pkgconfig(wayland-client)
+BuildRequires: pkgconfig(wayland-cursor)
+BuildRequires: pkgconfig(wayland-scanner)
+BuildRequires: pkgconfig(wayland-server)
%endif
# remove_bundled_libraries.py --do-remove
BuildRequires: python2-rpm-macros
@@ -167,8 +173,6 @@ BuildRequires: pulseaudio-libs-devel
BuildRequires: desktop-file-utils
# install AppData files
BuildRequires: libappstream-glib
-#for vaapi
-BuildRequires: libva-devel
# Mojojojo need this >:(
BuildRequires: java-1.8.0-openjdk
#Runtime Requirements
@@ -190,6 +194,14 @@ Patch2: widevine.patch
#Gcc produces way too many warnings. Try to silence some of it.
Patch8: silencegcc.patch
# More patches to fix chromium build here
+#Gentoo patches
+Patch9: chromium-gcc8-r630084.patch
+Patch10: chromium-gcc8-r630140.patch
+Patch11: chromium-gcc8-r630249.patch
+Patch12: chromium-gcc8-r630355.patch
+Patch13: chromium-gcc8-r631472.patch
+Patch14: chromium-gcc8-r631962.patch
+Patch15: chromium-gcc8-r632385.patch
# remove dependency on unrar. That's a nasty code.
Patch50: nounrar.patch
# Bootstrap still uses python command
@@ -198,18 +210,8 @@ Patch51: py2-bootstrap.patch
Patch52: chromium-system-icu.patch
# Let's brand chromium!
Patch54: brand.patch
-# Since the newer versions of VA-API are ABI compatible, relax the version checks for
VA-API, by using VA_CHECK_VERSION().
-# This will help in updating the libva to the latest releases,while still supporting the
old versions, till the new version of
-# libva is merged and picked by the builds. Thus ensuring that hardware acceleration is
not broken while updating the libva.
-# Taken and rebased from
https://chromium-review.googlesource.com/c/chromium/src/+/1352519
-# The patch might land somewhere in the future and will be removed.
-Patch56: relax-libva-version.patch
-# Fix webrtc include error
-Patch60: chromium-webrtc-includes.patch
#Use gold in gn bootstrap
Patch64: gn-gold.patch
-# From Upstream 2nd part of patch 56.
-Patch65: fix-the-VA_CHECK_VERSION.patch
%description
chromium-vaapi is an open-source web browser, powered by WebKit (Blink)
############################################PREP###########################################################
@@ -219,6 +221,13 @@ chromium-vaapi is an open-source web browser, powered by WebKit
(Blink)
%patch1 -p1 -b .vaapi
%patch2 -p1 -b .widevine
%patch8 -p1 -b .silencegcc
+%patch9 -p1 -b .gcc81
+%patch10 -p1 -b .gcc82
+%patch11 -p1 -b .gcc83
+%patch12 -p1 -b .gcc84
+%patch13 -p1 -b gcc85
+%patch14 -p1 -b .gcc86
+%patch15 -p1 -b .gcc87
%patch50 -p1 -b .nounrar
%patch51 -p1 -b .py2boot
%if %{with system_libicu}
@@ -227,10 +236,7 @@ chromium-vaapi is an open-source web browser, powered by WebKit
(Blink)
%if %{freeworld}
%patch54 -p1 -b .brand
%endif
-%patch56 -p1 -b .relaxva
-%patch60 -p1 -b .webrtc
%patch64 -p1 -b .gn
-%patch65 -p1 -b .vacheck
#Let's change the default shebang of python files.
find -depth -type f -writable -name "*.py" -exec sed -iE '1s=^#!
*/usr/bin/\(python\|env python\)[23]\?=#!%{__python2}=' {} +
./build/linux/unbundle/remove_bundled_libraries.py --do-remove \
@@ -250,11 +256,9 @@ find -depth -type f -writable -name "*.py" -exec sed -iE
'1s=^#! */usr/bin/\(pyt
courgette/third_party \
native_client/src/third_party/dlmalloc \
native_client/src/third_party/valgrind \
- net/third_party/http2 \
net/third_party/mozilla_security_manager \
net/third_party/nss \
net/third_party/quic \
- net/third_party/spdy \
net/third_party/uri_template \
third_party/abseil-cpp \
third_party/adobe \
@@ -390,6 +394,7 @@ find -depth -type f -writable -name "*.py" -exec sed -iE
'1s=^#! */usr/bin/\(pyt
third_party/s2cellid \
third_party/sfntly \
third_party/skia \
+ third_party/skia/include/third_party/vulkan \
third_party/skia/third_party/gif \
third_party/skia/third_party/vulkan \
third_party/skia/third_party/skcms \
@@ -425,6 +430,7 @@ find -depth -type f -writable -name "*.py" -exec sed -iE
'1s=^#! */usr/bin/\(pyt
%endif
tools/gn/base/third_party/icu \
url/third_party/mozilla \
+ v8/src/third_party/siphash \
v8/src/third_party/valgrind \
v8/src/third_party/utf8-decoder \
v8/third_party/inspector_protocol \
@@ -667,6 +673,10 @@ appstream-util validate-relax --nonet
"%{buildroot}%{_metainfodir}/%{name}.appda
%{chromiumdir}/locales/*.pak
#########################################changelogs#################################################
%changelog
+* Fri Mar 15 2019 Akarshan Biswas <akarshanbiswas(a)fedoraproject.org>
73.0.3683.75-1
+- Update to 73.0.3683.75
+- Update BuildRequires for ozone, libva; used pkgconfig instead
+
* Sun Mar 03 2019 Akarshan Biswas <akarshanbiswas(a)fedoraproject.org>
72.0.3626.121-1
- Updated to 72.0.3626.121
- spec cleanup
diff --git a/enable-vaapi.patch b/enable-vaapi.patch
index 6e09024..32405d7 100644
--- a/enable-vaapi.patch
+++ b/enable-vaapi.patch
@@ -1,22 +1,20 @@
-From abc7295ca1653c85472916909f0eb76e28e79a58 Mon Sep 17 00:00:00 2001
+From 0e8ef1f42723287fce155d356b43522a192f2874 Mon Sep 17 00:00:00 2001
From: Akarshan Biswas <akarshan.biswas(a)gmail.com>
Date: Thu, 24 Jan 2019 12:45:29 +0530
Subject: [PATCH] Enable mojo with VDA2 on Linux
---
- chrome/browser/about_flags.cc | 8 ++++----
- chrome/browser/flag_descriptions.cc | 9 +++++++--
- chrome/browser/flag_descriptions.h | 10 ++++++++--
- gpu/config/software_rendering_list.json | 3 ++-
- media/media_options.gni | 9 ++++++---
- media/mojo/services/gpu_mojo_media_client.cc | 4 ++--
- 6 files changed, 29 insertions(+), 14 deletions(-)
+ chrome/browser/about_flags.cc | 8 ++++----
+ chrome/browser/flag_descriptions.cc | 9 +++++++--
+ chrome/browser/flag_descriptions.h | 10 ++++++++--
+ gpu/config/software_rendering_list.json | 3 ++-
+ 4 files changed, 21 insertions(+), 9 deletions(-)
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
-index 0a84c6ac1..be2aa1d8b 100644
+index 7074857d8..9127fa643 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
-@@ -1714,7 +1714,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -1606,7 +1606,7 @@ const FeatureEntry kFeatureEntries[] = {
"disable-accelerated-video-decode",
flag_descriptions::kAcceleratedVideoDecodeName,
flag_descriptions::kAcceleratedVideoDecodeDescription,
@@ -25,7 +23,7 @@ index 0a84c6ac1..be2aa1d8b 100644
SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode),
},
#if defined(OS_WIN)
-@@ -2345,12 +2345,12 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -2216,12 +2216,12 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)},
#endif // ENABLE_ISOLATED_XR_SERVICE
#endif // ENABLE_VR
@@ -42,10 +40,10 @@ index 0a84c6ac1..be2aa1d8b 100644
flag_descriptions::kV8CacheOptionsDescription, kOsAll,
MULTI_VALUE_TYPE(kV8CacheOptionsChoices)},
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
-index 62637e092..86f89fc6e 100644
+index fe98e80e1..48fd3159a 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
-@@ -3085,15 +3085,20 @@ const char kTextSuggestionsTouchBarDescription[] =
+@@ -3096,15 +3096,20 @@ const char kTextSuggestionsTouchBarDescription[] =
#endif
@@ -69,10 +67,10 @@ index 62637e092..86f89fc6e 100644
const char kAllowTouchpadThreeFingerClickName[] = "Touchpad
three-finger-click";
const char kAllowTouchpadThreeFingerClickDescription[] =
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
-index 5dac660bb..6cc4115da 100644
+index 244d0cc07..a8aca4b32 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
-@@ -1846,13 +1846,19 @@ extern const char
kPermissionPromptPersistenceToggleDescription[];
+@@ -1842,13 +1842,19 @@ extern const char
kPermissionPromptPersistenceToggleDescription[];
#endif // defined(OS_MACOSX)
@@ -95,7 +93,7 @@ index 5dac660bb..6cc4115da 100644
extern const char kAllowTouchpadThreeFingerClickDescription[];
diff --git a/gpu/config/software_rendering_list.json
b/gpu/config/software_rendering_list.json
-index 65f37b3f1..ae8a1718f 100644
+index abb9a898f..c462d1eaf 100644
--- a/gpu/config/software_rendering_list.json
+++ b/gpu/config/software_rendering_list.json
@@ -371,11 +371,12 @@
@@ -112,62 +110,6 @@ index 65f37b3f1..ae8a1718f 100644
"features": [
"accelerated_video_decode"
]
-diff --git a/media/media_options.gni b/media/media_options.gni
-index 46eaa5818..6e338f651 100644
---- a/media/media_options.gni
-+++ b/media/media_options.gni
-@@ -5,6 +5,7 @@
- import("//build/config/chrome_build.gni")
- import("//build/config/chromecast_build.gni")
- import("//build/config/features.gni")
-+import("//media/gpu/args.gni")
- import("//testing/libfuzzer/fuzzer_test.gni")
-
- # Do not expand this list without double-checking with OWNERS, this is a list of
-@@ -129,8 +130,9 @@ declare_args() {
- # |mojo_media_services|). When enabled, selected mojo paths will be enabled in
- # the media pipeline and corresponding services will hosted in the selected
- # remote process (e.g. "utility" process, see |mojo_media_host|).
-- enable_mojo_media = is_android || is_chromecast || is_chromeos || is_mac ||
-- is_win || enable_library_cdms
-+ enable_mojo_media =
-+ is_android || is_chromecast || is_chromeos || is_mac || is_win ||
-+ enable_library_cdms || (is_desktop_linux && use_vaapi)
-
- # Enable the TestMojoMediaClient to be used in mojo MediaService. This is for
- # testing only and will override the default platform MojoMediaClient, if any.
-@@ -200,7 +202,8 @@ if (enable_mojo_media) {
- ]
- _default_mojo_media_host = "gpu"
- }
-- } else if (is_chromeos || is_mac || is_win) {
-+ } else if (is_chromeos || is_mac || is_win ||
-+ (is_desktop_linux && use_vaapi)) {
- _default_mojo_media_services = [ "video_decoder" ]
- _default_mojo_media_host = "gpu"
- }
-diff --git a/media/mojo/services/gpu_mojo_media_client.cc
b/media/mojo/services/gpu_mojo_media_client.cc
-index 75f5e611c..09a8fef92 100644
---- a/media/mojo/services/gpu_mojo_media_client.cc
-+++ b/media/mojo/services/gpu_mojo_media_client.cc
-@@ -54,7 +54,7 @@ namespace media {
- namespace {
-
- #if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(OS_MACOSX) || \
-- defined(OS_WIN)
-+ defined(OS_WIN) || defined(OS_LINUX)
- gpu::CommandBufferStub* GetCommandBufferStub(
- base::WeakPtr<MediaGpuChannelManager> media_gpu_channel_manager,
- base::UnguessableToken channel_token,
-@@ -148,7 +148,7 @@ std::unique_ptr<VideoDecoder>
GpuMojoMediaClient::CreateVideoDecoder(
- android_overlay_factory_cb_, std::move(request_overlay_info_cb),
- std::make_unique<VideoFrameFactoryImpl>(gpu_task_runner_,
- std::move(get_stub_cb)));
--#elif defined(OS_CHROMEOS) || defined(OS_MACOSX) || defined(OS_WIN)
-+#elif defined(OS_CHROMEOS) || defined(OS_MACOSX) || defined(OS_WIN) ||
defined(OS_LINUX)
- std::unique_ptr<VideoDecoder> vda_video_decoder = VdaVideoDecoder::Create(
- task_runner, gpu_task_runner_, media_log->Clone(), target_color_space,
- gpu_preferences_, gpu_workarounds_,
--
2.20.1
diff --git a/nounrar.patch b/nounrar.patch
index 698c7e9..7395711 100644
--- a/nounrar.patch
+++ b/nounrar.patch
@@ -11,19 +11,19 @@ index af72d11371e1..472cb0098d5e 100644
#include "components/download/public/common/download_item.h"
#include "components/history/core/browser/history_service.h"
diff --git a/chrome/browser/safe_browsing/download_protection/file_analyzer.cc
b/chrome/browser/safe_browsing/download_protection/file_analyzer.cc
-index f46d4ed23669..05b9a5c5071a 100644
+index 683d4f23f2c6..35483e4a4041 100644
--- a/chrome/browser/safe_browsing/download_protection/file_analyzer.cc
+++ b/chrome/browser/safe_browsing/download_protection/file_analyzer.cc
-@@ -94,8 +94,6 @@ void FileAnalyzer::Start(const base::FilePath& target_path,
+@@ -99,8 +99,6 @@ void FileAnalyzer::Start(const base::FilePath& target_path,
- if (target_path_.MatchesExtension(FILE_PATH_LITERAL(".zip"))) {
+ if (inspection_type == DownloadFileType::ZIP) {
StartExtractZipFeatures();
-- } else if (target_path_.MatchesExtension(FILE_PATH_LITERAL(".rar"))) {
+- } else if (inspection_type == DownloadFileType::RAR) {
- StartExtractRarFeatures();
#if defined(OS_MACOSX)
- } else if (target_path_.MatchesExtension(FILE_PATH_LITERAL(".dmg")) ||
- target_path_.MatchesExtension(FILE_PATH_LITERAL(".img")) ||
-@@ -211,6 +209,7 @@ void FileAnalyzer::OnZipAnalysisFinished(
+ } else if (inspection_type == DownloadFileType::DMG) {
+ StartExtractDmgFeatures();
+@@ -210,6 +208,7 @@ void FileAnalyzer::OnZipAnalysisFinished(
std::move(callback_).Run(std::move(results_));
}
@@ -31,7 +31,7 @@ index f46d4ed23669..05b9a5c5071a 100644
void FileAnalyzer::StartExtractRarFeatures() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
-@@ -267,6 +266,7 @@ void FileAnalyzer::OnRarAnalysisFinished(
+@@ -266,6 +265,7 @@ void FileAnalyzer::OnRarAnalysisFinished(
std::move(callback_).Run(std::move(results_));
}
@@ -72,20 +72,20 @@ index a1f5abf77f5c..6e88eb7954ad 100644
scoped_refptr<SandboxedDMGAnalyzer> dmg_analyzer_;
base::TimeTicks dmg_analysis_start_time_;
diff --git a/chrome/common/safe_browsing/BUILD.gn b/chrome/common/safe_browsing/BUILD.gn
-index b93eeaeb7e87..7f2f94c6e377 100644
+index d96e5f17cb6f..a00dbd53cfdd 100644
--- a/chrome/common/safe_browsing/BUILD.gn
+++ b/chrome/common/safe_browsing/BUILD.gn
-@@ -68,7 +68,6 @@ if (safe_browsing_mode == 1) {
- ":file_type_policies",
+@@ -77,7 +77,6 @@ if (safe_browsing_mode == 1) {
"//base",
"//base:i18n",
+ "//components/safe_browsing:features",
- "//third_party/unrar:unrar",
]
defines = [
-@@ -150,7 +149,6 @@ source_set("safe_browsing") {
- deps += [
+@@ -167,7 +166,6 @@ source_set("safe_browsing") {
":archive_analyzer_results",
+ ":binary_feature_extractor",
":download_type_util",
- ":rar_analyzer",
"//components/safe_browsing:features",
@@ -103,13 +103,13 @@ index c191816456b0..49076ee372c0 100644
"+third_party/zlib",
]
diff --git a/chrome/common/safe_browsing/rar_analyzer.cc
b/chrome/common/safe_browsing/rar_analyzer.cc
-index 996c0164ef7f..915f7f93d50b 100644
+index b8d56f05248d..dfefc7b1b05f 100644
--- a/chrome/common/safe_browsing/rar_analyzer.cc
+++ b/chrome/common/safe_browsing/rar_analyzer.cc
-@@ -13,7 +13,6 @@
- #include "chrome/common/safe_browsing/archive_analyzer_results.h"
+@@ -15,7 +15,6 @@
#include "chrome/common/safe_browsing/download_type_util.h"
#include "chrome/common/safe_browsing/file_type_policies.h"
+ #include "components/safe_browsing/features.h"
-#include "third_party/unrar/src/unrar_wrapper.h"
namespace safe_browsing {
@@ -136,47 +136,52 @@ index 158cbfc6d157..6d8b0df7c59e 100644
]
diff --git a/chrome/services/file_util/public/mojom/safe_archive_analyzer.mojom
b/chrome/services/file_util/public/mojom/safe_archive_analyzer.mojom
-index 6983f7b415d4..15d5aaba3657 100644
+index 266160351e18..15d5aaba3657 100644
--- a/chrome/services/file_util/public/mojom/safe_archive_analyzer.mojom
+++ b/chrome/services/file_util/public/mojom/safe_archive_analyzer.mojom
-@@ -22,11 +22,6 @@ interface SafeArchiveAnalyzer {
+@@ -22,13 +22,6 @@ interface SafeArchiveAnalyzer {
// for malicious download protection.
AnalyzeDmgFile(mojo_base.mojom.File dmg_file)
=> (SafeArchiveAnalyzerResults results);
-
- // Build flag FULL_SAFE_BROWSING: Analyze the |rar_file| for malicious
-- // download protection.
-- AnalyzeRarFile(mojo_base.mojom.File rar_file)
+- // download protection. Uses the |temporary_file| to extract files from the
+- // |rar_file| archive.
+- AnalyzeRarFile(mojo_base.mojom.File rar_file,
+- mojo_base.mojom.File temporary_file)
- => (SafeArchiveAnalyzerResults results);
};
[Native]
diff --git a/chrome/services/file_util/safe_archive_analyzer.cc
b/chrome/services/file_util/safe_archive_analyzer.cc
-index a13b42b197b3..db49c37b9b49 100644
+index a58249e88d08..db49c37b9b49 100644
--- a/chrome/services/file_util/safe_archive_analyzer.cc
+++ b/chrome/services/file_util/safe_archive_analyzer.cc
-@@ -44,12 +44,3 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile(base::File dmg_file,
+@@ -44,14 +44,3 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile(base::File dmg_file,
NOTREACHED();
#endif
}
-
-void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file,
+- base::File temporary_file,
- AnalyzeRarFileCallback callback) {
- DCHECK(rar_file.IsValid());
-
- safe_browsing::ArchiveAnalyzerResults results;
-- safe_browsing::rar_analyzer::AnalyzeRarFile(std::move(rar_file), &results);
+- safe_browsing::rar_analyzer::AnalyzeRarFile(
+- std::move(rar_file), std::move(temporary_file), &results);
- std::move(callback).Run(results);
-}
diff --git a/chrome/services/file_util/safe_archive_analyzer.h
b/chrome/services/file_util/safe_archive_analyzer.h
-index f21efa6f57ba..2eda4f378bcc 100644
+index 94d6ec0e16f8..2eda4f378bcc 100644
--- a/chrome/services/file_util/safe_archive_analyzer.h
+++ b/chrome/services/file_util/safe_archive_analyzer.h
-@@ -25,8 +25,6 @@ class SafeArchiveAnalyzer : public chrome::mojom::SafeArchiveAnalyzer
{
+@@ -25,9 +25,6 @@ class SafeArchiveAnalyzer : public chrome::mojom::SafeArchiveAnalyzer
{
AnalyzeZipFileCallback callback) override;
void AnalyzeDmgFile(base::File dmg_file,
AnalyzeDmgFileCallback callback) override;
- void AnalyzeRarFile(base::File rar_file,
+- base::File temporary_file,
- AnalyzeRarFileCallback callback) override;
const std::unique_ptr<service_manager::ServiceContextRef> service_ref_;
diff --git a/sources b/sources
index 03899ce..c6e000d 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-c9b2cd5509e257501d21ed4b5db4b4c2 chromium-72.0.3626.121.tar.xz
+5acadb18a18526beaa8f49982be57c5d chromium-73.0.3683.75.tar.xz