From f1db2ee0c505063088fa40dfd6e7ae7f8aa022b9 Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Thu, 27 Feb 2020 11:27:21 -0500 Subject: [PATCH] please work --- ...mium-77.0.3865.75-gcc-include-memory.patch | 22 ++ ...c++17-to-work-around-ugly-angle-code.patch | 28 +++ chromium-80-gcc-abstract.patch | 41 ++++ chromium-80-gcc-blink.patch | 45 ++++ chromium-80-gcc-incomplete-type.patch | 229 ++++++++++++++++++ chromium-80-gcc-permissive.patch | 33 +++ chromium-80-gcc-quiche.patch | 30 +++ chromium-80-include.patch | 33 +++ ...80.0.3987.106-missing-cstddef-header.patch | 44 ++++ ...80.0.3987.106-missing-cstring-header.patch | 34 +++ chromium-80.0.3987.87-fix-for-c++17.patch | 178 ++++++++++++++ chromium-80.0.3987.87-libpipewire-0.3.patch | 12 + ...-80.0.3987.87-missing-cstddef-header.patch | 22 ++ ...-80.0.3987.87-missing-cstdint-header.patch | 55 +++++ ...m-80.0.3987.87-missing-string-header.patch | 11 + chromium-browser.sh | 3 + chromium.spec | 105 +++++--- clean_ffmpeg.sh | 3 + enable-vaapi.patch | 97 +++++--- fixvaapionintel.patch | 49 ++++ sources | 2 +- 21 files changed, 1002 insertions(+), 74 deletions(-) create mode 100644 chromium-79.0.3945.130-gcc10-use-c++17-to-work-around-ugly-angle-code.patch create mode 100644 chromium-80-gcc-abstract.patch create mode 100644 chromium-80-gcc-blink.patch create mode 100644 chromium-80-gcc-incomplete-type.patch create mode 100644 chromium-80-gcc-permissive.patch create mode 100644 chromium-80-gcc-quiche.patch create mode 100644 chromium-80-include.patch create mode 100644 chromium-80.0.3987.106-missing-cstddef-header.patch create mode 100644 chromium-80.0.3987.106-missing-cstring-header.patch create mode 100644 chromium-80.0.3987.87-fix-for-c++17.patch create mode 100644 chromium-80.0.3987.87-libpipewire-0.3.patch create mode 100644 chromium-80.0.3987.87-missing-cstddef-header.patch create mode 100644 chromium-80.0.3987.87-missing-cstdint-header.patch create mode 100644 chromium-80.0.3987.87-missing-string-header.patch create mode 100644 fixvaapionintel.patch diff --git a/chromium-77.0.3865.75-gcc-include-memory.patch b/chromium-77.0.3865.75-gcc-include-memory.patch index 93b4399c..e1d4bdbd 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 ++#include + #include + + #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 + #include ++#include + #include + #include + 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 00000000..8401ea2d --- /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(const_cast( +- mPrivateData)[static_cast(it->first)]) = it->second; ++ // const_cast(const_cast( ++ // mPrivateData)[static_cast(it->first)]) = it->second; ++ mPrivateData[static_cast(it->first)] = it->second; + } + } + diff --git a/chromium-80-gcc-abstract.patch b/chromium-80-gcc-abstract.patch new file mode 100644 index 00000000..190a6725 --- /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': +../../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 + }; + + template <> +-struct CrossThreadCopier +- : public CrossThreadCopierPassThrough { ++struct CrossThreadCopier> ++ : public CrossThreadCopierPassThrough< ++ rtc::scoped_refptr> { + STATIC_ONLY(CrossThreadCopier); + }; + diff --git a/chromium-80-gcc-blink.patch b/chromium-80-gcc-blink.patch new file mode 100644 index 00000000..2118b46f --- /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&, )' + 256 | EnclosingNodeOfType(start, &IsA)); + | ^ +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 '' 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 >'} to 'const PositionInFlatTree&' {aka 'const blink::PositionTemplate >&'} + 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(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( +- EnclosingNodeOfType(start, &IsA)); ++ EnclosingNodeOfType(start, &IsAHTMLTableRowElement)); + end_table_row_ = To( +- EnclosingNodeOfType(end, &IsA)); ++ 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 00000000..8d10620a --- /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 +Date: Mon, 16 Dec 2019 11:39:11 +0000 +Subject: [PATCH] BookmarkModelMerger: Move RemoteTreeNode declaration to header. + +This fixes the build with libstdc++ after commit 8f5dad93e58 ("Fix CHECK +failure due to untracked local nodes"): + +/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/stl_pair.h:215:11: error: field has incomplete type 'sync_bookmarks::BookmarkModelMerger::RemoteTreeNode' + _T2 second; /// @c second is a copy of the second object + ^ +/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/ext/aligned_buffer.h:91:28: note: in instantiation of template class 'std::pair, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode>' requested here + : std::aligned_storage + ^ +/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/hashtable_policy.h:233:43: note: in instantiation of template class '__gnu_cxx::__aligned_buffer, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode> >' requested here + __gnu_cxx::__aligned_buffer<_Value> _M_storage; + ^ +/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/hashtable_policy.h:264:39: note: in instantiation of template class 'std::__detail::_Hash_node_value_base, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode> >' requested here + struct _Hash_node<_Value, true> : _Hash_node_value_base<_Value> + ^ +/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/hashtable_policy.h:2028:25: note: in instantiation of template class 'std::__detail::_Hash_node, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode>, true>' requested here + rebind_traits; + ^ +/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/hashtable.h:184:15: note: in instantiation of template class 'std::__detail::_Hashtable_alloc, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode>, true> > > +' requested here + private __detail::_Hashtable_alloc< + ^ +/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/unordered_map.h:105:18: note: in instantiation of template class 'std::_Hashtable, std::pair, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode>, std::allocator, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode> >, std::__detail::_Select1st, std::equal_to >, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__deta +il::_Hashtable_traits >' requested here + _Hashtable _M_h; + ^ +../../components/sync_bookmarks/bookmark_model_merger.h:146:22: note: in instantiation of template class 'std::unordered_map, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode, std::hash, std::equal_to >, std::allocator, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode> > >' requested here + const RemoteForest remote_forest_; + ^ +../../components/sync_bookmarks/bookmark_model_merger.h:53:9: note: forward declaration of 'sync_bookmarks::BookmarkModelMerger::RemoteTreeNode' + class RemoteTreeNode; + ^ + +Essentially, the problem is that libstdc++'s std::unordered_map +implementation requires both T and U to be fully declared. I raised the +problem in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92770, and GCC's +position is that we are relying on undefined behavior according to the C++ +standard (https://eel.is/c++draft/requirements#res.on.functions-2.5). + +Bug: 957519 +Change-Id: Ife7e435e516932a795bfbe05b2c910c3272878f0 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1960156 +Commit-Queue: Raphael Kubo da Costa +Reviewed-by: Mikel Astiz +Auto-Submit: Raphael Kubo da Costa +Cr-Commit-Position: refs/heads/master@{#725070} +--- + +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 +-#include + #include + #include + #include +@@ -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 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* ++ 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& 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* +- 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 update_; +- std::vector children_; +-}; ++// static ++bool BookmarkModelMerger::RemoteTreeNode::UniquePositionLessThan( ++ const RemoteTreeNode& lhs, ++ const RemoteTreeNode& rhs) { ++ const syncer::UniquePosition a_pos = ++ syncer::UniquePosition::FromProto(lhs.entity().unique_position); ++ const syncer::UniquePosition b_pos = ++ syncer::UniquePosition::FromProto(rhs.entity().unique_position); ++ return a_pos.LessThan(b_pos); ++} + + // static + BookmarkModelMerger::RemoteTreeNode +diff --git a/components/sync_bookmarks/bookmark_model_merger.h b/components/sync_bookmarks/bookmark_model_merger.h +index 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 + #include + #include + #include +@@ -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; ++ ++ public: ++ // Constructs a tree given |update| as root and recursively all descendants ++ // by traversing |*updates_per_parent_id|. |update| and ++ // |updates_per_parent_id| must not be null. All updates ++ // |*updates_per_parent_id| must represent valid updates. Updates ++ // corresponding from descendant nodes are moved away from ++ // |*updates_per_parent_id|. ++ static RemoteTreeNode BuildTree( ++ std::unique_ptr update, ++ UpdatesPerParentId* updates_per_parent_id); ++ ++ ~RemoteTreeNode(); ++ ++ // Allow moves, useful during construction. ++ RemoteTreeNode(RemoteTreeNode&&); ++ RemoteTreeNode& operator=(RemoteTreeNode&&); ++ ++ const syncer::EntityData& entity() const { return *update_->entity; } ++ int64_t response_version() const { return update_->response_version; } ++ ++ // Direct children nodes, sorted by ascending unique position. These are ++ // guaranteed to be valid updates (e.g. IsValidBookmarkSpecifics()). ++ const std::vector& children() const { return children_; } ++ ++ // Recursively emplaces all GUIDs (this node and descendants) into ++ // |*guid_to_remote_node_map|, which must not be null. ++ void EmplaceSelfAndDescendantsByGUID( ++ std::unordered_map* ++ guid_to_remote_node_map) const; ++ ++ private: ++ static bool UniquePositionLessThan(const RemoteTreeNode& lhs, ++ const RemoteTreeNode& rhs); ++ ++ RemoteTreeNode(); ++ ++ std::unique_ptr update_; ++ std::vector children_; ++ }; + + // A forest composed of multiple trees where the root of each tree represents + // a permanent node, keyed by server-defined unique tag of the root. diff --git a/chromium-80-gcc-permissive.patch b/chromium-80-gcc-permissive.patch new file mode 100644 index 00000000..c7aef49a --- /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/base/media_log_properties_helper.h:86:75: error: explicit specialization of non-template 'media::internal::' + 86 | struct internal::MediaLogPropertyTypeConverter { + | ^ + +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> { + + // Specializer for sending AudioDecoderConfigs to the media tab in devtools. + template <> +-struct internal::MediaLogPropertyTypeConverter { ++struct MediaLogPropertyTypeConverter { + 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 { + + // Specializer for sending VideoDecoderConfigs to the media tab in devtools. + template <> +-struct internal::MediaLogPropertyTypeConverter { ++struct MediaLogPropertyTypeConverter { + 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 00000000..aa3d5412 --- /dev/null +++ b/chromium-80-gcc-quiche.patch @@ -0,0 +1,30 @@ +From 00f47df999c9b19e80fdc01db0ae9ca1b6a12b3a Mon Sep 17 00:00:00 2001 +From: vasilvv +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 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 00000000..dd85de72 --- /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 +Date: Tue, 10 Dec 2019 20:59:57 +0000 +Subject: [PATCH] [cros search service]: Include for std::pow() + +IWYU. Follow up to commit 2b2ea3c09b ("[cros search service] Move shared +string matching functions to //chrome"), which broke the libstdc++ build: + + ../../chrome/common/string_matching/fuzzy_tokenized_string_match.cc:199:14: error: no member named 'pow' in namespace 'std' + std::pow(partial_match_penalty_rate, long_start - current - 1); + ~~~~~^ + +Bug: 957519 +Change-Id: I66f61cb4f93cfa0bfa3d1b00ba391ddd8f31a7fb +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1960310 +Auto-Submit: Raphael Kubo da Costa +Reviewed-by: Jia Meng +Commit-Queue: Raphael Kubo da Costa +Cr-Commit-Position: refs/heads/master@{#723499} +--- + +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 ++#include + #include + + #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 00000000..832cf022 --- /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 ++#include + + 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 ++#include + + #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 + #include ++#include + + #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 ++#include + + 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 00000000..646dac62 --- /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 ++ + #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 + #include + ++#include + #include + #include + +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 + #include + #include + 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 00000000..8639e82e --- /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 + auto flat_tree::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 +@@ -799,7 +803,11 @@ template + auto flat_tree::equal_range( + const K& key) -> std::pair { ++#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 + auto flat_tree::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 +@@ -841,7 +853,11 @@ template + auto flat_tree::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 +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; ++ using Task = std::packaged_task; + + 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(std::as_const(*this).at(i)); ++#else + return const_cast(as_const(*this).at(i)); ++#endif + } + + value_type& operator[](size_type i) { ++#ifdef __cpp_lib_as_const ++ return const_cast(std::as_const(*this)[i]); ++#else + return const_cast(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 00000000..6de60819 --- /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 00000000..3ea2c22b --- /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 ++#include + + #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 ++#include + + 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 00000000..e61042f4 --- /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 + #include + + #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 + #include + + #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 + #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 + #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 + #include + + #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 00000000..6bb4c7d0 --- /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 + #include + ++#include + #include + + #include "base/base_export.h" diff --git a/chromium-browser.sh b/chromium-browser.sh index 97607b94..d76aabe4 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 6f4a4390..ac782c02 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/+/6b633c4b14850df376d5cec571699018772f358e # https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/chromium-78-gcc-alignas.patch Patch55: chromium-79.0.3945.56-base-gcc-no-alignas.patch -# https://chromium.googlesource.com/chromium/src/+/af77dc4014ead3d898fdc8a7a70fe5063ac9b102 -Patch56: chromium-79-gcc-ambiguous-nodestructor.patch # https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/chromium-78-protobuf-export.patch Patch57: chromium-78-protobuf-export.patch -# https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files/chromium-79-include.patch -Patch58: chromium-79-include.patch # https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files/chromium-77-clang.patch Patch59: chromium-77-clang.patch -# https://chromium.googlesource.com/chromium/src.git/+/54407b422a9cbf775a68c1d57603c0ecac8ce0d7 -Patch60: chromium-79.0.3945.56-glibc-clock-nanosleep.patch -# https://chromium.googlesource.com/chromium/src/+/e925deab264e5ebc3c5c13415aa3d44a746e8d45 -Patch61: chromium-79.0.3945.56-gcc-name-clash.patch -# https://chromium.googlesource.com/chromium/src/+/528e9a3e1f25bd264549c4c7779748abfd16bb1c -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/chromium-80-gcc-incomplete-type.patch +Patch65: chromium-80-gcc-incomplete-type.patch +# https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files/chromium-80-include.patch +Patch66: chromium-80-include.patch +# https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files/chromium-80-gcc-abstract.patch +Patch67: chromium-80-gcc-abstract.patch +# https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files/chromium-80-gcc-blink.patch +Patch68: chromium-80-gcc-blink.patch +# https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files/chromium-80-gcc-permissive.patch +Patch69: chromium-80-gcc-permissive.patch +# https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files/chromium-80-gcc-quiche.patch +Patch70: chromium-80-gcc-quiche.patch +# ../../base/trace_event/trace_event_memory_overhead.h:15:1: note: 'std::string' is defined in header ''; did you forget to '#include '? +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 (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 - 80.0.3987.122-1 +- update to 80.0.3987.122 + +* Mon Feb 17 2020 Tom Callaway - 80.0.3987.106-1 +- update to 80.0.3987.106 + +* Wed Feb 5 2020 Tom Callaway - 80.0.3987.87-1 +- update to 80.0.3987.87 + * Fri Jan 17 2020 Tom Callaway - 79.0.3945.130-1 - update to 79.0.3945.130 diff --git a/clean_ffmpeg.sh b/clean_ffmpeg.sh index fd226e81..edab56f8 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 3286af7c..1dd612a6 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 +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 00000000..a94886ac --- /dev/null +++ b/fixvaapionintel.patch @@ -0,0 +1,49 @@ +From 9ff06536caf7ea51aad9fd2bb649c858eaf7ee84 Mon Sep 17 00:00:00 2001 +From: Akarshan Biswas +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 efaf0ea7..6bad0a4c 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