-c8b274991cdd5064aed600add48a0bf6 0001-Clip-FreeType-glyph-bitmap-to-mask.patch
-e5f1c85bec4a50df09da6d4b17249826 chromium-60.0.3112.78.tar.xz
+75f9199e5e0b31e9fbfbaf1f3071b411 chromium-60.0.3112.90.tar.xz
034bc28a6988f3d6d1e7f291ec95365c chromium-blink-gcc7.patch
bce5db9dba2aec40a1a709797a907e2a chromium-build-toolchain.patch
776649f56b8f7bcad7f23d496bba8042 chromium-gn-bootstrap-r2.patch
# Depends on: dbus-glib gperf gtk libevent libexif libgcrypt mesa3d ninja nodejs nss pciutils speech-dispatcher xorg-libxscrnsaver xorg-libxt xorg-libxtst yasm
name=chromium
-version=60.0.3112.78
+version=60.0.3112.90
release=1
source=(http://commondatastorage.googleapis.com/$name-browser-official/$name-$version.tar.xz \
last-commit-position.patch $name-build-toolchain.patch $name-gn-bootstrap-r2.patch $name.sh $name.desktop
- 0001-Clip-FreeType-glyph-bitmap-to-mask.patch
chromium-blink-gcc7.patch
chromium-v8-gcc7.patch
chromium-gn-bootstrap-r8.patch)
# we don't use git sources
patch -p1 -i $SRC/last-commit-position.patch
- # https://bugs.chromium.org/p/skia/issues/detail?id=6663
- patch -p1 -d third_party/skia -i $SRC/0001-Clip-FreeType-glyph-bitmap-to-mask.patch
-
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=853347
patch -p1 -i $SRC/chromium-blink-gcc7.patch
--- /dev/null
+--- chromium-59.0.3071.86/third_party/WebKit/Source/platform/wtf/LinkedHashSet.h.orig 2017-06-06 15:05:38.145247996 +0300
++++ chromium-59.0.3071.86/third_party/WebKit/Source/platform/wtf/LinkedHashSet.h 2017-06-06 15:06:13.866246667 +0300
+@@ -685,6 +685,31 @@ inline LinkedHashSet<T, U, V, W>& Linked
+ return *this;
+ }
+
++inline void SwapAnchor(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b) {
++ DCHECK(a.prev_);
++ DCHECK(a.next_);
++ DCHECK(b.prev_);
++ DCHECK(b.next_);
++ swap(a.prev_, b.prev_);
++ swap(a.next_, b.next_);
++ if (b.next_ == &a) {
++ DCHECK_EQ(b.prev_, &a);
++ b.next_ = &b;
++ b.prev_ = &b;
++ } else {
++ b.next_->prev_ = &b;
++ b.prev_->next_ = &b;
++ }
++ if (a.next_ == &b) {
++ DCHECK_EQ(a.prev_, &b);
++ a.next_ = &a;
++ a.prev_ = &a;
++ } else {
++ a.next_->prev_ = &a;
++ a.prev_->next_ = &a;
++ }
++}
++
+ template <typename T, typename U, typename V, typename W>
+ inline void LinkedHashSet<T, U, V, W>::Swap(LinkedHashSet& other) {
+ impl_.Swap(other.impl_);
+@@ -877,31 +902,6 @@ inline void LinkedHashSet<T, U, V, W>::e
+ erase(Find(value));
+ }
+
+-inline void SwapAnchor(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b) {
+- DCHECK(a.prev_);
+- DCHECK(a.next_);
+- DCHECK(b.prev_);
+- DCHECK(b.next_);
+- swap(a.prev_, b.prev_);
+- swap(a.next_, b.next_);
+- if (b.next_ == &a) {
+- DCHECK_EQ(b.prev_, &a);
+- b.next_ = &b;
+- b.prev_ = &b;
+- } else {
+- b.next_->prev_ = &b;
+- b.prev_->next_ = &b;
+- }
+- if (a.next_ == &b) {
+- DCHECK_EQ(a.prev_, &b);
+- a.next_ = &a;
+- a.prev_ = &a;
+- } else {
+- a.next_->prev_ = &a;
+- a.prev_->next_ = &a;
+- }
+-}
+-
+ inline void swap(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b) {
+ DCHECK_NE(a.next_, &a);
+ DCHECK_NE(b.next_, &b);
+--- chromium-59.0.3071.86/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.orig 2017-06-06 16:16:43.657661313 +0300
++++ chromium-59.0.3071.86/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h 2017-06-06 16:16:50.911198032 +0300
+@@ -5,6 +5,7 @@
+ #include "platform/PlatformExport.h"
+ #include "platform/wtf/ThreadSpecific.h"
+
++#include <functional>
+ #include <memory>
+
+ namespace gpu {
--- /dev/null
+Index: tools/gn/bootstrap/bootstrap.py
+diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
+index 6f2f5b1264519ea38cc36fb0b7e2cc24c378ca7a..0b03d2626b358fb90ab39d737679ee47bd60303b 100755
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -487,6 +487,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+ 'base/sys_info.cc',
+ 'base/task_runner.cc',
+ 'base/task_scheduler/delayed_task_manager.cc',
++ 'base/task_scheduler/environment_config.cc',
+ 'base/task_scheduler/post_task.cc',
+ 'base/task_scheduler/priority_queue.cc',
+ 'base/task_scheduler/scheduler_lock_impl.cc',
--- /dev/null
+diff -upr chromium-59.0.3071.86.orig/v8/src/objects/hash-table.h chromium-59.0.3071.86/v8/src/objects/hash-table.h
+--- chromium-59.0.3071.86.orig/v8/src/objects/hash-table.h 2017-06-05 22:04:29.000000000 +0300
++++ chromium-59.0.3071.86/v8/src/objects/hash-table.h 2017-06-06 14:35:41.558245559 +0300
+@@ -135,22 +135,10 @@ class HashTable : public HashTableBase {
+ public:
+ typedef Shape ShapeT;
+
+- // Wrapper methods
+- inline uint32_t Hash(Key key) {
+- if (Shape::UsesSeed) {
+- return Shape::SeededHash(key, GetHeap()->HashSeed());
+- } else {
+- return Shape::Hash(key);
+- }
+- }
+-
+- inline uint32_t HashForObject(Key key, Object* object) {
+- if (Shape::UsesSeed) {
+- return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
+- } else {
+- return Shape::HashForObject(key, object);
+- }
+- }
++ // Wrapper methods. Defined in src/objects-inl.h
++ // to break a cycle with src/heap/heap.h.
++ inline uint32_t Hash(Key key);
++ inline uint32_t HashForObject(Key key, Object* object);
+
+ // Returns a new HashTable object.
+ MUST_USE_RESULT static Handle<Derived> New(
+diff -upr chromium-59.0.3071.86.orig/v8/src/objects-body-descriptors.h chromium-59.0.3071.86/v8/src/objects-body-descriptors.h
+--- chromium-59.0.3071.86.orig/v8/src/objects-body-descriptors.h 2017-06-05 22:04:29.000000000 +0300
++++ chromium-59.0.3071.86/v8/src/objects-body-descriptors.h 2017-06-06 14:35:41.554912132 +0300
+@@ -99,7 +99,7 @@ class FixedBodyDescriptor final : public
+
+ template <typename StaticVisitor>
+ static inline void IterateBody(HeapObject* obj, int object_size) {
+- IterateBody(obj);
++ IterateBody<StaticVisitor>(obj);
+ }
+ };
+
+diff -upr chromium-59.0.3071.86.orig/v8/src/objects-inl.h chromium-59.0.3071.86/v8/src/objects-inl.h
+--- chromium-59.0.3071.86.orig/v8/src/objects-inl.h 2017-06-05 22:04:29.000000000 +0300
++++ chromium-59.0.3071.86/v8/src/objects-inl.h 2017-06-06 14:35:41.558245559 +0300
+@@ -46,6 +46,27 @@
+ namespace v8 {
+ namespace internal {
+
++template <typename Derived, typename Shape, typename Key>
++uint32_t HashTable<Derived, Shape, Key>::Hash(Key key) {
++ if (Shape::UsesSeed) {
++ return Shape::SeededHash(key, GetHeap()->HashSeed());
++ } else {
++ return Shape::Hash(key);
++ }
++}
++
++
++template <typename Derived, typename Shape, typename Key>
++uint32_t HashTable<Derived, Shape, Key>::HashForObject(Key key,
++ Object* object) {
++ if (Shape::UsesSeed) {
++ return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
++ } else {
++ return Shape::HashForObject(key, object);
++ }
++}
++
++
+ PropertyDetails::PropertyDetails(Smi* smi) {
+ value_ = smi->value();
+ }
--- /dev/null
+--- a/tools/gn/gn_main.cc.orig 2015-11-12 11:49:56.260549036 +0000
++++ b/tools/gn/gn_main.cc 2015-11-12 11:50:14.780931485 +0000
+@@ -11,13 +11,7 @@
+ #include "tools/gn/standard_out.h"
+ #include "tools/gn/switches.h"
+
+-// Only the GN-generated build makes this header for now.
+-// TODO(brettw) consider adding this if we need it in GYP.
+-#if defined(GN_BUILD)
+-#include "tools/gn/last_commit_position.h"
+-#else
+ #define LAST_COMMIT_POSITION "UNKNOWN"
+-#endif
+
+ namespace {
+
+--- a/tools/gn/BUILD.gn.orig 2015-11-12 11:50:43.513524769 +0000
++++ b/tools/gn/BUILD.gn 2015-11-12 11:50:57.697817632 +0000
+@@ -227,7 +227,6 @@
+
+ deps = [
+ ":gn_lib",
+- ":last_commit_position",
+ "//base",
+ "//build/config/sanitizers:deps",
+ ]