extra/chromium to 66.0.3359.139-1

This commit is contained in:
Kevin Mihelich 2018-05-06 18:50:13 +00:00
parent 9edfacd6b9
commit 2ea5bd7e9a
9 changed files with 47 additions and 636 deletions

View file

@ -1,58 +0,0 @@
From eb185b185e741acd88be56f7f77ee6b333399cf1 Mon Sep 17 00:00:00 2001
From: Kevin Mihelich <kevin@archlinuxarm.org>
Date: Sun, 23 Oct 2016 10:57:25 -0600
Subject: [PATCH 1/7] ARM toolchain fixes
---
build/toolchain/linux/BUILD.gn | 24 ++++++++++--------------
1 file changed, 10 insertions(+), 14 deletions(-)
diff --git a/build/toolchain/linux/BUILD.gn b/build/toolchain/linux/BUILD.gn
index 4e9ff440d18c..7f528b08c98a 100644
--- a/build/toolchain/linux/BUILD.gn
+++ b/build/toolchain/linux/BUILD.gn
@@ -22,15 +22,13 @@ clang_toolchain("clang_arm64") {
}
gcc_toolchain("arm64") {
- toolprefix = "aarch64-linux-gnu-"
-
- cc = "${toolprefix}gcc"
- cxx = "${toolprefix}g++"
+ cc = "gcc"
+ cxx = "g++"
- ar = "${toolprefix}ar"
+ ar = "ar"
ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
+ readelf = "readelf"
+ nm = "nm"
toolchain_args = {
current_cpu = "arm64"
@@ -40,15 +38,13 @@ gcc_toolchain("arm64") {
}
gcc_toolchain("arm") {
- toolprefix = "arm-linux-gnueabihf-"
-
- cc = "${toolprefix}gcc"
- cxx = "${toolprefix}g++"
+ cc = "gcc"
+ cxx = "g++"
- ar = "${toolprefix}ar"
+ ar = "ar"
ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
+ readelf = "readelf"
+ nm = "nm"
toolchain_args = {
current_cpu = "arm"
--
2.17.0

View file

@ -1,76 +0,0 @@
From 502ce644e4a319e99d25602356895831ec16c033 Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jose.dapena@lge.com>
Date: Wed, 7 Mar 2018 18:50:50 +0000
Subject: [PATCH 2/7] GCC build fix: mark is_trivially_copy_constructible for
WTF::Vector as false.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Compilation in GCC fails because of https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80654
if T in WTF::Optional<WTF::Vector<T>> is not trivially copy constructible.
The problem already happened in std::vector and was workarounded. This
change implements a similar fix for WTF::Vector.
Bug: 816952
Change-Id: If87f01beb952e03eb49dcaf0c5db6efd745bf05e
Reviewed-on: https://chromium-review.googlesource.com/944404
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#541516}
---
third_party/WebKit/Source/platform/wtf/DEPS | 1 +
third_party/WebKit/Source/platform/wtf/Vector.h | 17 +++++++++++++++++
2 files changed, 18 insertions(+)
diff --git a/third_party/WebKit/Source/platform/wtf/DEPS b/third_party/WebKit/Source/platform/wtf/DEPS
index a2b6603245b4..bccf1e08c77d 100644
--- a/third_party/WebKit/Source/platform/wtf/DEPS
+++ b/third_party/WebKit/Source/platform/wtf/DEPS
@@ -16,6 +16,7 @@ include_rules = [
"+base/process/process_metrics.h",
"+base/rand_util.h",
"+base/strings",
+ "+base/template_util.h",
"+base/threading/thread_checker.h",
"+base/time/time.h",
"+base/tuple.h",
diff --git a/third_party/WebKit/Source/platform/wtf/Vector.h b/third_party/WebKit/Source/platform/wtf/Vector.h
index c356287b2f42..8421b135e162 100644
--- a/third_party/WebKit/Source/platform/wtf/Vector.h
+++ b/third_party/WebKit/Source/platform/wtf/Vector.h
@@ -28,6 +28,7 @@
#include <utility>
#include "base/macros.h"
+#include "base/template_util.h"
#include "build/build_config.h"
#include "platform/wtf/Alignment.h"
#include "platform/wtf/ConditionalDestructor.h"
@@ -1995,6 +1996,22 @@ Vector<T, inlineCapacity, Allocator>::Trace(VisitorDispatcher visitor) {
} // namespace WTF
+namespace base {
+
+#if defined(__GNUC__) && !defined(__clang__) && __GNUC__ <= 7
+// Workaround for g++7 and earlier family.
+// Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80654, without this
+// Optional<WTF::Vector<T>> where T is non-copyable causes a compile error.
+// As we know it is not trivially copy constructible, explicitly declare so.
+//
+// It completes the declaration in base/template_util.h that was provided
+// for std::vector
+template <typename T>
+struct is_trivially_copy_constructible<WTF::Vector<T>> : std::false_type {};
+#endif
+
+} // namespace base
+
using WTF::Vector;
#endif // WTF_Vector_h
--
2.17.0

View file

@ -1,41 +0,0 @@
From 4bfee656740d6f6a28cc822cf781bffac1c1ca24 Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jose.dapena@lge.com>
Date: Mon, 5 Mar 2018 14:19:54 +0000
Subject: [PATCH 3/7] GCC build fix: base::Optional<T> requires the full
declaration of T
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
In GCC 7.2/7.3, base::Optional<T> fails to compile, if T has still
only been forward declared, as it cannot properly resolve the
is_trivially_* declarations. In this case it is needed to include the
full declaration of the type, and not only the forward declaration.
Change-Id: I63e5c6307394c6c2eda6af108c80395152bfc04f
Reviewed-on: https://chromium-review.googlesource.com/944401
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
Reviewed-by: Bernhard Bauer <bauerb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#540815}
---
services/preferences/tracked/pref_hash_filter.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/services/preferences/tracked/pref_hash_filter.h b/services/preferences/tracked/pref_hash_filter.h
index c425aee850dd..2bad7bb5ce8b 100644
--- a/services/preferences/tracked/pref_hash_filter.h
+++ b/services/preferences/tracked/pref_hash_filter.h
@@ -21,9 +21,9 @@
#include "services/preferences/public/mojom/preferences.mojom.h"
#include "services/preferences/tracked/hash_store_contents.h"
#include "services/preferences/tracked/interceptable_pref_filter.h"
+#include "services/preferences/tracked/pref_hash_store.h"
#include "services/preferences/tracked/tracked_preference.h"
-class PrefHashStore;
class PrefService;
namespace base {
--
2.17.0

View file

@ -1,163 +0,0 @@
From 5ab7125656d24d876b08958f7718e2b8cbbaea1b Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jose.dapena@lge.com>
Date: Mon, 5 Mar 2018 23:43:08 +0000
Subject: [PATCH 4/7] GCC: IDB methods String() renamed to GetString()
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
GCC 7.2/7.3 complains for redefining String as a method, in IDB code,
because the string accessor is named String(). So rename the accessor
to be GetString.
It seems basic.scope.hiding should imply the original code is valid,
so reported as a bug to GCC:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84709
Change-Id: Ide66104bd0953f5bb03a1bc62d7f238833ea62e7
Reviewed-on: https://chromium-review.googlesource.com/944406
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Victor Costan <pwnall@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#540986}
---
.../Source/bindings/modules/v8/V8BindingForModules.cpp | 10 +++++-----
.../bindings/modules/v8/V8BindingForModulesTest.cpp | 2 +-
.../WebKit/Source/modules/exported/WebIDBKey.cpp | 2 +-
.../WebKit/Source/modules/indexeddb/IDBDatabase.cpp | 2 +-
third_party/WebKit/Source/modules/indexeddb/IDBKey.h | 2 +-
.../WebKit/Source/modules/indexeddb/IDBKeyPath.h | 2 +-
.../modules/indexeddb/InspectorIndexedDBAgent.cpp | 2 +-
7 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/third_party/WebKit/Source/bindings/modules/v8/V8BindingForModules.cpp b/third_party/WebKit/Source/bindings/modules/v8/V8BindingForModules.cpp
index 63e7e711431f..f9f9ce518c22 100644
--- a/third_party/WebKit/Source/bindings/modules/v8/V8BindingForModules.cpp
+++ b/third_party/WebKit/Source/bindings/modules/v8/V8BindingForModules.cpp
@@ -68,7 +68,7 @@ v8::Local<v8::Value> ToV8(const IDBKeyPath& value,
case IDBKeyPath::kNullType:
return v8::Null(isolate);
case IDBKeyPath::kStringType:
- return V8String(isolate, value.String());
+ return V8String(isolate, value.GetString());
case IDBKeyPath::kArrayType:
return ToV8(value.Array(), creation_context, isolate);
}
@@ -97,7 +97,7 @@ v8::Local<v8::Value> ToV8(const IDBKey* key,
case IDBKey::kNumberType:
return v8::Number::New(isolate, key->Number());
case IDBKey::kStringType:
- return V8String(isolate, key->String());
+ return V8String(isolate, key->GetString());
case IDBKey::kBinaryType:
// https://w3c.github.io/IndexedDB/#convert-a-value-to-a-key
return ToV8(DOMArrayBuffer::Create(key->Binary()), creation_context,
@@ -375,7 +375,7 @@ static std::unique_ptr<IDBKey> CreateIDBKeyFromValueAndKeyPath(
}
DCHECK_EQ(key_path.GetType(), IDBKeyPath::kStringType);
- return CreateIDBKeyFromValueAndKeyPath(isolate, value, key_path.String(),
+ return CreateIDBKeyFromValueAndKeyPath(isolate, value, key_path.GetString(),
exception_state);
}
@@ -479,7 +479,7 @@ bool InjectV8KeyIntoV8Value(v8::Isolate* isolate,
DCHECK(isolate->InContext());
DCHECK_EQ(key_path.GetType(), IDBKeyPath::kStringType);
- Vector<String> key_path_elements = ParseKeyPath(key_path.String());
+ Vector<String> key_path_elements = ParseKeyPath(key_path.GetString());
// The conbination of a key generator and an empty key path is forbidden by
// spec.
@@ -565,7 +565,7 @@ bool CanInjectIDBKeyIntoScriptValue(v8::Isolate* isolate,
const IDBKeyPath& key_path) {
IDB_TRACE("canInjectIDBKeyIntoScriptValue");
DCHECK_EQ(key_path.GetType(), IDBKeyPath::kStringType);
- Vector<String> key_path_elements = ParseKeyPath(key_path.String());
+ Vector<String> key_path_elements = ParseKeyPath(key_path.GetString());
if (!key_path_elements.size())
return false;
diff --git a/third_party/WebKit/Source/bindings/modules/v8/V8BindingForModulesTest.cpp b/third_party/WebKit/Source/bindings/modules/v8/V8BindingForModulesTest.cpp
index 8f79cd7d1560..9add0d0e971d 100644
--- a/third_party/WebKit/Source/bindings/modules/v8/V8BindingForModulesTest.cpp
+++ b/third_party/WebKit/Source/bindings/modules/v8/V8BindingForModulesTest.cpp
@@ -118,7 +118,7 @@ void CheckKeyPathStringValue(v8::Isolate* isolate,
CheckKeyFromValueAndKeyPathInternal(isolate, value, key_path);
ASSERT_TRUE(idb_key);
ASSERT_EQ(IDBKey::kStringType, idb_key->GetType());
- ASSERT_TRUE(expected == idb_key->String());
+ ASSERT_TRUE(expected == idb_key->GetString());
}
void CheckKeyPathNumberValue(v8::Isolate* isolate,
diff --git a/third_party/WebKit/Source/modules/exported/WebIDBKey.cpp b/third_party/WebKit/Source/modules/exported/WebIDBKey.cpp
index 86015cdab573..4f6657af8fc9 100644
--- a/third_party/WebKit/Source/modules/exported/WebIDBKey.cpp
+++ b/third_party/WebKit/Source/modules/exported/WebIDBKey.cpp
@@ -56,7 +56,7 @@ WebData WebIDBKeyView::Binary() const {
}
WebString WebIDBKeyView::String() const {
- return private_->String();
+ return private_->GetString();
}
double WebIDBKeyView::Date() const {
diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.cpp b/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.cpp
index cd4a379398e6..b563e355bab7 100644
--- a/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.cpp
+++ b/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.cpp
@@ -297,7 +297,7 @@ IDBObjectStore* IDBDatabase::createObjectStore(
}
if (auto_increment && ((key_path.GetType() == IDBKeyPath::kStringType &&
- key_path.String().IsEmpty()) ||
+ key_path.GetString().IsEmpty()) ||
key_path.GetType() == IDBKeyPath::kArrayType)) {
exception_state.ThrowDOMException(
kInvalidAccessError,
diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBKey.h b/third_party/WebKit/Source/modules/indexeddb/IDBKey.h
index d5f062867441..19d5c0222b64 100644
--- a/third_party/WebKit/Source/modules/indexeddb/IDBKey.h
+++ b/third_party/WebKit/Source/modules/indexeddb/IDBKey.h
@@ -106,7 +106,7 @@ class MODULES_EXPORT IDBKey {
return binary_;
}
- const String& String() const {
+ const String& GetString() const {
DCHECK_EQ(type_, kStringType);
return string_;
}
diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBKeyPath.h b/third_party/WebKit/Source/modules/indexeddb/IDBKeyPath.h
index 953c58a40a67..9f4a0532e211 100644
--- a/third_party/WebKit/Source/modules/indexeddb/IDBKeyPath.h
+++ b/third_party/WebKit/Source/modules/indexeddb/IDBKeyPath.h
@@ -65,7 +65,7 @@ class MODULES_EXPORT IDBKeyPath {
return array_;
}
- const String& String() const {
+ const String& GetString() const {
DCHECK_EQ(type_, kStringType);
return string_;
}
diff --git a/third_party/WebKit/Source/modules/indexeddb/InspectorIndexedDBAgent.cpp b/third_party/WebKit/Source/modules/indexeddb/InspectorIndexedDBAgent.cpp
index 47d3a98bf19c..06080a30718d 100644
--- a/third_party/WebKit/Source/modules/indexeddb/InspectorIndexedDBAgent.cpp
+++ b/third_party/WebKit/Source/modules/indexeddb/InspectorIndexedDBAgent.cpp
@@ -399,7 +399,7 @@ static std::unique_ptr<KeyPath> KeyPathFromIDBKeyPath(
case IDBKeyPath::kStringType:
key_path = KeyPath::create()
.setType(KeyPath::TypeEnum::String)
- .setString(idb_key_path.String())
+ .setString(idb_key_path.GetString())
.build();
break;
case IDBKeyPath::kArrayType: {
--
2.17.0

View file

@ -1,84 +0,0 @@
From 0aeaee3dd895eda3953d35193756724d3235c0bf Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jose.dapena@lge.com>
Date: Tue, 6 Mar 2018 02:13:13 +0000
Subject: [PATCH 5/7] GCC: explicitely std::move to base::Optional instead of
implicit conversion to base::Optional in return
GCC 7.2/7.3 complains in this pattern of code:
base::Optional<Foo>
Method() {
...
Foo response;
...
return response;
}
It seems it cannot properly resolve the implicit move to base::Optional, and
ends up failing to compile. To avoid that, this change explicitely moves to
base::Optional as return value:
return base::Optional<Foo>(std::move(response));
Change-Id: Ic0390e1c31340dc34a71bb4175bd63a4631248d6
Reviewed-on: https://chromium-review.googlesource.com/944402
Commit-Queue: Victor Costan <pwnall@chromium.org>
Reviewed-by: Matt Falkenhagen <falken@chromium.org>
Reviewed-by: Victor Costan <pwnall@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#541029}
---
content/browser/appcache/appcache_request_handler.cc | 2 +-
.../service_worker_controllee_request_handler.cc | 2 +-
device/fido/device_response_converter.cc | 4 ++--
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/content/browser/appcache/appcache_request_handler.cc b/content/browser/appcache/appcache_request_handler.cc
index 63cc984b4276..ff638ab56571 100644
--- a/content/browser/appcache/appcache_request_handler.cc
+++ b/content/browser/appcache/appcache_request_handler.cc
@@ -639,7 +639,7 @@ AppCacheRequestHandler::MaybeCreateSubresourceLoaderParams() {
SubresourceLoaderParams params;
params.loader_factory_info = factory_ptr.PassInterface();
- return params;
+ return base::Optional<SubresourceLoaderParams>(std::move(params));
}
void AppCacheRequestHandler::MaybeCreateSubresourceLoader(
diff --git a/content/browser/service_worker/service_worker_controllee_request_handler.cc b/content/browser/service_worker/service_worker_controllee_request_handler.cc
index 2ed0c353cad3..5b09f6d670c4 100644
--- a/content/browser/service_worker/service_worker_controllee_request_handler.cc
+++ b/content/browser/service_worker/service_worker_controllee_request_handler.cc
@@ -271,7 +271,7 @@ ServiceWorkerControlleeRequestHandler::MaybeCreateSubresourceLoaderParams() {
controller_info->object_info = provider_host_->GetOrCreateServiceWorkerHandle(
provider_host_->controller());
params.controller_service_worker_info = std::move(controller_info);
- return params;
+ return base::Optional<SubresourceLoaderParams>(std::move(params));
}
void ServiceWorkerControlleeRequestHandler::PrepareForMainResource(
diff --git a/device/fido/device_response_converter.cc b/device/fido/device_response_converter.cc
index 050ff2fc5d10..096f9f44872b 100644
--- a/device/fido/device_response_converter.cc
+++ b/device/fido/device_response_converter.cc
@@ -121,7 +121,7 @@ base::Optional<AuthenticatorGetAssertionResponse> ReadCTAPGetAssertionResponse(
response.SetNumCredentials(it->second.GetUnsigned());
}
- return response;
+ return base::Optional<AuthenticatorGetAssertionResponse>(std::move(response));
}
base::Optional<AuthenticatorGetInfoResponse> ReadCTAPGetInfoResponse(
@@ -241,7 +241,7 @@ base::Optional<AuthenticatorGetInfoResponse> ReadCTAPGetInfoResponse(
response.SetPinProtocols(std::move(supported_pin_protocols));
}
- return response;
+ return base::Optional<AuthenticatorGetInfoResponse>(std::move(response));
}
} // namespace device
--
2.17.0

View file

@ -1,42 +0,0 @@
From 152c1544d6966e15ca0b976c4e498caf56b79c73 Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jose.dapena@lge.com>
Date: Mon, 5 Mar 2018 15:59:12 +0000
Subject: [PATCH 6/7] GCC: do not use initializer list for NoDestructor of a
flat_set.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Compilation in GCC 7.x fails in SupervisedURLFilter, creating a
base::NoDestructor of a flat_set initialized with braces initializer
list syntax, as it fails to retrieve the right constructor (it states
the constructors are ambiguous).
Workaround the problem explicitely declaring flat_set constructor.
Change-Id: Icff5021685a6cbc727d5f4fb5fc6d2ce94fe9921
Reviewed-on: https://chromium-review.googlesource.com/944405
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
Reviewed-by: Bernhard Bauer <bauerb@chromium.org>
Reviewed-by: Marc Treib <treib@chromium.org>
Cr-Commit-Position: refs/heads/master@{#540828}
---
chrome/browser/supervised_user/supervised_user_url_filter.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/chrome/browser/supervised_user/supervised_user_url_filter.cc b/chrome/browser/supervised_user/supervised_user_url_filter.cc
index 64d6569088d1..a3a81d77f0a3 100644
--- a/chrome/browser/supervised_user/supervised_user_url_filter.cc
+++ b/chrome/browser/supervised_user/supervised_user_url_filter.cc
@@ -368,7 +368,7 @@ SupervisedUserURLFilter::GetFilteringBehaviorForURL(
// Allow navigations to whitelisted origins (currently families.google.com).
static const base::NoDestructor<base::flat_set<GURL>> kWhitelistedOrigins(
- {GURL(kFamiliesUrl).GetOrigin()});
+ base::flat_set<GURL>({GURL(kFamiliesUrl).GetOrigin()}));
if (base::ContainsKey(*kWhitelistedOrigins, effective_url.GetOrigin()))
return ALLOW;
--
2.17.0

View file

@ -1,132 +0,0 @@
From 71e1ac4b000ff9a7714323e21b800ec99d8bf048 Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jose.dapena@lge.com>
Date: Thu, 8 Mar 2018 17:46:02 +0000
Subject: [PATCH 7/7] GCC: PlaybackImageProvider::Settings: explicitely set
copy constructor.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
GCC fails to resolve the default copy constructor of the flat_map, so
we add an explicit reference to use default copy constructor.
Bug: 819294
Change-Id: Ie2d69bdbe60742e9253251c965cbf0a936037871
Reviewed-on: https://chromium-review.googlesource.com/944403
Reviewed-by: David Reveman <reveman@chromium.org>
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
Cr-Commit-Position: refs/heads/master@{#541827}
---
cc/raster/playback_image_provider.cc | 7 +++++--
cc/raster/playback_image_provider.h | 6 ++++--
cc/raster/playback_image_provider_unittest.cc | 15 ++++++++++-----
3 files changed, 19 insertions(+), 9 deletions(-)
diff --git a/cc/raster/playback_image_provider.cc b/cc/raster/playback_image_provider.cc
index 557b421bbaef..b2ace4dc4fa8 100644
--- a/cc/raster/playback_image_provider.cc
+++ b/cc/raster/playback_image_provider.cc
@@ -20,7 +20,7 @@ void UnrefImageFromCache(DrawImage draw_image,
PlaybackImageProvider::PlaybackImageProvider(
ImageDecodeCache* cache,
const gfx::ColorSpace& target_color_space,
- base::Optional<Settings> settings)
+ base::Optional<Settings>&& settings)
: cache_(cache),
target_color_space_(target_color_space),
settings_(std::move(settings)) {
@@ -70,7 +70,10 @@ PlaybackImageProvider::GetDecodedDrawImage(const DrawImage& draw_image) {
}
PlaybackImageProvider::Settings::Settings() = default;
-PlaybackImageProvider::Settings::Settings(const Settings& other) = default;
+PlaybackImageProvider::Settings::Settings(PlaybackImageProvider::Settings&&) =
+ default;
PlaybackImageProvider::Settings::~Settings() = default;
+PlaybackImageProvider::Settings& PlaybackImageProvider::Settings::operator=(
+ PlaybackImageProvider::Settings&&) = default;
} // namespace cc
diff --git a/cc/raster/playback_image_provider.h b/cc/raster/playback_image_provider.h
index 67974f3f341d..a33092d2b5b4 100644
--- a/cc/raster/playback_image_provider.h
+++ b/cc/raster/playback_image_provider.h
@@ -20,8 +20,10 @@ class CC_EXPORT PlaybackImageProvider : public ImageProvider {
public:
struct CC_EXPORT Settings {
Settings();
- Settings(const Settings& other);
+ Settings(const Settings&) = delete;
+ Settings(Settings&&);
~Settings();
+ Settings& operator=(Settings&&);
// The set of image ids to skip during raster.
PaintImageIdFlatSet images_to_skip;
@@ -34,7 +36,7 @@ class CC_EXPORT PlaybackImageProvider : public ImageProvider {
// If no settings are provided, all images are skipped during rasterization.
PlaybackImageProvider(ImageDecodeCache* cache,
const gfx::ColorSpace& target_color_space,
- base::Optional<Settings> settings);
+ base::Optional<Settings>&& settings);
~PlaybackImageProvider() override;
PlaybackImageProvider(PlaybackImageProvider&& other);
diff --git a/cc/raster/playback_image_provider_unittest.cc b/cc/raster/playback_image_provider_unittest.cc
index 0206999d6e4a..40036e87032d 100644
--- a/cc/raster/playback_image_provider_unittest.cc
+++ b/cc/raster/playback_image_provider_unittest.cc
@@ -85,7 +85,8 @@ TEST(PlaybackImageProviderTest, SkipsSomeImages) {
settings.emplace();
settings->images_to_skip = {skip_image.stable_id()};
- PlaybackImageProvider provider(&cache, gfx::ColorSpace(), settings);
+ PlaybackImageProvider provider(&cache, gfx::ColorSpace(),
+ std::move(settings));
SkIRect rect = SkIRect::MakeWH(10, 10);
SkMatrix matrix = SkMatrix::I();
@@ -99,7 +100,8 @@ TEST(PlaybackImageProviderTest, RefAndUnrefDecode) {
base::Optional<PlaybackImageProvider::Settings> settings;
settings.emplace();
- PlaybackImageProvider provider(&cache, gfx::ColorSpace(), settings);
+ PlaybackImageProvider provider(&cache, gfx::ColorSpace(),
+ std::move(settings));
{
SkRect rect = SkRect::MakeWH(10, 10);
@@ -127,7 +129,8 @@ TEST(PlaybackImageProviderTest, SwapsGivenFrames) {
settings.emplace();
settings->image_to_current_frame_index = image_to_frame;
- PlaybackImageProvider provider(&cache, gfx::ColorSpace(), settings);
+ PlaybackImageProvider provider(&cache, gfx::ColorSpace(),
+ std::move(settings));
SkIRect rect = SkIRect::MakeWH(10, 10);
SkMatrix matrix = SkMatrix::I();
@@ -143,7 +146,8 @@ TEST(PlaybackImageProviderTest, BitmapImages) {
base::Optional<PlaybackImageProvider::Settings> settings;
settings.emplace();
- PlaybackImageProvider provider(&cache, gfx::ColorSpace(), settings);
+ PlaybackImageProvider provider(&cache, gfx::ColorSpace(),
+ std::move(settings));
{
SkIRect rect = SkIRect::MakeWH(10, 10);
@@ -174,7 +178,8 @@ TEST(PlaybackImageProviderTest, TextureImages) {
MockDecodeCache cache;
base::Optional<PlaybackImageProvider::Settings> settings;
settings.emplace();
- PlaybackImageProvider provider(&cache, gfx::ColorSpace(), settings);
+ PlaybackImageProvider provider(&cache, gfx::ColorSpace(),
+ std::move(settings));
{
SkIRect rect = SkIRect::MakeWH(10, 10);
SkMatrix matrix = SkMatrix::I();
--
2.17.0

View file

@ -5,26 +5,29 @@
# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - build with system ffmpeg, patch to fix build
# - patch to fix skia build on AArch64
# - makeflags to -j4 on v7, RAM constraints
# - patch to fix GN ARM toolchain definitions
# - remove makedepend on clang, build with gcc
# - build ARMv7 with NEON
# - let build set march on AArch64
# - disable cfi, gold linker
buildarch=12
highmem=1
noautobuild=1
pkgname=chromium
pkgver=66.0.3359.139
pkgrel=1
_launcher_ver=6
pkgdesc="A web browser built for speed, simplicity, and security"
arch=('i686' 'x86_64' 'armv7h' 'aarch64')
arch=('x86_64')
url="https://www.chromium.org/Home"
license=('BSD')
depends=('gtk3' 'nss' 'alsa-lib' 'xdg-utils' 'libxss' 'libcups' 'libgcrypt'
'ttf-font' 'systemd' 'dbus' 'libpulse' 'pciutils' 'json-glib'
'desktop-file-utils' 'hicolor-icon-theme')
makedepends=('python' 'python2' 'gperf' 'yasm' 'mesa' 'ninja' 'nodejs' 'git')
makedepends=('python' 'python2' 'gperf' 'yasm' 'mesa' 'ninja' 'nodejs' 'git'
'clang' 'lld' 'distcc-clang')
optdepends=('kdialog: needed for file dialogs in KDE'
'gnome-keyring: for storing passwords in GNOME keyring'
'kwallet: for storing passwords in KWallet')
@ -36,37 +39,17 @@ source=(https://commondatastorage.googleapis.com/chromium-browser-official/$pkgn
fix-frame-buttons-rendering-too-large-when-using-OSX.patch
chromium-skia-harmony.patch
chromium-widevine.patch
0001-ARM-toolchain-fixes.patch
0002-GCC-build-fix-mark-is_trivially_copy_constructible-f.patch
0003-GCC-build-fix-base-Optional-T-requires-the-full-decl.patch
0004-GCC-IDB-methods-String-renamed-to-GetString.patch
0005-GCC-explicitely-std-move-to-base-Optional-instead-of.patch
0006-GCC-do-not-use-initializer-list-for-NoDestructor-of-.patch
0007-GCC-PlaybackImageProvider-Settings-explicitely-set-c.patch
skia_buildfix.patch)
skia_buildfix.patch
chromium-ffmpeg-r1.patch)
sha256sums=('be75a5b5f8c5789d359238f374a43bf52ded49425f13ed68b8021c24e2e264b2'
'04917e3cd4307d8e31bfb0027a5dce6d086edb10ff8a716024fbb8bb0c7dccf1'
'2771c049b66c9aba3b945fe065f2610f164d55506eb5d71751a26aaf8b40d4ee'
'34eb82c625b7050021a8d3334ceaa7fa3d042dd816c228c14abb52b29796f7b9'
'e3fb73b43bb8c69ff517e66b2cac73d6e759fd240003eb35598df9af442422fe'
'4327289866d0b3006de62799ec06b07198a738e50e0a5c2e41ff62dbe00b4a2c'
'bd5e0e61df3f89172590801aea7c8ac75162c10c7fe83e262e96a14388d1633a'
'b20bb43c89dd1fb5fc787e52b7ef6f4f20714f7d74e33372c0979fe398b5b436'
'feca54ab09ac0fc9d0626770a6b899a6ac5a12173c7d0c1005bc3964ec83e7b3'
'4495e8b29dae242c79ffe4beefc5171eb3c7aacb7e9aebfd2d4d69b9d8c958d3'
'fe0ab86aa5b0072db730eccda3e1582ebed4af25815bfd49fe0da24cf63ca902'
'c00d2506f1078b38a8ebec474a7318e76a61db1298afb40088a34210f137210f'
'd6fdcb922e5a7fbe15759d39ccc8ea4225821c44d98054ce0f23f9d1f00c9808'
'66c665564d2055c570a058a5ba75d92cb39b6e1d09e58d6d1ccbed3a432c5efc'
'6a59ec7dbf3e09c5fb991f8902262faf951abc7e9a0b46aa08f3ccee7d36531b'
'06723f032086a80002e0982ce5872a392c82d99ce7ccd93719775423bea6b360'
'8bfe11e36521d00dbec018ab5e8d3e41da72b90173cafd3768c7c80ff096d49a'
'96646072a129166ac62ba269caddbbe6dd814f70f34d55014f78d1e69d47bc06'
'd512efc5780b0d187764cb7b52a71297b5423480d91a7cf5ec36690714b9551b'
'1b756d2d23724003e2f0516525c86218dcf49b14e776081f9d904fee847a243d'
'5087247e56a1196e3ef6b27bbb0aa9986288687183de78b8dea3d68f9f69451d'
'2cc6abc906f267a6c2621a793dffd20d99b3d7f017bd574c79dbe7ef8f6f8730'
'df836800052c1a9a29b048cffb542169a9f4dfe0383207322a2d85fa87c9423e'
'3da0ab55bf92307fe80ed7c9cce6443f5bebc96ba50e751d24f7302786a0406e')
'3da0ab55bf92307fe80ed7c9cce6443f5bebc96ba50e751d24f7302786a0406e'
'aa885330bc4180b78d915f9dfdfc3210038a0acab7b16735ea9828ab6a633bde')
# Possible replacements are listed in build/linux/unbundle/replace_gn_files.py
# Keys are the names in the above script; values are the dependencies in Arch
@ -121,17 +104,15 @@ prepare() {
tools/generate_shim_headers/generate_shim_headers.py
# Arch Linux ARM fixes
patch -Np1 -i ../0001-ARM-toolchain-fixes.patch
patch -Np1 -i ../0002-GCC-build-fix-mark-is_trivially_copy_constructible-f.patch
patch -Np1 -i ../0003-GCC-build-fix-base-Optional-T-requires-the-full-decl.patch
patch -Np1 -i ../0004-GCC-IDB-methods-String-renamed-to-GetString.patch
patch -Np1 -i ../0005-GCC-explicitely-std-move-to-base-Optional-instead-of.patch
patch -Np1 -i ../0006-GCC-do-not-use-initializer-list-for-NoDestructor-of-.patch
patch -Np1 -i ../0007-GCC-PlaybackImageProvider-Settings-explicitely-set-c.patch
patch -Np1 -i ../skia_buildfix.patch
patch -Np1 -i ../chromium-ffmpeg-r1.patch
# Build ARMv7 with NEON
[[ $CARCH == "armv7h" ]] && MAKEFLAGS="-j4" && CFLAGS=`echo $CFLAGS | sed -e 's/vfpv3-d16/neon/'` && CXXFLAGS="$CFLAGS"
# Allow build to set march and options on AArch64 (crc, crypto)
[[ $CARCH == "aarch64" ]] && CFLAGS=`echo $CFLAGS | sed -e 's/-march=armv8-a//'` && CXXFLAGS="$CFLAGS"
# Enable support for the Widevine CDM plugin
# libwidevinecdm.so is not included, but can be copied over from Chrome
# (Version string doesn't seem to matter so let's go with "Pinkie Pie")
@ -186,13 +167,18 @@ build() {
export CCACHE_SLOPPINESS=time_macros
fi
export CC=clang
export CXX=clang++
export AR=ar
export NM=nm
local _flags=(
'is_clang=false'
'custom_toolchain="//build/toolchain/linux/unbundle:default"'
'host_toolchain="//build/toolchain/linux/unbundle:default"'
'clang_use_chrome_plugins=false'
'is_official_build=true' # implies is_cfi=true on x86_64
'is_cfi=false'
'is_debug=false'
'fatal_linker_warnings=false'
'treat_warnings_as_errors=false'
'fieldtrial_testing_like_official_build=true'
'remove_webcore_debug_symbols=true'
@ -201,7 +187,6 @@ build() {
'link_pulseaudio=true'
'use_gnome_keyring=false'
'use_gold=false'
'use_lld=false'
'use_sysroot=false'
'linux_use_bundled_binutils=false'
'use_custom_libcxx=false'

View file

@ -0,0 +1,22 @@
--- a/build/linux/unbundle/ffmpeg.gn
+++ b/build/linux/unbundle/ffmpeg.gn
@@ -14,8 +14,8 @@ pkg_config("system_ffmpeg") {
]
}
-buildflag_header("ffmpeg_buildflags") {
- header = "ffmpeg_buildflags.h"
+buildflag_header("ffmpeg_features") {
+ header = "ffmpeg_features.h"
flags = [ "USE_SYSTEM_FFMPEG=true" ]
}
@@ -30,7 +30,7 @@ shim_headers("ffmpeg_shim") {
source_set("ffmpeg") {
deps = [
- ":ffmpeg_buildflags",
+ ":ffmpeg_features",
":ffmpeg_shim",
]
public_configs = [ ":system_ffmpeg" ]