[chromium-vaapi] Add a patch to fix Unrar wrapper
by hellbanger
commit 90547a9e803f986ba54e2c23be10bfefa09c4006
Author: Akarshan Biswas <akarshanbiswas(a)fedoraproject.org>
Date: Sat Aug 10 14:02:53 2019 +0530
Add a patch to fix Unrar wrapper
chromium-vaapi.spec | 3 +
fixunrarwrapper.patch | 152 ++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 155 insertions(+)
---
diff --git a/chromium-vaapi.spec b/chromium-vaapi.spec
index 015e744..b20a452 100644
--- a/chromium-vaapi.spec
+++ b/chromium-vaapi.spec
@@ -184,6 +184,8 @@ Patch1: enable-vaapi.patch
Patch2: widevine.patch
Patch3: Do-not-use-VPP-on-Linux-Add-some-info-logs-and-fix-v.patch
Patch4: chromium-skia-harmony.patch
+#Fix unrar wrapper: https://bugs.chromium.org/p/chromium/issues/detail?id=884521
+Patch5: fixunrarwrapper.patch
Patch50: nounrar.patch
# Bootstrap still uses python command
Patch51: py2-bootstrap.patch
@@ -225,6 +227,7 @@ chromium-vaapi is an open-source web browser, powered by WebKit (Blink)
%patch2 -p1 -b .widevine
%patch3 -p1 -b .fixvaapi
%patch4 -p0 -b .skia
+%patch5 -p1 -b .unrarwrap
%patch50 -p1 -b .nounrar
%patch51 -p1 -b .py2boot
%if %{with system_libicu}
diff --git a/fixunrarwrapper.patch b/fixunrarwrapper.patch
new file mode 100644
index 0000000..01e4964
--- /dev/null
+++ b/fixunrarwrapper.patch
@@ -0,0 +1,152 @@
+diff --git a/third_party/unrar/BUILD.gn b/third_party/unrar/BUILD.gn
+index 333a00899cfe..9ff77d68e782 100644
+--- a/third_party/unrar/BUILD.gn
++++ b/third_party/unrar/BUILD.gn
+@@ -7,54 +7,7 @@ import("//build/config/features.gni")
+ if (safe_browsing_mode == 1) {
+ static_library("unrar") {
+ sources = [
+- "src/archive.cpp",
+- "src/arcread.cpp",
+- "src/blake2s.cpp",
+- "src/cmddata.cpp",
+- "src/consio.cpp",
+- "src/crc.cpp",
+- "src/crypt.cpp",
+- "src/encname.cpp",
+- "src/errhnd.cpp",
+- "src/extinfo.cpp",
+- "src/extract.cpp",
+- "src/filcreat.cpp",
+- "src/file.cpp",
+- "src/filefn.cpp",
+- "src/filestr.cpp",
+- "src/find.cpp",
+- "src/getbits.cpp",
+- "src/global.cpp",
+- "src/hash.cpp",
+- "src/headers.cpp",
+- "src/list.cpp",
+- "src/match.cpp",
+- "src/options.cpp",
+- "src/pathfn.cpp",
+- "src/qopen.cpp",
+- "src/rarvm.cpp",
+- "src/rawread.cpp",
+- "src/rdwrfn.cpp",
+- "src/recvol.cpp",
+- "src/resource.cpp",
+- "src/rijndael.cpp",
+- "src/rs.cpp",
+- "src/rs16.cpp",
+- "src/scantree.cpp",
+- "src/secpassword.cpp",
+- "src/sha1.cpp",
+- "src/sha256.cpp",
+- "src/smallfn.cpp",
+- "src/strfn.cpp",
+- "src/strlist.cpp",
+- "src/system.cpp",
+- "src/threadpool.cpp",
+- "src/timefn.cpp",
+- "src/ui.cpp",
+- "src/unicode.cpp",
+- "src/unpack.cpp",
+ "src/unrar_wrapper.cc",
+- "src/volume.cpp",
+ ]
+ if (is_win) {
+ sources += [ "src/isnt.cpp" ]
+diff --git a/third_party/unrar/src/unrar_wrapper.cc b/third_party/unrar/src/unrar_wrapper.cc
+index 63b31f008861..6879a2d84988 100644
+--- a/third_party/unrar/src/unrar_wrapper.cc
++++ b/third_party/unrar/src/unrar_wrapper.cc
+@@ -9,7 +9,6 @@
+ #include "base/files/file_path.h"
+ #include "base/metrics/histogram_macros.h"
+ #include "build/build_config.h"
+-#include "third_party/unrar/src/rar.hpp"
+
+ namespace third_party_unrar {
+
+@@ -18,62 +17,10 @@ RarReader::RarReader() {}
+ RarReader::~RarReader() {}
+
+ bool RarReader::Open(base::File rar_file, base::File temp_file) {
+- rar_file_ = std::move(rar_file);
+- temp_file_ = std::move(temp_file);
+-
+- archive_ = std::make_unique<Archive>();
+- archive_->SetFileHandle(rar_file_.GetPlatformFile());
+- archive_->SetTempFileHandle(temp_file_.GetPlatformFile());
+-
+- bool open_success = archive_->Open(L"dummy.rar");
+- UMA_HISTOGRAM_BOOLEAN("SBClientDownload.RarOpenSuccess", open_success);
+- if (!open_success)
+- return false;
+-
+- bool is_valid_archive = archive_->IsArchive(/*EnableBroken=*/true);
+- UMA_HISTOGRAM_BOOLEAN("SBClientDownload.RarValidArchive", is_valid_archive);
+- if (!is_valid_archive)
+- return false;
+-
+- UMA_HISTOGRAM_BOOLEAN("SBClientDownload.RarHeadersEncrypted",
+- archive_->Encrypted);
+-
+- command_ = std::make_unique<CommandData>();
+- command_->ParseArg(const_cast<wchar_t*>(L"-p"));
+- command_->ParseArg(const_cast<wchar_t*>(L"x"));
+- command_->ParseDone();
+-
+- extractor_ = std::make_unique<CmdExtract>(command_.get());
+- extractor_->ExtractArchiveInit(*archive_);
+-
+- return true;
++ return false;
+ }
+
+ bool RarReader::ExtractNextEntry() {
+- bool success = true, repeat = true;
+- while (success || repeat) {
+- temp_file_.Seek(base::File::Whence::FROM_BEGIN, 0);
+- temp_file_.SetLength(0);
+- size_t header_size = archive_->ReadHeader();
+- repeat = false;
+- success = extractor_->ExtractCurrentFile(
+- *archive_, header_size, repeat); // |repeat| is passed by reference
+-
+- if (archive_->GetHeaderType() == HEAD_FILE) {
+-#if defined(OS_WIN)
+- current_entry_.file_path = base::FilePath(archive_->FileHead.FileName);
+-#else
+- std::wstring wide_filename(archive_->FileHead.FileName);
+- std::string filename(wide_filename.begin(), wide_filename.end());
+- current_entry_.file_path = base::FilePath(filename);
+-#endif
+- current_entry_.is_directory = archive_->FileHead.Dir;
+- current_entry_.is_encrypted = archive_->FileHead.Encrypted;
+- current_entry_.file_size = extractor_->GetCurrentFileSize();
+- return true;
+- }
+- }
+-
+ return false;
+ }
+
+diff --git a/third_party/unrar/src/unrar_wrapper.h b/third_party/unrar/src/unrar_wrapper.h
+index 05bf5b256383..b96260c70971 100644
+--- a/third_party/unrar/src/unrar_wrapper.h
++++ b/third_party/unrar/src/unrar_wrapper.h
+@@ -12,9 +12,9 @@
+
+ // Forward declare the unrar symbols needed for extraction, so users of
+ // RarReader don't need all the symbols from unrar.
+-class Archive;
+-class CmdExtract;
+-class CommandData;
++class Archive {};
++class CmdExtract {};
++class CommandData {};
+
+ namespace third_party_unrar {
+
5 years, 3 months
[chromium-vaapi] Update to 76.0.3809.100
by hellbanger
commit ca1f5b4928c94d59912c86a0ee35d97b42bfef97
Author: Akarshan Biswas <akarshanbiswas(a)fedoraproject.org>
Date: Sat Aug 10 13:25:12 2019 +0530
Update to 76.0.3809.100
bindcrashfix.patch | 52 --------
chromium-angle-gcc9.patch | 44 ------
chromium-gcc9-r654570.patch | 39 ------
chromium-gcc9-r666336.patch | 40 ++++++
chromium-gcc9-r666401.patch | 48 +++++++
chromium-gcc9-r666436.patch | 42 ++++++
chromium-gcc9-r666619.patch | 38 ++++++
chromium-gcc9-r667064.patch | 114 ++++++++++++++++
chromium-gcc9-r667228.patch | 102 ++++++++++++++
chromium-gcc9-r667260.patch | 46 +++++++
chromium-gcc9-r667484.patch | 68 ++++++++++
chromium-gcc9-r667901.patch | 105 +++++++++++++++
chromium-gcc9-r668015.patch | 72 ++++++++++
chromium-gcc9-r668033.patch | 124 +++++++++++++++++
chromium-gcc9-r670973.patch | 55 ++++++++
chromium-gcc9-r670980.patch | 61 +++++++++
chromium-quiche-gcc9.patch | 245 ++++++++++++++++++++++++++++++++++
chromium-skia-harmony.patch | 14 ++
chromium-system-icu.patch | 23 +---
chromium-vaapi.spec | 73 +++++++---
enable-vaapi.patch | 30 ++---
nounrar.patch | 319 ++++++++++++++++++++------------------------
sources | 2 +-
23 files changed, 1392 insertions(+), 364 deletions(-)
---
diff --git a/chromium-gcc9-r666336.patch b/chromium-gcc9-r666336.patch
new file mode 100644
index 0000000..baa4fe8
--- /dev/null
+++ b/chromium-gcc9-r666336.patch
@@ -0,0 +1,40 @@
+From cf6d6b40d711fce93a24a2cf517fa3becdbae8bb Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Wed, 5 Jun 2019 17:18:40 +0000
+Subject: [PATCH] Make blink::LayoutUnit::HasFraction constexpr
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+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(a)chromium.org>
+Reviewed-by: Xianzhu Wang <wangxianzhu(a)chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#666336}
+---
+ third_party/blink/renderer/platform/geometry/layout_unit.h | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/third_party/blink/renderer/platform/geometry/layout_unit.h b/third_party/blink/renderer/platform/geometry/layout_unit.h
+index f073986fbe17..b6dbc761c967 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 @@ class LayoutUnit {
+ 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
+--
+2.21.0
+
diff --git a/chromium-gcc9-r666401.patch b/chromium-gcc9-r666401.patch
new file mode 100644
index 0000000..45cdd01
--- /dev/null
+++ b/chromium-gcc9-r666401.patch
@@ -0,0 +1,48 @@
+From 52b5ceac95b67491b1c71f0ef9a32b778bbbaa2e Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Wed, 5 Jun 2019 19:46:55 +0000
+Subject: [PATCH] GCC: avoid ambiguous NoDestructor creation in
+ GetNeverSniffedMimeTypes.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+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(a)chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#666401}
+---
+ services/network/cross_origin_read_blocking.cc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/services/network/cross_origin_read_blocking.cc b/services/network/cross_origin_read_blocking.cc
+index 30999c075d99..60a03f67ac9f 100644
+--- a/services/network/cross_origin_read_blocking.cc
++++ b/services/network/cross_origin_read_blocking.cc
+@@ -211,7 +211,7 @@ bool ShouldEnforceInitiatorLock() {
+ // 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 @@ base::flat_set<std::string>& GetNeverSniffedMimeTypes() {
+ "application/x-www-form-urlencoded",
+ "application/zip",
+ "text/event-stream",
+- });
++ }};
+
+ // All items need to be lower-case, to support case-insensitive comparisons
+ // later.
+--
+2.21.0
+
diff --git a/chromium-gcc9-r666436.patch b/chromium-gcc9-r666436.patch
new file mode 100644
index 0000000..acf5725
--- /dev/null
+++ b/chromium-gcc9-r666436.patch
@@ -0,0 +1,42 @@
+From 7dc76c8d9f4cfbce7cf11424120aa6f6094916dc Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Wed, 5 Jun 2019 21:09:01 +0000
+Subject: [PATCH] GCC: XSetWindowAttributes struct initialization should keep
+ order of declaration
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+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(a)chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#666436}
+---
+ ui/gl/gl_surface_glx.cc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/ui/gl/gl_surface_glx.cc b/ui/gl/gl_surface_glx.cc
+index f649dd469bac..0aa6892014f2 100644
+--- a/ui/gl/gl_surface_glx.cc
++++ b/ui/gl/gl_surface_glx.cc
+@@ -583,10 +583,10 @@ bool NativeViewGLSurfaceGLX::Initialize(GLSurfaceFormat format) {
+
+ 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() &&
+--
+2.21.0
+
diff --git a/chromium-gcc9-r666619.patch b/chromium-gcc9-r666619.patch
new file mode 100644
index 0000000..2fce67c
--- /dev/null
+++ b/chromium-gcc9-r666619.patch
@@ -0,0 +1,38 @@
+From 53bb5a463ee956c70230eaa5450022185d0ddc3c Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Thu, 6 Jun 2019 07:54:05 +0000
+Subject: [PATCH] ThrottlingController::Liveness needs to be uint32_t
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+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(a)chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#666619}
+---
+ services/network/throttling/throttling_controller.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/services/network/throttling/throttling_controller.h b/services/network/throttling/throttling_controller.h
+index 43751c4976a4..3c6f87be850c 100644
+--- a/services/network/throttling/throttling_controller.h
++++ b/services/network/throttling/throttling_controller.h
+@@ -38,7 +38,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) ThrottlingController {
+
+ // 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,
+ };
+--
+2.21.0
+
diff --git a/chromium-gcc9-r667064.patch b/chromium-gcc9-r667064.patch
new file mode 100644
index 0000000..4d5275a
--- /dev/null
+++ b/chromium-gcc9-r667064.patch
@@ -0,0 +1,114 @@
+From 84c91abab33966f928497c24db4a39f436d2dca8 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Fri, 7 Jun 2019 09:50:11 +0000
+Subject: [PATCH] Make SharedMemoryMapping move constructor noexcept
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+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(a)lge.com>
+Reviewed-by: Daniel Cheng <dcheng(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#667064}
+---
+ base/memory/shared_memory_mapping.cc | 12 ++++++------
+ base/memory/shared_memory_mapping.h | 14 ++++++++------
+ 2 files changed, 14 insertions(+), 12 deletions(-)
+
+diff --git a/base/memory/shared_memory_mapping.cc b/base/memory/shared_memory_mapping.cc
+index 2be2570004bb..8426fa8c214b 100644
+--- a/base/memory/shared_memory_mapping.cc
++++ b/base/memory/shared_memory_mapping.cc
+@@ -33,7 +33,7 @@ namespace base {
+
+ 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(SharedMemoryMapping&& mapping)
+ }
+
+ SharedMemoryMapping& SharedMemoryMapping::operator=(
+- SharedMemoryMapping&& mapping) {
++ SharedMemoryMapping&& mapping) noexcept {
+ Unmap();
+ memory_ = mapping.memory_;
+ size_ = mapping.size_;
+@@ -90,9 +90,9 @@ void SharedMemoryMapping::Unmap() {
+
+ 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 @@ ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping(
+
+ 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 d9569af8ee3a..2b8858e16624 100644
+--- a/base/memory/shared_memory_mapping.h
++++ b/base/memory/shared_memory_mapping.h
+@@ -32,8 +32,8 @@ class BASE_EXPORT SharedMemoryMapping {
+ 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 @@ class BASE_EXPORT ReadOnlySharedMemoryMapping : public SharedMemoryMapping {
+ 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 @@ class BASE_EXPORT WritableSharedMemoryMapping : public SharedMemoryMapping {
+ 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.
+--
+2.21.0
+
diff --git a/chromium-gcc9-r667228.patch b/chromium-gcc9-r667228.patch
new file mode 100644
index 0000000..c9b194b
--- /dev/null
+++ b/chromium-gcc9-r667228.patch
@@ -0,0 +1,102 @@
+From c6afbd59c997c2b64f11abdd1eaef71ae8ea2ddc Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Fri, 7 Jun 2019 18:11:15 +0000
+Subject: [PATCH] GCC: FeaturePolicyParser ParseValueForFuzzer is not in
+ anonymous namespace
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+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(a)lge.com>
+Reviewed-by: Luna Lu <loonybear(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#667228}
+---
+ .../core/feature_policy/feature_policy_parser.cc | 7 +++++++
+ .../core/feature_policy/feature_policy_parser.h | 7 +++----
+ .../feature_policy/feature_policy_value_fuzzer.cc | 15 ++++-----------
+ 3 files changed, 14 insertions(+), 15 deletions(-)
+
+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 f1c9594cc4c9..bae91a1741aa 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 @@ PolicyValue FeaturePolicyParser::ParseValueForType(
+ 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 fd25d90b56cf..8aa73231d45f 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 @@ class CORE_EXPORT FeaturePolicyParser {
+ 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 7f8e6aa984b2..1455636e4953 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;
+ }
+--
+2.21.0
+
diff --git a/chromium-gcc9-r667260.patch b/chromium-gcc9-r667260.patch
new file mode 100644
index 0000000..4c930c3
--- /dev/null
+++ b/chromium-gcc9-r667260.patch
@@ -0,0 +1,46 @@
+From 9f99af41cae3cfff3bcdcc856c1539801c9b745b Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Fri, 7 Jun 2019 18:59:59 +0000
+Subject: [PATCH] DisjoingRangeLockManager::Lock move constructor/assign
+ operator cannot be noexcept
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+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(a)chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#667260}
+---
+ .../indexed_db/scopes/disjoint_range_lock_manager.cc | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+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 478a5c920521..a18c6cd74545 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 @@ DisjointRangeLockManager::LockRequest::LockRequest(
+ : 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()),
+--
+2.21.0
+
diff --git a/chromium-gcc9-r667484.patch b/chromium-gcc9-r667484.patch
new file mode 100644
index 0000000..9b9431c
--- /dev/null
+++ b/chromium-gcc9-r667484.patch
@@ -0,0 +1,68 @@
+From bdc24128b75008743d819e298557a53205706e7c Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Sun, 9 Jun 2019 11:22:25 +0000
+Subject: [PATCH] GCC: fix noexcept from move constructor and assign operators
+ of AccountInfo
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+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(a)chromium.org>
+Reviewed-by: Sylvain Defresne <sdefresne(a)chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#667484}
+---
+ google_apis/gaia/core_account_id.cc | 8 ++++++++
+ google_apis/gaia/core_account_id.h | 5 +++++
+ 2 files changed, 13 insertions(+)
+
+diff --git a/google_apis/gaia/core_account_id.cc b/google_apis/gaia/core_account_id.cc
+index d8080824d5db..12eefe325c14 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 5ea602aba2cf..c2d1911201a6 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
+--
+2.21.0
+
diff --git a/chromium-gcc9-r667901.patch b/chromium-gcc9-r667901.patch
new file mode 100644
index 0000000..b44a9f0
--- /dev/null
+++ b/chromium-gcc9-r667901.patch
@@ -0,0 +1,105 @@
+From dcb55fb8f18abe5f43d260aa67b14b2dc996f992 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 11 Jun 2019 08:00:13 +0000
+Subject: [PATCH] GCC: move explicit specialization out of RunInfo
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+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(a)chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#667901}
+---
+ .../shaping/shape_result_inline_headers.h | 62 +++++++++----------
+ 1 file changed, 31 insertions(+), 31 deletions(-)
+
+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 76ee6091de6c..c14d3a02a9a7 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 @@ struct ShapeResult::RunInfo : public RefCounted<ShapeResult::RunInfo> {
+ 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 @@ struct ShapeResult::RunInfo : public RefCounted<ShapeResult::RunInfo> {
+ 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
+--
+2.21.0
+
diff --git a/chromium-gcc9-r668015.patch b/chromium-gcc9-r668015.patch
new file mode 100644
index 0000000..ffd9b33
--- /dev/null
+++ b/chromium-gcc9-r668015.patch
@@ -0,0 +1,72 @@
+From 502e6e42633d2571c8236c8649b031fe9915eb5b Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)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
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+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(a)chromium.org>
+Reviewed-by: Eric Roman <eroman(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#668015}
+---
+ net/cert_net/cert_net_fetcher_impl.cc | 10 ++++------
+ 1 file changed, 4 insertions(+), 6 deletions(-)
+
+diff --git a/net/cert_net/cert_net_fetcher_impl.cc b/net/cert_net/cert_net_fetcher_impl.cc
+index 11a1166a23a5..349c6562153e 100644
+--- a/net/cert_net/cert_net_fetcher_impl.cc
++++ b/net/cert_net/cert_net_fetcher_impl.cc
+@@ -135,21 +135,19 @@ class CertNetFetcherImpl::AsyncCertNetFetcherImpl {
+ 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_;
+--
+2.21.0
+
diff --git a/chromium-gcc9-r668033.patch b/chromium-gcc9-r668033.patch
new file mode 100644
index 0000000..822f1bd
--- /dev/null
+++ b/chromium-gcc9-r668033.patch
@@ -0,0 +1,124 @@
+From fdb3bb1f8c41d044a5b0cb80257a26dd3c8f83a3 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)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.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+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(a)lge.com>
+Reviewed-by: Antoine Labour <piman(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#668033}
+---
+ gpu/vulkan/vulkan_command_buffer.cc | 50 ++++++++++++++---------------
+ 1 file changed, 24 insertions(+), 26 deletions(-)
+
+diff --git a/gpu/vulkan/vulkan_command_buffer.cc b/gpu/vulkan/vulkan_command_buffer.cc
+index ba776e458f6a..4f14c85bb6ad 100644
+--- a/gpu/vulkan/vulkan_command_buffer.cc
++++ b/gpu/vulkan/vulkan_command_buffer.cc
+@@ -207,21 +207,20 @@ bool VulkanCommandBuffer::SubmissionFinished() {
+ 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 @@ void VulkanCommandBuffer::CopyBufferToImage(VkBuffer buffer,
+ 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);
+ }
+--
+2.21.0
+
diff --git a/chromium-gcc9-r670973.patch b/chromium-gcc9-r670973.patch
new file mode 100644
index 0000000..3c95802
--- /dev/null
+++ b/chromium-gcc9-r670973.patch
@@ -0,0 +1,55 @@
+From 138904af5d6a4158ef4247fda816a8035e621e59 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Thu, 20 Jun 2019 18:35:02 +0000
+Subject: [PATCH] GCC: add noexcept move assignment in history::URLRow
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+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
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651726
+Reviewed-by: Scott Violet <sky(a)chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#670973}
+---
+ components/history/core/browser/url_row.cc | 2 +-
+ components/history/core/browser/url_row.h | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/components/history/core/browser/url_row.cc b/components/history/core/browser/url_row.cc
+index 44c22fd1ee8a..aec010107838 100644
+--- a/components/history/core/browser/url_row.cc
++++ b/components/history/core/browser/url_row.cc
+@@ -26,7 +26,7 @@ URLRow::~URLRow() {
+ }
+
+ 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 8f6f9cf5a0da..31a1ef823e2c 100644
+--- a/components/history/core/browser/url_row.h
++++ b/components/history/core/browser/url_row.h
+@@ -35,7 +35,7 @@ class URLRow {
+
+ virtual ~URLRow();
+ URLRow& operator=(const URLRow& other);
+- URLRow& operator=(URLRow&& other);
++ URLRow& operator=(URLRow&& other) noexcept;
+
+ URLID id() const { return id_; }
+
+--
+2.21.0
+
diff --git a/chromium-gcc9-r670980.patch b/chromium-gcc9-r670980.patch
new file mode 100644
index 0000000..c7e9ee8
--- /dev/null
+++ b/chromium-gcc9-r670980.patch
@@ -0,0 +1,61 @@
+From 5d7f227fa844e79568df64e495e7ef958c12d7b2 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Thu, 20 Jun 2019 18:50:49 +0000
+Subject: [PATCH] IWYU: ThemeService requires NativeTheme
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+As ThemeService referes to NativeTheme through a ScopedObserver,
+the full declaration is required.
+
+This is also a good opportunity to remove unneeded includes.
+
+Bug: 819294
+Change-Id: I9d5bd2e87cfaa76e87f9b5509daea24848906a63
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645362
+Reviewed-by: Evan Stade <estade(a)chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#670980}
+---
+ chrome/browser/themes/theme_service.cc | 1 -
+ chrome/browser/themes/theme_service.h | 3 +--
+ 2 files changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/chrome/browser/themes/theme_service.cc b/chrome/browser/themes/theme_service.cc
+index 30694973893a..fdb21f91d53e 100644
+--- a/chrome/browser/themes/theme_service.cc
++++ b/chrome/browser/themes/theme_service.cc
+@@ -54,7 +54,6 @@
+ #include "ui/gfx/color_palette.h"
+ #include "ui/gfx/image/image_skia.h"
+ #include "ui/native_theme/common_theme.h"
+-#include "ui/native_theme/native_theme.h"
+
+ #if BUILDFLAG(ENABLE_EXTENSIONS)
+ #include "base/scoped_observer.h"
+diff --git a/chrome/browser/themes/theme_service.h b/chrome/browser/themes/theme_service.h
+index 13c0f863d268..103f83f1d428 100644
+--- a/chrome/browser/themes/theme_service.h
++++ b/chrome/browser/themes/theme_service.h
+@@ -7,9 +7,7 @@
+
+ #include <map>
+ #include <memory>
+-#include <set>
+ #include <string>
+-#include <utility>
+
+ #include "base/compiler_specific.h"
+ #include "base/macros.h"
+@@ -25,6 +23,7 @@
+ #include "extensions/buildflags/buildflags.h"
+ #include "extensions/common/extension_id.h"
+ #include "ui/base/theme_provider.h"
++#include "ui/native_theme/native_theme.h"
+ #include "ui/native_theme/native_theme_observer.h"
+
+ class BrowserThemePack;
+--
+2.21.0
+
diff --git a/chromium-quiche-gcc9.patch b/chromium-quiche-gcc9.patch
new file mode 100644
index 0000000..b413c7a
--- /dev/null
+++ b/chromium-quiche-gcc9.patch
@@ -0,0 +1,245 @@
+From 9424add9d73432a794b7944790253213cce6dcb8 Mon Sep 17 00:00:00 2001
+From: danzh <danzh(a)google.com>
+Date: Thu, 6 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
+---
+ quic/core/crypto/transport_parameters.cc | 76 ++++++++++++------------
+ quic/core/quic_socket_address_coder.cc | 6 +-
+ 2 files changed, 42 insertions(+), 40 deletions(-)
+
+diff --git a/quic/core/crypto/transport_parameters.cc b/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 @@ const size_t kStatelessResetTokenLength = 16;
+ 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 @@ bool SerializeTransportParameters(const TransportParameters& in,
+ 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 @@ bool SerializeTransportParameters(const TransportParameters& in,
+ 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 @@ bool SerializeTransportParameters(const TransportParameters& in,
+
+ // 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 @@ bool SerializeTransportParameters(const TransportParameters& in,
+ 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 @@ bool SerializeTransportParameters(const TransportParameters& in,
+ 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 @@ bool SerializeTransportParameters(const TransportParameters& in,
+
+ // 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 ParseTransportParameters(const uint8_t* in,
+ }
+ 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 @@ bool ParseTransportParameters(const uint8_t* in,
+ 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 @@ bool ParseTransportParameters(const uint8_t* in,
+ 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 @@ bool ParseTransportParameters(const uint8_t* in,
+ }
+ 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 @@ bool ParseTransportParameters(const uint8_t* in,
+ 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 @@ bool ParseTransportParameters(const uint8_t* in,
+ 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 {
+--
+2.21.0
+
diff --git a/chromium-skia-harmony.patch b/chromium-skia-harmony.patch
new file mode 100644
index 0000000..c96d07e
--- /dev/null
+++ b/chromium-skia-harmony.patch
@@ -0,0 +1,14 @@
+--- third_party/skia/src/ports/SkFontHost_FreeType.cpp.orig 2019-07-19 11:08:34.770972665 +0000
++++ third_party/skia/src/ports/SkFontHost_FreeType.cpp 2019-07-19 11:08:44.274442065 +0000
+@@ -128,9 +128,9 @@ public:
+ : fGetVarDesignCoordinates(nullptr)
+ , fGetVarAxisFlags(nullptr)
+ , fLibrary(nullptr)
+- , fIsLCDSupported(false)
++ , fIsLCDSupported(true)
+ , fLightHintingIsYOnly(false)
+- , fLCDExtra(0)
++ , fLCDExtra(2)
+ {
+ if (FT_New_Library(&gFTMemory, &fLibrary)) {
+ return;
diff --git a/chromium-system-icu.patch b/chromium-system-icu.patch
index 661cbad..f00330b 100644
--- a/chromium-system-icu.patch
+++ b/chromium-system-icu.patch
@@ -1,25 +1,14 @@
-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[] = {
+Index: chromium-76.0.3800.0/third_party/blink/renderer/platform/text/character_property_data.h
+===================================================================
+--- chromium-76.0.3800.0.orig/third_party/blink/renderer/platform/text/character_property_data.h
++++ chromium-76.0.3800.0/third_party/blink/renderer/platform/text/character_property_data.h
+@@ -258,7 +258,7 @@ static const UChar32 kIsHangulRanges[] =
0xFFA0, 0xFFDC,
};
-static const UChar32 kIsHangulArray[] = {};
+static const UChar32 kIsHangulArray[] = {0xFFDC,};
- #if !defined(USING_SYSTEM_ICU)
// Freezed trie tree, see character_property_data_generator.cc.
---
-2.20.1
+ extern const int32_t kSerializedCharacterDataSize;
diff --git a/chromium-vaapi.spec b/chromium-vaapi.spec
index 8230f33..015e744 100644
--- a/chromium-vaapi.spec
+++ b/chromium-vaapi.spec
@@ -34,9 +34,9 @@
# Need icu version >= 64
%bcond_with system_libicu
# Allow testing whether libvpx can be unbundled
-%bcond_with system_libvpx
+%bcond_without system_libvpx
# Allow testing whether ffmpeg can be unbundled
-%bcond_with system_ffmpeg
+%bcond_without system_ffmpeg
#Allow minizip to be unbundled
#mini-compat is going to be removed from fedora 30!
%bcond_with system_minizip
@@ -55,8 +55,8 @@
%global ozone 0
##############################Package Definitions######################################
Name: chromium-vaapi
-Version: 75.0.3770.142
-Release: 2%{?dist}
+Version: 76.0.3809.100
+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)
URL: https://www.chromium.org/Home
@@ -183,6 +183,7 @@ Patch1: enable-vaapi.patch
# Enable support for widevine
Patch2: widevine.patch
Patch3: Do-not-use-VPP-on-Linux-Add-some-info-logs-and-fix-v.patch
+Patch4: chromium-skia-harmony.patch
Patch50: nounrar.patch
# Bootstrap still uses python command
Patch51: py2-bootstrap.patch
@@ -196,12 +197,23 @@ Patch65: chromium-73.0.3683.75-pipewire-cstring-fix.patch
# Fix header
Patch68: Add-missing-header-to-fix-webrtc-build.patch
# GCC patches
-Patch70: chromium-angle-gcc9.patch
-Patch71: chromium-gcc9-r654570.patch
-Patch72: chromium-gcc9-r666279.patch
-Patch73: chromium-gcc9-r666714.patch
-# Add a patch from upstream to fix a bug on RenderProcesshost
-Patch74: bindcrashfix.patch
+Patch70: chromium-gcc9-r666279.patch
+Patch71: chromium-gcc9-r666336.patch
+Patch72: chromium-gcc9-r666401.patch
+Patch73: chromium-gcc9-r666436.patch
+Patch74: chromium-gcc9-r666619.patch
+Patch75: chromium-gcc9-r666714.patch
+Patch76: chromium-gcc9-r667064.patch
+Patch77: chromium-gcc9-r667228.patch
+Patch78: chromium-gcc9-r667260.patch
+Patch79: chromium-gcc9-r667484.patch
+Patch80: chromium-gcc9-r667901.patch
+Patch81: chromium-gcc9-r668015.patch
+Patch82: chromium-gcc9-r668033.patch
+Patch83: chromium-gcc9-r670973.patch
+Patch84: chromium-gcc9-r670980.patch
+Patch85: chromium-quiche-gcc9.patch
+
%description
chromium-vaapi is an open-source web browser, powered by WebKit (Blink)
@@ -212,6 +224,7 @@ chromium-vaapi is an open-source web browser, powered by WebKit (Blink)
%patch1 -p1 -b .vaapi
%patch2 -p1 -b .widevine
%patch3 -p1 -b .fixvaapi
+%patch4 -p0 -b .skia
%patch50 -p1 -b .nounrar
%patch51 -p1 -b .py2boot
%if %{with system_libicu}
@@ -227,15 +240,26 @@ chromium-vaapi is an open-source web browser, powered by WebKit (Blink)
# GCC patches area
%patch70 -p1 -b .gcc1
%patch71 -p1 -b .gcc2
-%patch72 -p1 -b .gcc3
-%patch73 -p1 -b .gcc4
-%patch74 -p1 -b .render
-
+%patch72 -p1 -b .gcc2
+%patch73 -p1 -b .gcc3
+%patch74 -p1 -b .gcc4
+%patch75 -p1 -b .gcc5
+%patch76 -p1 -b .gcc6
+%patch77 -p1 -b .gcc7
+%patch78 -p1 -b .gcc8
+%patch79 -p1 -b .gcc9
+%patch80 -p1 -b .gcc10
+%patch81 -p1 -b .gcc11
+%patch82 -p1 -b .gcc12
+%patch83 -p1 -b .gcc13
+%patch84 -p1 -b .gcc14
+%patch85 -p1 -b .gcc15
#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 \
- base/third_party/dmg_fp \
+ base/third_party/cityhash \
+ base/third_party/dmg_fp \
base/third_party/dynamic_annotations \
base/third_party/icu \
base/third_party/libevent \
@@ -275,6 +299,9 @@ find -depth -type f -writable -name "*.py" -exec sed -iE '1s=^#! */usr/bin/\(pyt
third_party/axe-core \
third_party/boringssl \
third_party/boringssl/src/third_party/fiat \
+ third_party/boringssl/src/third_party/sike \
+ third_party/boringssl/linux-aarch64/crypto/third_party/sike \
+ third_party/boringssl/linux-x86_64/crypto/third_party/sike \
third_party/blink \
third_party/breakpad \
third_party/breakpad/breakpad/src/third_party/curl \
@@ -365,7 +392,7 @@ find -depth -type f -writable -name "*.py" -exec sed -iE '1s=^#! */usr/bin/\(pyt
third_party/node \
third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2 \
third_party/openh264 \
- third_party/openmax_dl \
+ third_party/openscreen \
third_party/ots \
third_party/pdfium \
third_party/pdfium/third_party/agg23 \
@@ -394,6 +421,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/skcms \
third_party/skia/include/third_party/vulkan \
third_party/skia/third_party/gif \
third_party/skia/third_party/vulkan \
@@ -467,7 +495,9 @@ find -depth -type f -writable -name "*.py" -exec sed -iE '1s=^#! */usr/bin/\(pyt
zlib
%endif
-sed -i 's|//third_party/usb_ids|/usr/share/hwdata|g' device/usb/BUILD.gn
+sed -i 's|//third_party/usb_ids|/usr/share/hwdata|g' \
+ services/device/public/cpp/usb/BUILD.gn
+
rmdir third_party/markupsafe
ln -s %{python2_sitearch}/markupsafe third_party/markupsafe
@@ -664,10 +694,17 @@ appstream-util validate-relax --nonet "%{buildroot}%{_metainfodir}/%{name}.appda
%dir %{chromiumdir}/locales
%{chromiumdir}/locales/*.pak
#########################################changelogs#################################################
-%changelog
+%changelog
+* Sat Aug 10 2019 Akarshan Biswas <akarshanbiswas(a)fedoraproject.org> - 76.0.3809.100-1
+- Update to 76.0.3809.100
+
* Fri Aug 09 2019 RPM Fusion Release Engineering <leigh123linux(a)gmail.com> - 75.0.3770.142-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+* Sat Aug 03 2019 Akarshan Biswas <akarshanbiswas(a)fedoraproject.org> - 76.0.3809.87-1
+- Update to 76.0.3809.87
+- Use system ffmpeg and libvpx
+
* Wed Jul 17 2019 Akarshan Biswas <akarshanbiswas(a)fedoraproject.org> - 75.0.3770.142-1
- Update to 75.0.3770.142
- Removed Nvidia GPU video decode blacklist
diff --git a/enable-vaapi.patch b/enable-vaapi.patch
index f2c4255..92b4946 100644
--- a/enable-vaapi.patch
+++ b/enable-vaapi.patch
@@ -1,4 +1,4 @@
-From e3da54fcc5fbd601bb448a61d69fa064199b28bb Mon Sep 17 00:00:00 2001
+From a07806f7b76dab142efc9342c952781573a004f4 Mon Sep 17 00:00:00 2001
From: Akarshan Biswas <akarshanbiswas(a)fedoraproject.org>
Date: Tue, 9 Jul 2019 19:03:09 +0530
Subject: [PATCH] Enable vaapi on Linux
@@ -11,10 +11,10 @@ Subject: [PATCH] Enable vaapi on Linux
4 files changed, 20 insertions(+), 19 deletions(-)
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
-index 1f0fc06e1..c47080f2c 100644
+index 61bb2977b..dd9318a7e 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
-@@ -1390,7 +1390,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -1450,7 +1450,7 @@ const FeatureEntry kFeatureEntries[] = {
"disable-accelerated-video-decode",
flag_descriptions::kAcceleratedVideoDecodeName,
flag_descriptions::kAcceleratedVideoDecodeDescription,
@@ -22,8 +22,8 @@ index 1f0fc06e1..c47080f2c 100644
+ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux,
SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode),
},
- #if defined(OS_WIN)
-@@ -1882,12 +1882,12 @@ const FeatureEntry kFeatureEntries[] = {
+ {"enable-history-favicons-google-server-query",
+@@ -1883,12 +1883,12 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)},
#endif // ENABLE_ISOLATED_XR_SERVICE
#endif // ENABLE_VR
@@ -35,15 +35,15 @@ index 1f0fc06e1..c47080f2c 100644
+ 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)},
++#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 91e5c085a..d810d3054 100644
+index fe57ff6b6..2584e5cb4 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
-@@ -2941,15 +2941,21 @@ const char kMacSystemMediaPermissionsInfoUiDescription[] =
+@@ -2766,15 +2766,21 @@ const char kMacSystemMediaPermissionsInfoUiDescription[] =
#endif
@@ -68,10 +68,10 @@ index 91e5c085a..d810d3054 100644
const char kAppServiceAshName[] = "App Service Ash";
const char kAppServiceAshDescription[] =
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
-index c8e596e47..f91cc2388 100644
+index 233ecb56d..9bd48777a 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
-@@ -1765,13 +1765,19 @@ extern const char kPermissionPromptPersistenceToggleDescription[];
+@@ -1645,13 +1645,19 @@ extern const char kPermissionPromptPersistenceToggleDescription[];
#endif // defined(OS_MACOSX)
@@ -94,10 +94,10 @@ index c8e596e47..f91cc2388 100644
extern const char kAppServiceAshDescription[];
diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json
-index d4c3b4364..935fdeb86 100644
+index 03e251547..9eb0f1148 100644
--- a/gpu/config/software_rendering_list.json
+++ b/gpu/config/software_rendering_list.json
-@@ -369,17 +369,6 @@
+@@ -368,17 +368,6 @@
"all"
]
},
diff --git a/nounrar.patch b/nounrar.patch
index b3be4fa..01e4964 100644
--- a/nounrar.patch
+++ b/nounrar.patch
@@ -1,189 +1,152 @@
-diff --git a/chrome/browser/safe_browsing/download_protection/check_client_download_request.h b/chrome/browser/safe_browsing/download_protection/check_client_download_request.h
-index af72d11371e1..472cb0098d5e 100644
---- a/chrome/browser/safe_browsing/download_protection/check_client_download_request.h
-+++ b/chrome/browser/safe_browsing/download_protection/check_client_download_request.h
-@@ -22,7 +22,6 @@
- #include "chrome/browser/safe_browsing/safe_browsing_navigation_observer_manager.h"
- #include "chrome/browser/safe_browsing/ui_manager.h"
- #include "chrome/common/safe_browsing/binary_feature_extractor.h"
--#include "chrome/services/file_util/public/cpp/sandboxed_rar_analyzer.h"
- #include "chrome/services/file_util/public/cpp/sandboxed_zip_analyzer.h"
- #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 683d4f23f2c6..35483e4a4041 100644
---- a/chrome/browser/safe_browsing/download_protection/file_analyzer.cc
-+++ b/chrome/browser/safe_browsing/download_protection/file_analyzer.cc
-@@ -99,8 +99,6 @@ void FileAnalyzer::Start(const base::FilePath& target_path,
-
- if (inspection_type == DownloadFileType::ZIP) {
- StartExtractZipFeatures();
-- } else if (inspection_type == DownloadFileType::RAR) {
-- StartExtractRarFeatures();
- #if defined(OS_MACOSX)
- } else if (inspection_type == DownloadFileType::DMG) {
- StartExtractDmgFeatures();
-@@ -210,6 +208,7 @@ void FileAnalyzer::OnZipAnalysisFinished(
- std::move(callback_).Run(std::move(results_));
- }
-
-+#if 0
- void FileAnalyzer::StartExtractRarFeatures() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+diff --git a/third_party/unrar/BUILD.gn b/third_party/unrar/BUILD.gn
+index 333a00899cfe..9ff77d68e782 100644
+--- a/third_party/unrar/BUILD.gn
++++ b/third_party/unrar/BUILD.gn
+@@ -7,54 +7,7 @@ import("//build/config/features.gni")
+ if (safe_browsing_mode == 1) {
+ static_library("unrar") {
+ sources = [
+- "src/archive.cpp",
+- "src/arcread.cpp",
+- "src/blake2s.cpp",
+- "src/cmddata.cpp",
+- "src/consio.cpp",
+- "src/crc.cpp",
+- "src/crypt.cpp",
+- "src/encname.cpp",
+- "src/errhnd.cpp",
+- "src/extinfo.cpp",
+- "src/extract.cpp",
+- "src/filcreat.cpp",
+- "src/file.cpp",
+- "src/filefn.cpp",
+- "src/filestr.cpp",
+- "src/find.cpp",
+- "src/getbits.cpp",
+- "src/global.cpp",
+- "src/hash.cpp",
+- "src/headers.cpp",
+- "src/list.cpp",
+- "src/match.cpp",
+- "src/options.cpp",
+- "src/pathfn.cpp",
+- "src/qopen.cpp",
+- "src/rarvm.cpp",
+- "src/rawread.cpp",
+- "src/rdwrfn.cpp",
+- "src/recvol.cpp",
+- "src/resource.cpp",
+- "src/rijndael.cpp",
+- "src/rs.cpp",
+- "src/rs16.cpp",
+- "src/scantree.cpp",
+- "src/secpassword.cpp",
+- "src/sha1.cpp",
+- "src/sha256.cpp",
+- "src/smallfn.cpp",
+- "src/strfn.cpp",
+- "src/strlist.cpp",
+- "src/system.cpp",
+- "src/threadpool.cpp",
+- "src/timefn.cpp",
+- "src/ui.cpp",
+- "src/unicode.cpp",
+- "src/unpack.cpp",
+ "src/unrar_wrapper.cc",
+- "src/volume.cpp",
+ ]
+ if (is_win) {
+ sources += [ "src/isnt.cpp" ]
+diff --git a/third_party/unrar/src/unrar_wrapper.cc b/third_party/unrar/src/unrar_wrapper.cc
+index 63b31f008861..6879a2d84988 100644
+--- a/third_party/unrar/src/unrar_wrapper.cc
++++ b/third_party/unrar/src/unrar_wrapper.cc
+@@ -9,7 +9,6 @@
+ #include "base/files/file_path.h"
+ #include "base/metrics/histogram_macros.h"
+ #include "build/build_config.h"
+-#include "third_party/unrar/src/rar.hpp"
-@@ -266,6 +265,7 @@ void FileAnalyzer::OnRarAnalysisFinished(
+ namespace third_party_unrar {
- std::move(callback_).Run(std::move(results_));
- }
-+#endif
+@@ -18,62 +17,10 @@ RarReader::RarReader() {}
+ RarReader::~RarReader() {}
- #if defined(OS_MACOSX)
- // This is called for .DMGs and other files that can be parsed by
-diff --git a/chrome/browser/safe_browsing/download_protection/file_analyzer.h b/chrome/browser/safe_browsing/download_protection/file_analyzer.h
-index a1f5abf77f5c..6e88eb7954ad 100644
---- a/chrome/browser/safe_browsing/download_protection/file_analyzer.h
-+++ b/chrome/browser/safe_browsing/download_protection/file_analyzer.h
-@@ -11,7 +11,6 @@
- #include "base/memory/weak_ptr.h"
- #include "build/build_config.h"
- #include "chrome/common/safe_browsing/binary_feature_extractor.h"
--#include "chrome/services/file_util/public/cpp/sandboxed_rar_analyzer.h"
- #include "chrome/services/file_util/public/cpp/sandboxed_zip_analyzer.h"
- #include "components/safe_browsing/proto/csd.pb.h"
- #include "third_party/protobuf/src/google/protobuf/repeated_field.h"
-@@ -88,9 +87,6 @@ class FileAnalyzer {
- void StartExtractZipFeatures();
- void OnZipAnalysisFinished(const ArchiveAnalyzerResults& archive_results);
-
-- void StartExtractRarFeatures();
-- void OnRarAnalysisFinished(const ArchiveAnalyzerResults& archive_results);
+ bool RarReader::Open(base::File rar_file, base::File temp_file) {
+- rar_file_ = std::move(rar_file);
+- temp_file_ = std::move(temp_file);
-
- #if defined(OS_MACOSX)
- void StartExtractDmgFeatures();
- void ExtractFileOrDmgFeatures(bool download_file_has_koly_signature);
-@@ -107,9 +103,6 @@ class FileAnalyzer {
- scoped_refptr<SandboxedZipAnalyzer> zip_analyzer_;
- base::TimeTicks zip_analysis_start_time_;
-
-- scoped_refptr<SandboxedRarAnalyzer> rar_analyzer_;
-- base::TimeTicks rar_analysis_start_time_;
+- archive_ = std::make_unique<Archive>();
+- archive_->SetFileHandle(rar_file_.GetPlatformFile());
+- archive_->SetTempFileHandle(temp_file_.GetPlatformFile());
-
- #if defined(OS_MACOSX)
- 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 d96e5f17cb6f..a00dbd53cfdd 100644
---- a/chrome/common/safe_browsing/BUILD.gn
-+++ b/chrome/common/safe_browsing/BUILD.gn
-@@ -77,7 +77,6 @@ if (safe_browsing_mode == 1) {
- "//base",
- "//base:i18n",
- "//components/safe_browsing:features",
-- "//third_party/unrar:unrar",
- ]
-
- defines = [
-@@ -167,7 +166,6 @@ source_set("safe_browsing") {
- ":archive_analyzer_results",
- ":binary_feature_extractor",
- ":download_type_util",
-- ":rar_analyzer",
- "//components/safe_browsing:features",
- ]
-
-diff --git a/chrome/common/safe_browsing/DEPS b/chrome/common/safe_browsing/DEPS
-index c191816456b0..49076ee372c0 100644
---- a/chrome/common/safe_browsing/DEPS
-+++ b/chrome/common/safe_browsing/DEPS
-@@ -1,6 +1,5 @@
- include_rules = [
- "+components/safe_browsing",
- "+third_party/protobuf",
-- "+third_party/unrar",
- "+third_party/zlib",
- ]
-diff --git a/chrome/common/safe_browsing/rar_analyzer.cc b/chrome/common/safe_browsing/rar_analyzer.cc
-index b8d56f05248d..dfefc7b1b05f 100644
---- a/chrome/common/safe_browsing/rar_analyzer.cc
-+++ b/chrome/common/safe_browsing/rar_analyzer.cc
-@@ -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 {
- namespace rar_analyzer {
-diff --git a/chrome/services/file_util/public/cpp/BUILD.gn b/chrome/services/file_util/public/cpp/BUILD.gn
-index 158cbfc6d157..6d8b0df7c59e 100644
---- a/chrome/services/file_util/public/cpp/BUILD.gn
-+++ b/chrome/services/file_util/public/cpp/BUILD.gn
-@@ -14,8 +14,6 @@ source_set("cpp") {
- sources = [
- "sandboxed_dmg_analyzer_mac.cc",
- "sandboxed_dmg_analyzer_mac.h",
-- "sandboxed_rar_analyzer.cc",
-- "sandboxed_rar_analyzer.h",
- "sandboxed_zip_analyzer.cc",
- "sandboxed_zip_analyzer.h",
- ]
-@@ -49,7 +47,6 @@ source_set("unit_tests") {
-
- sources = [
- "sandboxed_dmg_analyzer_mac_unittest.cc",
-- "sandboxed_rar_analyzer_unittest.cc",
- "sandboxed_zip_analyzer_unittest.cc",
- ]
-
-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 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,13 +22,6 @@ interface SafeArchiveAnalyzer {
- // for malicious download protection.
- AnalyzeDmgFile(mojo_base.mojom.File dmg_file)
- => (SafeArchiveAnalyzerResults results);
+- bool open_success = archive_->Open(L"dummy.rar");
+- UMA_HISTOGRAM_BOOLEAN("SBClientDownload.RarOpenSuccess", open_success);
+- if (!open_success)
+- return false;
-
-- // Build flag FULL_SAFE_BROWSING: Analyze the |rar_file| for malicious
-- // 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 a58249e88d08..db49c37b9b49 100644
---- a/chrome/services/file_util/safe_archive_analyzer.cc
-+++ b/chrome/services/file_util/safe_archive_analyzer.cc
-@@ -44,14 +44,3 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile(base::File dmg_file,
- NOTREACHED();
- #endif
+- bool is_valid_archive = archive_->IsArchive(/*EnableBroken=*/true);
+- UMA_HISTOGRAM_BOOLEAN("SBClientDownload.RarValidArchive", is_valid_archive);
+- if (!is_valid_archive)
+- return false;
+-
+- UMA_HISTOGRAM_BOOLEAN("SBClientDownload.RarHeadersEncrypted",
+- archive_->Encrypted);
+-
+- command_ = std::make_unique<CommandData>();
+- command_->ParseArg(const_cast<wchar_t*>(L"-p"));
+- command_->ParseArg(const_cast<wchar_t*>(L"x"));
+- command_->ParseDone();
+-
+- extractor_ = std::make_unique<CmdExtract>(command_.get());
+- extractor_->ExtractArchiveInit(*archive_);
+-
+- return true;
++ return false;
}
+
+ bool RarReader::ExtractNextEntry() {
+- bool success = true, repeat = true;
+- while (success || repeat) {
+- temp_file_.Seek(base::File::Whence::FROM_BEGIN, 0);
+- temp_file_.SetLength(0);
+- size_t header_size = archive_->ReadHeader();
+- repeat = false;
+- success = extractor_->ExtractCurrentFile(
+- *archive_, header_size, repeat); // |repeat| is passed by reference
-
--void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file,
-- base::File temporary_file,
-- AnalyzeRarFileCallback callback) {
-- DCHECK(rar_file.IsValid());
+- if (archive_->GetHeaderType() == HEAD_FILE) {
+-#if defined(OS_WIN)
+- current_entry_.file_path = base::FilePath(archive_->FileHead.FileName);
+-#else
+- std::wstring wide_filename(archive_->FileHead.FileName);
+- std::string filename(wide_filename.begin(), wide_filename.end());
+- current_entry_.file_path = base::FilePath(filename);
+-#endif
+- current_entry_.is_directory = archive_->FileHead.Dir;
+- current_entry_.is_encrypted = archive_->FileHead.Encrypted;
+- current_entry_.file_size = extractor_->GetCurrentFileSize();
+- return true;
+- }
+- }
-
-- safe_browsing::ArchiveAnalyzerResults 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 94d6ec0e16f8..2eda4f378bcc 100644
---- a/chrome/services/file_util/safe_archive_analyzer.h
-+++ b/chrome/services/file_util/safe_archive_analyzer.h
-@@ -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;
+ return false;
+ }
+
+diff --git a/third_party/unrar/src/unrar_wrapper.h b/third_party/unrar/src/unrar_wrapper.h
+index 05bf5b256383..b96260c70971 100644
+--- a/third_party/unrar/src/unrar_wrapper.h
++++ b/third_party/unrar/src/unrar_wrapper.h
+@@ -12,9 +12,9 @@
+
+ // Forward declare the unrar symbols needed for extraction, so users of
+ // RarReader don't need all the symbols from unrar.
+-class Archive;
+-class CmdExtract;
+-class CommandData;
++class Archive {};
++class CmdExtract {};
++class CommandData {};
- const std::unique_ptr<service_manager::ServiceContextRef> service_ref_;
+ namespace third_party_unrar {
-
diff --git a/sources b/sources
index 09474de..367e6e0 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-3a304113cfc941e0d36093005e5f2c2c chromium-75.0.3770.142.tar.xz
+d9d3eb0140a59b1772a1c831036c6246 chromium-76.0.3809.100.tar.xz
5 years, 3 months
[yapeSDL] - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
by Leigh Scott
commit 21c34a74cd8834d91fa01562fc045fb3359005b1
Author: Leigh Scott <leigh123linux(a)gmail.com>
Date: Sat Aug 10 03:06:24 2019 +0100
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Leigh Scott <leigh123linux(a)gmail.com>
yapeSDL.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
---
diff --git a/yapeSDL.spec b/yapeSDL.spec
index 6098cf3..705cb84 100644
--- a/yapeSDL.spec
+++ b/yapeSDL.spec
@@ -1,6 +1,6 @@
Name: yapeSDL
Version: 0.70.2
-Release: 8%{?dist}
+Release: 9%{?dist}
Summary: A Commodore 264 family (C16, plus/4 etc.) emulator
License: GPLv2+
@@ -102,6 +102,9 @@ appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/%{name}.a
%license COPYING
%changelog
+* Sat Aug 10 2019 RPM Fusion Release Engineering <leigh123linux(a)gmail.com> - 0.70.2-9
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
* Thu Mar 07 2019 Andrea Musuruane <musuruan(a)gmail.com> - 0.70.2-8
- Updated BR to minizip-compat-devel for F30+
- Used %%set_build_flags macro
5 years, 3 months
[xv] - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
by Leigh Scott
commit ba426b77c3accad22e046cfe7b5098c1fb0625b0
Author: Leigh Scott <leigh123linux(a)gmail.com>
Date: Sat Aug 10 03:06:14 2019 +0100
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Leigh Scott <leigh123linux(a)gmail.com>
xv.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
---
diff --git a/xv.spec b/xv.spec
index 40295c7..deda121 100644
--- a/xv.spec
+++ b/xv.spec
@@ -3,7 +3,7 @@
Name: xv
Version: %{vprog}.jumbopatch.%{vjumbo}
-Release: 31%{?dist}
+Release: 32%{?dist}
Summary: Interactive image display program for X
Summary(de.UTF-8): X-basierender Bild-Viewer für praktische sämtliche Grafiken
Summary(es.UTF-8): Visualizador de imágenes para X para cuasi todos los formatos de imágenes
@@ -275,6 +275,9 @@ done
%doc %{_docdir}/%{name}-%{vprog}/manuals/
%changelog
+* Sat Aug 10 2019 RPM Fusion Release Engineering <leigh123linux(a)gmail.com> - 3.10a.jumbopatch.20070520-32
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
* Tue Mar 05 2019 RPM Fusion Release Engineering <leigh123linux(a)gmail.com> - 3.10a.jumbopatch.20070520-31
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
5 years, 3 months