diff --git a/distribution.xml b/distribution.xml
index c040e587a7..dc31a0e938 100644
--- a/distribution.xml
+++ b/distribution.xml
@@ -15,6 +15,7 @@
libcrystalhd-devel
libnut
libnut-devel
+ libsoup-32bit
libfreebob
libfreebob-devel
diff --git a/network/web/chromium-browser/files/add-missing-include-for-unique_ptr.patch b/network/web/chromium-browser/files/add-missing-include-for-unique_ptr.patch
deleted file mode 100644
index 113e08f4a7..0000000000
--- a/network/web/chromium-browser/files/add-missing-include-for-unique_ptr.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From bbfe2665923225b4a7c436ba2b6c7e5f695f2e52 Mon Sep 17 00:00:00 2001
-From: David Landell
-Date: Fri, 13 Sep 2019 12:24:13 +0000
-Subject: [PATCH] Add missing include for unique_ptr
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Change-Id: I614d2f42868d563eb6a92dfb2aae08286e20d687
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1803137
-Reviewed-by: Henrik Boström
-Commit-Queue: Henrik Boström
-Cr-Commit-Position: refs/heads/master@{#696355}
----
- third_party/blink/public/platform/web_rtc_rtp_source.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/third_party/blink/public/platform/web_rtc_rtp_source.h b/third_party/blink/public/platform/web_rtc_rtp_source.h
-index 959440f7a5..c3fd5421aa 100644
---- a/third_party/blink/public/platform/web_rtc_rtp_source.h
-+++ b/third_party/blink/public/platform/web_rtc_rtp_source.h
-@@ -5,6 +5,8 @@
- #ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_RTC_RTP_SOURCE_H_
- #define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_RTC_RTP_SOURCE_H_
-
-+#include
-+
- #include "base/optional.h"
- #include "third_party/blink/public/platform/web_common.h"
-
diff --git a/network/web/chromium-browser/files/chromium-drirc-disable-10bpc-color-configs.conf b/network/web/chromium-browser/files/chromium-drirc-disable-10bpc-color-configs.conf
new file mode 100644
index 0000000000..ef836b3222
--- /dev/null
+++ b/network/web/chromium-browser/files/chromium-drirc-disable-10bpc-color-configs.conf
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/network/web/chromium-browser/files/cros-search-service-Include-cmath-for-std-pow.patch b/network/web/chromium-browser/files/cros-search-service-Include-cmath-for-std-pow.patch
new file mode 100644
index 0000000000..410b968d0f
--- /dev/null
+++ b/network/web/chromium-browser/files/cros-search-service-Include-cmath-for-std-pow.patch
@@ -0,0 +1,35 @@
+From 8273f4d3130e06fd8b6bef87b07c936304b971d9 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa
+Date: Tue, 10 Dec 2019 20:59:57 +0000
+Subject: [PATCH] [cros search service]: Include for std::pow()
+
+IWYU. Follow up to commit 2b2ea3c09b ("[cros search service] Move shared
+string matching functions to //chrome"), which broke the libstdc++ build:
+
+ ../../chrome/common/string_matching/fuzzy_tokenized_string_match.cc:199:14: error: no member named 'pow' in namespace 'std'
+ std::pow(partial_match_penalty_rate, long_start - current - 1);
+ ~~~~~^
+
+Bug: 957519
+Change-Id: I66f61cb4f93cfa0bfa3d1b00ba391ddd8f31a7fb
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1960310
+Auto-Submit: Raphael Kubo da Costa
+Reviewed-by: Jia Meng
+Commit-Queue: Raphael Kubo da Costa
+Cr-Commit-Position: refs/heads/master@{#723499}
+---
+ chrome/common/string_matching/fuzzy_tokenized_string_match.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/chrome/common/string_matching/fuzzy_tokenized_string_match.cc b/chrome/common/string_matching/fuzzy_tokenized_string_match.cc
+index 8351fa701e4..884ef638c61 100644
+--- a/chrome/common/string_matching/fuzzy_tokenized_string_match.cc
++++ b/chrome/common/string_matching/fuzzy_tokenized_string_match.cc
+@@ -5,6 +5,7 @@
+ #include "chrome/common/string_matching/fuzzy_tokenized_string_match.h"
+
+ #include
++#include
+ #include
+
+ #include "base/i18n/case_conversion.h"
diff --git a/network/web/chromium-browser/files/dns_util-make-DohUpgradeEntry-non-const.patch b/network/web/chromium-browser/files/dns_util-make-DohUpgradeEntry-non-const.patch
deleted file mode 100644
index 2d655e1ab1..0000000000
--- a/network/web/chromium-browser/files/dns_util-make-DohUpgradeEntry-non-const.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From f4c3c329588b78af63aad8b401da767242b86709 Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa
-Date: Mon, 16 Sep 2019 17:05:42 +0000
-Subject: [PATCH] dns_util: Make DohUpgradeEntry non-const when used with
- std::vector<>
-
-This fixes the build with libstdc++ (with most other standard libraries
-other than libc++, in fact) after commit f93a48e3 ("Allow upgrade to DoH
-during automatic mode"):
-
-../../../../../../usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_vector.h:351:7: error: static_assert failed due to requirement 'is_same::type, const DohUpgradeEntry>::value' "std::vector must have a non-const, non-volatile value_type"
- static_assert(is_same::type, _Tp>::value,
- ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-../../base/no_destructor.h:77:28: note: in instantiation of template class 'std::vector >' requested here
- alignas(T) char storage_[sizeof(T)];
- ^
-../../net/dns/dns_util.cc:147:7: note: in instantiation of template class 'base::NoDestructor > >' requested here
- upgradable_servers({
- ^
-../../net/dns/dns_util.cc:230:36: error: invalid range expression of type 'const std::vector >'; no viable 'begin' function available
- for (const auto& upgrade_entry : upgradable_servers) {
- ^ ~~~~~~~~~~~~~~~~~~
-
-The C++ standard forbids containers of const elements. Callers of
-GetDohUpgradeList() use it in a safe way anyway, and most of
-DohUpgradeEntry's members are const.
-
-Bug: 957519
-Change-Id: I826a51823edb1184c0fae27105101e2894efe568
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1805636
-Auto-Submit: Raphael Kubo da Costa
-Commit-Queue: Eric Orth
-Reviewed-by: Eric Orth
-Cr-Commit-Position: refs/heads/master@{#696834}
----
- net/dns/dns_util.cc | 13 +++++--------
- 1 file changed, 5 insertions(+), 8 deletions(-)
-
-diff --git a/net/dns/dns_util.cc b/net/dns/dns_util.cc
-index d83ff7c150..14997c48b2 100644
---- a/net/dns/dns_util.cc
-+++ b/net/dns/dns_util.cc
-@@ -139,11 +139,11 @@ struct DohUpgradeEntry {
- const DnsConfig::DnsOverHttpsServerConfig dns_over_https_config;
- };
-
--const std::vector& GetDohUpgradeList() {
-+const std::vector& GetDohUpgradeList() {
- // The provider names in these entries should be kept in sync with the
- // DohProviderId histogram suffix list in
- // tools/metrics/histograms/histograms.xml.
-- static const base::NoDestructor>
-+ static const base::NoDestructor>
- upgradable_servers({
- DohUpgradeEntry(
- "CleanBrowsingAdult",
-@@ -222,8 +222,7 @@ const std::vector& GetDohUpgradeList() {
- std::vector GetDohUpgradeEntriesFromNameservers(
- const std::vector& dns_servers,
- const std::vector& excluded_providers) {
-- const std::vector& upgradable_servers =
-- GetDohUpgradeList();
-+ const std::vector& upgradable_servers = GetDohUpgradeList();
- std::vector entries;
-
- for (const auto& server : dns_servers) {
-@@ -417,8 +416,7 @@ std::vector
- GetDohUpgradeServersFromDotHostname(
- const std::string& dot_server,
- const std::vector& excluded_providers) {
-- const std::vector& upgradable_servers =
-- GetDohUpgradeList();
-+ const std::vector& upgradable_servers = GetDohUpgradeList();
- std::vector doh_servers;
-
- if (dot_server.empty())
-@@ -451,8 +449,7 @@ GetDohUpgradeServersFromNameservers(
-
- std::string GetDohProviderIdForHistogramFromDohConfig(
- const DnsConfig::DnsOverHttpsServerConfig& doh_server) {
-- const std::vector& upgradable_servers =
-- GetDohUpgradeList();
-+ const std::vector& upgradable_servers = GetDohUpgradeList();
- for (const auto& upgrade_entry : upgradable_servers) {
- if (doh_server.server_template ==
- upgrade_entry.dns_over_https_config.server_template) {
diff --git a/network/web/chromium-browser/files/fix-building-with-unbundled-libxml.patch b/network/web/chromium-browser/files/fix-building-with-unbundled-libxml.patch
new file mode 100644
index 0000000000..7b934376e6
--- /dev/null
+++ b/network/web/chromium-browser/files/fix-building-with-unbundled-libxml.patch
@@ -0,0 +1,127 @@
+From d3afade220ddb307e16a6dd4f2b0ec88b2af91e7 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann
+Date: Tue, 28 Jan 2020 18:16:54 +0000
+Subject: [PATCH] Fix building with unbundled libxml
+
+Add new targets to libxml.gn that were added in
+ https://chromium-review.googlesource.com/c/chromium/src/+/1894877
+Adjust includes to use system libxml headers too
+
+Bug: 1043042
+Change-Id: I948c063e212e49b9e7f42fed2b8bf7f4af042ca7
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2007110
+Reviewed-by: Robert Sesek
+Reviewed-by: Daniel Cheng
+Reviewed-by: Nico Weber
+Commit-Queue: Robert Sesek
+Cr-Commit-Position: refs/heads/master@{#735957}
+---
+ build/linux/unbundle/libxml.gn | 41 ++++++++++++++++++++--
+ third_party/libxml/chromium/libxml_utils.h | 4 +--
+ third_party/libxml/chromium/xml_reader.cc | 3 +-
+ third_party/libxml/chromium/xml_writer.cc | 3 +-
+ 4 files changed, 45 insertions(+), 6 deletions(-)
+
+diff --git a/build/linux/unbundle/libxml.gn b/build/linux/unbundle/libxml.gn
+index c481bd3547b..3587881eea8 100644
+--- a/build/linux/unbundle/libxml.gn
++++ b/build/linux/unbundle/libxml.gn
+@@ -8,11 +8,48 @@ pkg_config("system_libxml") {
+ packages = [ "libxml-2.0" ]
+ }
+
+-static_library("libxml") {
++source_set("libxml") {
++ public_configs = [ ":system_libxml" ]
++}
++
++static_library("libxml_utils") {
++ # Do not expand this visibility list without first consulting with the
++ # Security Team.
++ visibility = [
++ ":xml_reader",
++ ":xml_writer",
++ "//base/test:test_support",
++ "//services/data_decoder:xml_parser_fuzzer",
++ ]
+ sources = [
+ "chromium/libxml_utils.cc",
+ "chromium/libxml_utils.h",
+ ]
+-
+ public_configs = [ ":system_libxml" ]
+ }
++
++static_library("xml_reader") {
++ # Do not expand this visibility list without first consulting with the
++ # Security Team.
++ visibility = [
++ "//base/test:test_support",
++ "//components/policy/core/common:unit_tests",
++ "//services/data_decoder:*",
++ "//tools/traffic_annotation/auditor:auditor_sources",
++ ]
++ sources = [
++ "chromium/xml_reader.cc",
++ "chromium/xml_reader.h",
++ ]
++ deps = [ ":libxml_utils" ]
++}
++
++static_library("xml_writer") {
++ # The XmlWriter is considered safe to use from any target.
++ visibility = [ "*" ]
++ sources = [
++ "chromium/xml_writer.cc",
++ "chromium/xml_writer.h",
++ ]
++ deps = [ ":libxml_utils" ]
++}
+diff --git a/third_party/libxml/chromium/libxml_utils.h b/third_party/libxml/chromium/libxml_utils.h
+index ff969fab540..8b2383f9c8b 100644
+--- a/third_party/libxml/chromium/libxml_utils.h
++++ b/third_party/libxml/chromium/libxml_utils.h
+@@ -5,9 +5,9 @@
+ #ifndef THIRD_PARTY_LIBXML_CHROMIUM_LIBXML_UTILS_H_
+ #define THIRD_PARTY_LIBXML_CHROMIUM_LIBXML_UTILS_H_
+
+-#include
++#include
+
+-#include "third_party/libxml/src/include/libxml/xmlreader.h"
++#include
+
+ // libxml uses a global error function pointer for reporting errors.
+ // A ScopedXmlErrorFunc object lets you change the global error pointer
+diff --git a/third_party/libxml/chromium/xml_reader.cc b/third_party/libxml/chromium/xml_reader.cc
+index 92464f4cbcc..899ccefb7c8 100644
+--- a/third_party/libxml/chromium/xml_reader.cc
++++ b/third_party/libxml/chromium/xml_reader.cc
+@@ -4,10 +4,11 @@
+
+ #include "third_party/libxml/chromium/xml_reader.h"
+
++#include
++
+ #include
+
+ #include "third_party/libxml/chromium/libxml_utils.h"
+-#include "third_party/libxml/src/include/libxml/xmlreader.h"
+
+ using internal::XmlStringToStdString;
+
+diff --git a/third_party/libxml/chromium/xml_writer.cc b/third_party/libxml/chromium/xml_writer.cc
+index 51fce8ebeb1..7c58031fe2d 100644
+--- a/third_party/libxml/chromium/xml_writer.cc
++++ b/third_party/libxml/chromium/xml_writer.cc
+@@ -4,8 +4,9 @@
+
+ #include "third_party/libxml/chromium/xml_writer.h"
+
++#include
++
+ #include "third_party/libxml/chromium/libxml_utils.h"
+-#include "third_party/libxml/src/include/libxml/xmlwriter.h"
+
+ XmlWriter::XmlWriter() : writer_(nullptr), buffer_(nullptr) {}
+
diff --git a/network/web/chromium-browser/files/fix-missing-include.patch b/network/web/chromium-browser/files/fix-missing-include.patch
deleted file mode 100644
index 44b891389b..0000000000
--- a/network/web/chromium-browser/files/fix-missing-include.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-diff -Nru chromium-77.0.3865.93.orig/third_party/blink/renderer/modules/webgl/khr_parallel_shader_compile.cc chromium-77.0.3865.93/third_party/blink/renderer/modules/webgl/khr_parallel_shader_compile.cc
---- chromium-77.0.3865.93.orig/third_party/blink/renderer/modules/webgl/khr_parallel_shader_compile.cc 2019-09-20 01:18:30.000000000 +0300
-+++ chromium-77.0.3865.93/third_party/blink/renderer/modules/webgl/khr_parallel_shader_compile.cc 2019-09-23 03:44:32.589602845 +0300
-@@ -24,6 +24,7 @@
- */
-
- #include "third_party/blink/renderer/modules/webgl/khr_parallel_shader_compile.h"
-+#include "third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge.h"
-
- #include
-
-diff -Nru chromium-77.0.3865.93.orig/third_party/blink/renderer/modules/webgl/oes_element_index_uint.cc chromium-77.0.3865.93/third_party/blink/renderer/modules/webgl/oes_element_index_uint.cc
---- chromium-77.0.3865.93.orig/third_party/blink/renderer/modules/webgl/oes_element_index_uint.cc 2019-09-20 01:18:30.000000000 +0300
-+++ chromium-77.0.3865.93/third_party/blink/renderer/modules/webgl/oes_element_index_uint.cc 2019-09-22 21:07:19.163921146 +0300
-@@ -24,6 +24,7 @@
- */
-
- #include "third_party/blink/renderer/modules/webgl/oes_element_index_uint.h"
-+#include "third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge.h"
-
- namespace blink {
-
-diff -Nru chromium-77.0.3865.93.orig/third_party/blink/renderer/modules/vr/navigator_vr.cc chromium-77.0.3865.93/third_party/blink/renderer/modules/vr/navigator_vr.cc
---- chromium-77.0.3865.93.orig/third_party/blink/renderer/modules/vr/navigator_vr.cc 2019-09-20 01:18:30.000000000 +0300
-+++ chromium-77.0.3865.93/third_party/blink/renderer/modules/vr/navigator_vr.cc 2019-09-22 16:29:52.676841915 +0300
-@@ -18,6 +18,7 @@
- #include "third_party/blink/renderer/modules/xr/navigator_xr.h"
- #include "third_party/blink/renderer/platform/heap/heap.h"
- #include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
-+#include "third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge.h"
-
- namespace blink {
-
-diff -Nru chromium-77.0.3865.93.orig/third_party/blink/renderer/modules/vr/vr_controller.cc chromium-77.0.3865.93/third_party/blink/renderer/modules/vr/vr_controller.cc
---- chromium-77.0.3865.93.orig/third_party/blink/renderer/modules/vr/vr_controller.cc 2019-09-20 01:18:30.000000000 +0300
-+++ chromium-77.0.3865.93/third_party/blink/renderer/modules/vr/vr_controller.cc 2019-09-21 20:59:54.174954333 +0300
-@@ -12,6 +12,7 @@
- #include "third_party/blink/renderer/core/frame/local_frame.h"
- #include "third_party/blink/renderer/modules/vr/navigator_vr.h"
- #include "third_party/blink/renderer/platform/wtf/assertions.h"
-+#include "third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge.h"
-
- namespace blink {
-
-
diff --git a/network/web/chromium-browser/files/fix-shim-header-generation-when-unbundling-ICU.patch b/network/web/chromium-browser/files/fix-shim-header-generation-when-unbundling-ICU.patch
new file mode 100644
index 0000000000..04f1ecd3bc
--- /dev/null
+++ b/network/web/chromium-browser/files/fix-shim-header-generation-when-unbundling-ICU.patch
@@ -0,0 +1,50 @@
+From dcad5af090528018599277dc5d7e160fb6b2d68e Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann
+Date: Wed, 15 Jan 2020 20:26:40 +0000
+Subject: [PATCH] Fix shim header generation when unbundling ICU
+
+listformatter.h was moved from icuuc to icui18n
+
+Bug: 989153
+Change-Id: I9fcb56f6d5af7787f34ea99b737e2ed8fe741c84
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2000142
+Reviewed-by: Lei Zhang
+Commit-Queue: Lei Zhang
+Cr-Commit-Position: refs/heads/master@{#732114}
+---
+ AUTHORS | 1 +
+ build/linux/unbundle/icu.gn | 2 +-
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/AUTHORS b/AUTHORS
+index 7523e483aae..1618fddc633 100644
+--- a/AUTHORS
++++ b/AUTHORS
+@@ -891,6 +891,7 @@ Soren Dreijer
+ Sreerenj Balachandran
+ Srirama Chandra Sekhar Mogali
+ Staphany Park
++Stephan Hartmann
+ Stephen Searles
+ Steve Sanders
+ Steven Pennington
+diff --git a/build/linux/unbundle/icu.gn b/build/linux/unbundle/icu.gn
+index 923bd7f5ac3..e77bc43db87 100644
+--- a/build/linux/unbundle/icu.gn
++++ b/build/linux/unbundle/icu.gn
+@@ -92,6 +92,7 @@ shim_headers("icui18n_shim") {
+ "unicode/fpositer.h",
+ "unicode/gender.h",
+ "unicode/gregocal.h",
++ "unicode/listformatter.h",
+ "unicode/measfmt.h",
+ "unicode/measunit.h",
+ "unicode/measure.h",
+@@ -174,7 +175,6 @@ shim_headers("icuuc_shim") {
+ "unicode/icudataver.h",
+ "unicode/icuplug.h",
+ "unicode/idna.h",
+- "unicode/listformatter.h",
+ "unicode/localpointer.h",
+ "unicode/locdspnm.h",
+ "unicode/locid.h",
diff --git a/network/web/chromium-browser/files/fix-shutdown-crash-in-ProfileManager.patch b/network/web/chromium-browser/files/fix-shutdown-crash-in-ProfileManager.patch
deleted file mode 100644
index 01074eca53..0000000000
--- a/network/web/chromium-browser/files/fix-shutdown-crash-in-ProfileManager.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From e73aed9a5ef15102f29ac31b70290faf5c90f9fe Mon Sep 17 00:00:00 2001
-From: Evan Stade
-Date: Wed, 16 Oct 2019 16:01:32 +0000
-Subject: [PATCH] Fix shutdown crash in ProfileManager.
-
-OnProfileMarkedForPermanentDeletion should move from
-ProfileManagerObserver to ProfileObserver, which would also
-fix this bug. However, changing the order of members is the
-quickest and most cherry-pick-able way to avoid the crash.
-
-Bug: 1005244
-Change-Id: If2db68c846dd418cd02864b57b9b543687fa1e03
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1863518
-Auto-Submit: Evan Stade
-Reviewed-by: David Roger
-Commit-Queue: Evan Stade
-Cr-Commit-Position: refs/heads/master@{#706467}
----
- chrome/browser/profiles/profile_manager.h | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/chrome/browser/profiles/profile_manager.h b/chrome/browser/profiles/profile_manager.h
-index b60df76d59..7d02af7f8f 100644
---- a/chrome/browser/profiles/profile_manager.h
-+++ b/chrome/browser/profiles/profile_manager.h
-@@ -410,6 +410,10 @@ class ProfileManager : public content::NotificationObserver,
- const base::FilePath& profile_dir);
- #endif // !defined(OS_ANDROID)
-
-+ // Destroy after |profile_info_cache_| since Profile destruction may trigger
-+ // some observers to unregister themselves.
-+ base::ObserverList observers_;
-+
- // Object to cache various information about profiles. Contains information
- // about every profile which has been created for this instance of Chrome,
- // if it has not been explicitly deleted. It must be destroyed after
-@@ -451,8 +455,6 @@ class ProfileManager : public content::NotificationObserver,
- // Controls whether to initialize some services. Only disabled for testing.
- bool do_final_services_init_ = true;
-
-- base::ObserverList observers_;
--
- // TODO(chrome/browser/profiles/OWNERS): Usage of this in profile_manager.cc
- // should likely be turned into DCHECK_CURRENTLY_ON(BrowserThread::UI) for
- // consistency with surrounding code in the same file but that wasn't trivial
diff --git a/network/web/chromium-browser/files/fix-spammy-unique-font-matching-log.patch b/network/web/chromium-browser/files/fix-spammy-unique-font-matching-log.patch
deleted file mode 100644
index 9321a98a72..0000000000
--- a/network/web/chromium-browser/files/fix-spammy-unique-font-matching-log.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/content/child/child_process_sandbox_support_impl_linux.cc b/content/child/child_process_sandbox_support_impl_linux.cc
-index 0a57543eb5..fe2ee491a2 100644
---- a/content/child/child_process_sandbox_support_impl_linux.cc
-+++ b/content/child/child_process_sandbox_support_impl_linux.cc
-@@ -78,8 +78,6 @@ void WebSandboxSupportLinux::MatchFontByPostscriptNameOrFullFontName(
- std::string family_name;
- if (!font_loader_->MatchFontByPostscriptNameOrFullFontName(font_unique_name,
- &font_identity)) {
-- LOG(ERROR) << "FontService unique font name matching request did not "
-- "receive a response.";
- return;
- }
-
diff --git a/network/web/chromium-browser/files/fix-wrong-string-initialization-in-LinkedHashSet.patch b/network/web/chromium-browser/files/fix-wrong-string-initialization-in-LinkedHashSet.patch
deleted file mode 100644
index 0047c99f04..0000000000
--- a/network/web/chromium-browser/files/fix-wrong-string-initialization-in-LinkedHashSet.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-From 74138b9febd37eac0fc26b8efb110014a83a52c6 Mon Sep 17 00:00:00 2001
-From: Jeremy Roman
-Date: Wed, 7 Aug 2019 13:26:48 +0000
-Subject: [PATCH] WTF: Make LinkedHashSet understand values for which memset
- initialization would be bad.
-
-Includes a unit test which fails before, and uses this to fix FontCacheKeyTraits.
-
-Bug: 980025
-Change-Id: If41f97444c7fd37b9b95d6dadaf3da5689079e9e
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1739948
-Reviewed-by: Kentaro Hara
-Reviewed-by: Yutaka Hirano
-Commit-Queue: Jeremy Roman
-Cr-Commit-Position: refs/heads/master@{#684731}
----
- .../renderer/platform/fonts/font_cache_key.h | 4 ++
- .../renderer/platform/wtf/linked_hash_set.h | 10 ++++-
- .../platform/wtf/list_hash_set_test.cc | 45 +++++++++++++++++--
- 3 files changed, 55 insertions(+), 4 deletions(-)
-
-diff --git a/third_party/blink/renderer/platform/fonts/font_cache_key.h b/third_party/blink/renderer/platform/fonts/font_cache_key.h
-index 0efc8fb909..90063cb2ea 100644
---- a/third_party/blink/renderer/platform/fonts/font_cache_key.h
-+++ b/third_party/blink/renderer/platform/fonts/font_cache_key.h
-@@ -133,6 +133,10 @@ struct FontCacheKeyHash {
-
- struct FontCacheKeyTraits : WTF::SimpleClassHashTraits {
- STATIC_ONLY(FontCacheKeyTraits);
-+
-+ // std::string's empty state need not be zero in all implementations,
-+ // and it is held within FontFaceCreationParams.
-+ static const bool kEmptyValueIsZero = false;
- };
-
- } // namespace blink
-diff --git a/third_party/blink/renderer/platform/wtf/linked_hash_set.h b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
-index b35b6e95f1..77e524c084 100644
---- a/third_party/blink/renderer/platform/wtf/linked_hash_set.h
-+++ b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
-@@ -146,6 +146,11 @@ class LinkedHashSetNode : public LinkedHashSetNodeBase {
- LinkedHashSetNodeBase* next)
- : LinkedHashSetNodeBase(prev, next), value_(value) {}
-
-+ LinkedHashSetNode(ValueArg&& value,
-+ LinkedHashSetNodeBase* prev,
-+ LinkedHashSetNodeBase* next)
-+ : LinkedHashSetNodeBase(prev, next), value_(std::move(value)) {}
-+
- LinkedHashSetNode(LinkedHashSetNode&& other)
- : LinkedHashSetNodeBase(std::move(other)),
- value_(std::move(other.value_)) {}
-@@ -445,10 +450,13 @@ struct LinkedHashSetTraits
-
- // The slot is empty when the next_ field is zero so it's safe to zero
- // the backing.
-- static const bool kEmptyValueIsZero = true;
-+ static const bool kEmptyValueIsZero = ValueTraits::kEmptyValueIsZero;
-
- static const bool kHasIsEmptyValueFunction = true;
- static bool IsEmptyValue(const Node& node) { return !node.next_; }
-+ static Node EmptyValue() {
-+ return Node(ValueTraits::EmptyValue(), nullptr, nullptr);
-+ }
-
- static const int kDeletedValue = -1;
-
-diff --git a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
-index 4c3f8990b0..cd1be0089b 100644
---- a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
-+++ b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
-@@ -487,6 +487,7 @@ struct Simple {
- };
-
- struct Complicated {
-+ Complicated() : Complicated(0) {}
- Complicated(int value) : simple_(value) { objects_constructed_++; }
-
- Complicated(const Complicated& other) : simple_(other.simple_) {
-@@ -495,9 +496,6 @@ struct Complicated {
-
- Simple simple_;
- static int objects_constructed_;
--
-- private:
-- Complicated() = delete;
- };
-
- int Complicated::objects_constructed_ = 0;
-@@ -731,4 +729,45 @@ TYPED_TEST(ListOrLinkedHashSetMoveOnlyTest, MoveOnlyValue) {
-
- } // anonymous namespace
-
-+// A unit type which objects to its state being initialized wrong.
-+struct InvalidZeroValue {
-+ InvalidZeroValue() = default;
-+ InvalidZeroValue(WTF::HashTableDeletedValueType) : deleted_(true) {}
-+ ~InvalidZeroValue() { CHECK(ok_); }
-+ bool IsHashTableDeletedValue() const { return deleted_; }
-+
-+ bool ok_ = true;
-+ bool deleted_ = false;
-+};
-+
-+template <>
-+struct HashTraits : SimpleClassHashTraits {
-+ static const bool kEmptyValueIsZero = false;
-+};
-+
-+template <>
-+struct DefaultHash {
-+ struct Hash {
-+ static unsigned GetHash(const InvalidZeroValue&) { return 0; }
-+ static bool Equal(const InvalidZeroValue&, const InvalidZeroValue&) {
-+ return true;
-+ }
-+ };
-+};
-+
-+template
-+class ListOrLinkedHashSetInvalidZeroTest : public testing::Test {};
-+
-+using InvalidZeroValueSetTypes =
-+ testing::Types,
-+ ListHashSet,
-+ LinkedHashSet>;
-+TYPED_TEST_SUITE(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValueSetTypes);
-+
-+TYPED_TEST(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValue) {
-+ using Set = TypeParam;
-+ Set set;
-+ set.insert(InvalidZeroValue());
-+}
-+
- } // namespace WTF
diff --git a/network/web/chromium-browser/files/include-algorithm-to-use-std-lower_bound.patch b/network/web/chromium-browser/files/include-algorithm-to-use-std-lower_bound.patch
deleted file mode 100644
index dc376321ff..0000000000
--- a/network/web/chromium-browser/files/include-algorithm-to-use-std-lower_bound.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From f7c177d35242311ea7a2cf49a0980c61664f27ba Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz
-Date: Fri, 25 Oct 2019 15:07:09 +0000
-Subject: [PATCH] IWYU: include algorithm to use std::lower_bound in
- ui/gfx/font.cc
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Fix GCC build because of missing include:
-../../ui/gfx/font.cc: In function ‘gfx::Font::Weight gfx::FontWeightFromInt(int)’:
-../../ui/gfx/font.cc:114:8: error: no matching function for call to ‘lower_bound(const gfx::Font::Weight*, const gfx::Font::Weight*, int&, gfx::FontWeightFromInt(int)::)’
- });
- ^
-In file included from /usr/include/c++/8/bits/char_traits.h:39,
- from /usr/include/c++/8/string:40,
- from ../../ui/gfx/font.h:8,
- from ../../ui/gfx/font.cc:5:
-/usr/include/c++/8/bits/stl_algobase.h:984:5: note: candidate: ‘template _ForwardIterator std::lower_bound(_ForwardIterator, _ForwardIterator, const _Tp&)’
- lower_bound(_ForwardIterator __first, _ForwardIterator __last,
- ^~~~~~~~~~~
-/usr/include/c++/8/bits/stl_algobase.h:984:5: note: template argument deduction/substitution failed:
-../../ui/gfx/font.cc:114:8: note: candidate expects 3 arguments, 4 provided
- });
- ^
-
-Bug: 819294
-Change-Id: Ic59dcf3a06bdd54d1d426c08a61624873a0ff30c
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1879909
-Commit-Queue: Alexei Svitkine
-Reviewed-by: Alexei Svitkine
-Cr-Commit-Position: refs/heads/master@{#709472}
----
- ui/gfx/font.cc | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/ui/gfx/font.cc b/ui/gfx/font.cc
-index 21367fd7297..92b159e13d1 100644
---- a/ui/gfx/font.cc
-+++ b/ui/gfx/font.cc
-@@ -4,6 +4,8 @@
-
- #include "ui/gfx/font.h"
-
-+#include
-+
- #include "base/strings/utf_string_conversions.h"
- #include "build/build_config.h"
- #include "ui/gfx/platform_font.h"
diff --git a/network/web/chromium-browser/files/include-limits-in-web_time_range.cc.patch b/network/web/chromium-browser/files/include-limits-in-web_time_range.cc.patch
deleted file mode 100644
index 8ef9c77bcf..0000000000
--- a/network/web/chromium-browser/files/include-limits-in-web_time_range.cc.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 5baf7df7f4c5971dab552897eeef94b194650ce5 Mon Sep 17 00:00:00 2001
-From: Dave Tapuska
-Date: Mon, 12 Aug 2019 22:30:13 +0000
-Subject: [PATCH] Fix build failure due to missing include for
- std::numeric_limits usage.
-
-Some configurations fail to build, limits should have been included.
-
-BUG=992832
-
-Change-Id: I894ba0543bfcef101c93259e39a31d12ae6d035c
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1747981
-Commit-Queue: Dave Tapuska
-Reviewed-by: Mostyn Bramley-Moore
-Cr-Commit-Position: refs/heads/master@{#686214}
----
- third_party/blink/renderer/platform/exported/web_time_range.cc | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/third_party/blink/renderer/platform/exported/web_time_range.cc b/third_party/blink/renderer/platform/exported/web_time_range.cc
-index 384566a13e..68d83e14fe 100644
---- a/third_party/blink/renderer/platform/exported/web_time_range.cc
-+++ b/third_party/blink/renderer/platform/exported/web_time_range.cc
-@@ -31,6 +31,7 @@
- #include "third_party/blink/public/platform/web_time_range.h"
-
- #include
-+#include
-
- namespace blink {
-
diff --git a/network/web/chromium-browser/files/include-memory-in-one_euro_filter.h.patch b/network/web/chromium-browser/files/include-memory-in-one_euro_filter.h.patch
deleted file mode 100644
index d4a323f536..0000000000
--- a/network/web/chromium-browser/files/include-memory-in-one_euro_filter.h.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 8c747a9c14ed4905f60f6680e2e09e33ea34163e Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz
-Date: Fri, 26 Jul 2019 16:18:17 +0000
-Subject: [PATCH] IWYU: include in one_euro_filter.h as it uses
- std::unique_ptr
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Bug: 819294
-Change-Id: Ie1530f7046b0c8eb76e26adca530fa57c67ed876
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1720637
-Reviewed-by: Ella Ge
-Commit-Queue: José Dapena Paz
-Cr-Commit-Position: refs/heads/master@{#681321}
----
- third_party/one_euro_filter/src/one_euro_filter.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/third_party/one_euro_filter/src/one_euro_filter.h b/third_party/one_euro_filter/src/one_euro_filter.h
-index 7f8d15b62a..a8cd0ab9a2 100644
---- a/third_party/one_euro_filter/src/one_euro_filter.h
-+++ b/third_party/one_euro_filter/src/one_euro_filter.h
-@@ -1,6 +1,8 @@
- #ifndef ONE_EURO_ONE_EURO_FILTER_H_
- #define ONE_EURO_ONE_EURO_FILTER_H_
-
-+#include
-+
- #include "low_pass_filter.h"
-
- namespace one_euro_filter {
diff --git a/network/web/chromium-browser/files/launch_manager.h-uses-std-vector.patch b/network/web/chromium-browser/files/launch_manager.h-uses-std-vector.patch
deleted file mode 100644
index 72abe9b9ce..0000000000
--- a/network/web/chromium-browser/files/launch_manager.h-uses-std-vector.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 97eb905ba262382bc3583078761c68f4452aea71 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz
-Date: Fri, 25 Oct 2019 09:27:53 +0000
-Subject: [PATCH] IWYU: launch_manager.h uses std::vector
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Add #include for using std::vector. This fixes GCC build.
-
-./../chrome/browser/apps/launch_service/launch_manager.h:46:15: error: ‘vector’ in namespace ‘std’ does not name a template type
- static std::vector GetLaunchFilesFromCommandLine(
- ^~~~~~
-
-Bug: 819294
-Change-Id: I02ec3a2914a8fbe3aa0041017a0228f4b0ca1ec9
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1879289
-Reviewed-by: Alexey Baskakov
-Commit-Queue: José Dapena Paz
-Cr-Commit-Position: refs/heads/master@{#709411}
----
- chrome/browser/apps/launch_service/launch_manager.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/chrome/browser/apps/launch_service/launch_manager.h b/chrome/browser/apps/launch_service/launch_manager.h
-index 00aeb9d9c2a..76570ead0f9 100644
---- a/chrome/browser/apps/launch_service/launch_manager.h
-+++ b/chrome/browser/apps/launch_service/launch_manager.h
-@@ -6,6 +6,7 @@
- #define CHROME_BROWSER_APPS_LAUNCH_SERVICE_LAUNCH_MANAGER_H_
-
- #include
-+#include
-
- #include "base/macros.h"
-
diff --git a/network/web/chromium-browser/files/link-against-harfbuzz-subset.patch b/network/web/chromium-browser/files/link-against-harfbuzz-subset.patch
deleted file mode 100644
index 05731a55b2..0000000000
--- a/network/web/chromium-browser/files/link-against-harfbuzz-subset.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 27e25336b8316ff3ec4e464058682ed85801fd06 Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa
-Date: Mon, 29 Jul 2019 10:54:28 +0000
-Subject: [PATCH] Also link against libharfbuzz-subset when use_system_harfbuzz
- is true
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-When building HarfBuzz as part of Chromium, there is a single source set
-with all the files we need in the build.
-
-Upstream HarfBuzz, on the other hand, produces a few different libraries:
-harfbuzz, harfbuzz-icu and harfbuzz-subset. When |use_system_harfbuzz| is
-true, we were only looking for (and using) harfbuzz.pc with pkg-config even
-though we also use symbols from libharfbuzz-subset.so. This resulted in
-errors when linking:
-
- ld: obj/skia/skia/SkPDFSubsetFont.o: in function `SkPDFSubsetFont(sk_sp, SkPDFGlyphUse const&, SkPDF::Metadata::Subsetter, char const*, int)':
- SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x48a): undefined reference to `hb_subset_input_create_or_fail'
- ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x4af): undefined reference to `hb_subset_input_glyph_set'
- ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5d7): undefined reference to `hb_subset_input_set_retain_gids'
- ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5e4): undefined reference to `hb_subset_input_set_drop_hints'
- ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5f3): undefined reference to `hb_subset'
- ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x66f): undefined reference to `hb_subset_input_destroy'
-
-as reported in
-https://groups.google.com/a/chromium.org/d/msg/chromium-packagers/UyJsVJ5QqWo/jSv5z7-rEQAJ
-
-Change-Id: I997af075c7b7263cd7cc71a63db5b0f93bd1ab59
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1715288
-Auto-Submit: Raphael Kubo da Costa
-Commit-Queue: Dominik Röttsches
-Reviewed-by: Dominik Röttsches
-Cr-Commit-Position: refs/heads/master@{#681760}
----
- third_party/harfbuzz-ng/BUILD.gn | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/third_party/harfbuzz-ng/BUILD.gn b/third_party/harfbuzz-ng/BUILD.gn
-index 37d8e334c2..72013eb1db 100644
---- a/third_party/harfbuzz-ng/BUILD.gn
-+++ b/third_party/harfbuzz-ng/BUILD.gn
-@@ -16,7 +16,10 @@ if (use_system_harfbuzz) {
- "//third_party:freetype_harfbuzz",
- "//third_party/freetype:freetype_source",
- ]
-- packages = [ "harfbuzz" ]
-+ packages = [
-+ "harfbuzz",
-+ "harfbuzz-subset",
-+ ]
- }
- } else {
- config("harfbuzz_config") {
diff --git a/network/web/chromium-browser/files/move-RemoteTreeNode-declaration.patch b/network/web/chromium-browser/files/move-RemoteTreeNode-declaration.patch
new file mode 100644
index 0000000000..50fc78cdb4
--- /dev/null
+++ b/network/web/chromium-browser/files/move-RemoteTreeNode-declaration.patch
@@ -0,0 +1,237 @@
+From cdf3e81ff49b200213d67d65558f2919222b60ab Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa
+Date: Mon, 16 Dec 2019 11:39:11 +0000
+Subject: [PATCH] BookmarkModelMerger: Move RemoteTreeNode declaration to
+ header.
+
+This fixes the build with libstdc++ after commit 8f5dad93e58 ("Fix CHECK
+failure due to untracked local nodes"):
+
+/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/stl_pair.h:215:11: error: field has incomplete type 'sync_bookmarks::BookmarkModelMerger::RemoteTreeNode'
+ _T2 second; /// @c second is a copy of the second object
+ ^
+/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/ext/aligned_buffer.h:91:28: note: in instantiation of template class 'std::pair, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode>' requested here
+ : std::aligned_storage
+ ^
+/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/hashtable_policy.h:233:43: note: in instantiation of template class '__gnu_cxx::__aligned_buffer, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode> >' requested here
+ __gnu_cxx::__aligned_buffer<_Value> _M_storage;
+ ^
+/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/hashtable_policy.h:264:39: note: in instantiation of template class 'std::__detail::_Hash_node_value_base, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode> >' requested here
+ struct _Hash_node<_Value, true> : _Hash_node_value_base<_Value>
+ ^
+/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/hashtable_policy.h:2028:25: note: in instantiation of template class 'std::__detail::_Hash_node, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode>, true>' requested here
+ rebind_traits;
+ ^
+/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/hashtable.h:184:15: note: in instantiation of template class 'std::__detail::_Hashtable_alloc, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode>, true> > >
+' requested here
+ private __detail::_Hashtable_alloc<
+ ^
+/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/unordered_map.h:105:18: note: in instantiation of template class 'std::_Hashtable, std::pair, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode>, std::allocator, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode> >, std::__detail::_Select1st, std::equal_to >, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__deta
+il::_Hashtable_traits >' requested here
+ _Hashtable _M_h;
+ ^
+../../components/sync_bookmarks/bookmark_model_merger.h:146:22: note: in instantiation of template class 'std::unordered_map, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode, std::hash, std::equal_to >, std::allocator, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode> > >' requested here
+ const RemoteForest remote_forest_;
+ ^
+../../components/sync_bookmarks/bookmark_model_merger.h:53:9: note: forward declaration of 'sync_bookmarks::BookmarkModelMerger::RemoteTreeNode'
+ class RemoteTreeNode;
+ ^
+
+Essentially, the problem is that libstdc++'s std::unordered_map
+implementation requires both T and U to be fully declared. I raised the
+problem in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92770, and GCC's
+position is that we are relying on undefined behavior according to the C++
+standard (https://eel.is/c++draft/requirements#res.on.functions-2.5).
+
+Bug: 957519
+Change-Id: Ife7e435e516932a795bfbe05b2c910c3272878f0
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1960156
+Commit-Queue: Raphael Kubo da Costa
+Reviewed-by: Mikel Astiz
+Auto-Submit: Raphael Kubo da Costa
+Cr-Commit-Position: refs/heads/master@{#725070}
+---
+ .../sync_bookmarks/bookmark_model_merger.cc | 89 +++++++------------
+ .../sync_bookmarks/bookmark_model_merger.h | 48 +++++++++-
+ 2 files changed, 80 insertions(+), 57 deletions(-)
+
+diff --git a/components/sync_bookmarks/bookmark_model_merger.cc b/components/sync_bookmarks/bookmark_model_merger.cc
+index eae153eff95..579848ee664 100644
+--- a/components/sync_bookmarks/bookmark_model_merger.cc
++++ b/components/sync_bookmarks/bookmark_model_merger.cc
+@@ -5,7 +5,6 @@
+ #include "components/sync_bookmarks/bookmark_model_merger.h"
+
+ #include
+-#include
+ #include
+ #include
+ #include
+@@ -205,66 +204,44 @@ UpdatesPerParentId GroupValidUpdatesByParentId(
+
+ } // namespace
+
+-class BookmarkModelMerger::RemoteTreeNode final {
+- public:
+- // Constructs a tree given |update| as root and recursively all descendants by
+- // traversing |*updates_per_parent_id|. |update| and |updates_per_parent_id|
+- // must not be null. All updates |*updates_per_parent_id| must represent valid
+- // updates. Updates corresponding from descendant nodes are moved away from
+- // |*updates_per_parent_id|.
+- static RemoteTreeNode BuildTree(
+- std::unique_ptr update,
+- UpdatesPerParentId* updates_per_parent_id);
+-
+- ~RemoteTreeNode() = default;
+-
+- // Allow moves, useful during construction.
+- RemoteTreeNode(RemoteTreeNode&&) = default;
+- RemoteTreeNode& operator=(RemoteTreeNode&&) = default;
+-
+- const syncer::EntityData& entity() const { return *update_->entity; }
+- int64_t response_version() const { return update_->response_version; }
+-
+- // Direct children nodes, sorted by ascending unique position. These are
+- // guaranteed to be valid updates (e.g. IsValidBookmarkSpecifics()).
+- const std::vector& children() const { return children_; }
+-
+- // Recursively emplaces all GUIDs (this node and descendants) into
+- // |*guid_to_remote_node_map|, which must not be null.
+- void EmplaceSelfAndDescendantsByGUID(
+- std::unordered_map*
+- guid_to_remote_node_map) const {
+- DCHECK(guid_to_remote_node_map);
+-
+- const std::string& guid = entity().specifics.bookmark().guid();
+- if (!guid.empty()) {
+- DCHECK(base::IsValidGUID(guid));
+-
+- // Duplicate GUIDs have been sorted out before.
+- bool success = guid_to_remote_node_map->emplace(guid, this).second;
+- DCHECK(success);
+- }
++BookmarkModelMerger::RemoteTreeNode::RemoteTreeNode() = default;
+
+- for (const RemoteTreeNode& child : children_) {
+- child.EmplaceSelfAndDescendantsByGUID(guid_to_remote_node_map);
+- }
+- }
++BookmarkModelMerger::RemoteTreeNode::~RemoteTreeNode() = default;
++
++BookmarkModelMerger::RemoteTreeNode::RemoteTreeNode(
++ BookmarkModelMerger::RemoteTreeNode&&) = default;
++BookmarkModelMerger::RemoteTreeNode& BookmarkModelMerger::RemoteTreeNode::
++operator=(BookmarkModelMerger::RemoteTreeNode&&) = default;
++
++void BookmarkModelMerger::RemoteTreeNode::EmplaceSelfAndDescendantsByGUID(
++ std::unordered_map*
++ guid_to_remote_node_map) const {
++ DCHECK(guid_to_remote_node_map);
++
++ const std::string& guid = entity().specifics.bookmark().guid();
++ if (!guid.empty()) {
++ DCHECK(base::IsValidGUID(guid));
+
+- private:
+- static bool UniquePositionLessThan(const RemoteTreeNode& lhs,
+- const RemoteTreeNode& rhs) {
+- const syncer::UniquePosition a_pos =
+- syncer::UniquePosition::FromProto(lhs.entity().unique_position);
+- const syncer::UniquePosition b_pos =
+- syncer::UniquePosition::FromProto(rhs.entity().unique_position);
+- return a_pos.LessThan(b_pos);
++ // Duplicate GUIDs have been sorted out before.
++ bool success = guid_to_remote_node_map->emplace(guid, this).second;
++ DCHECK(success);
+ }
+
+- RemoteTreeNode() = default;
++ for (const RemoteTreeNode& child : children_) {
++ child.EmplaceSelfAndDescendantsByGUID(guid_to_remote_node_map);
++ }
++}
+
+- std::unique_ptr update_;
+- std::vector children_;
+-};
++// static
++bool BookmarkModelMerger::RemoteTreeNode::UniquePositionLessThan(
++ const RemoteTreeNode& lhs,
++ const RemoteTreeNode& rhs) {
++ const syncer::UniquePosition a_pos =
++ syncer::UniquePosition::FromProto(lhs.entity().unique_position);
++ const syncer::UniquePosition b_pos =
++ syncer::UniquePosition::FromProto(rhs.entity().unique_position);
++ return a_pos.LessThan(b_pos);
++}
+
+ // static
+ BookmarkModelMerger::RemoteTreeNode
+diff --git a/components/sync_bookmarks/bookmark_model_merger.h b/components/sync_bookmarks/bookmark_model_merger.h
+index 9b592000dc5..bf0783ecf8e 100644
+--- a/components/sync_bookmarks/bookmark_model_merger.h
++++ b/components/sync_bookmarks/bookmark_model_merger.h
+@@ -5,6 +5,7 @@
+ #ifndef COMPONENTS_SYNC_BOOKMARKS_BOOKMARK_MODEL_MERGER_H_
+ #define COMPONENTS_SYNC_BOOKMARKS_BOOKMARK_MODEL_MERGER_H_
+
++#include
+ #include
+ #include
+ #include
+@@ -50,7 +51,52 @@ class BookmarkModelMerger {
+
+ private:
+ // Internal representation of a remote tree, composed of nodes.
+- class RemoteTreeNode;
++ class RemoteTreeNode final {
++ private:
++ using UpdatesPerParentId =
++ std::unordered_map;
++
++ public:
++ // Constructs a tree given |update| as root and recursively all descendants
++ // by traversing |*updates_per_parent_id|. |update| and
++ // |updates_per_parent_id| must not be null. All updates
++ // |*updates_per_parent_id| must represent valid updates. Updates
++ // corresponding from descendant nodes are moved away from
++ // |*updates_per_parent_id|.
++ static RemoteTreeNode BuildTree(
++ std::unique_ptr update,
++ UpdatesPerParentId* updates_per_parent_id);
++
++ ~RemoteTreeNode();
++
++ // Allow moves, useful during construction.
++ RemoteTreeNode(RemoteTreeNode&&);
++ RemoteTreeNode& operator=(RemoteTreeNode&&);
++
++ const syncer::EntityData& entity() const { return *update_->entity; }
++ int64_t response_version() const { return update_->response_version; }
++
++ // Direct children nodes, sorted by ascending unique position. These are
++ // guaranteed to be valid updates (e.g. IsValidBookmarkSpecifics()).
++ const std::vector& children() const { return children_; }
++
++ // Recursively emplaces all GUIDs (this node and descendants) into
++ // |*guid_to_remote_node_map|, which must not be null.
++ void EmplaceSelfAndDescendantsByGUID(
++ std::unordered_map*
++ guid_to_remote_node_map) const;
++
++ private:
++ static bool UniquePositionLessThan(const RemoteTreeNode& lhs,
++ const RemoteTreeNode& rhs);
++
++ RemoteTreeNode();
++
++ std::unique_ptr update_;
++ std::vector children_;
++ };
+
+ // A forest composed of multiple trees where the root of each tree represents
+ // a permanent node, keyed by server-defined unique tag of the root.
diff --git a/network/web/chromium-browser/files/rebuild-Linux-frame-button-cache-when-activation.patch b/network/web/chromium-browser/files/rebuild-Linux-frame-button-cache-when-activation.patch
new file mode 100644
index 0000000000..40764b3ba7
--- /dev/null
+++ b/network/web/chromium-browser/files/rebuild-Linux-frame-button-cache-when-activation.patch
@@ -0,0 +1,62 @@
+From d10f885b9327399be9348b780967ebd6b7f2c4bc Mon Sep 17 00:00:00 2001
+From: Tom Anderson
+Date: Fri, 7 Feb 2020 22:44:54 +0000
+Subject: [PATCH] Rebuild Linux frame button cache when activation state
+ changes
+
+This fixes an issue where the frame buttons would always render in an
+inactive state on Linux (see repro steps in bug 1049258).
+
+Bug: 1049258
+R=sky
+CC=pkasting
+
+Change-Id: Ic5af33199003e1d1cdf6cedf506e32388ea11fa9
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2044538
+Auto-Submit: Thomas Anderson
+Commit-Queue: Scott Violet
+Reviewed-by: Scott Violet
+Cr-Commit-Position: refs/heads/master@{#739585}
+---
+ .../ui/views/frame/desktop_linux_browser_frame_view.cc | 6 +++---
+ .../desktop_aura/desktop_window_tree_host_platform.cc | 3 +++
+ 2 files changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc b/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc
+index 954e776057f..4f579955675 100644
+--- a/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc
++++ b/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc
+@@ -22,13 +22,13 @@ DesktopLinuxBrowserFrameView::DesktopLinuxBrowserFrameView(
+ : OpaqueBrowserFrameView(frame, browser_view, layout),
+ nav_button_provider_(std::move(nav_button_provider)) {}
+
+-DesktopLinuxBrowserFrameView::~DesktopLinuxBrowserFrameView() {}
++DesktopLinuxBrowserFrameView::~DesktopLinuxBrowserFrameView() = default;
+
+ void DesktopLinuxBrowserFrameView::Layout() {
+ // Calling MaybeUpdateCachedFrameButtonImages() from Layout() is sufficient to
+ // catch all cases that could update the appearance, since
+- // DesktopWindowTreeHostPlatform::OnWindowStateChanged() does a layout any
+- // time any properties change.
++ // DesktopWindowTreeHostPlatform::On{Window,Activation}StateChanged() does a
++ // layout any time the maximized and activation state changes, respectively.
+ MaybeUpdateCachedFrameButtonImages();
+ OpaqueBrowserFrameView::Layout();
+ }
+diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
+index 9c695d8e5b1..9662f19aa90 100644
+--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
++++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
+@@ -677,9 +677,12 @@ void DesktopWindowTreeHostPlatform::OnCloseRequest() {
+ }
+
+ void DesktopWindowTreeHostPlatform::OnActivationChanged(bool active) {
++ if (is_active_ == active)
++ return;
+ is_active_ = active;
+ aura::WindowTreeHostPlatform::OnActivationChanged(active);
+ desktop_native_widget_aura_->HandleActivationChanged(active);
++ ScheduleRelayout();
+ }
+
+ base::Optional
diff --git a/network/web/chromium-browser/files/remove-verbose-logging-in-local-unique-font-matching.patch b/network/web/chromium-browser/files/remove-verbose-logging-in-local-unique-font-matching.patch
new file mode 100644
index 0000000000..a882861810
--- /dev/null
+++ b/network/web/chromium-browser/files/remove-verbose-logging-in-local-unique-font-matching.patch
@@ -0,0 +1,33 @@
+From 8500a125e9fba8bb84d185542155747ee7157ff8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Dominik=20R=C3=B6ttsches?=
+Date: Tue, 28 Jan 2020 13:48:07 +0000
+Subject: [PATCH] Remove verbose logging in local unique font matching on Linux
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Fixed: 1005508
+Change-Id: I97f5340c6d1881798ba51effc4a9e5c07de12e52
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2023552
+Commit-Queue: Dominik Röttsches
+Commit-Queue: Kentaro Hara
+Auto-Submit: Dominik Röttsches
+Reviewed-by: Kentaro Hara
+Cr-Commit-Position: refs/heads/master@{#735854}
+---
+ content/child/child_process_sandbox_support_impl_linux.cc | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/content/child/child_process_sandbox_support_impl_linux.cc b/content/child/child_process_sandbox_support_impl_linux.cc
+index 693ead7f7a5..c97c8fa197b 100644
+--- a/content/child/child_process_sandbox_support_impl_linux.cc
++++ b/content/child/child_process_sandbox_support_impl_linux.cc
+@@ -76,8 +76,6 @@ bool WebSandboxSupportLinux::MatchFontByPostscriptNameOrFullFontName(
+ std::string family_name;
+ if (!font_loader_->MatchFontByPostscriptNameOrFullFontName(font_unique_name,
+ &font_identity)) {
+- LOG(ERROR) << "FontService unique font name matching request did not "
+- "receive a response.";
+ return false;
+ }
+
diff --git a/network/web/chromium-browser/files/rename-Relayout-in-DesktopWindowTreeHostPlatform.patch b/network/web/chromium-browser/files/rename-Relayout-in-DesktopWindowTreeHostPlatform.patch
new file mode 100644
index 0000000000..eda3cbdbaa
--- /dev/null
+++ b/network/web/chromium-browser/files/rename-Relayout-in-DesktopWindowTreeHostPlatform.patch
@@ -0,0 +1,64 @@
+From 5a2cd2409c7d65c019ad9f4595a4e85315857ac4 Mon Sep 17 00:00:00 2001
+From: Tom Anderson
+Date: Mon, 3 Feb 2020 23:18:46 +0000
+Subject: [PATCH] Rename Relayout() in DesktopWindowTreeHostPlatform to
+ ScheduleRelayout()
+
+R=sky
+
+Bug: None
+Change-Id: I680cafd25935e59a280e3b2baac754d3d5f13a35
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2036553
+Auto-Submit: Thomas Anderson
+Reviewed-by: Scott Violet
+Commit-Queue: Thomas Anderson
+Cr-Commit-Position: refs/heads/master@{#737974}
+---
+ .../desktop_aura/desktop_window_tree_host_platform.cc | 6 +++---
+ .../widget/desktop_aura/desktop_window_tree_host_platform.h | 2 +-
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
+index 6c00d49eb3f..9c695d8e5b1 100644
+--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
++++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
+@@ -556,7 +556,7 @@ void DesktopWindowTreeHostPlatform::SetFullscreen(bool fullscreen) {
+ DCHECK_EQ(fullscreen, IsFullscreen());
+
+ if (IsFullscreen() == fullscreen)
+- Relayout();
++ ScheduleRelayout();
+ // Else: the widget will be relaid out either when the window bounds change
+ // or when |platform_window|'s fullscreen state changes.
+ }
+@@ -669,7 +669,7 @@ void DesktopWindowTreeHostPlatform::OnWindowStateChanged(
+ // Now that we have different window properties, we may need to relayout the
+ // window. (The windows code doesn't need this because their window change is
+ // synchronous.)
+- Relayout();
++ ScheduleRelayout();
+ }
+
+ void DesktopWindowTreeHostPlatform::OnCloseRequest() {
+@@ -712,7 +712,7 @@ gfx::Rect DesktopWindowTreeHostPlatform::ToPixelRect(
+ return gfx::ToEnclosingRect(rect_in_pixels);
+ }
+
+-void DesktopWindowTreeHostPlatform::Relayout() {
++void DesktopWindowTreeHostPlatform::ScheduleRelayout() {
+ Widget* widget = native_widget_delegate_->AsWidget();
+ NonClientView* non_client_view = widget->non_client_view();
+ // non_client_view may be NULL, especially during creation.
+diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.h b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.h
+index 89beb8d2245..75a401e02a7 100644
+--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.h
++++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.h
+@@ -129,7 +129,7 @@ class VIEWS_EXPORT DesktopWindowTreeHostPlatform
+ gfx::Rect ToPixelRect(const gfx::Rect& rect_in_dip) const;
+
+ private:
+- void Relayout();
++ void ScheduleRelayout();
+
+ Widget* GetWidget();
+ const Widget* GetWidget() const;
diff --git a/network/web/chromium-browser/files/sync-enable-USSPasswords-by-default.patch b/network/web/chromium-browser/files/sync-enable-USSPasswords-by-default.patch
new file mode 100644
index 0000000000..7f3a7005a6
--- /dev/null
+++ b/network/web/chromium-browser/files/sync-enable-USSPasswords-by-default.patch
@@ -0,0 +1,28 @@
+From eb997db5527c01fd12c321a6abc52b7cff882e50 Mon Sep 17 00:00:00 2001
+From: Mohamed Amir Yosef
+Date: Thu, 9 Jan 2020 21:22:19 +0000
+Subject: [PATCH] [Sync] Enable USSPasswords by default
+
+Change-Id: I021cd952d7a2917a8fb7203cabdac612251193df
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1963804
+Auto-Submit: Mohamed Amir Yosef
+Reviewed-by: Mikel Astiz
+Commit-Queue: Mohamed Amir Yosef
+Cr-Commit-Position: refs/heads/master@{#729902}
+---
+ components/sync/driver/sync_driver_switches.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/components/sync/driver/sync_driver_switches.cc b/components/sync/driver/sync_driver_switches.cc
+index ddff8b91419..999384aa68a 100644
+--- a/components/sync/driver/sync_driver_switches.cc
++++ b/components/sync/driver/sync_driver_switches.cc
+@@ -55,7 +55,7 @@ const base::Feature kStopSyncInPausedState{"StopSyncInPausedState",
+
+ // Enable USS implementation of Passwords datatype.
+ const base::Feature kSyncUSSPasswords{"SyncUSSPasswords",
+- base::FEATURE_DISABLED_BY_DEFAULT};
++ base::FEATURE_ENABLED_BY_DEFAULT};
+
+ // Enable USS implementation of Nigori datatype.
+ const base::Feature kSyncUSSNigori{"SyncUSSNigori",
diff --git a/network/web/chromium-browser/files/vaapi-fix-wayland-init.patch b/network/web/chromium-browser/files/vaapi-fix-wayland-init.patch
new file mode 100644
index 0000000000..a07814969f
--- /dev/null
+++ b/network/web/chromium-browser/files/vaapi-fix-wayland-init.patch
@@ -0,0 +1,82 @@
+From 4a04af6bbd5b1a55e2e1a7c22f13f8571c2dd7ed Mon Sep 17 00:00:00 2001
+From: Julien Isorce
+Date: Fri, 24 Jan 2020 00:30:33 +0000
+Subject: [PATCH] Reland "Call PreSandboxStartup after GL initialization in GpuInit"
+
+This is a reland of d17c53b341adcfc9e2626162536a08c9f3e24017
+
+Original change's description:
+> Call PreSandboxStartup after GL initialization in GpuInit
+>
+> Fixes "vaInitialize failed: unknown libva error"
+> on Wayland with LIBVA_DRIVER_NAME=i965
+>
+> VaapiWrapper relies on the GL implementation to decide
+> which display to use. If the GL implementation is none,
+> then VaapiWrapper is likely to do the wrong guess resulting
+> in the above error.
+>
+> Bug: 1041229
+> Change-Id: I1255a032a5e14b3aaffe3026a886de7e6d9ff0d7
+> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2011640
+> Reviewed-by: Maggie Chen
+> Reviewed-by: Kenneth Russell
+> Commit-Queue: Julien Isorce
+> Cr-Commit-Position: refs/heads/master@{#733847}
+
+Bug: 1041229
+Change-Id: I8e268596a1e2a1b3da7d7e75b8943accc85dd2d7
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2013806
+Reviewed-by: Alexandre Courbot
+Reviewed-by: Maggie Chen
+Reviewed-by: Kenneth Russell
+Commit-Queue: Julien Isorce
+Cr-Commit-Position: refs/heads/master@{#734746}
+---
+
+diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc
+index 04883fc..4e63f7a 100644
+--- a/gpu/ipc/service/gpu_init.cc
++++ b/gpu/ipc/service/gpu_init.cc
+@@ -221,10 +221,16 @@
+ delayed_watchdog_enable = true;
+ #endif
+
++#if defined(OS_LINUX)
+ // PreSandbox is mainly for resource handling and not related to the GPU
+ // driver, it doesn't need the GPU watchdog. The loadLibrary may take long
+ // time that killing and restarting the GPU process will not help.
+- sandbox_helper_->PreSandboxStartup();
++ if (gpu_preferences_.gpu_sandbox_start_early) {
++ // The sandbox will be started earlier than usual (i.e. before GL) so
++ // execute the pre-sandbox steps now.
++ sandbox_helper_->PreSandboxStartup();
++ }
++#endif
+
+ // Start the GPU watchdog only after anything that is expected to be time
+ // consuming has completed, otherwise the process is liable to be aborted.
+@@ -320,6 +326,23 @@
+ }
+ }
+
++ // The ContentSandboxHelper is currently the only one implementation of
++ // gpu::GpuSandboxHelper and it has no dependency. Except on Linux where
++ // VaapiWrapper checks the GL implementation to determine which display
++ // to use. So call PreSandboxStartup after GL initialization. But make
++ // sure the watchdog is paused as loadLibrary may take a long time and
++ // restarting the GPU process will not help.
++ if (!attempted_startsandbox) {
++ if (watchdog_thread_)
++ watchdog_thread_->PauseWatchdog();
++
++ // The sandbox is not started yet.
++ sandbox_helper_->PreSandboxStartup();
++
++ if (watchdog_thread_)
++ watchdog_thread_->ResumeWatchdog();
++ }
++
+ bool gl_disabled = gl::GetGLImplementation() == gl::kGLImplementationDisabled;
+
+ // Compute passthrough decoder status before ComputeGpuFeatureInfo below.
diff --git a/network/web/chromium-browser/files/vaapi-fix.patch b/network/web/chromium-browser/files/vaapi-fix.patch
new file mode 100644
index 0000000000..b5372d1a25
--- /dev/null
+++ b/network/web/chromium-browser/files/vaapi-fix.patch
@@ -0,0 +1,74 @@
+--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
++++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
+@@ -641,6 +641,7 @@ void VaapiVideoDecodeAccelerator::AssignPictureBuffers(
+ // |vpp_vaapi_wrapper_| for VaapiPicture to DownloadFromSurface() the VA's
+ // internal decoded frame.
+ if (buffer_allocation_mode_ != BufferAllocationMode::kNone &&
++ buffer_allocation_mode_ != BufferAllocationMode::kWrapVdpau &&
+ !vpp_vaapi_wrapper_) {
+ vpp_vaapi_wrapper_ = VaapiWrapper::Create(
+ VaapiWrapper::kVideoProcess, VAProfileNone,
+@@ -665,7 +666,8 @@ void VaapiVideoDecodeAccelerator::AssignPictureBuffers(
+ PictureBuffer buffer = buffers[i];
+ buffer.set_size(requested_pic_size_);
+ std::unique_ptr picture = vaapi_picture_factory_->Create(
+- (buffer_allocation_mode_ == BufferAllocationMode::kNone)
++ ((buffer_allocation_mode_ == BufferAllocationMode::kNone) ||
++ (buffer_allocation_mode_ == BufferAllocationMode::kWrapVdpau))
+ ? vaapi_wrapper_
+ : vpp_vaapi_wrapper_,
+ make_context_current_cb_, bind_image_cb_, buffer);
+@@ -1093,6 +1095,12 @@ VaapiVideoDecodeAccelerator::GetSupportedProfiles() {
+
+ VaapiVideoDecodeAccelerator::BufferAllocationMode
+ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
++ // NVIDIA blobs use VDPAU
++ if (VaapiWrapper::GetImplementationType() == VAImplementation::kNVIDIAVDPAU) {
++ LOG(INFO) << "VA-API driver on VDPAU backend";
++ return BufferAllocationMode::kWrapVdpau;
++ }
++
+ // TODO(crbug.com/912295): Enable a better BufferAllocationMode for IMPORT
+ // |output_mode_| as well.
+ if (output_mode_ == VideoDecodeAccelerator::Config::OutputMode::IMPORT)
+@@ -1105,7 +1113,7 @@ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
+ // depends on the bitstream and sometimes it's not enough to cover the amount
+ // of frames needed by the client pipeline (see b/133733739).
+ // TODO(crbug.com/911754): Enable for VP9 Profile 2.
+- if (IsGeminiLakeOrLater() &&
++ if (false && IsGeminiLakeOrLater() &&
+ (profile_ == VP9PROFILE_PROFILE0 || profile_ == VP8PROFILE_ANY)) {
+ // Add one to the reference frames for the one being currently egressed, and
+ // an extra allocation for both |client_| and |decoder_|, see
+--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.h
++++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.h
+@@ -204,6 +204,7 @@ class MEDIA_GPU_EXPORT VaapiVideoDecodeAccelerator
+ // Using |client_|s provided PictureBuffers and as many internally
+ // allocated.
+ kNormal,
++ kWrapVdpau,
+ };
+
+ // Decides the concrete buffer allocation mode, depending on the hardware
+--- a/media/gpu/vaapi/vaapi_wrapper.cc
++++ b/media/gpu/vaapi/vaapi_wrapper.cc
+@@ -131,6 +131,9 @@ media::VAImplementation VendorStringToImplementationType(
+ } else if (base::StartsWith(va_vendor_string, "Intel iHD driver",
+ base::CompareCase::SENSITIVE)) {
+ return media::VAImplementation::kIntelIHD;
++ } else if (base::StartsWith(va_vendor_string, "Splitted-Desktop Systems VDPAU",
++ base::CompareCase::SENSITIVE)) {
++ return media::VAImplementation::kNVIDIAVDPAU;
+ }
+ return media::VAImplementation::kOther;
+ }
+--- a/media/gpu/vaapi/vaapi_wrapper.h
++++ b/media/gpu/vaapi/vaapi_wrapper.h
+@@ -79,6 +79,7 @@ enum class VAImplementation {
+ kIntelIHD,
+ kOther,
+ kInvalid,
++ kNVIDIAVDPAU,
+ };
+
+ // This class handles VA-API calls and ensures proper locking of VA-API calls
diff --git a/network/web/chromium-browser/pspec.xml b/network/web/chromium-browser/pspec.xml
index 5795f44fd1..a5e507a14a 100644
--- a/network/web/chromium-browser/pspec.xml
+++ b/network/web/chromium-browser/pspec.xml
@@ -13,7 +13,7 @@
app:gui
A WebKit powered web browser
Chromium-browser is an open-source web browser, powered by WebKit.
- http://gsdview.appspot.com/chromium-browser-official/chromium-79.0.3945.117.tar.xz
+ http://gsdview.appspot.com/chromium-browser-official/chromium-80.0.3987.106.tar.xz
alsa-lib-devel
at-spi2-atk-devel
@@ -95,9 +95,16 @@
chromium-skia-harmony.patch
chromium-widevine.patch
- include-algorithm-to-use-std-lower_bound.patch
- launch_manager.h-uses-std-vector.patch
- fix-spammy-unique-font-matching-log.patch
+ cros-search-service-Include-cmath-for-std-pow.patch
+ fix-building-with-unbundled-libxml.patch
+ fix-shim-header-generation-when-unbundling-ICU.patch
+ move-RemoteTreeNode-declaration.patch
+ rebuild-Linux-frame-button-cache-when-activation.patch
+ remove-verbose-logging-in-local-unique-font-matching.patch
+ rename-Relayout-in-DesktopWindowTreeHostPlatform.patch
+ sync-enable-USSPasswords-by-default.patch
+ vaapi-fix-wayland-init.patch
+ vaapi-fix.patch
@@ -169,11 +176,19 @@
master_preferences
+ chromium-drirc-disable-10bpc-color-configs.conf
chromium-browser.desktop
+
+ 2020-02-17
+ 80.0.3987.106
+ Version Bump.
+ Idris Kalp
+ idriskalp@gmail.com
+
2020-01-12
79.0.3945.117
diff --git a/network/web/firefox/pspec.xml b/network/web/firefox/pspec.xml
index 747b643ffa..3a607a58c3 100644
--- a/network/web/firefox/pspec.xml
+++ b/network/web/firefox/pspec.xml
@@ -28,7 +28,7 @@
yasm
nodejs
cbindgen
- icu4c-devel
+ icu4c-devel
zlib-devel
gtk3-devel
gtk2-devel
@@ -93,7 +93,7 @@
sqlite
iconcan
libXext
- icu4c
+ icu4c
libvpx
alsa-lib
diff --git a/programming/language/rust/pspec.xml b/programming/language/rust/pspec.xml
index 5bf0ab89e9..c82a109527 100755
--- a/programming/language/rust/pspec.xml
+++ b/programming/language/rust/pspec.xml
@@ -64,7 +64,7 @@
2020-02-17
1.41.0
- Version bump.
+ Version bump
Idris Kalp
idriskalp@gmail.com
diff --git a/programming/library/cbindgen/pspec.xml b/programming/library/cbindgen/pspec.xml
index e9f1afb2a1..667bdeaa88 100644
--- a/programming/library/cbindgen/pspec.xml
+++ b/programming/library/cbindgen/pspec.xml
@@ -14,7 +14,7 @@
Rust koduna C bağlamaları oluşturmak için bir araç
https://github.com/eqrion/cbindgen/archive/v0.13.1.tar.gz
- rust
+ rust
llvm
diff --git a/util/crypt/nss/pspec.xml b/util/crypt/nss/pspec.xml
index 5ab3549399..f3f9a23869 100644
--- a/util/crypt/nss/pspec.xml
+++ b/util/crypt/nss/pspec.xml
@@ -24,7 +24,7 @@
zlib-devel
sqlite-devel
- nspr-devel
+ nspr-devel
@@ -41,7 +41,7 @@
zlib
sqlite
- nspr
+ nspr
libgcc