The package rpms/chromium.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=f1db2ee0c....
Change:
-%ifarch aarch64
Thanks.
Full change:
============
commit 2fd941b6658c3665bb8c59a69756c14364203c05
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Thu Feb 27 13:56:52 2020 -0500
another c++17 fixup
diff --git a/chromium-80.0.3987.87-fix-for-c++17.patch
b/chromium-80.0.3987.87-fix-for-c++17.patch
index 8639e82..3a29df9 100644
--- a/chromium-80.0.3987.87-fix-for-c++17.patch
+++ b/chromium-80.0.3987.87-fix-for-c++17.patch
@@ -176,3 +176,15 @@ diff -up
chromium-80.0.3987.106/device/bluetooth/bluetooth_adapter.cc.c17fix chr
base::TimeDelta::FromSeconds(180);
} // namespace device
+diff -up
chromium-80.0.3987.122/content/browser/web_package/signed_exchange_prologue.cc.c17fix
chromium-80.0.3987.122/content/browser/web_package/signed_exchange_prologue.cc
+---
chromium-80.0.3987.122/content/browser/web_package/signed_exchange_prologue.cc.c17fix 2020-02-27
13:48:15.815885662 -0500
++++
chromium-80.0.3987.122/content/browser/web_package/signed_exchange_prologue.cc 2020-02-27
13:48:24.146711682 -0500
+@@ -30,7 +30,7 @@ constexpr size_t kMaximumCBORHeaderLengt
+
+ namespace signed_exchange_prologue {
+
+-constexpr size_t BeforeFallbackUrl::kEncodedSizeInBytes =
++const extern size_t BeforeFallbackUrl::kEncodedSizeInBytes =
+ sizeof(kSignedExchangeMagic) + kFallbackUrlLengthFieldSizeInBytes;
+
+ size_t Parse2BytesEncodedLength(base::span<const uint8_t> input) {
commit 53caa9a1fa32ee12371f7830a714eda8565929a0
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Thu Feb 27 11:59:27 2020 -0500
fix i686 vaapi permissive patch
diff --git a/chromium-80.0.3987.122-vaapi-i686-fpermissive.patch
b/chromium-80.0.3987.122-vaapi-i686-fpermissive.patch
new file mode 100644
index 0000000..ae55668
--- /dev/null
+++ b/chromium-80.0.3987.122-vaapi-i686-fpermissive.patch
@@ -0,0 +1,23 @@
+diff -up chromium-80.0.3987.122/media/gpu/vaapi/BUILD.gn.i686permissive
chromium-80.0.3987.122/media/gpu/vaapi/BUILD.gn
+--- chromium-80.0.3987.122/media/gpu/vaapi/BUILD.gn.i686permissive 2020-02-27
11:58:10.534875341 -0500
++++ chromium-80.0.3987.122/media/gpu/vaapi/BUILD.gn 2020-02-27 11:58:17.544736535 -0500
+@@ -13,6 +13,10 @@ import("//ui/ozone/ozone.gni")
+ assert(is_linux)
+ assert(use_vaapi)
+
++config("vaapi_permissive") {
++ cflags = [ "-fpermissive" ]
++}
++
+ generate_stubs("libva_stubs") {
+ extra_header = "va_stub_header.fragment"
+ sigs = [ "va.sigs" ]
+@@ -120,6 +124,8 @@ source_set("vaapi") {
+ ]
+ }
+
++ configs += [ ":vaapi_permissive" ]
++
+ if (use_x11) {
+ configs += [ "//build/config/linux:x11" ]
+ deps += [ "//ui/gfx/x" ]
diff --git a/chromium.spec b/chromium.spec
index 3396a61..2d6767b 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -261,7 +261,7 @@ Patch102: chromium-79.0.3945.56-el7-noexcept.patch
# Enable VAAPI support on Linux
# NOTE: This patch will never land upstream
Patch202: enable-vaapi.patch
-Patch203: chromium-75.0.3770.80-vaapi-i686-fpermissive.patch
+Patch203: chromium-80.0.3987.122-vaapi-i686-fpermissive.patch
# Fix compatibility with VA-API library (libva) version 1
Patch205: fixvaapionintel.patch
commit 4149dcea63f1a8ef4eddd6dd6641758979e2b391
Merge: f1db2ee da0f899
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Thu Feb 27 11:28:21 2020 -0500
merge fix
diff --cc chromium.spec
index ac782c0,ea26cba..3396a61
--- a/chromium.spec
+++ b/chromium.spec
@@@ -1725,15 -1697,9 +1725,18 @@@ getent group chrome-remote-desktop >/de
%changelog
+* Thu Feb 27 2020 Tom Callaway <spot(a)fedoraproject.org> - 80.0.3987.122-1
+- update to 80.0.3987.122
+
+* Mon Feb 17 2020 Tom Callaway <spot(a)fedoraproject.org> - 80.0.3987.106-1
+- update to 80.0.3987.106
+
+* Wed Feb 5 2020 Tom Callaway <spot(a)fedoraproject.org> - 80.0.3987.87-1
+- update to 80.0.3987.87
+
+ * Tue Jan 28 2020 Fedora Release Engineering <releng(a)fedoraproject.org> -
79.0.3945.130-2
+ - Rebuilt for
https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
+
* Fri Jan 17 2020 Tom Callaway <spot(a)fedoraproject.org> - 79.0.3945.130-1
- update to 79.0.3945.130
commit f1db2ee0c505063088fa40dfd6e7ae7f8aa022b9
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Thu Feb 27 11:27:21 2020 -0500
please work
diff --git a/chromium-77.0.3865.75-gcc-include-memory.patch
b/chromium-77.0.3865.75-gcc-include-memory.patch
index 93b4399..e1d4bdb 100644
--- a/chromium-77.0.3865.75-gcc-include-memory.patch
+++ b/chromium-77.0.3865.75-gcc-include-memory.patch
@@ -10,3 +10,25 @@ diff -up
chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h
namespace one_euro_filter {
namespace test {
class OneEuroFilterTest;
+diff -up
chromium-80.0.3987.106/third_party/webrtc/modules/audio_processing/aec3/reverb_model_estimator.h.missing-memory
chromium-80.0.3987.106/third_party/webrtc/modules/audio_processing/aec3/reverb_model_estimator.h
+---
chromium-80.0.3987.106/third_party/webrtc/modules/audio_processing/aec3/reverb_model_estimator.h.missing-memory 2020-02-21
12:25:17.206021379 -0500
++++
chromium-80.0.3987.106/third_party/webrtc/modules/audio_processing/aec3/reverb_model_estimator.h 2020-02-21
12:25:31.613759976 -0500
+@@ -12,6 +12,7 @@
+ #define MODULES_AUDIO_PROCESSING_AEC3_REVERB_MODEL_ESTIMATOR_H_
+
+ #include <array>
++#include <memory>
+ #include <vector>
+
+ #include "absl/types/optional.h"
+diff -up
chromium-80.0.3987.106/third_party/openscreen/src/util/trace_logging/scoped_trace_operations.h.memory
chromium-80.0.3987.106/third_party/openscreen/src/util/trace_logging/scoped_trace_operations.h
+---
chromium-80.0.3987.106/third_party/openscreen/src/util/trace_logging/scoped_trace_operations.h.memory 2020-02-24
11:35:38.283880819 -0500
++++
chromium-80.0.3987.106/third_party/openscreen/src/util/trace_logging/scoped_trace_operations.h 2020-02-24
11:35:48.366670897 -0500
+@@ -7,6 +7,7 @@
+
+ #include <atomic>
+ #include <cstring>
++#include <memory>
+ #include <stack>
+ #include <vector>
+
diff --git a/chromium-79.0.3945.130-gcc10-use-c++17-to-work-around-ugly-angle-code.patch
b/chromium-79.0.3945.130-gcc10-use-c++17-to-work-around-ugly-angle-code.patch
new file mode 100644
index 0000000..8401ea2
--- /dev/null
+++ b/chromium-79.0.3945.130-gcc10-use-c++17-to-work-around-ugly-angle-code.patch
@@ -0,0 +1,28 @@
+diff -up chromium-79.0.3945.130/third_party/angle/BUILD.gn.fixme
chromium-79.0.3945.130/third_party/angle/BUILD.gn
+--- chromium-79.0.3945.130/third_party/angle/BUILD.gn.fixme 2020-02-05 15:50:58.810040419
-0500
++++ chromium-79.0.3945.130/third_party/angle/BUILD.gn 2020-02-05 15:52:03.720848822
-0500
+@@ -228,6 +228,9 @@ config("angle_common_config") {
+ if (is_android) {
+ libs = [ "log" ]
+ }
++ if (!is_clang) {
++ cflags_cc = [ "-std=c++17" ]
++ }
+ }
+
+ if (is_win && !angle_is_winuwp) {
+diff -up chromium-79.0.3945.130/third_party/angle/src/common/PackedEnums.h.fixme
chromium-79.0.3945.130/third_party/angle/src/common/PackedEnums.h
+--- chromium-79.0.3945.130/third_party/angle/src/common/PackedEnums.h.fixme 2020-02-05
15:35:47.473867905 -0500
++++ chromium-79.0.3945.130/third_party/angle/src/common/PackedEnums.h 2020-02-05
15:36:30.362065300 -0500
+@@ -85,8 +85,9 @@ class PackedEnumMap
+ {
+ // This horrible const_cast pattern is necessary to work around a constexpr
limitation.
+ // See
https://stackoverflow.com/q/34199774/ . Note that it should be fixed
with C++17.
+- const_cast<T &>(const_cast<const Storage &>(
+- mPrivateData)[static_cast<UnderlyingType>(it->first)]) =
it->second;
++ // const_cast<T &>(const_cast<const Storage &>(
++ // mPrivateData)[static_cast<UnderlyingType>(it->first)]) =
it->second;
++ mPrivateData[static_cast<UnderlyingType>(it->first)] =
it->second;
+ }
+ }
+
diff --git a/chromium-80-gcc-abstract.patch b/chromium-80-gcc-abstract.patch
new file mode 100644
index 0000000..190a672
--- /dev/null
+++ b/chromium-80-gcc-abstract.patch
@@ -0,0 +1,41 @@
+In file included from ../../third_party/blink/renderer/platform/heap/persistent.h:18,
+ from ../../third_party/blink/public/platform/web_private_ptr.h:40,
+ from
../../third_party/blink/public/platform/web_media_stream_track.h:33,
+ from
../../third_party/blink/public/platform/web_media_stream_source.h:37,
+ from
../../third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.h:19,
+ from
../../third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.cc:5:
+../../third_party/blink/renderer/platform/wtf/cross_thread_copier.h: In instantiation of
'struct WTF::CrossThreadCopierPassThrough<webrtc::VideoTrackInterface>':
+../../third_party/blink/renderer/modules/peerconnection/adapters/web_rtc_cross_thread_copier.h:169:14:
required from here
+../../third_party/blink/renderer/platform/wtf/cross_thread_copier.h:80:15: error: invalid
abstract return type 'webrtc::VideoTrackInterface'
+ 80 | static Type Copy(const T& parameter) { return parameter; }
+ | ^~~~
+In file included from ../../third_party/webrtc/api/peer_connection_interface.h:88,
+ from
../../third_party/blink/public/platform/web_rtc_peer_connection_handler.h:39,
+ from
../../third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.h:20,
+ from
../../third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.cc:5:
+../../third_party/webrtc/api/media_stream_interface.h:174:18: note: because the
following virtual functions are pure within 'webrtc::VideoTrackInterface':
+ 174 | class RTC_EXPORT VideoTrackInterface
+ | ^~~~~~~~~~~~~~~~~~~
+../../third_party/webrtc/api/media_stream_interface.h:48:16: note: 'virtual void
webrtc::NotifierInterface::RegisterObserver(webrtc::ObserverInterface*)'
+ 48 | virtual void RegisterObserver(ObserverInterface* observer) = 0;
+ | ^~~~~~~~~~~~~~~~
+../../third_party/webrtc/api/media_stream_interface.h:49:16: note: 'virtual void
webrtc::NotifierInterface::UnregisterObserver(webrtc::ObserverInterface*)'
+ 49 | virtual void UnregisterObserver(ObserverInterface* observer) = 0;
+ | ^~~~~~~~~~~~~~~~~~
+
+diff --git
a/third_party/blink/renderer/modules/peerconnection/adapters/web_rtc_cross_thread_copier.h
b/third_party/blink/renderer/modules/peerconnection/adapters/web_rtc_cross_thread_copier.h
+index 54cb7d1..0d6c40f 100644
+---
a/third_party/blink/renderer/modules/peerconnection/adapters/web_rtc_cross_thread_copier.h
++++
b/third_party/blink/renderer/modules/peerconnection/adapters/web_rtc_cross_thread_copier.h
+@@ -165,8 +165,9 @@ struct CrossThreadCopier<blink::MediaStreamVideoTrack>
+ };
+
+ template <>
+-struct CrossThreadCopier<webrtc::VideoTrackInterface>
+- : public CrossThreadCopierPassThrough<webrtc::VideoTrackInterface> {
++struct CrossThreadCopier<rtc::scoped_refptr<webrtc::VideoTrackInterface>>
++ : public CrossThreadCopierPassThrough<
++ rtc::scoped_refptr<webrtc::VideoTrackInterface>> {
+ STATIC_ONLY(CrossThreadCopier);
+ };
+
diff --git a/chromium-80-gcc-blink.patch b/chromium-80-gcc-blink.patch
new file mode 100644
index 0000000..2118b46
--- /dev/null
+++ b/chromium-80-gcc-blink.patch
@@ -0,0 +1,45 @@
+../../third_party/blink/renderer/core/editing/commands/delete_selection_command.cc: In
member function 'void
blink::DeleteSelectionCommand::InitializePositionData(blink::EditingState*)':
+../../third_party/blink/renderer/core/editing/commands/delete_selection_command.cc:256:59:
error: no matching function for call to 'EnclosingNodeOfType(blink::Position&,
<unresolved overloaded function type>)'
+ 256 | EnclosingNodeOfType(start, &IsA<HTMLTableRowElement>));
+ | ^
+In file included from
../../third_party/blink/renderer/core/editing/commands/delete_selection_command.cc:34:
+../../third_party/blink/renderer/core/editing/editing_utilities.h:112:19: note:
candidate: 'blink::Node* blink::EnclosingNodeOfType(const Position&, bool
(*)(const blink::Node*), blink::EditingBoundaryCrossingRule)'
+ 112 | CORE_EXPORT Node* EnclosingNodeOfType(
+ | ^~~~~~~~~~~~~~~~~~~
+../../third_party/blink/renderer/core/editing/editing_utilities.h:114:12: note: no
known conversion for argument 2 from '<unresolved overloaded function type>'
to 'bool (*)(const blink::Node*)'
+ 114 | bool (*node_is_of_type)(const Node*),
+ | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+../../third_party/blink/renderer/core/editing/editing_utilities.h:116:19: note:
candidate: 'blink::Node* blink::EnclosingNodeOfType(const PositionInFlatTree&,
bool (*)(const blink::Node*), blink::EditingBoundaryCrossingRule)'
+ 116 | CORE_EXPORT Node* EnclosingNodeOfType(
+ | ^~~~~~~~~~~~~~~~~~~
+../../third_party/blink/renderer/core/editing/editing_utilities.h:117:5: note: no known
conversion for argument 1 from 'blink::Position' {aka
'blink::PositionTemplate<blink::EditingAlgorithm<blink::NodeTraversal>
>'} to 'const PositionInFlatTree&' {aka 'const
blink::PositionTemplate<blink::EditingAlgorithm<blink::FlatTreeTraversal>
>&'}
+ 117 | const PositionInFlatTree&,
+ | ^~~~~~~~~~~~~~~~~~~~~~~~~
+
+diff --git a/third_party/blink/renderer/core/editing/commands/delete_selection_command.cc
b/third_party/blink/renderer/core/editing/commands/delete_selection_command.cc
+index 6ff6906..dd531ae 100644
+--- a/third_party/blink/renderer/core/editing/commands/delete_selection_command.cc
++++ b/third_party/blink/renderer/core/editing/commands/delete_selection_command.cc
+@@ -224,6 +224,10 @@ static Position TrailingWhitespacePosition(const Position&
position,
+ return Position();
+ }
+
++static bool IsAHTMLTableRowElement(const Node* node) {
++ return IsA<HTMLTableRowElement>(node);
++}
++
+ void DeleteSelectionCommand::InitializePositionData(
+ EditingState* editing_state) {
+ DCHECK(!GetDocument().NeedsLayoutTreeUpdate());
+@@ -253,9 +257,9 @@ void DeleteSelectionCommand::InitializePositionData(
+ end_root_ = RootEditableElementOf(end);
+
+ start_table_row_ = To<HTMLTableRowElement>(
+- EnclosingNodeOfType(start, &IsA<HTMLTableRowElement>));
++ EnclosingNodeOfType(start, &IsAHTMLTableRowElement));
+ end_table_row_ = To<HTMLTableRowElement>(
+- EnclosingNodeOfType(end, &IsA<HTMLTableRowElement>));
++ EnclosingNodeOfType(end, &IsAHTMLTableRowElement));
+
+ // Don't move content out of a table cell.
+ // If the cell is non-editable, enclosingNodeOfType won't return it by
diff --git a/chromium-80-gcc-incomplete-type.patch
b/chromium-80-gcc-incomplete-type.patch
new file mode 100644
index 0000000..8d10620
--- /dev/null
+++ b/chromium-80-gcc-incomplete-type.patch
@@ -0,0 +1,229 @@
+From cdf3e81ff49b200213d67d65558f2919222b60ab Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+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<const
std::__cxx11::basic_string<char>,
sync_bookmarks::BookmarkModelMerger::RemoteTreeNode>' requested here
+ : std::aligned_storage<sizeof(_Tp), __alignof__(_Tp)>
+ ^
+/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<std::pair<const
std::__cxx11::basic_string<char>,
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<std::pair<const
std::__cxx11::basic_string<char>,
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<std::pair<const
std::__cxx11::basic_string<char>,
sync_bookmarks::BookmarkModelMerger::RemoteTreeNode>, true>' requested here
+ rebind_traits<typename __node_type::value_type>;
+ ^
+/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<std::allocator<std::__detail::_Hash_node<std::pair<const
std::__cxx11::basic_string<char>,
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::__cxx11::basic_string<char>, std::pair<const
std::__cxx11::basic_string<char>,
sync_bookmarks::BookmarkModelMerger::RemoteTreeNode>,
std::allocator<std::pair<con
+st std::__cxx11::basic_string<char>,
sync_bookmarks::BookmarkModelMerger::RemoteTreeNode> >, std::__detail::_Select1st,
std::equal_to<std::__cxx11::basic_string<char> >,
std::hash<std::string>, std::__detail::_Mod_range_hashing,
std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__deta
+il::_Hashtable_traits<true, false, true> >' requested here
+ _Hashtable _M_h;
+ ^
+../../components/sync_bookmarks/bookmark_model_merger.h:146:22: note: in instantiation of
template class 'std::unordered_map<std::__cxx11::basic_string<char>,
sync_bookmarks::BookmarkModelMerger::RemoteTreeNode, std::hash<std::string>,
std::equal_to<std::__cxx11::basic_string<char> >,
std::allocator<std::pair<con
+st std::__cxx11::basic_string<char>,
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<T, U>
+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 <raphael.kubo.da.costa(a)intel.com>
+Reviewed-by: Mikel Astiz <mastiz(a)chromium.org>
+Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Cr-Commit-Position: refs/heads/master@{#725070}
+---
+
+diff --git a/components/sync_bookmarks/bookmark_model_merger.cc
b/components/sync_bookmarks/bookmark_model_merger.cc
+index eae153ef..579848e 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 <algorithm>
+-#include <memory>
+ #include <set>
+ #include <string>
+ #include <utility>
+@@ -205,66 +204,44 @@
+
+ } // 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<syncer::UpdateResponseData> update,
+- UpdatesPerParentId* updates_per_parent_id);
++BookmarkModelMerger::RemoteTreeNode::RemoteTreeNode() = default;
+
+- ~RemoteTreeNode() = default;
++BookmarkModelMerger::RemoteTreeNode::~RemoteTreeNode() = default;
+
+- // Allow moves, useful during construction.
+- RemoteTreeNode(RemoteTreeNode&&) = default;
+- RemoteTreeNode& operator=(RemoteTreeNode&&) = default;
++BookmarkModelMerger::RemoteTreeNode::RemoteTreeNode(
++ BookmarkModelMerger::RemoteTreeNode&&) = default;
++BookmarkModelMerger::RemoteTreeNode& BookmarkModelMerger::RemoteTreeNode::
++operator=(BookmarkModelMerger::RemoteTreeNode&&) = default;
+
+- const syncer::EntityData& entity() const { return *update_->entity; }
+- int64_t response_version() const { return update_->response_version; }
++void BookmarkModelMerger::RemoteTreeNode::EmplaceSelfAndDescendantsByGUID(
++ std::unordered_map<std::string, const RemoteTreeNode*>*
++ guid_to_remote_node_map) const {
++ DCHECK(guid_to_remote_node_map);
+
+- // Direct children nodes, sorted by ascending unique position. These are
+- // guaranteed to be valid updates (e.g. IsValidBookmarkSpecifics()).
+- const std::vector<RemoteTreeNode>& children() const { return children_; }
++ const std::string& guid = entity().specifics.bookmark().guid();
++ if (!guid.empty()) {
++ DCHECK(base::IsValidGUID(guid));
+
+- // Recursively emplaces all GUIDs (this node and descendants) into
+- // |*guid_to_remote_node_map|, which must not be null.
+- void EmplaceSelfAndDescendantsByGUID(
+- std::unordered_map<std::string, const RemoteTreeNode*>*
+- 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);
+- }
+-
+- for (const RemoteTreeNode& child : children_) {
+- child.EmplaceSelfAndDescendantsByGUID(guid_to_remote_node_map);
+- }
++ // Duplicate GUIDs have been sorted out before.
++ bool success = guid_to_remote_node_map->emplace(guid, this).second;
++ DCHECK(success);
+ }
+
+- 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);
++ for (const RemoteTreeNode& child : children_) {
++ child.EmplaceSelfAndDescendantsByGUID(guid_to_remote_node_map);
+ }
++}
+
+- RemoteTreeNode() = default;
+-
+- std::unique_ptr<syncer::UpdateResponseData> update_;
+- std::vector<RemoteTreeNode> 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 9b59200..bf0783ec 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 <memory>
+ #include <string>
+ #include <unordered_map>
+ #include <vector>
+@@ -50,7 +51,52 @@
+
+ private:
+ // Internal representation of a remote tree, composed of nodes.
+- class RemoteTreeNode;
++ class RemoteTreeNode final {
++ private:
++ using UpdatesPerParentId =
++ std::unordered_map<base::StringPiece,
++ syncer::UpdateResponseDataList,
++ base::StringPieceHash>;
++
++ 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<syncer::UpdateResponseData> 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<RemoteTreeNode>& 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<std::string, const RemoteTreeNode*>*
++ guid_to_remote_node_map) const;
++
++ private:
++ static bool UniquePositionLessThan(const RemoteTreeNode& lhs,
++ const RemoteTreeNode& rhs);
++
++ RemoteTreeNode();
++
++ std::unique_ptr<syncer::UpdateResponseData> update_;
++ std::vector<RemoteTreeNode> 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/chromium-80-gcc-permissive.patch b/chromium-80-gcc-permissive.patch
new file mode 100644
index 0000000..c7aef49
--- /dev/null
+++ b/chromium-80-gcc-permissive.patch
@@ -0,0 +1,33 @@
+In file included from ../../media/base/media_log_properties.h:13,
+ from ../../media/base/media_log.h:23,
+ from ../../media/filters/frame_processor.h:15,
+ from ../../media/filters/frame_processor.cc:5:
+../../media/base/media_log_properties_helper.h:86:8: error: extra qualification not
allowed [-fpermissive]
+ 86 | struct internal::MediaLogPropertyTypeConverter<media::AudioDecoderConfig>
{
+ | ^~~~~~~~
+../../media/base/media_log_properties_helper.h:86:75: error: explicit specialization of
non-template 'media::internal::<unnamed struct>'
+ 86 | struct internal::MediaLogPropertyTypeConverter<media::AudioDecoderConfig>
{
+ | ^
+
+diff --git a/media/base/media_log_properties_helper.h
b/media/base/media_log_properties_helper.h
+index 95ff70a..549b003 100644
+--- a/media/base/media_log_properties_helper.h
++++ b/media/base/media_log_properties_helper.h
+@@ -83,7 +83,7 @@ struct MediaLogPropertyTypeConverter<std::vector<T>> {
+
+ // Specializer for sending AudioDecoderConfigs to the media tab in devtools.
+ template <>
+-struct internal::MediaLogPropertyTypeConverter<media::AudioDecoderConfig> {
++struct MediaLogPropertyTypeConverter<media::AudioDecoderConfig> {
+ static base::Value Convert(const AudioDecoderConfig& value) {
+ base::Value result(base::Value::Type::DICTIONARY);
+ result.SetStringKey("codec", GetCodecName(value.codec()));
+@@ -114,7 +114,7 @@ struct
internal::MediaLogPropertyTypeConverter<media::AudioDecoderConfig> {
+
+ // Specializer for sending VideoDecoderConfigs to the media tab in devtools.
+ template <>
+-struct internal::MediaLogPropertyTypeConverter<VideoDecoderConfig> {
++struct MediaLogPropertyTypeConverter<VideoDecoderConfig> {
+ static base::Value Convert(const VideoDecoderConfig& value) {
+ base::Value result(base::Value::Type::DICTIONARY);
+ result.SetStringKey("codec", GetCodecName(value.codec()));
diff --git a/chromium-80-gcc-quiche.patch b/chromium-80-gcc-quiche.patch
new file mode 100644
index 0000000..aa3d541
--- /dev/null
+++ b/chromium-80-gcc-quiche.patch
@@ -0,0 +1,30 @@
+From 00f47df999c9b19e80fdc01db0ae9ca1b6a12b3a Mon Sep 17 00:00:00 2001
+From: vasilvv <vasilvv(a)google.com>
+Date: Wed, 03 Apr 2019 13:58:53 -0700
+Subject: [PATCH] GCC: do not delete move constructor of QuicStreamSendBuffer
+
+QuicStreamSendBuffer constructor is implicitely required in the
+initialization of the vector of substreams in QuicCryptoStream.
+Though clang apparently ignores that, GCC fails to build.
+
+BUG=chromium:819294
+
+Originally submitted by Jos Dapena Paz <jose.dapena(a)lge.com> at
https://quiche-review.googlesource.com/c/quiche/+/2420
+
+PiperOrigin-RevId: 241800134
+Change-Id: I4e3c97d6e5895d85340e8c1b740e6196d9104066
+---
+
+diff --git a/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h
b/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h
+index e34514b..74e9d0d 100644
+--- a/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h
++++ b/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h
+@@ -62,7 +62,7 @@
+ public:
+ explicit QuicStreamSendBuffer(QuicBufferAllocator* allocator);
+ QuicStreamSendBuffer(const QuicStreamSendBuffer& other) = delete;
+- QuicStreamSendBuffer(QuicStreamSendBuffer&& other) = delete;
++ QuicStreamSendBuffer(QuicStreamSendBuffer&& other) = default;
+ ~QuicStreamSendBuffer();
+
+ // Save |data_length| of data starts at |iov_offset| in |iov| to send buffer.
diff --git a/chromium-80-include.patch b/chromium-80-include.patch
new file mode 100644
index 0000000..dd85de7
--- /dev/null
+++ b/chromium-80-include.patch
@@ -0,0 +1,33 @@
+From 8273f4d3130e06fd8b6bef87b07c936304b971d9 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Date: Tue, 10 Dec 2019 20:59:57 +0000
+Subject: [PATCH] [cros search service]: Include <cmath> 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 <raphael.kubo.da.costa(a)intel.com>
+Reviewed-by: Jia Meng <jiameng(a)chromium.org>
+Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Cr-Commit-Position: refs/heads/master@{#723499}
+---
+
+diff --git a/chrome/common/string_matching/fuzzy_tokenized_string_match.cc
b/chrome/common/string_matching/fuzzy_tokenized_string_match.cc
+index 8351fa7..884ef63 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 <algorithm>
++#include <cmath>
+ #include <iterator>
+
+ #include "base/i18n/case_conversion.h"
diff --git a/chromium-80.0.3987.106-missing-cstddef-header.patch
b/chromium-80.0.3987.106-missing-cstddef-header.patch
new file mode 100644
index 0000000..832cf02
--- /dev/null
+++ b/chromium-80.0.3987.106-missing-cstddef-header.patch
@@ -0,0 +1,44 @@
+diff -up
chromium-80.0.3987.106/chrome/browser/search/background/ntp_backgrounds.h.missing-cstddef
chromium-80.0.3987.106/chrome/browser/search/background/ntp_backgrounds.h
+---
chromium-80.0.3987.106/chrome/browser/search/background/ntp_backgrounds.h.missing-cstddef 2020-02-18
08:42:38.088243182 -0500
++++ chromium-80.0.3987.106/chrome/browser/search/background/ntp_backgrounds.h 2020-02-18
08:42:59.679782858 -0500
+@@ -6,6 +6,7 @@
+ #define CHROME_BROWSER_SEARCH_BACKGROUND_NTP_BACKGROUNDS_H_
+
+ #include <array>
++#include <cstddef>
+
+ class GURL;
+
+diff -up chromium-80.0.3987.106/media/cdm/supported_cdm_versions.h.missing-cstddef
chromium-80.0.3987.106/media/cdm/supported_cdm_versions.h
+--- chromium-80.0.3987.106/media/cdm/supported_cdm_versions.h.missing-cstddef 2020-02-17
16:26:51.661246220 -0500
++++ chromium-80.0.3987.106/media/cdm/supported_cdm_versions.h 2020-02-17
16:26:51.662246200 -0500
+@@ -6,6 +6,7 @@
+ #define MEDIA_CDM_SUPPORTED_CDM_VERSIONS_H_
+
+ #include <array>
++#include <cstddef>
+
+ #include "media/base/media_export.h"
+ #include "media/cdm/api/content_decryption_module.h"
+diff -up
chromium-80.0.3987.106/third_party/angle/include/platform/Platform.h.missing-cstddef
chromium-80.0.3987.106/third_party/angle/include/platform/Platform.h
+---
chromium-80.0.3987.106/third_party/angle/include/platform/Platform.h.missing-cstddef 2020-02-17
16:26:07.433130572 -0500
++++ chromium-80.0.3987.106/third_party/angle/include/platform/Platform.h 2020-02-17
16:26:07.434130552 -0500
+@@ -11,6 +11,7 @@
+
+ #include <stdint.h>
+ #include <array>
++#include <cstddef>
+
+ #define EGL_PLATFORM_ANGLE_PLATFORM_METHODS_ANGLEX 0x3482
+
+diff -up
chromium-80.0.3987.106/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h.missing-cstddef
chromium-80.0.3987.106/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
+---
chromium-80.0.3987.106/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h.missing-cstddef 2020-02-17
16:23:41.385050827 -0500
++++
chromium-80.0.3987.106/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h 2020-02-17
16:23:41.368051167 -0500
+@@ -12,6 +12,7 @@
+ #define MODULES_AUDIO_PROCESSING_AEC3_CLOCKDRIFT_DETECTOR_H_
+
+ #include <array>
++#include <cstddef>
+
+ namespace webrtc {
+
diff --git a/chromium-80.0.3987.106-missing-cstring-header.patch
b/chromium-80.0.3987.106-missing-cstring-header.patch
new file mode 100644
index 0000000..646dac6
--- /dev/null
+++ b/chromium-80.0.3987.106-missing-cstring-header.patch
@@ -0,0 +1,34 @@
+diff -up
chromium-80.0.3987.106/third_party/webrtc/audio/utility/channel_mixer.cc.missing-cstring
chromium-80.0.3987.106/third_party/webrtc/audio/utility/channel_mixer.cc
+---
chromium-80.0.3987.106/third_party/webrtc/audio/utility/channel_mixer.cc.missing-cstring 2020-02-21
13:19:47.077683105 -0500
++++ chromium-80.0.3987.106/third_party/webrtc/audio/utility/channel_mixer.cc 2020-02-21
13:19:47.077683105 -0500
+@@ -8,6 +8,8 @@
+ * be found in the AUTHORS file in the root of the source tree.
+ */
+
++#include <cstring>
++
+ #include "audio/utility/channel_mixer.h"
+
+ #include "audio/utility/channel_mixing_matrix.h"
+diff -up
chromium-80.0.3987.106/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc.missing-cstring
chromium-80.0.3987.106/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc
+---
chromium-80.0.3987.106/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc.missing-cstring 2020-02-21
13:19:48.171659179 -0500
++++
chromium-80.0.3987.106/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc 2020-02-21
13:19:48.174659113 -0500
+@@ -17,6 +17,7 @@
+ #include <spa/param/video/raw-utils.h>
+ #include <spa/support/type-map.h>
+
++#include <cstring>
+ #include <memory>
+ #include <utility>
+
+diff -up
chromium-80.0.3987.106/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc.missing-cstring
chromium-80.0.3987.106/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc
+---
chromium-80.0.3987.106/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc.missing-cstring 2020-02-21
13:30:09.609068057 -0500
++++
chromium-80.0.3987.106/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc 2020-02-21
13:30:23.791757875 -0500
+@@ -10,6 +10,7 @@
+
+ #include "modules/video_coding/utility/ivf_file_reader.h"
+
++#include <cstring>
+ #include <string>
+ #include <vector>
+
diff --git a/chromium-80.0.3987.87-fix-for-c++17.patch
b/chromium-80.0.3987.87-fix-for-c++17.patch
new file mode 100644
index 0000000..8639e82
--- /dev/null
+++ b/chromium-80.0.3987.87-fix-for-c++17.patch
@@ -0,0 +1,178 @@
+diff -up chromium-80.0.3987.87/base/containers/flat_tree.h.c17
chromium-80.0.3987.87/base/containers/flat_tree.h
+--- chromium-80.0.3987.87/base/containers/flat_tree.h.c17 2020-02-10 10:48:05.982500272
-0500
++++ chromium-80.0.3987.87/base/containers/flat_tree.h 2020-02-10 11:04:42.148507892
-0500
+@@ -776,7 +776,11 @@ template <class Key, class Value, class
+ template <typename K>
+ auto flat_tree<Key, Value, GetKeyFromValue, KeyCompare>::find(const K& key)
+ -> iterator {
++#ifdef __cpp_lib_as_const
++ return const_cast_it(std::as_const(*this).find(key));
++#else
+ return const_cast_it(as_const(*this).find(key));
++#endif
+ }
+
+ template <class Key, class Value, class GetKeyFromValue, class KeyCompare>
+@@ -799,7 +803,11 @@ template <class Key, class Value, class
+ template <typename K>
+ auto flat_tree<Key, Value, GetKeyFromValue, KeyCompare>::equal_range(
+ const K& key) -> std::pair<iterator, iterator> {
++#ifdef __cpp_lib_as_const
++ auto res = std::as_const(*this).equal_range(key);
++#else
+ auto res = as_const(*this).equal_range(key);
++#endif
+ return {const_cast_it(res.first), const_cast_it(res.second)};
+ }
+
+@@ -820,7 +828,11 @@ template <class Key, class Value, class
+ template <typename K>
+ auto flat_tree<Key, Value, GetKeyFromValue, KeyCompare>::lower_bound(
+ const K& key) -> iterator {
++#ifdef __cpp_lib_as_const
++ return const_cast_it(std::as_const(*this).lower_bound(key));
++#else
+ return const_cast_it(as_const(*this).lower_bound(key));
++#endif
+ }
+
+ template <class Key, class Value, class GetKeyFromValue, class KeyCompare>
+@@ -841,7 +853,11 @@ template <class Key, class Value, class
+ template <typename K>
+ auto flat_tree<Key, Value, GetKeyFromValue, KeyCompare>::upper_bound(
+ const K& key) -> iterator {
++#ifdef __cpp_lib_as_const
++ return const_cast_it(std::as_const(*this).upper_bound(key));
++#else
+ return const_cast_it(as_const(*this).upper_bound(key));
++#endif
+ }
+
+ template <class Key, class Value, class GetKeyFromValue, class KeyCompare>
+diff -up chromium-80.0.3987.106/third_party/webrtc/BUILD.gn.c17fix
chromium-80.0.3987.106/third_party/webrtc/BUILD.gn
+--- chromium-80.0.3987.106/third_party/webrtc/BUILD.gn.c17fix 2020-02-20
15:00:23.439563056 -0500
++++ chromium-80.0.3987.106/third_party/webrtc/BUILD.gn 2020-02-20 15:01:36.282355645
-0500
+@@ -237,6 +237,10 @@ config("common_config") {
+ cflags_objc = []
+ defines = []
+
++ if (!is_clang) {
++ cflags_cc += [ "-std=c++17" ]
++ }
++
+ if (rtc_enable_protobuf) {
+ defines += [ "WEBRTC_ENABLE_PROTOBUF=1" ]
+ } else {
+diff -up chromium-80.0.3987.106/third_party/abseil-cpp/BUILD.gn.c17fix
chromium-80.0.3987.106/third_party/abseil-cpp/BUILD.gn
+--- chromium-80.0.3987.106/third_party/abseil-cpp/BUILD.gn.c17fix 2020-02-21
15:12:14.413937754 -0500
++++ chromium-80.0.3987.106/third_party/abseil-cpp/BUILD.gn 2020-02-21 15:12:59.128967149
-0500
+@@ -46,6 +46,10 @@ config("absl_default_cflags_cc") {
+ cflags_cc += [ "-Wbitfield-enum-conversion" ]
+ }
+ }
++ if (!is_clang) {
++ cflags_cc = [ "-std=c++17" ]
++ }
++
+ if (is_win) {
+ cflags_cc += [
+ "/wd4005", # macro-redefinition
+diff -up chromium-80.0.3987.106/third_party/openscreen/src/tools/cddl/BUILD.gn.c17fix
chromium-80.0.3987.106/third_party/openscreen/src/tools/cddl/BUILD.gn
+---
chromium-80.0.3987.106/third_party/openscreen/src/tools/cddl/BUILD.gn.c17fix 2020-02-21
15:35:56.269180510 -0500
++++ chromium-80.0.3987.106/third_party/openscreen/src/tools/cddl/BUILD.gn 2020-02-21
15:42:12.718900742 -0500
+@@ -22,6 +22,10 @@ if (current_toolchain == host_toolchain)
+ "../../third_party/abseil",
+ ]
+
++ if (!is_clang) {
++ cflags_cc = [ "-std=c++17" ]
++ }
++
+ configs += [ "../../build:openscreen_include_dirs" ]
+ }
+ }
+diff -up chromium-80.0.3987.106/build/config/compiler/BUILD.gn.c17hack
chromium-80.0.3987.106/build/config/compiler/BUILD.gn
+--- chromium-80.0.3987.106/build/config/compiler/BUILD.gn.c17hack 2020-02-21
16:09:22.871980103 -0500
++++ chromium-80.0.3987.106/build/config/compiler/BUILD.gn 2020-02-21 16:09:28.606856106
-0500
+@@ -570,7 +570,7 @@ config("compiler") {
+ if (cxx11_override) {
+ cflags_cc += [ "-std=c++11" ]
+ } else {
+- cflags_cc += [ "-std=c++14" ]
++ cflags_cc += [ "-std=c++17" ]
+ }
+ }
+
+diff -up chromium-80.0.3987.106/third_party/openscreen/src/build/config/BUILD.gn.c17fix
chromium-80.0.3987.106/third_party/openscreen/src/build/config/BUILD.gn
+---
chromium-80.0.3987.106/third_party/openscreen/src/build/config/BUILD.gn.c17fix 2020-02-24
08:55:52.674819783 -0500
++++ chromium-80.0.3987.106/third_party/openscreen/src/build/config/BUILD.gn 2020-02-24
08:56:08.665466317 -0500
+@@ -67,8 +67,8 @@ config("openscreen_code") {
+ "-fno-strict-aliasing", # See
http://crbug.com/32204
+ ]
+
+- cflags_cc = [ "-std=c++14" ]
+- cflags_objcc = [ "-std=c++14" ]
++ cflags_cc = [ "-std=c++17" ]
++ cflags_objcc = [ "-std=c++17" ]
+
+ ldflags = [ "-Werror" ]
+
+diff -up chromium-80.0.3987.106/build/config/compiler/BUILD.gn.c17fix
chromium-80.0.3987.106/build/config/compiler/BUILD.gn
+--- chromium-80.0.3987.106/build/config/compiler/BUILD.gn.c17fix 2020-02-24
09:39:14.659536642 -0500
++++ chromium-80.0.3987.106/build/config/compiler/BUILD.gn 2020-02-24 09:39:23.098366657
-0500
+@@ -553,7 +553,7 @@ config("compiler") {
+ # Override Chromium's default for projects that wish to stay on C++11.
+ cflags_cc += [ "-std=${standard_prefix}++11" ]
+ } else {
+- cflags_cc += [ "-std=${standard_prefix}++14" ]
++ cflags_cc += [ "-std=${standard_prefix}++17" ]
+ }
+ } else if (!is_win && !is_nacl) {
+ if (target_os == "android") {
+diff -up
chromium-80.0.3987.106/third_party/openscreen/src/platform/api/task_runner.h.spot
chromium-80.0.3987.106/third_party/openscreen/src/platform/api/task_runner.h
+---
chromium-80.0.3987.106/third_party/openscreen/src/platform/api/task_runner.h.spot 2020-02-24
10:56:54.645126949 -0500
++++
chromium-80.0.3987.106/third_party/openscreen/src/platform/api/task_runner.h 2020-02-24
10:57:26.788407144 -0500
+@@ -22,7 +22,7 @@ namespace platform {
+ // that A shall run before B.
+ class TaskRunner {
+ public:
+- using Task = std::packaged_task<void() noexcept>;
++ using Task = std::packaged_task<void()>;
+
+ virtual ~TaskRunner() = default;
+
+diff -up chromium-80.0.3987.106/base/containers/circular_deque.h.c17fix
chromium-80.0.3987.106/base/containers/circular_deque.h
+--- chromium-80.0.3987.106/base/containers/circular_deque.h.c17fix 2020-02-24
14:42:14.163076162 -0500
++++ chromium-80.0.3987.106/base/containers/circular_deque.h 2020-02-24 14:43:38.393120439
-0500
+@@ -522,11 +522,19 @@ class circular_deque {
+ return buffer_[i - right_size];
+ }
+ value_type& at(size_type i) {
++#ifdef __cpp_lib_as_const
++ return const_cast<value_type&>(std::as_const(*this).at(i));
++#else
+ return const_cast<value_type&>(as_const(*this).at(i));
++#endif
+ }
+
+ value_type& operator[](size_type i) {
++#ifdef __cpp_lib_as_const
++ return const_cast<value_type&>(std::as_const(*this)[i]);
++#else
+ return const_cast<value_type&>(as_const(*this)[i]);
++#endif
+ }
+
+ const value_type& operator[](size_type i) const { return at(i); }
+diff -up chromium-80.0.3987.106/device/bluetooth/bluetooth_adapter.cc.c17fix
chromium-80.0.3987.106/device/bluetooth/bluetooth_adapter.cc
+--- chromium-80.0.3987.106/device/bluetooth/bluetooth_adapter.cc.c17fix 2020-02-24
16:09:58.810502665 -0500
++++ chromium-80.0.3987.106/device/bluetooth/bluetooth_adapter.cc 2020-02-24
16:10:35.484705843 -0500
+@@ -638,7 +638,7 @@ void BluetoothAdapter::RecordBluetoothDi
+ }
+
+ // static
+-constexpr base::TimeDelta BluetoothAdapter::timeoutSec =
++const extern base::TimeDelta BluetoothAdapter::timeoutSec =
+ base::TimeDelta::FromSeconds(180);
+
+ } // namespace device
diff --git a/chromium-80.0.3987.87-libpipewire-0.3.patch
b/chromium-80.0.3987.87-libpipewire-0.3.patch
new file mode 100644
index 0000000..6de6081
--- /dev/null
+++ b/chromium-80.0.3987.87-libpipewire-0.3.patch
@@ -0,0 +1,12 @@
+diff -up
chromium-80.0.3987.87/third_party/webrtc/modules/desktop_capture/BUILD.gn.pipewire03
chromium-80.0.3987.87/third_party/webrtc/modules/desktop_capture/BUILD.gn
+---
chromium-80.0.3987.87/third_party/webrtc/modules/desktop_capture/BUILD.gn.pipewire03 2020-02-11
13:12:07.006990450 -0500
++++ chromium-80.0.3987.87/third_party/webrtc/modules/desktop_capture/BUILD.gn 2020-02-11
13:12:16.294795251 -0500
+@@ -190,7 +190,7 @@ if (is_linux) {
+
+ if (rtc_link_pipewire) {
+ pkg_config("pipewire") {
+- packages = [ "libpipewire-0.2" ]
++ packages = [ "libpipewire-0.3", "libspa-0.2" ]
+ }
+ } else {
+ # When libpipewire is not directly linked, use stubs to allow for dlopening of
diff --git a/chromium-80.0.3987.87-missing-cstddef-header.patch
b/chromium-80.0.3987.87-missing-cstddef-header.patch
new file mode 100644
index 0000000..3ea2c22
--- /dev/null
+++ b/chromium-80.0.3987.87-missing-cstddef-header.patch
@@ -0,0 +1,22 @@
+diff -up chromium-80.0.3987.87/media/cdm/supported_cdm_versions.h.missing-cstddef
chromium-80.0.3987.87/media/cdm/supported_cdm_versions.h
+--- chromium-80.0.3987.87/media/cdm/supported_cdm_versions.h.missing-cstddef 2020-02-10
12:07:42.863507440 -0500
++++ chromium-80.0.3987.87/media/cdm/supported_cdm_versions.h 2020-02-10
12:07:53.807364746 -0500
+@@ -6,6 +6,7 @@
+ #define MEDIA_CDM_SUPPORTED_CDM_VERSIONS_H_
+
+ #include <array>
++#include <cstddef>
+
+ #include "media/base/media_export.h"
+ #include "media/cdm/api/content_decryption_module.h"
+diff -up
chromium-80.0.3987.87/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h.missing-cstddef
chromium-80.0.3987.87/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
+---
chromium-80.0.3987.87/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h.missing-cstddef 2020-02-10
11:11:11.733934021 -0500
++++
chromium-80.0.3987.87/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h 2020-02-10
11:11:11.724934173 -0500
+@@ -12,6 +12,7 @@
+ #define MODULES_AUDIO_PROCESSING_AEC3_CLOCKDRIFT_DETECTOR_H_
+
+ #include <array>
++#include <cstddef>
+
+ namespace webrtc {
+
diff --git a/chromium-80.0.3987.87-missing-cstdint-header.patch
b/chromium-80.0.3987.87-missing-cstdint-header.patch
new file mode 100644
index 0000000..e61042f
--- /dev/null
+++ b/chromium-80.0.3987.87-missing-cstdint-header.patch
@@ -0,0 +1,55 @@
+diff -up
chromium-80.0.3987.106/third_party/perfetto/include/perfetto/base/task_runner.h.missing-cstdint
chromium-80.0.3987.106/third_party/perfetto/include/perfetto/base/task_runner.h
+---
chromium-80.0.3987.106/third_party/perfetto/include/perfetto/base/task_runner.h.missing-cstdint 2020-02-21
12:29:43.393191877 -0500
++++
chromium-80.0.3987.106/third_party/perfetto/include/perfetto/base/task_runner.h 2020-02-21
12:29:43.393191877 -0500
+@@ -17,6 +17,7 @@
+ #ifndef INCLUDE_PERFETTO_BASE_TASK_RUNNER_H_
+ #define INCLUDE_PERFETTO_BASE_TASK_RUNNER_H_
+
++#include <cstdint>
+ #include <functional>
+
+ #include "perfetto/base/export.h"
+diff -up
chromium-80.0.3987.106/third_party/webrtc/call/rtx_receive_stream.h.missing-cstdint
chromium-80.0.3987.106/third_party/webrtc/call/rtx_receive_stream.h
+---
chromium-80.0.3987.106/third_party/webrtc/call/rtx_receive_stream.h.missing-cstdint 2020-02-21
12:30:30.739332871 -0500
++++ chromium-80.0.3987.106/third_party/webrtc/call/rtx_receive_stream.h 2020-02-21
12:30:30.747332725 -0500
+@@ -11,6 +11,7 @@
+ #ifndef CALL_RTX_RECEIVE_STREAM_H_
+ #define CALL_RTX_RECEIVE_STREAM_H_
+
++#include <cstdint>
+ #include <map>
+
+ #include "call/rtp_packet_sink_interface.h"
+diff -up
chromium-80.0.3987.106/third_party/webrtc/common_video/h264/pps_parser.h.missing-cstdint
chromium-80.0.3987.106/third_party/webrtc/common_video/h264/pps_parser.h
+---
chromium-80.0.3987.106/third_party/webrtc/common_video/h264/pps_parser.h.missing-cstdint 2020-02-21
12:30:31.564317903 -0500
++++ chromium-80.0.3987.106/third_party/webrtc/common_video/h264/pps_parser.h 2020-02-21
12:30:31.561317957 -0500
+@@ -11,6 +11,7 @@
+ #ifndef COMMON_VIDEO_H264_PPS_PARSER_H_
+ #define COMMON_VIDEO_H264_PPS_PARSER_H_
+
++#include <cstdint>
+ #include "absl/types/optional.h"
+
+ namespace rtc {
+diff -up
chromium-80.0.3987.106/third_party/webrtc/common_video/h264/sps_parser.h.missing-cstdint
chromium-80.0.3987.106/third_party/webrtc/common_video/h264/sps_parser.h
+---
chromium-80.0.3987.106/third_party/webrtc/common_video/h264/sps_parser.h.missing-cstdint 2020-02-21
12:30:31.565317885 -0500
++++ chromium-80.0.3987.106/third_party/webrtc/common_video/h264/sps_parser.h 2020-02-21
12:30:31.565317885 -0500
+@@ -11,6 +11,7 @@
+ #ifndef COMMON_VIDEO_H264_SPS_PARSER_H_
+ #define COMMON_VIDEO_H264_SPS_PARSER_H_
+
++#include <cstdint>
+ #include "absl/types/optional.h"
+
+ namespace rtc {
+diff -up
chromium-80.0.3987.106/third_party/webrtc/modules/include/module_common_types_public.h.missing-cstdint
chromium-80.0.3987.106/third_party/webrtc/modules/include/module_common_types_public.h
+---
chromium-80.0.3987.106/third_party/webrtc/modules/include/module_common_types_public.h.missing-cstdint 2020-02-21
12:52:16.946512744 -0500
++++
chromium-80.0.3987.106/third_party/webrtc/modules/include/module_common_types_public.h 2020-02-21
12:52:26.220312608 -0500
+@@ -11,6 +11,7 @@
+ #ifndef MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_
+ #define MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_
+
++#include <cstdint>
+ #include <limits>
+
+ #include "absl/types/optional.h"
diff --git a/chromium-80.0.3987.87-missing-string-header.patch
b/chromium-80.0.3987.87-missing-string-header.patch
new file mode 100644
index 0000000..6bb4c7d
--- /dev/null
+++ b/chromium-80.0.3987.87-missing-string-header.patch
@@ -0,0 +1,11 @@
+diff -up
chromium-80.0.3987.87/base/trace_event/trace_event_memory_overhead.h.missing-string
chromium-80.0.3987.87/base/trace_event/trace_event_memory_overhead.h
+---
chromium-80.0.3987.87/base/trace_event/trace_event_memory_overhead.h.missing-string 2020-02-06
16:47:15.707676509 -0500
++++ chromium-80.0.3987.87/base/trace_event/trace_event_memory_overhead.h 2020-02-06
16:47:23.782504337 -0500
+@@ -8,6 +8,7 @@
+ #include <stddef.h>
+ #include <stdint.h>
+
++#include <string>
+ #include <unordered_map>
+
+ #include "base/base_export.h"
diff --git a/chromium-browser.sh b/chromium-browser.sh
index 97607b9..d76aabe 100755
--- a/chromium-browser.sh
+++ b/chromium-browser.sh
@@ -39,6 +39,9 @@ export CHROME_VERSION_EXTRA="Built from source for
@@BUILD_TARGET@@"
# We don't want bug-buddy intercepting our crashes.
http://crbug.com/24120
export GNOME_DISABLE_CRASH_DIALOG=SET_BY_GOOGLE_CHROME
+# Disable allow_rgb_configs to fix odd color and vaapi issues with Mesa
+export allow_rgb10_configs=false
+
CHROMIUM_DISTRO_FLAGS=" --enable-plugins \
--enable-extensions \
--enable-user-scripts \
diff --git a/chromium.spec b/chromium.spec
index 6f4a439..ac782c0 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -9,18 +9,16 @@
export NINJA_STATUS="[%2:%f/%t] " ; \
../depot_tools/ninja -C '%1' -vvv '%2'
-# This is faster when it works, but it doesn't always.
-%ifarch aarch64
+
+# This was faster when it worked, but it didn't always.
+# As of chromium 80, it is no longer supported. RIP.
%global use_jumbo 0
-%else
-%global use_jumbo 1
-%endif
# We usually want this.
%global build_headless 1
# We'd like to always have this on.
-%global use_vaapi 0
+%global use_vaapi 1
# If we build with shared on, then chrome-remote-desktop depends on chromium libs.
# If we build with shared off, then users cannot swap out libffmpeg (and i686 gets a lot
harder to build)
@@ -71,9 +69,9 @@
%global __provides_exclude_from
%{chromium_path}/.*\\.so|%{chromium_path}/lib/.*\\.so|%{chromium_path}/lib/.*\\.so.*
%if 0%{?rhel} == 7
-%global privlibs
libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura_extra|libaura|libauthenticator_test_mojo_bindings_shared|libbase_i18n|libbase|libbindings_base|libbindings|libblink_common|libblink_controller|libblink_core|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_features|libblink_modules|libblink_mojom_broadcastchannel_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcbor|libcc_animation|libcc_base|libcc_debug|libcc_mojo_embedder|libcc_paint|libcc|libcertificate_matching|libchrome_features|libchromium_sqlite3|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcolor_utils|libcommon|libcompositor|libcontent_common_mojo_bindings_shared|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom_shared|libcontent_service_mojom|libcontent_settings_features|libcontent|libcrash_key_lib|libcrcrypto|libdbus|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevices|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevice_vr_mojo_bindings|libdevice_vr|libdevice_vr_test_mojo_bindings_blink|libdevice_vr_test_mojo_bindings_shared|libdevice_vr_test_mojo_bindings|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libEGL|libembedder|libembedder_switches|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents|libevents_x|libextras|libffmpeg|libfido|libfingerprint|libfreetype_harfbuzz|libgamepad_mojom_blink|libgamepad_mojom_shared|libgamepad_mojom|libgamepad_shared_typemap_traits|libgcm|libgeometry_skia|libgeometry|libgesture_detection|libgfx_ipc_buffer_types|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_ipc|libgfx|libgfx_switches|libgfx_x11|libgin|libgles2_implementation|libgles2|libgles2_utils|libGLESv2|libgl_init|libgl_in_process_context|libgl_wrapper|libgpu_ipc_service|libgpu|libgtkui|libheadless_non_renderer|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc_mojom_shared|libipc_mojom|libipc|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|liblearning_common|liblearning_impl|libleveldatabase|libleveldb_proto|libmanager|libmedia_blink|libmedia_gpu|libmedia_learning_mojo_impl|libmedia_message_center|libmedia_mojo_services|libmedia_session_base_cpp|libmedia_session_cpp|libmedia|libmedia_webrtc|libmemory_instrumentation|libmenu|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|libmirclient.so.9|libmirroring_service|libmojo_base_lib|libmojo_base_mojom_blink|libmojo_base_mojom_shared|libmojo_base_mojom|libmojo_base_shared_typemap_traits|libmojo_core_embedder_internal|libmojo_core_embedder|libmojo_core_ports|libmojo_cpp_platform|libmojom_core_shared|libmojom_mhtml_load_result_shared|libmojom_modules_shared|libmojo_mojom_bindings_shared|libmojo_mojom_bindings|libmojom_platform_shared|libmojo_public_system_cpp|libmojo_public_system|libmpris|libnative_theme|libnet|libnet_with_v8|libnetwork_cpp_base|libnetwork_cpp|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libparsers|libpdfium|libperfetto|libperformace_manager_public_mojom_blink|libperformace_manager_public_mojom_shared|libperformace_manager_public_mojom|libplatform|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libproperties|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libresource_coordinator_public_mojom|libsandbox_services|libsandbox|libscheduling_metrics|libseccomp_bpf|libservice_manager_cpp|libservice_manager_cpp_types|libservice_manager_mojom_blink|libservice_manager_mojom_constants_blink|libservice_manager_mojom_constants_shared|libservice_manager_mojom_constants|libservice_manager_mojom_shared|libservice_manager_mojom|libservice_manager_mojom_traits|libservice|libsessions|libshared_memory_support|libshared_with_blink|libshell_dialogs|libskia|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtab_count_metrics|libthread_linux|libtracing_cpp|libtracing_mojom_shared|libtracing_mojom|libtracing|libui_accessibility_ax_mojom_blink|libui_accessibility_ax_mojom_shared|libui_accessibility_ax_mojom|libui_base_clipboard|libui_base_clipboard_types|libui_base_features|libui_base_idle|libui_base_ime_init|libui_base_ime_linux|libui_base_ime|libui_base_ime_types|libui_base|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|liburl_ipc|liburl_matcher|liburl|libusb_shared|libuser_manager|libuser_prefs|libv8_libbase|libv8_libplatform|libv8|libviews|libviz_common|libviz_resource_format_utils|libviz_vulkan_context_provider|libVkICD_mock_icd|libvk_swiftshader|libvr_base|libvr_common|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libvulkan_ycbcr_info|libweb_bluetooth_mojo_bindings_shared|libwebdata_common|libweb_dialogs|libweb_feature_mojo_bindings_mojom_blink|libweb_feature_mojo_bindings_mojom_shared|libweb_feature_mojo_bindings_mojom|libwebgpu|libwebview|libwm_public|libwm|libwtf|libx11_events_platform|libx11_window|libzygote|libfontconfig
+%global privlibs
libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura|libaura_extra|libauthenticator_test_mojo_bindings_shared|libbase|libbase_i18n|libbindings|libbindings_base|libblink_common|libblink_controller|libblink_core|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_features|libblink_modules|libblink_mojom_broadcastchannel_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcbor|libcc|libcc_animation|libcc_base|libcc_debug|libcc_ipc|libcc_mojo_embedder|libcc_paint|libcertificate_matching|libcert_verifier|libchrome_features|libchromium_sqlite3|libclearkeycdm|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcolor_utils|libcommon|libcompositor|libcontent|libcontent_common_mojo_bindings_shared|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom|libcontent_service_mojom_shared|libcontent_settings_features|libcrash_key_lib|libcrcrypto|libcrdtp|libdbus|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevices|libdevice_vr|libdevice_vr_mojo_bindings|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevice_vr_test_mojo_bindings|libdevice_vr_test_mojo_bindings_blink|libdevice_vr_test_mojo_bindings_shared|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libdom_storage_mojom|libdom_storage_mojom_shared|libEGL|libEGL|libembedder|libembedder_switches|libevents|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents_x|libextras|libffmpeg|libfido|libfingerprint|libfreetype_harfbuzz|libgamepad_mojom|libgamepad_mojom_blink|libgamepad_mojom_shared|libgamepad_shared_typemap_traits|libgcm|libgeometry|libgeometry_skia|libgesture_detection|libgfx|libgfx_ipc|libgfx_ipc_buffer_types|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_switches|libgfx_x11|libgin|libgles2|libgles2_implementation|libgles2_utils|libGLESv2|libGLESv2|libgl_init|libgl_in_process_context|libgl_wrapper|libgpu|libgpu_ipc_service|libgtkui|libheadless_non_renderer|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc|libipc_mojom|libipc_mojom_shared|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|liblearning_common|liblearning_impl|libleveldatabase|libleveldb_proto|libmanager|libmedia|libmedia_blink|libmedia_gpu|libmedia_learning_mojo_impl|libmedia_message_center|libmedia_mojo_services|libmedia_session_base_cpp|libmedia_session_cpp|libmedia_webrtc|libmemory_instrumentation|libmenu|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|libmirroring_service|libmojo_base_lib|libmojo_base_mojom|libmojo_base_mojom_blink|libmojo_base_mojom_shared|libmojo_base_shared_typemap_traits|libmojo_core_embedder|libmojo_core_embedder_internal|libmojo_core_ports|libmojo_cpp_platform|libmojom_core_shared|libmojom_mhtml_load_result_shared|libmojom_modules_shared|libmojo_mojom_bindings|libmojo_mojom_bindings_shared|libmojom_platform_shared|libmojo_public_system|libmojo_public_system_cpp|libnative_theme|libnet|libnetwork_cpp|libnetwork_cpp_base|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libparsers|libpdfium|libperfetto|libperformace_manager_public_mojom|libperformace_manager_public_mojom_blink|libperformace_manager_public_mojom_shared|libplatform|libplatform_window|libplatform_window_common|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libproperties|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_public_mojom|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libsandbox|libsandbox_services|libscheduling_metrics|libseccomp_bpf|libsecurity_state_features|libservice|libservice_manager_cpp|libservice_manager_cpp_types|libservice_manager_mojom|libservice_manager_mojom_blink|libservice_manager_mojom_constants|libservice_manager_mojom_constants_blink|libservice_manager_mojom_constants_shared|libservice_manager_mojom_shared|libservice_manager_mojom_traits|libservice_provider|libsessions|libshared_memory_support|libshared_with_blink|libshell_dialogs|libskia|libskia_shared_typemap_traits|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstorage_service_public|libstub_window|libsuid_sandbox_client|libsurface|libsystem_media_controls|libtab_count_metrics|libthread_linux|libtracing|libtracing_cpp|libtracing_mojom|libtracing_mojom_shared|libui_accessibility_ax_mojom|libui_accessibility_ax_mojom_blink|libui_accessibility_ax_mojom_shared|libui_base|libui_base_clipboard|libui_base_clipboard_types|libui_base_features|libui_base_idle|libui_base_ime|libui_base_ime_init|libui_base_ime_linux|libui_base_ime_types|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|liburl|liburl_ipc|liburl_matcher|libusb_shared|libuser_manager|libuser_prefs|libv8|libv8_libbase|libv8_libplatform|libviews|libviz_common|libviz_resource_format_utils|libviz_vulkan_context_provider|libVkICD_mock_icd|libvk_swiftshader|libvr_base|libvr_common|libvulkan_info|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libvulkan_ycbcr_info|libweb_bluetooth_mojo_bindings_shared|libwebdata_common|libweb_dialogs|libweb_feature_mojo_bindings_mojom|libweb_feature_mojo_bindings_mojom_blink|libweb_feature_mojo_bindings_mojom_shared|libwebgpu|libweb_modal|libwebrtc_component|libwebview|libwm|libwm_public|libwtf|libwtf_support|libx11_events_platform|libx11_window|libzygote|libfontconfig
%else
-%global privlibs
libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura_extra|libaura|libauthenticator_test_mojo_bindings_shared|libbase_i18n|libbase|libbindings_base|libbindings|libblink_common|libblink_controller|libblink_core|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_features|libblink_modules|libblink_mojom_broadcastchannel_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcbor|libcc_animation|libcc_base|libcc_debug|libcc_mojo_embedder|libcc_paint|libcc|libcertificate_matching|libchrome_features|libchromium_sqlite3|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcolor_utils|libcommon|libcompositor|libcontent_common_mojo_bindings_shared|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom_shared|libcontent_service_mojom|libcontent_settings_features|libcontent|libcrash_key_lib|libcrcrypto|libdbus|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevices|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevice_vr_mojo_bindings|libdevice_vr|libdevice_vr_test_mojo_bindings_blink|libdevice_vr_test_mojo_bindings_shared|libdevice_vr_test_mojo_bindings|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libEGL|libembedder|libembedder_switches|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents|libevents_x|libextras|libffmpeg|libfido|libfingerprint|libfreetype_harfbuzz|libgamepad_mojom_blink|libgamepad_mojom_shared|libgamepad_mojom|libgamepad_shared_typemap_traits|libgcm|libgeometry_skia|libgeometry|libgesture_detection|libgfx_ipc_buffer_types|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_ipc|libgfx|libgfx_switches|libgfx_x11|libgin|libgles2_implementation|libgles2|libgles2_utils|libGLESv2|libgl_init|libgl_in_process_context|libgl_wrapper|libgpu_ipc_service|libgpu|libgtkui|libheadless_non_renderer|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc_mojom_shared|libipc_mojom|libipc|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|liblearning_common|liblearning_impl|libleveldatabase|libleveldb_proto|libmanager|libmedia_blink|libmedia_gpu|libmedia_learning_mojo_impl|libmedia_message_center|libmedia_mojo_services|libmedia_session_base_cpp|libmedia_session_cpp|libmedia|libmedia_webrtc|libmemory_instrumentation|libmenu|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|libmirclient.so.9|libmirroring_service|libmojo_base_lib|libmojo_base_mojom_blink|libmojo_base_mojom_shared|libmojo_base_mojom|libmojo_base_shared_typemap_traits|libmojo_core_embedder_internal|libmojo_core_embedder|libmojo_core_ports|libmojo_cpp_platform|libmojom_core_shared|libmojom_mhtml_load_result_shared|libmojom_modules_shared|libmojo_mojom_bindings_shared|libmojo_mojom_bindings|libmojom_platform_shared|libmojo_public_system_cpp|libmojo_public_system|libmpris|libnative_theme|libnet|libnet_with_v8|libnetwork_cpp_base|libnetwork_cpp|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libparsers|libpdfium|libperfetto|libperformace_manager_public_mojom_blink|libperformace_manager_public_mojom_shared|libperformace_manager_public_mojom|libplatform|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libproperties|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libresource_coordinator_public_mojom|libsandbox_services|libsandbox|libscheduling_metrics|libseccomp_bpf|libservice_manager_cpp|libservice_manager_cpp_types|libservice_manager_mojom_blink|libservice_manager_mojom_constants_blink|libservice_manager_mojom_constants_shared|libservice_manager_mojom_constants|libservice_manager_mojom_shared|libservice_manager_mojom|libservice_manager_mojom_traits|libservice|libsessions|libshared_memory_support|libshared_with_blink|libshell_dialogs|libskia|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtab_count_metrics|libthread_linux|libtracing_cpp|libtracing_mojom_shared|libtracing_mojom|libtracing|libui_accessibility_ax_mojom_blink|libui_accessibility_ax_mojom_shared|libui_accessibility_ax_mojom|libui_base_clipboard|libui_base_clipboard_types|libui_base_features|libui_base_idle|libui_base_ime_init|libui_base_ime_linux|libui_base_ime|libui_base_ime_types|libui_base|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|liburl_ipc|liburl_matcher|liburl|libusb_shared|libuser_manager|libuser_prefs|libv8_libbase|libv8_libplatform|libv8|libviews|libviz_common|libviz_resource_format_utils|libviz_vulkan_context_provider|libVkICD_mock_icd|libvk_swiftshader|libvr_base|libvr_common|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libvulkan_ycbcr_info|libweb_bluetooth_mojo_bindings_shared|libwebdata_common|libweb_dialogs|libweb_feature_mojo_bindings_mojom_blink|libweb_feature_mojo_bindings_mojom_shared|libweb_feature_mojo_bindings_mojom|libwebgpu|libwebview|libwm_public|libwm|libwtf|libx11_events_platform|libx11_window|libzygote
+%global privlibs
libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura|libaura_extra|libauthenticator_test_mojo_bindings_shared|libbase|libbase_i18n|libbindings|libbindings_base|libblink_common|libblink_controller|libblink_core|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_features|libblink_modules|libblink_mojom_broadcastchannel_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcbor|libcc|libcc_animation|libcc_base|libcc_debug|libcc_ipc|libcc_mojo_embedder|libcc_paint|libcertificate_matching|libcert_verifier|libchrome_features|libchromium_sqlite3|libclearkeycdm|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcolor_utils|libcommon|libcompositor|libcontent|libcontent_common_mojo_bindings_shared|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom|libcontent_service_mojom_shared|libcontent_settings_features|libcrash_key_lib|libcrcrypto|libcrdtp|libdbus|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevices|libdevice_vr|libdevice_vr_mojo_bindings|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevice_vr_test_mojo_bindings|libdevice_vr_test_mojo_bindings_blink|libdevice_vr_test_mojo_bindings_shared|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libdom_storage_mojom|libdom_storage_mojom_shared|libEGL|libEGL|libembedder|libembedder_switches|libevents|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents_x|libextras|libffmpeg|libfido|libfingerprint|libfreetype_harfbuzz|libgamepad_mojom|libgamepad_mojom_blink|libgamepad_mojom_shared|libgamepad_shared_typemap_traits|libgcm|libgeometry|libgeometry_skia|libgesture_detection|libgfx|libgfx_ipc|libgfx_ipc_buffer_types|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_switches|libgfx_x11|libgin|libgles2|libgles2_implementation|libgles2_utils|libGLESv2|libGLESv2|libgl_init|libgl_in_process_context|libgl_wrapper|libgpu|libgpu_ipc_service|libgtkui|libheadless_non_renderer|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc|libipc_mojom|libipc_mojom_shared|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|liblearning_common|liblearning_impl|libleveldatabase|libleveldb_proto|libmanager|libmedia|libmedia_blink|libmedia_gpu|libmedia_learning_mojo_impl|libmedia_message_center|libmedia_mojo_services|libmedia_session_base_cpp|libmedia_session_cpp|libmedia_webrtc|libmemory_instrumentation|libmenu|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|libmirroring_service|libmojo_base_lib|libmojo_base_mojom|libmojo_base_mojom_blink|libmojo_base_mojom_shared|libmojo_base_shared_typemap_traits|libmojo_core_embedder|libmojo_core_embedder_internal|libmojo_core_ports|libmojo_cpp_platform|libmojom_core_shared|libmojom_mhtml_load_result_shared|libmojom_modules_shared|libmojo_mojom_bindings|libmojo_mojom_bindings_shared|libmojom_platform_shared|libmojo_public_system|libmojo_public_system_cpp|libnative_theme|libnet|libnetwork_cpp|libnetwork_cpp_base|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libparsers|libpdfium|libperfetto|libperformace_manager_public_mojom|libperformace_manager_public_mojom_blink|libperformace_manager_public_mojom_shared|libplatform|libplatform_window|libplatform_window_common|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libproperties|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_public_mojom|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libsandbox|libsandbox_services|libscheduling_metrics|libseccomp_bpf|libsecurity_state_features|libservice|libservice_manager_cpp|libservice_manager_cpp_types|libservice_manager_mojom|libservice_manager_mojom_blink|libservice_manager_mojom_constants|libservice_manager_mojom_constants_blink|libservice_manager_mojom_constants_shared|libservice_manager_mojom_shared|libservice_manager_mojom_traits|libservice_provider|libsessions|libshared_memory_support|libshared_with_blink|libshell_dialogs|libskia|libskia_shared_typemap_traits|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstorage_service_public|libstub_window|libsuid_sandbox_client|libsurface|libsystem_media_controls|libtab_count_metrics|libthread_linux|libtracing|libtracing_cpp|libtracing_mojom|libtracing_mojom_shared|libui_accessibility_ax_mojom|libui_accessibility_ax_mojom_blink|libui_accessibility_ax_mojom_shared|libui_base|libui_base_clipboard|libui_base_clipboard_types|libui_base_features|libui_base_idle|libui_base_ime|libui_base_ime_init|libui_base_ime_linux|libui_base_ime_types|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|liburl|liburl_ipc|liburl_matcher|libusb_shared|libuser_manager|libuser_prefs|libv8|libv8_libbase|libv8_libplatform|libviews|libviz_common|libviz_resource_format_utils|libviz_vulkan_context_provider|libVkICD_mock_icd|libvk_swiftshader|libvr_base|libvr_common|libvulkan_info|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libvulkan_ycbcr_info|libweb_bluetooth_mojo_bindings_shared|libwebdata_common|libweb_dialogs|libweb_feature_mojo_bindings_mojom|libweb_feature_mojo_bindings_mojom_blink|libweb_feature_mojo_bindings_mojom_shared|libwebgpu|libweb_modal|libwebrtc_component|libwebview|libwm|libwm_public|libwtf|libwtf_support|libx11_events_platform|libx11_window|libzygote
%endif
%global __requires_exclude ^(%{privlibs})\\.so*
@@ -153,14 +151,14 @@ BuildRequires: libicu-devel >= 5.4
%global chromoting_client_id %nil
%endif
-%global majorversion 79
+%global majorversion 80
%if %{freeworld}
Name: chromium%{chromium_channel}%{nsuffix}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3945.130
+Version: %{majorversion}.0.3987.122
Release: 1%{?dist}
%if %{?freeworld}
%if %{?shared}
@@ -220,22 +218,39 @@ Patch54: chromium-77.0.3865.75-gcc-include-memory.patch
#
https://chromium.googlesource.com/chromium/src/+/6b633c4b14850df376d5cec5...
#
https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
Patch55: chromium-79.0.3945.56-base-gcc-no-alignas.patch
-#
https://chromium.googlesource.com/chromium/src/+/af77dc4014ead3d898fdc8a7...
-Patch56: chromium-79-gcc-ambiguous-nodestructor.patch
#
https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
Patch57: chromium-78-protobuf-export.patch
-#
https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files...
-Patch58: chromium-79-include.patch
#
https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files...
Patch59: chromium-77-clang.patch
-#
https://chromium.googlesource.com/chromium/src.git/+/54407b422a9cbf775a68...
-Patch60: chromium-79.0.3945.56-glibc-clock-nanosleep.patch
-#
https://chromium.googlesource.com/chromium/src/+/e925deab264e5ebc3c5c1341...
-Patch61: chromium-79.0.3945.56-gcc-name-clash.patch
-#
https://chromium.googlesource.com/chromium/src/+/528e9a3e1f25bd264549c4c7...
-Patch62: chromium-79-gcc-permissive.patch
# /../../ui/base/cursor/ozone/bitmap_cursor_factory_ozone.cc:53:15: error:
'find_if' is not a member of 'std'; did you mean 'find'?
Patch63: chromium-79.0.3945.56-fix-find_if.patch
+# Work around situation with gcc10 where
+# modifying a const object is not allowed in a constant expression
+# except in a very specific case in c++17
+#
https://bugs.chromium.org/p/chromium/issues/detail?id=1045963
+Patch64: chromium-79.0.3945.130-gcc10-use-c++17-to-work-around-ugly-angle-code.patch
+#
https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files...
+Patch65: chromium-80-gcc-incomplete-type.patch
+#
https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files...
+Patch66: chromium-80-include.patch
+#
https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files...
+Patch67: chromium-80-gcc-abstract.patch
+#
https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files...
+Patch68: chromium-80-gcc-blink.patch
+#
https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files...
+Patch69: chromium-80-gcc-permissive.patch
+#
https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files...
+Patch70: chromium-80-gcc-quiche.patch
+# ../../base/trace_event/trace_event_memory_overhead.h:15:1: note: 'std::string'
is defined in header '<string>'; did you forget to '#include
<string>'?
+Patch71: chromium-80.0.3987.87-missing-string-header.patch
+# ../../third_party/perfetto/include/perfetto/base/task_runner.h:48:55: error:
'uint32_t' has not been declared
+Patch72: chromium-80.0.3987.87-missing-cstdint-header.patch
+# ../../third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h:34:3:
error: 'size_t' does not name a type
+Patch73: chromium-80.0.3987.106-missing-cstddef-header.patch
+# Because of Patch64, we need to force std::as_const with c++17
+Patch74: chromium-80.0.3987.87-fix-for-c++17.patch
+# Missing <cstring> (thanks c++17)
+Patch75: chromium-80.0.3987.106-missing-cstring-header.patch
# Use lstdc++ on EPEL7 only
@@ -248,7 +263,7 @@ Patch102: chromium-79.0.3945.56-el7-noexcept.patch
Patch202: enable-vaapi.patch
Patch203: chromium-75.0.3770.80-vaapi-i686-fpermissive.patch
# Fix compatibility with VA-API library (libva) version 1
-Patch204: chromium-75.0.3770.80-vaapi-libva1-compatibility.patch
+Patch205: fixvaapionintel.patch
# Apply these patches to work around EPEL8 issues
Patch300: chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch
@@ -772,14 +787,24 @@ udev.
%patch53 -p1 -b .unbundle-zlib
%patch54 -p1 -b .gcc-include-memory
%patch55 -p1 -b .base-gcc-no-alignas
-%patch56 -p1 -b .gcc-ambiguous-nodestructor
%patch57 -p1 -b .protobuf-export
-%patch58 -p1 -b .missing-includes
%patch59 -p1 -b .clang-supports-location-builtins
-%patch60 -p1 -b .glibc-clock-nanosleep
-%patch61 -p1 -b .gcc-name-clash
-%patch62 -p1 -b .gcc-permissive
%patch63 -p1 -b .fix-find_if
+%if 0%{?fedora} >= 32
+%patch64 -p1 -b .gcc10-angle
+%patch74 -p1 -b .c17
+%endif
+%patch65 -p1 -b .gcc-incomplete-type
+%patch66 -p1 -b .includefix
+%patch67 -p1 -b .gcc-abstract
+%patch68 -p1 -b .gcc-blink
+%patch69 -p1 -b .gcc-permissive
+%patch70 -p1 -b .gcc-quiche
+%patch71 -p1 -b .missing-string
+%patch72 -p1 -b .missing-cstdint
+%patch73 -p1 -b .missing-cstddef
+%patch75 -p1 -b .missing-cstring
+
# Fedora branded user agent
%if 0%{?fedora}
@@ -797,8 +822,8 @@ udev.
%patch202 -p1 -b .vaapi
%ifarch i686
%patch203 -p1 -b .i686permissive
-%patch204 -p1 -b .va1compat
%endif
+%patch205 -p1 -b .vaapi-intel-fix
%endif
%if 0%{?rhel} == 8
@@ -862,7 +887,11 @@ unzip %{SOURCE113}
cp -a /usr/share/fonts/lohit-gurmukhi/Lohit-Gurmukhi.ttf .
cp -a /usr/share/fonts/google-noto-cjk/NotoSansCJKjp-Regular.otf .
%endif
+%if 0%{?fedora} >= 32
+cp -a /usr/share/fonts/dejavu-sans-fonts/DejaVuSans.ttf
/usr/share/fonts/dejavu-sans-fonts/DejaVuSans-Bold.ttf .
+%else
cp -a /usr/share/fonts/dejavu/DejaVuSans.ttf /usr/share/fonts/dejavu/DejaVuSans-Bold.ttf
.
+%endif
cp -a /usr/share/fonts/thai-scalable/Garuda.ttf .
cp -a /usr/share/fonts/lohit-devanagari/Lohit-Devanagari.ttf
/usr/share/fonts/lohit-tamil/Lohit-Tamil.ttf .
cp -a /usr/share/fonts/google-noto/NotoSansKhmer-Regular.ttf .
@@ -876,7 +905,7 @@ CHROMIUM_CORE_GN_DEFINES+=' is_debug=false'
CHROMIUM_CORE_GN_DEFINES+=' system_libdir="lib64"'
%endif
CHROMIUM_CORE_GN_DEFINES+=' google_api_key="%{api_key}"
google_default_client_id="%{default_client_id}"
google_default_client_secret="%{default_client_secret}"'
-CHROMIUM_CORE_GN_DEFINES+=' is_clang=false use_sysroot=false use_gold=false
fieldtrial_testing_like_official_build=true use_lld=false'
+CHROMIUM_CORE_GN_DEFINES+=' is_clang=false use_sysroot=false use_gold=false
fieldtrial_testing_like_official_build=true use_lld=false
rtc_enable_symbol_export=true'
%if %{freeworld}
CHROMIUM_CORE_GN_DEFINES+=' ffmpeg_branding="ChromeOS"
proprietary_codecs=true'
%else
@@ -978,9 +1007,6 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/blink' \
'third_party/boringssl' \
'third_party/boringssl/src/third_party/fiat' \
- 'third_party/boringssl/src/third_party/sike' \
- 'third_party/boringssl/linux-x86_64/crypto/third_party/sike' \
- 'third_party/boringssl/linux-aarch64/crypto/third_party/sike' \
'third_party/breakpad' \
'third_party/breakpad/breakpad/src/third_party/curl' \
'third_party/brotli' \
@@ -1011,13 +1037,14 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/dawn' \
'third_party/depot_tools' \
'third_party/devscripts' \
+ 'third_party/devtools-frontend' \
+ 'third_party/devtools-frontend/src/third_party/axe-core' \
'third_party/dom_distiller_js' \
'third_party/emoji-segmenter' \
'third_party/expat' \
'third_party/ffmpeg' \
'third_party/flac' \
'third_party/flatbuffers' \
- 'third_party/flot' \
'third_party/fontconfig' \
'third_party/freetype' \
'third_party/glslang' \
@@ -1044,6 +1071,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/libaom/source/libaom/third_party/vector' \
'third_party/libaom/source/libaom/third_party/x86inc' \
'third_party/libdrm' \
+ 'third_party/libgifcodec' \
'third_party/libjingle' \
'third_party/libjpeg_turbo' \
'third_party/libphonenumber' \
@@ -1111,7 +1139,6 @@ build/linux/unbundle/remove_bundled_libraries.py \
'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/skcms' \
'third_party/skia/third_party/vulkan' \
'third_party/smhasher' \
@@ -1282,6 +1309,8 @@ sed -i.orig -e
's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
%global optflags %(echo %{optflags} | sed 's/-g /-g1 /')
%endif
+export PYTHONPATH="../../third_party/pyjson5/src"
+
echo
# Now do the full browser
%if 0%{freeworld}
@@ -1354,7 +1383,6 @@ sed -i "s|@@PACKAGE@@|%{chromium_browser_channel}|g"
%{buildroot}%{_mandir}/man1
sed -i "s|@@MENUNAME@@|%{chromium_menu_name}|g"
%{buildroot}%{_mandir}/man1/%{chromium_browser_channel}.1
# V8 initial snapshots
#
https://code.google.com/p/chromium/issues/detail?id=421063
-cp -a natives_blob.bin %{buildroot}%{chromium_path}
cp -a snapshot_blob.bin %{buildroot}%{chromium_path}
cp -a v8_context_snapshot.bin %{buildroot}%{chromium_path}
cp -a xdg-mime xdg-settings %{buildroot}%{chromium_path}
@@ -1697,6 +1725,15 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r
chrome-remote-deskt
%changelog
+* Thu Feb 27 2020 Tom Callaway <spot(a)fedoraproject.org> - 80.0.3987.122-1
+- update to 80.0.3987.122
+
+* Mon Feb 17 2020 Tom Callaway <spot(a)fedoraproject.org> - 80.0.3987.106-1
+- update to 80.0.3987.106
+
+* Wed Feb 5 2020 Tom Callaway <spot(a)fedoraproject.org> - 80.0.3987.87-1
+- update to 80.0.3987.87
+
* Fri Jan 17 2020 Tom Callaway <spot(a)fedoraproject.org> - 79.0.3945.130-1
- update to 79.0.3945.130
diff --git a/clean_ffmpeg.sh b/clean_ffmpeg.sh
index fd226e8..edab56f 100755
--- a/clean_ffmpeg.sh
+++ b/clean_ffmpeg.sh
@@ -97,6 +97,7 @@ header_files=" libavcodec/x86/inline_asm.h \
libavcodec/mdct15.c \
libavcodec/mdct15.h \
libavcodec/me_cmp.h \
+ libavcodec/mlp_parse.h \
libavcodec/motion_est.h \
libavcodec/mpeg12.h \
libavcodec/mpeg12data.h \
@@ -196,6 +197,7 @@ header_files=" libavcodec/x86/inline_asm.h \
libavutil/thread.h \
libavutil/timer.h \
libavutil/timestamp.h \
+ libavutil/tx_priv.h \
libavutil/version.h \
libswresample/swresample.h \
libswresample/version.h \
@@ -246,6 +248,7 @@ manual_files=" libavcodec/aarch64/fft_neon.S \
libavutil/fixed_dsp.c \
libavutil/float_dsp.c \
libavutil/imgutils.c \
+ libavutil/tx_template.c \
libavutil/x86/cpu.c \
libavutil/x86/float_dsp_init.c \
libavutil/x86/x86inc.asm \
diff --git a/enable-vaapi.patch b/enable-vaapi.patch
index 3286af7..1dd612a 100644
--- a/enable-vaapi.patch
+++ b/enable-vaapi.patch
@@ -1,18 +1,31 @@
-diff -up chromium-75.0.3770.80/chrome/browser/about_flags.cc.vaapi
chromium-75.0.3770.80/chrome/browser/about_flags.cc
---- chromium-75.0.3770.80/chrome/browser/about_flags.cc.vaapi 2019-06-04
14:55:16.000000000 -0400
-+++ chromium-75.0.3770.80/chrome/browser/about_flags.cc 2019-06-05 11:26:46.472753047
-0400
-@@ -1390,7 +1390,7 @@ const FeatureEntry kFeatureEntries[] = {
+From e04b52fc9b12f0725e76b889161ea45c776e6da5 Mon Sep 17 00:00:00 2001
+From: Akarshan Biswas <akarshanbiswas(a)fedoraproject.org>
+Date: Fri, 20 Sep 2019 19:55:45 +0530
+Subject: [PATCH] Enable VAAPI on Linux
+
+---
+ chrome/browser/about_flags.cc | 8 ++++----
+ chrome/browser/flag_descriptions.cc | 9 ++++++---
+ chrome/browser/flag_descriptions.h | 10 ++++++++--
+ gpu/config/software_rendering_list.json | 3 ++-
+ 4 files changed, 20 insertions(+), 10 deletions(-)
+
+diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
+index e608f06a2..c0776db45 100644
+--- a/chrome/browser/about_flags.cc
++++ b/chrome/browser/about_flags.cc
+@@ -1738,7 +1738,7 @@ const FeatureEntry kFeatureEntries[] = {
"disable-accelerated-video-decode",
flag_descriptions::kAcceleratedVideoDecodeName,
flag_descriptions::kAcceleratedVideoDecodeDescription,
- kOsMac | kOsWin | kOsCrOS | kOsAndroid,
-+ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux,
++ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux,
SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode),
},
- #if defined(OS_WIN)
-@@ -1882,12 +1882,12 @@ const FeatureEntry kFeatureEntries[] = {
+ {
+@@ -2216,12 +2216,12 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)},
- #endif // ENABLE_ISOLATED_XR_SERVICE
+ #endif // !defined(OS_ANDROID)
#endif // ENABLE_VR
-#if defined(OS_CHROMEOS)
+#if defined(OS_CHROMEOS) || defined(OS_LINUX)
@@ -22,45 +35,47 @@ diff -up chromium-75.0.3770.80/chrome/browser/about_flags.cc.vaapi
chromium-75.0
+ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux,
SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)},
-#endif // OS_CHROMEOS
-+#endif // OS_CHROMEOS // OS_LINUX
- {"v8-cache-options", flag_descriptions::kV8CacheOptionsName,
- flag_descriptions::kV8CacheOptionsDescription, kOsAll,
- MULTI_VALUE_TYPE(kV8CacheOptionsChoices)},
-diff -up chromium-75.0.3770.80/chrome/browser/flag_descriptions.cc.vaapi
chromium-75.0.3770.80/chrome/browser/flag_descriptions.cc
---- chromium-75.0.3770.80/chrome/browser/flag_descriptions.cc.vaapi 2019-06-05
11:26:46.473753026 -0400
-+++ chromium-75.0.3770.80/chrome/browser/flag_descriptions.cc 2019-06-05
11:29:28.039397479 -0400
-@@ -2941,15 +2941,20 @@ const char kMacSystemMediaPermissionsInf
++#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 d27bbb28f..1c6542bdd 100644
+--- a/chrome/browser/flag_descriptions.cc
++++ b/chrome/browser/flag_descriptions.cc
+@@ -3071,16 +3071,19 @@ const char kMacSystemMediaPermissionsInfoUiDescription[] =
#endif
-// Chrome OS -------------------------------------------------------------------
-+// Chrome OS & Linux------------------------------------------------------------
-
+-
-#if defined(OS_CHROMEOS)
-+#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
++// Chrome OS and Linux
-------------------------------------------------------------------
++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
const char kAcceleratedMjpegDecodeName[] =
"Hardware-accelerated mjpeg decode for captured frame";
const char kAcceleratedMjpegDecodeDescription[] =
"Enable hardware-accelerated mjpeg decode for captured frame where "
"available.";
-+#endif
-+
-+// Chrome OS -------------------------------------------------------------------
++#endif
+
++// Chrome OS
-----------------------------------------------------------------------------
+
+#if defined(OS_CHROMEOS)
-
- const char kAppServiceAshName[] = "App Service Ash";
- const char kAppServiceAshDescription[] =
-diff -up chromium-75.0.3770.80/chrome/browser/flag_descriptions.h.vaapi
chromium-75.0.3770.80/chrome/browser/flag_descriptions.h
---- chromium-75.0.3770.80/chrome/browser/flag_descriptions.h.vaapi 2019-06-05
11:26:46.475752984 -0400
-+++ chromium-75.0.3770.80/chrome/browser/flag_descriptions.h 2019-06-05
11:30:39.503928986 -0400
-@@ -1765,13 +1765,19 @@ extern const char kPermissionPromptPersi
+ const char kAggregatedMlAppRankingName[] = "Rank suggested apps with ML.";
+ const char kAggregatedMlAppRankingDescription[] =
+ "Use the aggregated ML model to rank the suggested apps.";
+diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
+index 1f8899de1..06544e079 100644
+--- a/chrome/browser/flag_descriptions.h
++++ b/chrome/browser/flag_descriptions.h
+@@ -1822,13 +1822,19 @@ extern const char
kPermissionPromptPersistenceToggleDescription[];
#endif // defined(OS_MACOSX)
-// Chrome OS ------------------------------------------------------------------
-+// Chrome OS & Linux ----------------------------------------------------------
++// Chrome OS and Linux ---------------------------------------------------------
-#if defined(OS_CHROMEOS)
+#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
@@ -68,19 +83,20 @@ diff -up
chromium-75.0.3770.80/chrome/browser/flag_descriptions.h.vaapi chromium
extern const char kAcceleratedMjpegDecodeName[];
extern const char kAcceleratedMjpegDecodeDescription[];
-+#endif
++#endif
+
-+// Chrome OS ------------------------------------------------------------------
++// Chrome OS -------------------------------------------------------------------
+
+#if defined(OS_CHROMEOS)
+
- extern const char kAppServiceAshName[];
- extern const char kAppServiceAshDescription[];
+ extern const char kAggregatedMlAppRankingName[];
+ extern const char kAggregatedMlAppRankingDescription[];
-diff -up chromium-75.0.3770.80/gpu/config/software_rendering_list.json.vaapi
chromium-75.0.3770.80/gpu/config/software_rendering_list.json
---- chromium-75.0.3770.80/gpu/config/software_rendering_list.json.vaapi 2019-06-04
14:55:24.000000000 -0400
-+++ chromium-75.0.3770.80/gpu/config/software_rendering_list.json 2019-06-05
11:26:46.482752839 -0400
-@@ -371,11 +371,12 @@
+diff --git a/gpu/config/software_rendering_list.json
b/gpu/config/software_rendering_list.json
+index ea1294e4c..bc52cbc8f 100644
+--- a/gpu/config/software_rendering_list.json
++++ b/gpu/config/software_rendering_list.json
+@@ -334,11 +334,12 @@
},
{
"id": 48,
@@ -90,7 +106,10 @@ diff -up
chromium-75.0.3770.80/gpu/config/software_rendering_list.json.vaapi chr
"os": {
"type": "linux"
},
-+ "vendor_id": "0x10de",
++ "vendor_id": "0x10de",
"features": [
"accelerated_video_decode"
]
+--
+2.21.0
+
diff --git a/fixvaapionintel.patch b/fixvaapionintel.patch
new file mode 100644
index 0000000..a94886a
--- /dev/null
+++ b/fixvaapionintel.patch
@@ -0,0 +1,49 @@
+From 9ff06536caf7ea51aad9fd2bb649c858eaf7ee84 Mon Sep 17 00:00:00 2001
+From: Akarshan Biswas <akarshanbiswas(a)fedoraproject.org>
+Date: Sat, 26 Oct 2019 10:06:30 +0530
+Subject: [PATCH] Move offending function to chromeos only
+
+---
+ media/gpu/vaapi/vaapi_video_decode_accelerator.cc | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
+index f04b60f58..3e7865503 100644
+--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
++++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
+@@ -63,6 +63,7 @@ void ReportToUMA(VAVDADecoderFailure failure) {
+ VAVDA_DECODER_FAILURES_MAX + 1);
+ }
+
++#if defined(OS_ANDROID) || defined(OS_CHROMEOS)
+ // Returns true if the CPU is an Intel Gemini Lake or later (including Kaby
+ // Lake) Cpu platform id's are referenced from the following file in kernel
+ // source arch/x86/include/asm/intel-family.h
+@@ -75,6 +76,7 @@ bool IsGeminiLakeOrLater() {
+ cpuid.model() >= kGeminiLakeModelId;
+ return is_geminilake_or_later;
+ }
++#endif
+
+ } // namespace
+
+@@ -1091,6 +1093,8 @@ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
+ if (output_mode_ == VideoDecodeAccelerator::Config::OutputMode::IMPORT)
+ return BufferAllocationMode::kNormal;
+
++#if defined(OS_ANDROID) || defined(OS_CHROMEOS)
++ // Move this to chromeOs only as it is causing problem in some intel linux drivers
+ // On Gemini Lake, Kaby Lake and later we can pass to libva the client's
+ // PictureBuffers to decode onto, which skips the use of the Vpp unit and its
+ // associated format reconciliation copy, avoiding all internal buffer
+@@ -1107,6 +1111,7 @@ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
+ num_extra_pics_ = 3;
+ return BufferAllocationMode::kNone;
+ }
++#endif
+
+ // If we're here, we have to use the Vpp unit and allocate buffers for
+ // |decoder_|; usually we'd have to allocate the |decoder_|s
+--
+2.21.0
+
diff --git a/sources b/sources
index efaf0ea..6bad0a4 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) =
d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) =
58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) =
aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) =
a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-79.0.3945.130-clean.tar.xz) =
3b8530492ad76397f479fd4c6a30c7371892be3b60361eb85002295deaffc78766b4d36a5e39398634ca507f0e5d42fdd1ee35e9289310e6d662514a6681df52
+SHA512 (chromium-80.0.3987.122-clean.tar.xz) =
9de43bd70406a8b97ee5177f9983fea68403fa457d599843de423fe910e7f78f659e7e98a077be33f4fb8d288c61ecee28330eabb7cd560ac856bf9a24b58562