public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Mike Gilbert" <floppym@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
Date: Mon, 23 Dec 2019 16:22:21 +0000 (UTC)	[thread overview]
Message-ID: <1577118116.8ba7a983c4c70ff8d4afe770efeebe60160baafd.floppym@gentoo> (raw)

commit:     8ba7a983c4c70ff8d4afe770efeebe60160baafd
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Mon Dec 23 15:07:03 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Mon Dec 23 16:21:56 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8ba7a983

www-client/chromium: beta channel bump to 80.0.3987.16

Package-Manager: Portage-2.3.76, Repoman-2.3.16
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/Manifest                       |   2 +-
 ....3970.5.ebuild => chromium-80.0.3987.16.ebuild} |  11 +-
 .../chromium/files/chromium-80-gcc-abstract.patch  |  41 ++++
 .../chromium/files/chromium-80-gcc-blink.patch     |  18 ++
 .../files/chromium-80-gcc-incomplete-type.patch    | 229 +++++++++++++++++++++
 .../chromium/files/chromium-80-gcc-noexcept.patch  |  48 -----
 .../files/chromium-80-gcc-permissive.patch         |  33 +++
 .../chromium/files/chromium-80-include.patch       |  44 ++--
 8 files changed, 360 insertions(+), 66 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 5fed89d9e5e..aae1648d6c6 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,2 +1,2 @@
 DIST chromium-79.0.3945.88.tar.xz 778181840 BLAKE2B cf9eb0823f184f1590fc75df89bca907440f42244a519a5fd48bec9a25e16dd887c44b699acadc8a717f000c159bff843d5d0b007ca0e8d2c7eee09bb669e0ff SHA512 6474da7225beb9c99c01dc234b820924dd2fb3d736f53abbac02556f3bec43acd09aa02224666c4a735417500d10f57265ab130c29cce27124e5a69463cf5e0d
-DIST chromium-80.0.3970.5.tar.xz 789810132 BLAKE2B 400fcefeb58cb784412eca7011267c9224786036494337ecb8dbc7f3f483ec05d6e26c424ef55286cbebdbc872e1c15acfb62413264bb8843334a11bbe73ab4d SHA512 398666d81beaeef3eeb3f00a9a512b2d4c4e74bd9f01f20fab06901eadcb6fdbd345c39c54f2af57c4e485f2cd35700cde6f6a3d6301df7ee920bf067bee31d6
+DIST chromium-80.0.3987.16.tar.xz 798746524 BLAKE2B 6b57e41d7859c179b513b9bc81dff2227e0cd3420349591286f27bdbb7fb21b489137c83949d32827c874d5aaccedea5b82fabc9a5325354c7f6519ba1606074 SHA512 6d6108cabead5e67fa2fc01894a26b07c16d1061e78c52180ee20b612b2943aa40f5743d75b6048f5aa90ffb2c94a6125ef9d0f4d3cd11abe4c94a6759d48869

diff --git a/www-client/chromium/chromium-80.0.3970.5.ebuild b/www-client/chromium/chromium-80.0.3987.16.ebuild
similarity index 98%
rename from www-client/chromium/chromium-80.0.3970.5.ebuild
rename to www-client/chromium/chromium-80.0.3987.16.ebuild
index c6af893cb11..34a27c4e758 100644
--- a/www-client/chromium/chromium-80.0.3970.5.ebuild
+++ b/www-client/chromium/chromium-80.0.3987.16.ebuild
@@ -33,7 +33,7 @@ COMMON_DEPEND="
 	dev-libs/libxslt:=
 	dev-libs/nspr:=
 	>=dev-libs/nss-3.26:=
-	>=dev-libs/re2-0.2016.11.01:=
+	>=dev-libs/re2-0.2019.08.01:=
 	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
 	>=media-libs/alsa-lib-1.0.19:=
 	media-libs/fontconfig:=
@@ -51,7 +51,7 @@ COMMON_DEPEND="
 			>=net-fs/samba-4.5.10-r1[-debug(-)]
 		)
 		!=net-fs/samba-4.5.12-r0
-		media-libs/opus:=
+		>=media-libs/opus-1.3.1:=
 	)
 	sys-apps/dbus:=
 	sys-apps/pciutils:=
@@ -148,9 +148,11 @@ PATCHES=(
 	"${FILESDIR}/chromium-79-gcc-alignas.patch"
 	"${FILESDIR}/chromium-80-unbundle-libxml.patch"
 	"${FILESDIR}/chromium-80-include.patch"
-	"${FILESDIR}/chromium-80-gcc-noexcept.patch"
 	"${FILESDIR}/chromium-80-gcc-quiche.patch"
+	"${FILESDIR}/chromium-80-gcc-permissive.patch"
 	"${FILESDIR}/chromium-80-gcc-blink.patch"
+	"${FILESDIR}/chromium-80-gcc-abstract.patch"
+	"${FILESDIR}/chromium-80-gcc-incomplete-type.patch"
 )
 
 pre_build_checks() {
@@ -275,8 +277,8 @@ src_prepare() {
 		third_party/dom_distiller_js
 		third_party/emoji-segmenter
 		third_party/flatbuffers
-		third_party/flot
 		third_party/freetype
+		third_party/libgifcodec
 		third_party/glslang
 		third_party/google_input_tools
 		third_party/google_input_tools/third_party/closure_library
@@ -344,7 +346,6 @@ src_prepare() {
 		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

diff --git a/www-client/chromium/files/chromium-80-gcc-abstract.patch b/www-client/chromium/files/chromium-80-gcc-abstract.patch
new file mode 100644
index 00000000000..190a67258e1
--- /dev/null
+++ b/www-client/chromium/files/chromium-80-gcc-abstract.patch
@@ -0,0 +1,41 @@
+In file included from ../../third_party/blink/renderer/platform/heap/persistent.h:18,
+                 from ../../third_party/blink/public/platform/web_private_ptr.h:40,
+                 from ../../third_party/blink/public/platform/web_media_stream_track.h:33,
+                 from ../../third_party/blink/public/platform/web_media_stream_source.h:37,
+                 from ../../third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.h:19,
+                 from ../../third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.cc:5:
+../../third_party/blink/renderer/platform/wtf/cross_thread_copier.h: In instantiation of 'struct WTF::CrossThreadCopierPassThrough<webrtc::VideoTrackInterface>':
+../../third_party/blink/renderer/modules/peerconnection/adapters/web_rtc_cross_thread_copier.h:169:14:   required from here
+../../third_party/blink/renderer/platform/wtf/cross_thread_copier.h:80:15: error: invalid abstract return type 'webrtc::VideoTrackInterface'
+   80 |   static Type Copy(const T& parameter) { return parameter; }
+      |               ^~~~
+In file included from ../../third_party/webrtc/api/peer_connection_interface.h:88,
+                 from ../../third_party/blink/public/platform/web_rtc_peer_connection_handler.h:39,
+                 from ../../third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.h:20,
+                 from ../../third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.cc:5:
+../../third_party/webrtc/api/media_stream_interface.h:174:18: note:   because the following virtual functions are pure within 'webrtc::VideoTrackInterface':
+  174 | class RTC_EXPORT VideoTrackInterface
+      |                  ^~~~~~~~~~~~~~~~~~~
+../../third_party/webrtc/api/media_stream_interface.h:48:16: note:      'virtual void webrtc::NotifierInterface::RegisterObserver(webrtc::ObserverInterface*)'
+   48 |   virtual void RegisterObserver(ObserverInterface* observer) = 0;
+      |                ^~~~~~~~~~~~~~~~
+../../third_party/webrtc/api/media_stream_interface.h:49:16: note:      'virtual void webrtc::NotifierInterface::UnregisterObserver(webrtc::ObserverInterface*)'
+   49 |   virtual void UnregisterObserver(ObserverInterface* observer) = 0;
+      |                ^~~~~~~~~~~~~~~~~~
+
+diff --git a/third_party/blink/renderer/modules/peerconnection/adapters/web_rtc_cross_thread_copier.h b/third_party/blink/renderer/modules/peerconnection/adapters/web_rtc_cross_thread_copier.h
+index 54cb7d1..0d6c40f 100644
+--- a/third_party/blink/renderer/modules/peerconnection/adapters/web_rtc_cross_thread_copier.h
++++ b/third_party/blink/renderer/modules/peerconnection/adapters/web_rtc_cross_thread_copier.h
+@@ -165,8 +165,9 @@ struct CrossThreadCopier<blink::MediaStreamVideoTrack>
+ };
+ 
+ template <>
+-struct CrossThreadCopier<webrtc::VideoTrackInterface>
+-    : public CrossThreadCopierPassThrough<webrtc::VideoTrackInterface> {
++struct CrossThreadCopier<rtc::scoped_refptr<webrtc::VideoTrackInterface>>
++    : public CrossThreadCopierPassThrough<
++          rtc::scoped_refptr<webrtc::VideoTrackInterface>> {
+   STATIC_ONLY(CrossThreadCopier);
+ };
+ 

diff --git a/www-client/chromium/files/chromium-80-gcc-blink.patch b/www-client/chromium/files/chromium-80-gcc-blink.patch
index fdc28f32435..2118b46f39a 100644
--- a/www-client/chromium/files/chromium-80-gcc-blink.patch
+++ b/www-client/chromium/files/chromium-80-gcc-blink.patch
@@ -1,3 +1,21 @@
+../../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

diff --git a/www-client/chromium/files/chromium-80-gcc-incomplete-type.patch b/www-client/chromium/files/chromium-80-gcc-incomplete-type.patch
new file mode 100644
index 00000000000..8d10620a717
--- /dev/null
+++ b/www-client/chromium/files/chromium-80-gcc-incomplete-type.patch
@@ -0,0 +1,229 @@
+From cdf3e81ff49b200213d67d65558f2919222b60ab Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa@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.

diff --git a/www-client/chromium/files/chromium-80-gcc-noexcept.patch b/www-client/chromium/files/chromium-80-gcc-noexcept.patch
deleted file mode 100644
index 93ac6c409be..00000000000
--- a/www-client/chromium/files/chromium-80-gcc-noexcept.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From a75a2539ca600163f2136776fdc751111e887cd7 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena@lge.com>
-Date: Tue, 05 Nov 2019 17:57:52 +0100
-Subject: [PATCH] GCC: do not set noexcept on move assignment operator of ColorSet
-
-GCC build is broken because ColorSet default move assign operator is
-noexcept (because the color flat_map is not noexcept). It does not
-break clang because clang does not warn about this situation when
-building with -fno-exception.
-
-../../ui/color/color_set.cc:14:11: error: function ‘ui::ColorSet& ui::ColorSet::operator=(ui::ColorSet&&)’ defaulted on its redeclaration with an exception-specification that differs from the implicit exception-specification ‘’
- ColorSet& ColorSet::operator=(ColorSet&&) noexcept = default;
-
-Bug: 819294
-Change-Id: I00f4374fbf3d41dced9f9451c90478db528cb986
----
-
-diff --git a/ui/color/color_set.cc b/ui/color/color_set.cc
-index 56564d7..0d43b2b 100644
---- a/ui/color/color_set.cc
-+++ b/ui/color/color_set.cc
-@@ -9,9 +9,9 @@
- ColorSet::ColorSet(ColorSetId id, ColorMap&& colors)
-     : id(id), colors(std::move(colors)) {}
- 
--ColorSet::ColorSet(ColorSet&&) noexcept = default;
-+ColorSet::ColorSet(ColorSet&&) = default;
- 
--ColorSet& ColorSet::operator=(ColorSet&&) noexcept = default;
-+ColorSet& ColorSet::operator=(ColorSet&&) = default;
- 
- ColorSet::~ColorSet() = default;
- 
-diff --git a/ui/color/color_set.h b/ui/color/color_set.h
-index b273c48..3eaea42 100644
---- a/ui/color/color_set.h
-+++ b/ui/color/color_set.h
-@@ -28,8 +28,8 @@
-   using ColorMap = base::flat_map<ColorId, SkColor>;
- 
-   ColorSet(ColorSetId id, ColorMap&& colors);
--  ColorSet(ColorSet&&) noexcept;
--  ColorSet& operator=(ColorSet&&) noexcept;
-+  ColorSet(ColorSet&&);
-+  ColorSet& operator=(ColorSet&&);
-   ~ColorSet();
- 
-   ColorSetId id;

diff --git a/www-client/chromium/files/chromium-80-gcc-permissive.patch b/www-client/chromium/files/chromium-80-gcc-permissive.patch
new file mode 100644
index 00000000000..c7aef49add1
--- /dev/null
+++ b/www-client/chromium/files/chromium-80-gcc-permissive.patch
@@ -0,0 +1,33 @@
+In file included from ../../media/base/media_log_properties.h:13,
+                 from ../../media/base/media_log.h:23,
+                 from ../../media/filters/frame_processor.h:15,
+                 from ../../media/filters/frame_processor.cc:5:
+../../media/base/media_log_properties_helper.h:86:8: error: extra qualification not allowed [-fpermissive]
+   86 | struct internal::MediaLogPropertyTypeConverter<media::AudioDecoderConfig> {
+      |        ^~~~~~~~
+../../media/base/media_log_properties_helper.h:86:75: error: explicit specialization of non-template 'media::internal::<unnamed struct>'
+   86 | struct internal::MediaLogPropertyTypeConverter<media::AudioDecoderConfig> {
+      |                                                                           ^
+
+diff --git a/media/base/media_log_properties_helper.h b/media/base/media_log_properties_helper.h
+index 95ff70a..549b003 100644
+--- a/media/base/media_log_properties_helper.h
++++ b/media/base/media_log_properties_helper.h
+@@ -83,7 +83,7 @@ struct MediaLogPropertyTypeConverter<std::vector<T>> {
+ 
+ // Specializer for sending AudioDecoderConfigs to the media tab in devtools.
+ template <>
+-struct internal::MediaLogPropertyTypeConverter<media::AudioDecoderConfig> {
++struct MediaLogPropertyTypeConverter<media::AudioDecoderConfig> {
+   static base::Value Convert(const AudioDecoderConfig& value) {
+     base::Value result(base::Value::Type::DICTIONARY);
+     result.SetStringKey("codec", GetCodecName(value.codec()));
+@@ -114,7 +114,7 @@ struct internal::MediaLogPropertyTypeConverter<media::AudioDecoderConfig> {
+ 
+ // Specializer for sending VideoDecoderConfigs to the media tab in devtools.
+ template <>
+-struct internal::MediaLogPropertyTypeConverter<VideoDecoderConfig> {
++struct MediaLogPropertyTypeConverter<VideoDecoderConfig> {
+   static base::Value Convert(const VideoDecoderConfig& value) {
+     base::Value result(base::Value::Type::DICTIONARY);
+     result.SetStringKey("codec", GetCodecName(value.codec()));

diff --git a/www-client/chromium/files/chromium-80-include.patch b/www-client/chromium/files/chromium-80-include.patch
index a2a00a9d455..dd85de7249c 100644
--- a/www-client/chromium/files/chromium-80-include.patch
+++ b/www-client/chromium/files/chromium-80-include.patch
@@ -1,13 +1,33 @@
-diff --git a/third_party/blink/renderer/core/core_initializer.h b/third_party/blink/renderer/core/core_initializer.h
-index 5e67f46..3b750c7 100644
---- a/third_party/blink/renderer/core/core_initializer.h
-+++ b/third_party/blink/renderer/core/core_initializer.h
-@@ -36,6 +36,8 @@
- #include "third_party/blink/renderer/core/core_export.h"
- #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
+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 <memory>
-+
- namespace mojo {
- class BinderMap;
- }
+ #include <algorithm>
++#include <cmath>
+ #include <iterator>
+ 
+ #include "base/i18n/case_conversion.h"


             reply	other threads:[~2019-12-23 16:22 UTC|newest]

Thread overview: 153+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-23 16:22 Mike Gilbert [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-03-04 13:28 [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/ Matt Jolly
2025-02-13 10:59 Matt Jolly
2025-01-28 23:28 Matt Jolly
2025-01-19  1:36 Matt Jolly
2024-11-12 14:43 Matt Jolly
2024-10-12 11:05 Matt Jolly
2024-07-07  9:46 Matt Jolly
2024-05-21  5:59 Matt Jolly
2024-04-26  1:54 Matt Jolly
2024-04-18 15:30 Matt Jolly
2024-01-31  9:42 Sam James
2024-01-31  9:42 Sam James
2023-11-24 22:48 Sam James
2023-08-15  8:02 Stephan Hartmann
2023-08-14  7:12 Stephan Hartmann
2023-08-04  6:57 Stephan Hartmann
2023-08-03 18:31 Stephan Hartmann
2023-06-30 13:11 Stephan Hartmann
2023-06-29 14:49 Stephan Hartmann
2023-06-14 15:09 Mike Gilbert
2023-06-10  5:09 Sam James
2023-05-05 14:17 Mike Gilbert
2023-04-22 23:29 Mike Gilbert
2023-04-14 15:57 Mike Gilbert
2023-04-03 17:32 Mike Gilbert
2023-03-28 15:29 Mike Gilbert
2023-03-13  2:01 Mike Gilbert
2023-01-14  8:38 Stephan Hartmann
2022-12-04 23:40 Sam James
2022-10-01  9:58 Stephan Hartmann
2022-09-26 20:33 Stephan Hartmann
2022-08-20 18:07 Stephan Hartmann
2022-08-20  8:18 Stephan Hartmann
2022-03-11 17:10 Stephan Hartmann
2022-03-03 18:09 Stephan Hartmann
2022-02-20 14:12 Stephan Hartmann
2022-01-30  8:37 Stephan Hartmann
2022-01-24  9:33 Stephan Hartmann
2022-01-23 18:05 Stephan Hartmann
2022-01-23 18:03 Stephan Hartmann
2022-01-12 18:53 Stephan Hartmann
2022-01-03 18:20 Stephan Hartmann
2021-11-22 16:03 Stephan Hartmann
2021-11-13 20:08 Stephan Hartmann
2021-11-04 20:16 Stephan Hartmann
2021-10-30 17:30 Stephan Hartmann
2021-10-24  7:30 Stephan Hartmann
2021-10-10 17:45 Stephan Hartmann
2021-10-04 20:58 Stephan Hartmann
2021-09-14 11:27 Stephan Hartmann
2021-09-11  7:47 Stephan Hartmann
2021-09-08 20:00 Stephan Hartmann
2021-08-08 11:50 Jason A. Donenfeld
2021-07-27 17:39 Stephan Hartmann
2021-07-26 21:17 Stephan Hartmann
2021-07-24  9:48 Stephan Hartmann
2021-06-16 21:28 Stephan Hartmann
2021-05-22  8:37 Stephan Hartmann
2021-04-19 13:07 Stephan Hartmann
2021-04-13 17:01 Stephan Hartmann
2021-02-28  9:16 Stephan Hartmann
2021-02-18 22:08 Stephan Hartmann
2021-02-14  8:43 Stephan Hartmann
2020-11-22  8:18 Stephan Hartmann
2020-10-22 17:24 Mike Gilbert
2020-10-03  7:25 Stephan Hartmann
2020-09-12  9:16 Stephan Hartmann
2020-09-07  5:27 Stephan Hartmann
2020-07-29 18:02 Mike Gilbert
2020-07-26 16:42 Mike Gilbert
2020-06-20  4:09 Aaron Bauman
2020-06-04 14:47 Mike Gilbert
2020-05-30  0:19 Mike Gilbert
2020-05-08 16:23 Mike Gilbert
2020-05-03 19:57 Mike Gilbert
2020-04-11 16:43 Mike Gilbert
2020-04-09 17:20 Mike Gilbert
2020-04-08 15:30 Mike Gilbert
2020-03-30 18:55 Mike Gilbert
2020-03-15 18:35 Mike Gilbert
2020-03-10 15:06 Mike Gilbert
2020-02-14 20:12 Mike Gilbert
2020-02-06 20:48 Mike Gilbert
2020-02-06 20:24 Mike Gilbert
2020-01-20 17:04 Mike Gilbert
2019-12-18 17:31 Mike Gilbert
2019-11-11 21:04 Mike Gilbert
2019-11-06 18:56 Mike Gilbert
2019-10-29 20:11 Mike Gilbert
2019-10-27 14:40 Mike Gilbert
2019-08-27 17:25 Mike Gilbert
2019-08-22 15:00 Mike Gilbert
2019-08-08 15:46 Mike Gilbert
2019-08-02 20:42 Mike Gilbert
2019-07-29 17:32 Mike Gilbert
2019-07-25 14:34 Mike Gilbert
2019-06-25 14:58 Mike Gilbert
2019-06-19 21:24 Mike Gilbert
2019-06-18 13:52 Mike Gilbert
2019-02-17 17:53 Mike Gilbert
2019-02-15 20:26 Mike Gilbert
2019-02-10 15:44 Mike Gilbert
2018-11-05  0:22 Mike Gilbert
2018-11-05  0:22 Mike Gilbert
2018-10-21 15:17 Mike Gilbert
2018-09-22 17:38 Mike Gilbert
2018-07-22  0:41 Mike Gilbert
2018-06-20 14:00 Mike Gilbert
2018-06-16 19:34 Mike Gilbert
2018-05-29 19:36 Mike Gilbert
2018-04-30 23:26 Mike Gilbert
2018-03-04 23:02 Mike Gilbert
2018-02-21 20:31 Mike Gilbert
2018-01-14  2:32 Mike Gilbert
2017-12-09 16:00 Mike Gilbert
2017-11-04 22:17 Mike Gilbert
2017-11-04 14:53 Mike Gilbert
2017-10-04 13:50 Paweł Hajdan
2017-09-27 12:32 Paweł Hajdan
2017-09-04 21:07 Paweł Hajdan
2017-08-16 19:35 Paweł Hajdan
2017-08-02 21:28 Mike Gilbert
2017-07-27  8:22 Paweł Hajdan
2017-07-17 12:41 Paweł Hajdan
2017-06-28 15:18 Paweł Hajdan
2017-06-26  7:09 Paweł Hajdan
2017-06-11 17:35 Mike Gilbert
2017-06-11 16:39 Paweł Hajdan
2017-05-31 20:19 Paweł Hajdan
2017-05-17 14:22 Paweł Hajdan
2017-04-28 15:09 Paweł Hajdan
2017-04-13 19:18 Paweł Hajdan
2017-03-22  2:39 Mike Gilbert
2017-03-20 12:12 Paweł Hajdan
2017-03-12  1:00 Mike Gilbert
2017-01-29 22:27 Mike Gilbert
2017-01-22  5:24 Mike Gilbert
2017-01-05 21:47 Paweł Hajdan
2016-11-08 19:14 Mike Gilbert
2016-10-17 15:35 Mike Gilbert
2016-09-01 17:11 Mike Gilbert
2016-08-01 17:37 Paweł Hajdan
2016-06-13 20:38 Paweł Hajdan
2016-06-03 18:58 Paweł Hajdan
2016-06-01 20:22 Paweł Hajdan
2016-05-08 20:06 Paweł Hajdan
2016-03-25 21:29 Paweł Hajdan
2016-03-09  4:33 Mike Gilbert
2015-12-07 21:19 Paweł Hajdan
2015-11-29 21:44 Paweł Hajdan
2015-11-19  7:19 Paweł Hajdan
2015-09-08 21:01 Paweł Hajdan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1577118116.8ba7a983c4c70ff8d4afe770efeebe60160baafd.floppym@gentoo \
    --to=floppym@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox