commit
db1e9fac2b
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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);
|
||||||
|
};
|
||||||
|
|
@ -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
|
@ -0,0 +1,229 @@
|
|||||||
|
From cdf3e81ff49b200213d67d65558f2919222b60ab Mon Sep 17 00:00:00 2001
|
||||||
|
From: Raphael Kubo da Costa <raphael.kubo.da.costa@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@intel.com>
|
||||||
|
Reviewed-by: Mikel Astiz <mastiz@chromium.org>
|
||||||
|
Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@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.
|
@ -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()));
|
@ -0,0 +1,30 @@
|
|||||||
|
From 00f47df999c9b19e80fdc01db0ae9ca1b6a12b3a Mon Sep 17 00:00:00 2001
|
||||||
|
From: vasilvv <vasilvv@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@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.
|
@ -0,0 +1,33 @@
|
|||||||
|
From 8273f4d3130e06fd8b6bef87b07c936304b971d9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Raphael Kubo da Costa <raphael.kubo.da.costa@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@intel.com>
|
||||||
|
Reviewed-by: Jia Meng <jiameng@chromium.org>
|
||||||
|
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@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"
|
@ -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 {
|
||||||
|
|
@ -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>
|
||||||
|
|
@ -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" ]
|
@ -0,0 +1,190 @@
|
|||||||
|
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 -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) {
|
@ -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
|
@ -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 {
|
||||||
|
|
@ -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"
|
@ -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"
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,49 @@
|
|||||||
|
From 9ff06536caf7ea51aad9fd2bb649c858eaf7ee84 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Akarshan Biswas <akarshanbiswas@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
|
||||||
|
|
Loading…
Reference in new issue