$ git diff --patch-with-stat --summary 99c54bf5f4b283686d6ab4faeada008d3b0e28bc..f59ec9787bd54f49598c7011a6ede8144553c838
.abf.yml | 5 +-
chromium-40-wmvflvmpg.patch | 142 -----
chromium-46.0.2490.71-notest.patch | 8 +-
chromium-46.0.2490.86-use_system_opus.patch | 12 -
chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch | 11 -
chromium-50-system-ffmpeg-3.patch | 28 +
chromium-52.0.2743.116-unset-madv_free.patch | 15 -
chromium-52.0.2743.82-arm-webrtc.patch | 7 +-
chromium-52.0.2743.82-master-prefs-path.patch | 17 +-
chromium-53.0.2785.92-last-commit-position.patch | 28 -
chromium-54.0.2840.59-i686-ld-memory-tricks.patch | 12 -
chromium-54.0.2840.59-nullfix.patch | 35 --
chromium-54.0.2840.90-setopaque.patch | 13 -
chromium-55-extra-media.patch | 268 --------
chromium-55-flac.patch | 21 +-
chromium-55.0.2883.75-more-codec-aliases.patch | 15 -
chromium-55.0.2883.75-sandbox-pie.patch | 30 -
chromium-55.0.2883.75-use_system_harfbuzz.patch | 12 -
chromium-56.0.2924.87-fpermissive.patch | 13 -
chromium-56.0.2924.87-gcc5.patch | 354 -----------
chromium-56.0.2924.87-gcc7.patch | 82 ---
chromium-57.0.2987.110-enable-mp3.patch | 128 ----
...-b794998819088f76b4cf44c8db6940240c563cf4.patch | 19 +
chromium-59-clang-workaround.patch | 101 +++
chromium-59.0.3071.86-i686-ld-memory-tricks.patch | 12 +
chromium-59.0.3071.86-nullfix.patch | 34 +
...3112.113-libavutil-timer-include-path-fix.patch | 21 +
chromium-60.0.3112.78-jpeg-nomangle.patch | 14 +
chromium-60.0.3112.78-no-libpng-prefix.patch | 17 +
chromium-60.0.3112.78-no-zlib-mangle.patch | 13 +
chromium-61.0.3163.79-gcc-no-opt-safe-math.patch | 13 +
chromium-62.0.3202.62-kmaxskip-constexpr.patch | 12 +
chromium-63.0.3289.84-aarch64-glibc-2.26.90.patch | 12 +
chromium-64-system-curl.patch | 11 +
chromium-64.0.3282.119-ffmpeg-stdatomic.patch | 17 +
chromium-65.0.3325.146-gcc-round-fix.patch | 12 +
chromium-65.0.3325.146-memcpy-fix.patch | 12 +
chromium-65.0.3325.162-epel7-stdc++.patch | 12 +
...fully-declare-ConfigurationPolicyProvider.patch | 18 +
chromium-66.0.3359.117-gcc5-r3.patch | 38 ++
chromium-66.0.3359.117-missing-files.patch | 272 ++++++++
chromium-66.0.3359.117-system-clang.patch | 12 +
chromium-67.0.3396.62-gcc5.patch | 12 +
....patch => chromium-67.0.3396.62-gn-system.patch | 47 +-
chromium-67.0.3396.62-skia-aarch64-buildfix.patch | 21 +
chromium-69-extra-media.patch | 274 ++++++++
chromium-69-no-static-libstdc++.patch | 11 +
chromium-69-wmvflvmpg.patch | 135 ++++
chromium-69.0.3497.81-build-sanely-please.patch | 33 +
chromium-69.0.3497.81-gcc8-alignof.patch | 18 +
chromium-69.0.3497.81-norar.patch | 79 +++
chromium-70.0.3538.102-sysroot.patch | 22 +
chromium-70.0.3538.67-sandbox-pie.patch | 20 +
chromium-70.0.3538.77-gcc7.patch | 117 ++++
chromium-browser-stable.rpmlintrc | 3 +
chromium-browser-stable.spec | 692 ++++++++++++---------
chromium-gcc8-r588316.patch | 98 +++
chromium-gcc8-r588547.patch | 30 +
chromium-gcc8-r589614.patch | 37 ++
chromium-gcc8-r591015.patch | 70 +++
chromium-gn-bootstrap-r2.patch | 13 -
chromium-system-ffmpeg-r3.patch | 48 --
chromium-system-icu.patch | 19 +
chromium-system-jinja-r13.patch | 31 -
chromium-widevine-r2.patch | 39 ++
revert-Xclang-instcombine-lower-dbg-declare.patch | 24 +
66 files changed, 2210 insertions(+), 1611 deletions(-)
delete mode 100644 chromium-40-wmvflvmpg.patch
delete mode 100644 chromium-46.0.2490.86-use_system_opus.patch
delete mode 100644 chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
create mode 100644 chromium-50-system-ffmpeg-3.patch
delete mode 100644 chromium-52.0.2743.116-unset-madv_free.patch
delete mode 100644 chromium-53.0.2785.92-last-commit-position.patch
delete mode 100644 chromium-54.0.2840.59-i686-ld-memory-tricks.patch
delete mode 100644 chromium-54.0.2840.59-nullfix.patch
delete mode 100644 chromium-54.0.2840.90-setopaque.patch
delete mode 100644 chromium-55-extra-media.patch
delete mode 100644 chromium-55.0.2883.75-more-codec-aliases.patch
delete mode 100644 chromium-55.0.2883.75-sandbox-pie.patch
delete mode 100644 chromium-55.0.2883.75-use_system_harfbuzz.patch
delete mode 100644 chromium-56.0.2924.87-fpermissive.patch
delete mode 100644 chromium-56.0.2924.87-gcc5.patch
delete mode 100644 chromium-56.0.2924.87-gcc7.patch
delete mode 100644 chromium-57.0.2987.110-enable-mp3.patch
create mode 100644 chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
create mode 100644 chromium-59-clang-workaround.patch
create mode 100644 chromium-59.0.3071.86-i686-ld-memory-tricks.patch
create mode 100644 chromium-59.0.3071.86-nullfix.patch
create mode 100644 chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
create mode 100644 chromium-60.0.3112.78-jpeg-nomangle.patch
create mode 100644 chromium-60.0.3112.78-no-libpng-prefix.patch
create mode 100644 chromium-60.0.3112.78-no-zlib-mangle.patch
create mode 100644 chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
create mode 100644 chromium-62.0.3202.62-kmaxskip-constexpr.patch
create mode 100644 chromium-63.0.3289.84-aarch64-glibc-2.26.90.patch
create mode 100644 chromium-64-system-curl.patch
create mode 100644 chromium-64.0.3282.119-ffmpeg-stdatomic.patch
create mode 100644 chromium-65.0.3325.146-gcc-round-fix.patch
create mode 100644 chromium-65.0.3325.146-memcpy-fix.patch
create mode 100644 chromium-65.0.3325.162-epel7-stdc++.patch
create mode 100644 chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
create mode 100644 chromium-66.0.3359.117-gcc5-r3.patch
create mode 100644 chromium-66.0.3359.117-missing-files.patch
create mode 100644 chromium-66.0.3359.117-system-clang.patch
create mode 100644 chromium-67.0.3396.62-gcc5.patch
rename chromium-54.0.2840.59-gn-system.patch => chromium-67.0.3396.62-gn-system.patch (69%)
create mode 100644 chromium-67.0.3396.62-skia-aarch64-buildfix.patch
create mode 100644 chromium-69-extra-media.patch
create mode 100644 chromium-69-no-static-libstdc++.patch
create mode 100644 chromium-69-wmvflvmpg.patch
create mode 100644 chromium-69.0.3497.81-build-sanely-please.patch
create mode 100644 chromium-69.0.3497.81-gcc8-alignof.patch
create mode 100644 chromium-69.0.3497.81-norar.patch
create mode 100644 chromium-70.0.3538.102-sysroot.patch
create mode 100644 chromium-70.0.3538.67-sandbox-pie.patch
create mode 100644 chromium-70.0.3538.77-gcc7.patch
create mode 100644 chromium-browser-stable.rpmlintrc
create mode 100644 chromium-gcc8-r588316.patch
create mode 100644 chromium-gcc8-r588547.patch
create mode 100644 chromium-gcc8-r589614.patch
create mode 100644 chromium-gcc8-r591015.patch
delete mode 100644 chromium-gn-bootstrap-r2.patch
delete mode 100644 chromium-system-ffmpeg-r3.patch
create mode 100644 chromium-system-icu.patch
delete mode 100644 chromium-system-jinja-r13.patch
create mode 100644 chromium-widevine-r2.patch
create mode 100644 revert-Xclang-instcombine-lower-dbg-declare.patch
diff --git a/.abf.yml b/.abf.yml
index e65b827..22c6fd3 100644
--- a/.abf.yml
+++ b/.abf.yml
@@ -1,2 +1,5 @@
+removed_sources:
+ chromium-69.0.3497.100.tar.xz: 79c8fb089e8f344dce40c6495a006a172d4fc4ac
+ chromium-70.0.3538.77.tar.xz: d57862224568adb6a379592431cf5ce3c5bf757a
sources:
- chromium-58.0.3029.110.tar.xz: c7b093fb65d55b9da1254c7ceb8b1674a59d8973
+ chromium-70.0.3538.102.tar.xz: c618752828e5acc094f9bb5fe438f994e1630f67
diff --git a/chromium-40-wmvflvmpg.patch b/chromium-40-wmvflvmpg.patch
deleted file mode 100644
index ea7377b..0000000
--- a/chromium-40-wmvflvmpg.patch
+++ /dev/null
@@ -1,142 +0,0 @@
-diff -up chromium-51.0.2704.19/media/base/mime_util_internal.cc.wmvflvmpg chromium-51.0.2704.19/media/base/mime_util_internal.cc
---- chromium-51.0.2704.19/media/base/mime_util_internal.cc.wmvflvmpg 2016-04-20 21:52:50.506158768 +0200
-+++ chromium-51.0.2704.19/media/base/mime_util_internal.cc 2016-04-20 22:15:04.206160526 +0200
-@@ -86,7 +86,17 @@
- {"dts", MimeUtil::DTS},
- {"mp2", MimeUtil::MP2},
- {"mp4v.20.8", MimeUtil::MPEG4_SP},
-- {"mp4v.20.240", MimeUtil::MPEG4_ASP}
-+ {"mp4v.20.240", MimeUtil::MPEG4_ASP},
-+ {"msmpeg4v1", MimeUtil::MSMPEG4v1},
-+ {"msmpeg4v2", MimeUtil::MSMPEG4v2},
-+ {"msmpeg4v3", MimeUtil::MSMPEG4v3},
-+ {"wmv7", MimeUtil::WMV7},
-+ {"wmv8", MimeUtil::WMV8},
-+ {"wmv9", MimeUtil::WMV9},
-+ {"vc-1", MimeUtil::VC1},
-+ {"wma", MimeUtil::WMA},
-+ {"vp6", MimeUtil::VP6},
-+ {"mpeg1", MimeUtil::MPEG1}
- };
-
- return kStringToCodecMap;
-@@ -398,6 +408,9 @@
- webm_video_codecs.insert(VP9);
- CodecSet webm_codecs(webm_audio_codecs);
- webm_codecs.insert(webm_video_codecs.begin(), webm_video_codecs.end());
-+
-+ CodecSet mp1_codecs;
-+ mp1_codecs.insert(MPEG1);
-
- #if BUILDFLAG(USE_PROPRIETARY_CODECS)
- CodecSet mp3_codecs;
-@@ -431,6 +444,29 @@
- mp4_codecs.insert(mp4_video_codecs.begin(), mp4_video_codecs.end());
- #endif // BUILDFLAG(USE_PROPRIETARY_CODECS)
-
-+ CodecSet wma_codecs;
-+ wma_codecs.insert(WMA);
-+
-+ CodecSet wmv_codecs(wma_codecs);
-+ wmv_codecs.insert(MSMPEG4v1);
-+ wmv_codecs.insert(MSMPEG4v2);
-+ wmv_codecs.insert(MSMPEG4v3);
-+ wmv_codecs.insert(MPEG4_SP);
-+ wmv_codecs.insert(MPEG4_ASP);
-+ wmv_codecs.insert(WMV7);
-+ wmv_codecs.insert(WMV8);
-+ wmv_codecs.insert(WMV9);
-+ wmv_codecs.insert(VC1);
-+
-+ matroska_codecs.insert(MSMPEG4v1);
-+ matroska_codecs.insert(MSMPEG4v2);
-+ matroska_codecs.insert(MSMPEG4v3);
-+
-+ CodecSet flv_codecs;
-+ flv_codecs.insert(VP6);
-+ flv_codecs.insert(mp4_codecs.begin(), mp4_codecs.end());
-+ flv_codecs.insert(MP3);
-+
- AddContainerWithCodecs("audio/wav", wav_codecs, false);
- AddContainerWithCodecs("audio/x-wav", wav_codecs, false);
- AddContainerWithCodecs("audio/webm", webm_audio_codecs, false);
-@@ -446,6 +482,11 @@
-
- AddContainerWithCodecs("audio/x-matroska", matroska_audio_codecs, false);
- AddContainerWithCodecs("video/x-matroska", matroska_codecs, false);
-+ AddContainerWithCodecs("video/x-ms-wmv", wmv_codecs, true);
-+ AddContainerWithCodecs("audio/x-ms-wma", wma_codecs, true);
-+ AddContainerWithCodecs("video/x-ms-asf", wmv_codecs, true);
-+ AddContainerWithCodecs("video/x-flv", flv_codecs, true);
-+ AddContainerWithCodecs("video/mpeg", mp1_codecs, true);
-
- #if BUILDFLAG(USE_PROPRIETARY_CODECS)
- AddContainerWithCodecs("audio/mpeg", mp3_codecs, true); // Allow "mp3".
-@@ -806,6 +847,15 @@
- case DTS:
- case MPEG4_SP:
- case MPEG4_ASP:
-+ case MSMPEG4v1:
-+ case MSMPEG4v2:
-+ case MSMPEG4v3:
-+ case WMV7:
-+ case WMV8:
-+ case WMV9:
-+ case VC1:
-+ case WMA:
-+ case VP6:
- return true;
-
- case PCM:
-@@ -814,6 +864,7 @@
- case VP8:
- case VP9:
- case THEORA:
-+ case MPEG1:
- return false;
- }
-
-diff -up chromium-51.0.2704.19/media/base/mime_util_internal.h.wmvflvmpg chromium-51.0.2704.19/media/base/mime_util_internal.h
---- chromium-51.0.2704.19/media/base/mime_util_internal.h.wmvflvmpg 2016-04-20 21:52:50.507158749 +0200
-+++ chromium-51.0.2704.19/media/base/mime_util_internal.h 2016-04-20 21:52:50.960150543 +0200
-@@ -43,7 +43,17 @@ class MEDIA_EXPORT MimeUtil {
- MP2,
- MPEG4_SP,
- MPEG4_ASP,
-- LAST_CODEC = MPEG4_ASP
-+ MSMPEG4v1,
-+ MSMPEG4v2,
-+ MSMPEG4v3,
-+ WMV7,
-+ WMV8,
-+ WMV9,
-+ VC1,
-+ WMA,
-+ VP6,
-+ MPEG1,
-+ LAST_CODEC = MPEG1
- };
-
- // Platform configuration structure. Controls which codecs are supported at
-diff -up chromium-51.0.2704.19/net/base/mime_util.cc.wmvflvmpg chromium-51.0.2704.19/net/base/mime_util.cc
---- chromium-51.0.2704.19/net/base/mime_util.cc.wmvflvmpg 2016-04-20 21:52:50.507158749 +0200
-+++ chromium-51.0.2704.19/net/base/mime_util.cc 2016-04-20 21:52:50.960150543 +0200
-@@ -81,6 +81,10 @@ static const MimeInfo kPrimaryMappings[]
- {"video/x-matroska", "mkv"},
- {"audio/x-matroska", "mkv"},
- {"video/x-msvideo", "avi"},
-+ {"video/x-ms-wmv", "wmv"},
-+ {"audio/x-ms-wma", "wma"},
-+ {"video/x-flv", "flv"},
-+ {"video/mpeg", "mpg,mpeg"},
- {"application/xhtml+xml", "xhtml,xht,xhtm"},
- {"application/x-chrome-extension", "crx"},
- {"multipart/related", "mhtml,mht"}};
-@@ -445,6 +449,7 @@ static const char* const kStandardVideoT
- "video/sd-video",
- "video/webm",
- "video/x-dv",
-+ "video/x-flv",
- "video/x-m4v",
- "video/x-matroska",
- "video/x-mpeg",
diff --git a/chromium-46.0.2490.71-notest.patch b/chromium-46.0.2490.71-notest.patch
index e4e3448..01ef0af 100644
--- a/chromium-46.0.2490.71-notest.patch
+++ b/chromium-46.0.2490.71-notest.patch
@@ -1,11 +1,11 @@
-diff -up chromium-46.0.2490.71/chrome/test/data/webui_test_resources.grd.notest chromium-46.0.2490.71/chrome/test/data/webui_test_resources.grd
---- chromium-46.0.2490.71/chrome/test/data/webui_test_resources.grd.notest 2015-10-16 02:01:56.644149741 -0400
-+++ chromium-46.0.2490.71/chrome/test/data/webui_test_resources.grd 2015-10-16 02:02:36.217285227 -0400
+diff -up chromium-68.0.3440.42/chrome/test/data/webui_test_resources.grd.0004~ chromium-68.0.3440.42/chrome/test/data/webui_test_resources.grd
+--- chromium-68.0.3440.42/chrome/test/data/webui_test_resources.grd.0004~ 2018-07-07 00:38:05.716047181 +0200
++++ chromium-68.0.3440.42/chrome/test/data/webui_test_resources.grd 2018-07-07 01:15:57.337131890 +0200
@@ -8,7 +8,6 @@
</outputs>
<release seq="1">
<includes>
- <include name="IDR_WEBUI_TEST_I18N_PROCESS_CSS_TEST" file="webui/i18n_process_css_test.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
+ <include name="IDR_WEB_UI_TEST_MOJO_JS" file="${root_gen_dir}/chrome/test/data/webui/web_ui_test.mojom.js" use_base_dir="false" type="BINDATA"/>
</includes>
</release>
- </grit>
diff --git a/chromium-46.0.2490.86-use_system_opus.patch b/chromium-46.0.2490.86-use_system_opus.patch
deleted file mode 100644
index d54938b..0000000
--- a/chromium-46.0.2490.86-use_system_opus.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-46.0.2490.86/media/cast/receiver/audio_decoder_unittest.cc.use_system_opus chromium-46.0.2490.86/media/cast/receiver/audio_decoder_unittest.cc
---- chromium-46.0.2490.86/media/cast/receiver/audio_decoder_unittest.cc.use_system_opus 2015-10-07 04:42:12.000000000 +0200
-+++ chromium-46.0.2490.86/media/cast/receiver/audio_decoder_unittest.cc 2015-11-11 16:11:13.535250609 +0100
-@@ -13,7 +13,7 @@
- #include "media/cast/test/utility/audio_utility.h"
- #include "media/cast/test/utility/standalone_cast_environment.h"
- #include "testing/gtest/include/gtest/gtest.h"
--#include "third_party/opus/src/include/opus.h"
-+#include <opus/opus.h>
-
- namespace media {
- namespace cast {
diff --git a/chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch b/chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
deleted file mode 100644
index bfe0422..0000000
--- a/chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-47.0.2526.80/native_client/build/untrusted.gypi.fixme chromium-47.0.2526.80/native_client/build/untrusted.gypi
---- chromium-47.0.2526.80/native_client/build/untrusted.gypi.fixme 2015-12-09 11:54:27.584962337 -0500
-+++ chromium-47.0.2526.80/native_client/build/untrusted.gypi 2015-12-09 11:54:45.033571750 -0500
-@@ -1564,6 +1564,7 @@
- '-Wno-char-subscripts',
- '-Wno-unused-function',
- '-std=gnu++11',
-+ '-fgnu-inline-asm',
- ],
- 'native_irt_compile_flags': [
- # IRT compile/link flags to make the binary smaller.
diff --git a/chromium-50-system-ffmpeg-3.patch b/chromium-50-system-ffmpeg-3.patch
new file mode 100644
index 0000000..10ba33c
--- /dev/null
+++ b/chromium-50-system-ffmpeg-3.patch
@@ -0,0 +1,28 @@
+diff -up chromium-51.0.2687.0/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc.system-ffmpeg-3 chromium-51.0.2687.0/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc
+--- chromium-51.0.2687.0/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc.system-ffmpeg-3 2016-03-22 23:02:39.000000000 +0100
++++ chromium-51.0.2687.0/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc 2016-03-23 18:51:16.810699343 +0100
+@@ -15,9 +15,9 @@
+ #include <limits>
+
+ extern "C" {
+-#include "third_party/ffmpeg/libavcodec/avcodec.h"
+-#include "third_party/ffmpeg/libavformat/avformat.h"
+-#include "third_party/ffmpeg/libavutil/imgutils.h"
++#include <libavcodec/avcodec.h>
++#include <libavformat/avformat.h>
++#include <libavutil/imgutils.h>
+ } // extern "C"
+
+ #include "api/video/color_space.h"
+diff -up chromium-51.0.2687.0/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.h.system-ffmpeg-3 chromium-51.0.2687.0/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.h
+--- chromium-51.0.2687.0/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.h.system-ffmpeg-3 2016-03-23 18:55:39.080894319 +0100
++++ chromium-51.0.2687.0/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.h 2016-03-23 18:54:32.178123691 +0100
+@@ -17,7 +17,7 @@
+ #include "modules/video_coding/codecs/h264/include/h264.h"
+
+ extern "C" {
+-#include "third_party/ffmpeg/libavcodec/avcodec.h"
++#include <libavcodec/avcodec.h>
+ } // extern "C"
+
+ #include "common_video/h264/h264_bitstream_parser.h"
diff --git a/chromium-52.0.2743.116-unset-madv_free.patch b/chromium-52.0.2743.116-unset-madv_free.patch
deleted file mode 100644
index 2867c79..0000000
--- a/chromium-52.0.2743.116-unset-madv_free.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-52.0.2743.116/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp.madv_free chromium-52.0.2743.116/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp
---- chromium-52.0.2743.116/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp.madv_free 2016-08-15 13:07:29.279655676 -0400
-+++ chromium-52.0.2743.116/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp 2016-08-15 13:08:38.447317416 -0400
-@@ -41,6 +41,11 @@
- #include <errno.h>
- #include <sys/mman.h>
-
-+#if OS(LINUX) && defined(MADV_FREE)
-+// Added in Linux 4.5, but it breaks the sandbox.
-+#undef MADV_FREE
-+#endif
-+
- #ifndef MADV_FREE
- #define MADV_FREE MADV_DONTNEED
- #endif
diff --git a/chromium-52.0.2743.82-arm-webrtc.patch b/chromium-52.0.2743.82-arm-webrtc.patch
index f1a6629..59a634a 100644
--- a/chromium-52.0.2743.82-arm-webrtc.patch
+++ b/chromium-52.0.2743.82-arm-webrtc.patch
@@ -1,9 +1,8 @@
-diff -up chromium-52.0.2743.82/third_party/webrtc/system_wrappers/source/cpu_features.cc.armwebrtc chromium-52.0.2743.82/third_party/webrtc/system_wrappers/source/cpu_features.cc
---- chromium-52.0.2743.82/third_party/webrtc/system_wrappers/source/cpu_features.cc.armwebrtc 2016-08-03 09:30:53.922861020 +0200
-+++ chromium-52.0.2743.82/third_party/webrtc/system_wrappers/source/cpu_features.cc 2016-08-03 09:32:00.337498174 +0200
+--- chromium-63.0.3230.0/third_party/webrtc/system_wrappers/source/cpu_features.cc.0016~ 2017-10-09 19:07:22.113723328 +0200
++++ chromium-63.0.3230.0/third_party/webrtc/system_wrappers/source/cpu_features.cc 2017-10-09 19:09:23.100996328 +0200
@@ -18,6 +18,47 @@
- #include "webrtc/typedefs.h"
+ #include "typedefs.h" // NOLINT(build/include)
+#include <elf.h>
+#ifdef __arm__
diff --git a/chromium-52.0.2743.82-master-prefs-path.patch b/chromium-52.0.2743.82-master-prefs-path.patch
index 6ddd26f..ee96b80 100644
--- a/chromium-52.0.2743.82-master-prefs-path.patch
+++ b/chromium-52.0.2743.82-master-prefs-path.patch
@@ -1,15 +1,18 @@
-diff -up chromium-52.0.2743.82/chrome/browser/first_run/first_run_internal_linux.cc.etc chromium-52.0.2743.82/chrome/browser/first_run/first_run_internal_linux.cc
---- chromium-52.0.2743.82/chrome/browser/first_run/first_run_internal_linux.cc.etc 2016-08-03 10:15:57.980692109 +0200
-+++ chromium-52.0.2743.82/chrome/browser/first_run/first_run_internal_linux.cc 2016-08-03 10:16:44.553325229 +0200
-@@ -19,9 +19,9 @@ bool IsOrganicFirstRun() {
+diff -up chromium-68.0.3440.42/chrome/browser/first_run/first_run_internal_linux.cc.0018~ chromium-68.0.3440.42/chrome/browser/first_run/first_run_internal_linux.cc
+--- chromium-68.0.3440.42/chrome/browser/first_run/first_run_internal_linux.cc.0018~ 2018-07-06 22:07:17.479709771 +0200
++++ chromium-68.0.3440.42/chrome/browser/first_run/first_run_internal_linux.cc 2018-07-06 22:09:07.912713889 +0200
+@@ -19,9 +19,14 @@ bool IsOrganicFirstRun() {
base::FilePath MasterPrefsPath() {
// The standard location of the master prefs is next to the chrome binary.
-+ // ...but we patch it to use /etc/chromium
++ // but we patch it to look in /etc/chromium
base::FilePath master_prefs;
-- if (!PathService::Get(base::DIR_EXE, &master_prefs))
-- return base::FilePath();
++#if 0
+ if (!base::PathService::Get(base::DIR_EXE, &master_prefs))
+ return base::FilePath();
++#else
+ master_prefs = base::FilePath("/etc/chromium");
++#endif
return master_prefs.AppendASCII(installer::kDefaultMasterPrefs);
}
diff --git a/chromium-53.0.2785.92-last-commit-position.patch b/chromium-53.0.2785.92-last-commit-position.patch
deleted file mode 100644
index 46806f7..0000000
--- a/chromium-53.0.2785.92-last-commit-position.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff -up chromium-53.0.2785.92/tools/gn/BUILD.gn.lastcommitfix chromium-53.0.2785.92/tools/gn/BUILD.gn
---- chromium-53.0.2785.92/tools/gn/BUILD.gn.lastcommitfix 2016-09-06 13:50:17.540459136 -0400
-+++ chromium-53.0.2785.92/tools/gn/BUILD.gn 2016-09-06 13:50:27.380269110 -0400
-@@ -259,7 +259,6 @@ executable("gn") {
-
- deps = [
- ":gn_lib",
-- ":last_commit_position",
- "//base",
- "//build/config/sanitizers:deps",
- "//build/win:default_exe_manifest",
-diff -up chromium-53.0.2785.92/tools/gn/gn_main.cc.lastcommitfix chromium-53.0.2785.92/tools/gn/gn_main.cc
---- chromium-53.0.2785.92/tools/gn/gn_main.cc.lastcommitfix 2016-09-06 13:49:34.620288177 -0400
-+++ chromium-53.0.2785.92/tools/gn/gn_main.cc 2016-09-06 13:49:47.316042652 -0400
-@@ -12,13 +12,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 {
-
diff --git a/chromium-54.0.2840.59-i686-ld-memory-tricks.patch b/chromium-54.0.2840.59-i686-ld-memory-tricks.patch
deleted file mode 100644
index 0ebec9e..0000000
--- a/chromium-54.0.2840.59-i686-ld-memory-tricks.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-54.0.2840.59/build/toolchain/linux/BUILD.gn.ldmemory chromium-54.0.2840.59/build/toolchain/linux/BUILD.gn
---- chromium-54.0.2840.59/build/toolchain/linux/BUILD.gn.ldmemory 2016-10-19 15:56:20.253096784 -0400
-+++ chromium-54.0.2840.59/build/toolchain/linux/BUILD.gn 2016-10-19 15:58:17.940833948 -0400
-@@ -71,7 +71,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = "-fno-delete-null-pointer-checks -g1"
-
- toolchain_args = {
- current_cpu = "x86"
diff --git a/chromium-54.0.2840.59-nullfix.patch b/chromium-54.0.2840.59-nullfix.patch
deleted file mode 100644
index 53e2db1..0000000
--- a/chromium-54.0.2840.59-nullfix.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-diff -up chromium-54.0.2840.59/build/toolchain/linux/BUILD.gn.nullfix chromium-54.0.2840.59/build/toolchain/linux/BUILD.gn
---- chromium-54.0.2840.59/build/toolchain/linux/BUILD.gn.nullfix 2016-10-13 16:49:26.844221023 -0400
-+++ chromium-54.0.2840.59/build/toolchain/linux/BUILD.gn 2016-10-13 16:50:49.882605484 -0400
-@@ -31,6 +31,7 @@ gcc_toolchain("arm") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- current_cpu = "arm"
-@@ -70,6 +71,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- current_cpu = "x86"
-@@ -109,6 +111,7 @@ gcc_toolchain("x64") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- current_cpu = "x64"
-@@ -131,6 +134,7 @@ gcc_toolchain("mipsel") {
- ld = cxx
- readelf = "mipsel-linux-gnu-readelf"
- nm = "mipsel-linux-gnu-nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- cc_wrapper = ""
diff --git a/chromium-54.0.2840.90-setopaque.patch b/chromium-54.0.2840.90-setopaque.patch
deleted file mode 100644
index 90d6edc..0000000
--- a/chromium-54.0.2840.90-setopaque.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-54.0.2840.90/cc/blink/web_layer_impl.h.setopaque chromium-54.0.2840.90/cc/blink/web_layer_impl.h
---- chromium-54.0.2840.90/cc/blink/web_layer_impl.h.setopaque 2016-11-03 09:07:03.422497483 -0400
-+++ chromium-54.0.2840.90/cc/blink/web_layer_impl.h 2016-11-03 09:07:13.302307531 -0400
-@@ -80,7 +80,7 @@ class WebLayerImpl : public blink::WebLa
- blink::WebBlendMode blendMode() const override;
- void setIsRootForIsolatedGroup(bool root) override;
- bool isRootForIsolatedGroup() override;
-- void setOpaque(bool opaque) override;
-+ CC_BLINK_EXPORT void setOpaque(bool opaque) override;
- bool opaque() const override;
- void setPosition(const blink::WebFloatPoint& position) override;
- blink::WebFloatPoint position() const override;
-diff -up chromium-54.0.2840.90/content/renderer/child_frame_compositing_helper.cc.setopaque chromium-54.0.2840.90/content/renderer/child_frame_compositing_helper.cc
diff --git a/chromium-55-extra-media.patch b/chromium-55-extra-media.patch
deleted file mode 100644
index 9a7178b..0000000
--- a/chromium-55-extra-media.patch
+++ /dev/null
@@ -1,268 +0,0 @@
---- chromium-52.0.2716.0/media/base/mime_util_internal.cc 2016-04-27 08:42:25.933047659 +0200
-+++ chromium-52.0.2716.0/media/base/mime_util_internal.cc 2016-12-03 22:43:46.182795570 +0100
-@@ -78,7 +78,11 @@
- {"flac", MimeUtil::FLAC},
- {"vp8", MimeUtil::VP8},
- {"vp8.0", MimeUtil::VP8},
-- {"theora", MimeUtil::THEORA}
-+ {"theora", MimeUtil::THEORA},
-+ {"dts", MimeUtil::DTS},
-+ {"mp2", MimeUtil::MP2},
-+ {"mp4v.20.8", MimeUtil::MPEG4_SP},
-+ {"mp4v.20.240", MimeUtil::MPEG4_ASP}
- };
-
- return kStringToCodecMap;
-@@ -275,6 +279,9 @@
- return kCodecTheora;
- case MimeUtil::DOLBY_VISION:
- return kCodecDolbyVision;
-+ case MimeUtil::MPEG4_SP:
-+ case MimeUtil::MPEG4_ASP:
-+ return kCodecMPEG4;
- default:
- break;
- }
-@@ -356,6 +363,31 @@
- #endif // !defined(OS_ANDROID)
- CodecSet ogg_codecs(ogg_audio_codecs);
- ogg_codecs.insert(ogg_video_codecs.begin(), ogg_video_codecs.end());
-+
-+ CodecSet matroska_audio_codecs;
-+ matroska_audio_codecs.insert(OPUS);
-+ matroska_audio_codecs.insert(VORBIS);
-+ matroska_audio_codecs.insert(AC3);
-+ matroska_audio_codecs.insert(EAC3);
-+ matroska_audio_codecs.insert(DTS);
-+ matroska_audio_codecs.insert(MP3);
-+ matroska_audio_codecs.insert(MP2);
-+ matroska_audio_codecs.insert(MPEG2_AAC);
-+ matroska_audio_codecs.insert(MPEG4_AAC);
-+ matroska_audio_codecs.insert(PCM);
-+
-+ CodecSet matroska_video_codecs;
-+ matroska_video_codecs.insert(THEORA);
-+ matroska_video_codecs.insert(VP8);
-+ matroska_video_codecs.insert(VP9);
-+ matroska_video_codecs.insert(H264);
-+ matroska_video_codecs.insert(MPEG4_SP);
-+ matroska_video_codecs.insert(MPEG4_ASP);
-+#if BUILDFLAG(ENABLE_HEVC_DEMUXING)
-+ matroska_video_codecs.insert(HEVC);
-+#endif // BUILDFLAG(ENABLE_HEVC_DEMUXING)
-+ CodecSet matroska_codecs(matroska_audio_codecs);
-+ matroska_codecs.insert(matroska_video_codecs.begin(), matroska_video_codecs.end());
-
- CodecSet webm_audio_codecs;
- webm_audio_codecs.insert(OPUS);
-@@ -386,6 +418,8 @@
-
- CodecSet mp4_video_codecs;
- mp4_video_codecs.insert(H264);
-+ mp4_video_codecs.insert(MPEG4_SP);
-+ mp4_video_codecs.insert(MPEG4_ASP);
- #if BUILDFLAG(ENABLE_HEVC_DEMUXING)
- mp4_video_codecs.insert(HEVC);
- #endif // BUILDFLAG(ENABLE_HEVC_DEMUXING)
-@@ -410,6 +444,9 @@
- AddContainerWithCodecs("application/ogg", ogg_codecs, false);
- AddContainerWithCodecs("audio/flac", implicit_codec, false);
-
-+ AddContainerWithCodecs("audio/x-matroska", matroska_audio_codecs, false);
-+ AddContainerWithCodecs("video/x-matroska", matroska_codecs, false);
-+
- #if BUILDFLAG(USE_PROPRIETARY_CODECS)
- AddContainerWithCodecs("audio/mpeg", mp3_codecs, true); // Allow "mp3".
- AddContainerWithCodecs("audio/mp3", implicit_codec, true);
-@@ -422,6 +459,7 @@
- // support the codecs needed for compatibility.
- AddContainerWithCodecs("audio/x-m4a", aac, true);
- AddContainerWithCodecs("video/x-m4v", avc_and_aac, true);
-+ AddContainerWithCodecs("video/x-msvideo", matroska_codecs, true);
-
- #if BUILDFLAG(ENABLE_MSE_MPEG2TS_STREAM_PARSER)
- // TODO(ddorwin): Exactly which codecs should be supported?
-@@ -766,9 +804,13 @@
- case H264:
- case HEVC:
- case DOLBY_VISION:
-+ case DTS:
-+ case MPEG4_SP:
-+ case MPEG4_ASP:
- return true;
-
- case PCM:
-+ case MP2:
- case VORBIS:
- case OPUS:
- case FLAC:
---- chromium-52.0.2716.0/media/base/mime_util_internal.h.matroska-avi 2016-04-27 00:02:52.000000000 +0200
-+++ chromium-52.0.2716.0/media/base/mime_util_internal.h 2016-04-27 08:14:04.560330601 +0200
-@@ -39,7 +39,11 @@ class MEDIA_EXPORT MimeUtil {
- VP9,
- THEORA,
- DOLBY_VISION,
-- LAST_CODEC = DOLBY_VISION
-+ DTS,
-+ MP2,
-+ MPEG4_SP,
-+ MPEG4_ASP,
-+ LAST_CODEC = MPEG4_ASP
- };
-
- // Platform configuration structure. Controls which codecs are supported at
---- chromium-52.0.2716.0/net/base/mime_util.cc.matroska-avi 2016-04-27 00:02:52.000000000 +0200
-+++ chromium-52.0.2716.0/net/base/mime_util.cc 2016-04-27 08:14:04.561330581 +0200
-@@ -78,6 +78,9 @@ static const MimeInfo kPrimaryMappings[]
- {"audio/webm", "webm"},
- {"audio/wav", "wav"},
- {"audio/flac", "flac"},
-+ {"video/x-matroska", "mkv"},
-+ {"audio/x-matroska", "mkv"},
-+ {"video/x-msvideo", "avi"},
- {"application/xhtml+xml", "xhtml,xht,xhtm"},
- {"application/x-chrome-extension", "crx"},
- {"multipart/related", "mhtml,mht"}};
-@@ -425,6 +428,7 @@ static const char* const kStandardAudioT
- "audio/vorbis",
- "audio/wav",
- "audio/webm",
-+ "audio/x-matroska",
- "audio/x-m4a",
- "audio/x-ms-wma",
- "audio/vnd.rn-realaudio",
-@@ -442,8 +446,10 @@ static const char* const kStandardVideoT
- "video/webm",
- "video/x-dv",
- "video/x-m4v",
-+ "video/x-matroska",
- "video/x-mpeg",
- "video/x-ms-asf",
-+ "video/x-msvideo",
- "video/x-ms-wmv"
- };
-
---- chromium-51.0.2687.0/media/base/audio_codecs.cc.ac3-dts 2016-03-22 23:01:01.000000000 +0100
-+++ chromium-51.0.2687.0/media/base/audio_codecs.cc 2016-03-23 18:19:14.903959089 +0100
-@@ -43,6 +43,8 @@ std::string GetCodecName(AudioCodec code
- return "alac";
- case kCodecAC3:
- return "ac3";
-+ case kCodecDTS:
-+ return "dts";
- }
- NOTREACHED();
- return "";
-@@ -72,6 +72,8 @@
- return kCodecVorbis;
- if (base::StartsWith(codec_id, "mp4a.40.", base::CompareCase::SENSITIVE))
- return kCodecAAC;
-+ if (codec_id == "dts")
-+ return kCodecDTS;
- return kUnknownAudioCodec;
- }
-
---- chromium-51.0.2687.0/media/base/audio_codecs.h.ac3-dts 2016-03-22 23:01:01.000000000 +0100
-+++ chromium-51.0.2687.0/media/base/audio_codecs.h 2016-03-23 18:18:33.765701074 +0100
-@@ -32,13 +32,14 @@ enum AudioCodec {
- kCodecPCM_ALAW = 14,
- kCodecALAC = 15,
- kCodecAC3 = 16,
-+ kCodecDTS = 17,
- // DO NOT ADD RANDOM AUDIO CODECS!
- //
- // The only acceptable time to add a new codec is if there is production code
- // that uses said codec in the same CL.
-
- // Must always be equal to the largest entry ever logged.
-- kAudioCodecMax = kCodecAC3,
-+ kAudioCodecMax = kCodecDTS,
- };
-
- std::string MEDIA_EXPORT GetCodecName(AudioCodec codec);
---- chromium-51.0.2687.0/media/ffmpeg/ffmpeg_common.cc.ac3-dts 2016-03-22 23:01:01.000000000 +0100
-+++ chromium-51.0.2687.0/media/ffmpeg/ffmpeg_common.cc 2016-03-23 18:13:42.226118362 +0100
-@@ -117,6 +117,8 @@ static AudioCodec CodecIDToAudioCodec(AV
- return kCodecOpus;
- case AV_CODEC_ID_ALAC:
- return kCodecALAC;
-+ case AV_CODEC_ID_DTS:
-+ return kCodecDTS;
- default:
- DVLOG(1) << "Unknown audio CodecID: " << codec_id;
- }
-@@ -168,6 +170,10 @@ AVCodecID AudioCodecToCodecID(AudioCodec
- return AV_CODEC_ID_PCM_MULAW;
- case kCodecOpus:
- return AV_CODEC_ID_OPUS;
-+ case kCodecAC3:
-+ return AV_CODEC_ID_AC3;
-+ case kCodecDTS:
-+ return AV_CODEC_ID_DTS;
- default:
- DVLOG(1) << "Unknown AudioCodec: " << audio_codec;
- }
---- chromium-55.0.2883.52/content/renderer/media/render_media_client.cc.bak 2016-11-17 00:02:26.000000000 +0100
-+++ chromium-55.0.2883.52/content/renderer/media/render_media_client.cc 2016-11-27 21:55:59.360854652 +0100
-@@ -101,13 +101,13 @@
- case media::kCodecVP8:
- case media::kCodecVP9:
- case media::kCodecTheora:
-+ case media::kCodecMPEG4:
-+ case media::kCodecHEVC:
- return true;
-
- case media::kUnknownVideoCodec:
- case media::kCodecVC1:
- case media::kCodecMPEG2:
-- case media::kCodecMPEG4:
-- case media::kCodecHEVC:
- case media::kCodecDolbyVision:
- return false;
- }
---- chromium-56.0.2924.10/media/remoting/proto_enum_utils.cc.bak 2016-11-29 21:04:19.000000000 +0100
-+++ chromium-56.0.2924.10/media/remoting/proto_enum_utils.cc 2016-12-01 23:42:15.717317808 +0100
-@@ -57,6 +57,7 @@
- CASE_RETURN_OTHER(kCodecPCM_ALAW);
- CASE_RETURN_OTHER(kCodecALAC);
- CASE_RETURN_OTHER(kCodecAC3);
-+ CASE_RETURN_OTHER(kCodecDTS);
- }
- return base::nullopt; // Not a 'default' to ensure compile-time checks.
- }
-@@ -83,6 +83,7 @@
- CASE_RETURN_OTHER(kCodecPCM_ALAW);
- CASE_RETURN_OTHER(kCodecALAC);
- CASE_RETURN_OTHER(kCodecAC3);
-+ CASE_RETURN_OTHER(kCodecDTS);
- }
- return base::nullopt; // Not a 'default' to ensure compile-time checks.
- }
---- chromium-56.0.2924.10/media/remoting/rpc.proto.bak 2016-11-29 21:04:19.000000000 +0100
-+++ chromium-56.0.2924.10/media/remoting/rpc.proto 2016-12-02 02:15:05.660562641 +0100
-@@ -64,6 +64,7 @@
- kCodecPCM_ALAW = 14;
- kCodecALAC = 15;
- kCodecAC3 = 16;
-+ kCodecDTS = 17;
- }
-
- // Proto version of media::SampleFormat.
---- chromium-56.0.2924.21/media/filters/ffmpeg_video_decoder.cc.extra_media 2016-12-09 00:02:25.000000000 +0100
-+++ chromium-56.0.2924.21/media/filters/ffmpeg_video_decoder.cc 2016-12-10 20:33:18.005427356 +0100
-@@ -56,7 +56,6 @@
- case kUnknownVideoCodec:
- case kCodecVC1:
- case kCodecMPEG2:
-- case kCodecHEVC:
- case kCodecVP9:
- case kCodecDolbyVision:
- // We do not compile ffmpeg with support for any of these codecs.
-@@ -68,6 +67,7 @@
- case kCodecH264:
- case kCodecMPEG4:
- case kCodecVP8:
-+ case kCodecHEVC:
- // Normalize to three threads for 1080p content, then scale linearly
- // with number of pixels.
- // Examples:
diff --git a/chromium-55-flac.patch b/chromium-55-flac.patch
index 867623e..86e3877 100644
--- a/chromium-55-flac.patch
+++ b/chromium-55-flac.patch
@@ -1,7 +1,6 @@
-diff -up chromium-55.0.2883.52/media/base/mime_util_internal.cc.flac chromium-55.0.2883.52/media/base/mime_util_internal.cc
---- chromium-55.0.2883.52/media/base/mime_util_internal.cc.flac 2016-11-20 02:57:53.694441764 +0100
-+++ chromium-55.0.2883.52/media/base/mime_util_internal.cc 2016-11-20 13:02:12.683283042 +0100
-@@ -386,6 +387,7 @@
+--- chromium-63.0.3230.0/media/base/mime_util_internal.cc.0114~ 2017-10-09 20:07:12.902664570 +0200
++++ chromium-63.0.3230.0/media/base/mime_util_internal.cc 2017-10-09 21:02:36.858649113 +0200
+@@ -282,6 +282,7 @@ void MimeUtil::AddSupportedMediaFormats(
matroska_audio_codecs.insert(MPEG2_AAC);
matroska_audio_codecs.insert(MPEG4_AAC);
matroska_audio_codecs.insert(PCM);
@@ -9,11 +8,11 @@ diff -up chromium-55.0.2883.52/media/base/mime_util_internal.cc.flac chromium-55
CodecSet matroska_video_codecs;
matroska_video_codecs.insert(THEORA);
-@@ -425,6 +427,7 @@
+@@ -358,6 +359,7 @@ void MimeUtil::AddSupportedMediaFormats(
+ flv_codecs.insert(VP6);
+ flv_codecs.insert(mp4_codecs.begin(), mp4_codecs.end());
+ flv_codecs.insert(MP3);
++ flv_codecs.insert(FLAC);
- CodecSet mp4_audio_codecs(aac);
- mp4_audio_codecs.insert(MP3);
-+ mp4_audio_codecs.insert(FLAC);
- #if BUILDFLAG(ENABLE_AC3_EAC3_AUDIO_DEMUXING)
- mp4_audio_codecs.insert(AC3);
- mp4_audio_codecs.insert(EAC3);
+ const CodecSet implicit_codec;
+ AddContainerWithCodecs("audio/wav", wav_codecs, false);
diff --git a/chromium-55.0.2883.75-more-codec-aliases.patch b/chromium-55.0.2883.75-more-codec-aliases.patch
deleted file mode 100644
index 1dd517f..0000000
--- a/chromium-55.0.2883.75-more-codec-aliases.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-55.0.2883.75/third_party/WebKit/Source/wtf/text/TextCodecICU.cpp.morealiases chromium-55.0.2883.75/third_party/WebKit/Source/wtf/text/TextCodecICU.cpp
---- chromium-55.0.2883.75/third_party/WebKit/Source/wtf/text/TextCodecICU.cpp.morealiases 2016-12-12 15:53:06.545149310 -0500
-+++ chromium-55.0.2883.75/third_party/WebKit/Source/wtf/text/TextCodecICU.cpp 2016-12-12 15:55:25.808468122 -0500
-@@ -213,7 +213,11 @@ void TextCodecICU::registerEncodingNames
- registrar("iso_8859-6", "ISO-8859-6");
- registrar("iso_8859-7", "ISO-8859-7");
- registrar("iso_8859-8", "ISO-8859-8");
-+ registrar("iso_8859-8-I", "ISO-8859-8-I");
- registrar("iso_8859-9", "windows-1254");
-+ registrar("iso_8859-10", "ISO-8859-10");
-+ registrar("iso_8859-13", "ISO-8859-13");
-+ registrar("iso_8859-14", "ISO-8859-14");
- registrar("iso_8859-15", "ISO-8859-15");
- registrar("koi8_r", "KOI8-R");
- registrar("x-cp1253", "windows-1253");
diff --git a/chromium-55.0.2883.75-sandbox-pie.patch b/chromium-55.0.2883.75-sandbox-pie.patch
deleted file mode 100644
index 6aae0b0..0000000
--- a/chromium-55.0.2883.75-sandbox-pie.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -up chromium-55.0.2883.75/sandbox/linux/BUILD.gn.sandboxpie chromium-55.0.2883.75/sandbox/linux/BUILD.gn
---- chromium-55.0.2883.75/sandbox/linux/BUILD.gn.sandboxpie 2016-12-01 18:02:17.000000000 -0500
-+++ chromium-55.0.2883.75/sandbox/linux/BUILD.gn 2016-12-12 16:26:06.863426221 -0500
-@@ -279,11 +279,17 @@ if (is_linux) {
- # For ULLONG_MAX
- "-std=gnu99",
-
-+ "-fPIE",
-+
- # These files have a suspicious comparison.
- # TODO fix this and re-enable this warning.
- "-Wno-sign-compare",
- ]
-
-+ ldflags = [
-+ "-pie",
-+ ]
-+
- import("//build/config/compiler/compiler.gni")
- import("//build/config/sanitizers/sanitizers.gni")
- if (is_component_build || using_sanitizer) {
-@@ -293,7 +299,7 @@ if (is_linux) {
- # other flags that executable_config might have.
- configs -= [ "//build/config:executable_config" ]
- if (!use_gold) {
-- ldflags = [ "-Wl,--disable-new-dtags" ]
-+ ldflags += [ "-Wl,--disable-new-dtags" ]
- }
- }
-
diff --git a/chromium-55.0.2883.75-use_system_harfbuzz.patch b/chromium-55.0.2883.75-use_system_harfbuzz.patch
deleted file mode 100644
index 6ca72f1..0000000
--- a/chromium-55.0.2883.75-use_system_harfbuzz.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-55.0.2883.75/ui/gfx/render_text_harfbuzz.h.use_system_harfbuzz chromium-55.0.2883.75/ui/gfx/render_text_harfbuzz.h
---- chromium-55.0.2883.75/ui/gfx/render_text_harfbuzz.h.use_system_harfbuzz 2016-12-12 16:09:03.873466669 -0500
-+++ chromium-55.0.2883.75/ui/gfx/render_text_harfbuzz.h 2016-12-12 16:09:57.507204326 -0500
-@@ -12,7 +12,7 @@
- #include <vector>
-
- #include "base/macros.h"
--#include "third_party/harfbuzz-ng/src/hb.h"
-+#include <harfbuzz/hb.h>
- #include "third_party/icu/source/common/unicode/ubidi.h"
- #include "third_party/icu/source/common/unicode/uscript.h"
- #include "ui/gfx/render_text.h"
diff --git a/chromium-56.0.2924.87-fpermissive.patch b/chromium-56.0.2924.87-fpermissive.patch
deleted file mode 100644
index be68cf9..0000000
--- a/chromium-56.0.2924.87-fpermissive.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-56.0.2924.87/third_party/WebKit/Source/BUILD.gn.permissive chromium-56.0.2924.87/third_party/WebKit/Source/BUILD.gn
---- chromium-56.0.2924.87/third_party/WebKit/Source/BUILD.gn.permissive 2017-02-13 12:32:23.419665971 -0500
-+++ chromium-56.0.2924.87/third_party/WebKit/Source/BUILD.gn 2017-02-13 12:33:16.146629190 -0500
-@@ -54,6 +54,9 @@ config("config") {
- cflags = []
- defines = []
-
-+ # error: there are no arguments to 'swapAnchor' that depend on a template parameter, so a declaration of 'swapAnchor' must be available [-fpermissive]
-+ cflags += [ "-fpermissive" ]
-+
- if (is_win) {
- cflags += [
- "/wd4305", # Truncation from 'type1' to 'type2'.
diff --git a/chromium-56.0.2924.87-gcc5.patch b/chromium-56.0.2924.87-gcc5.patch
deleted file mode 100644
index 902f92b..0000000
--- a/chromium-56.0.2924.87-gcc5.patch
+++ /dev/null
@@ -1,354 +0,0 @@
-diff -up chromium-56.0.2924.87/third_party/cld_2/src/internal/cld_generated_cjk_uni_prop_80.cc.gcc5 chromium-56.0.2924.87/third_party/cld_2/src/internal/cld_generated_cjk_uni_prop_80.cc
---- chromium-56.0.2924.87/third_party/cld_2/src/internal/cld_generated_cjk_uni_prop_80.cc.gcc5 2017-02-01 21:03:47.000000000 -0500
-+++ chromium-56.0.2924.87/third_party/cld_2/src/internal/cld_generated_cjk_uni_prop_80.cc 2017-02-09 10:38:38.319790897 -0500
-@@ -165,8 +165,8 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- // state[16 + 2] 0x000000 Byte 2 of 3 (relative offsets)
- X__,X__,X__,X__,X__,X__,X__,X__, X__,X__,X__,X__,X__,X__,X__,X__,
- X__,X__,X__,X__,X__,X__,X__,X__, X__,X__,X__,X__,X__,X__,X__,X__,
---14,-14,-14,-14,-14,-14,-14,-14, -14,-14,-14,-14,-14,-14,-14,-14,
---14,-14,-14,-14,-14,-14,-14,-14, -14,-14,-14,-14,-14,-14,-14,-14,
-+(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14, (uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,
-+(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14, (uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,
-
- // state[17 + 2] 0x0031c0 Byte 3 of 3 (property)
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-@@ -259,10 +259,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 229,229,229, 3,208, 0,229, 5, 233, 0,229,229,229,208,229,229,
-
- // state[32 + 2] 0x002000 Byte 2 of 3 (relative offsets)
---30,-30,-30,-30,-30,-30,-30,-30, -30,-30,-30,-30,-30,-30,-30,-30,
---30,-30,-30,-30,-30,-30,-30,-30, -30,-30,-30,-30,-30,-30,-30,-30,
---30,-30,-30,-30,-30,-30,-30,-30, -30,-30,-30,-30,-30,-30,-30,-30,
---30,-30,-30,-30,-30,-30,-30,-30, -30,-30,-30,-30,-30,-30,-30,-30,
-+(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30, (uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,
-+(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30, (uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,
-+(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30, (uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,
-+(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30, (uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,
-
- // state[33 + 2] 0x003780 Byte 3 of 3 (property)
- 229,208,229,229,208,229,229,229, 208,208,208,208,208, 4, 6,208,
-@@ -355,10 +355,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 228,229,229,229,229,233,233, 6, 208,229, 3,229,233, 6, 6, 0,
-
- // state[48 + 2] 0x001000 Byte 2 of 3 (relative offsets)
---46,-46,-46,-46,-42,-41,-40,-39, -46,-46,-46,-46,-46,-46,-46,-46,
---46,-46,-46,-46,-46,-46,-46,-46, -46,-46,-46,-46,-46,-46,-46,-46,
---46,-46,-46,-46,-46,-46,-46,-46, -46,-46,-46,-46,-46,-46,-46,-46,
---46,-46,-46,-46,-46,-46,-46,-46, -46,-46,-46,-46,-46,-46,-46,-46,
-+(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-42,(uint8)-41,(uint8)-40,(uint8)-39, (uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,
-+(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46, (uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,
-+(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46, (uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,
-+(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46, (uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,
-
- // state[49 + 2] 0x003b40 Byte 3 of 3 (property)
- 6,227,208,233,208, 3, 3,208, 208,229, 0,229,233,219, 0, 6,
-@@ -451,10 +451,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 229,208,208,208,217,208,229,229, 229,229,208,217,208,229,229,229,
-
- // state[64 + 2] 0x003000 Byte 2 of 3 (relative offsets)
---54,-53,-52,-51,-50,-58,-49,-47, -62,-62,-62,-62,-62,-62,-62,-62,
---46,-45,-44,-43,-42,-41,-40,-39, -38,-37,-36,-35,-34,-33,-31,-30,
---29,-28,-27,-26,-25,-24,-23,-22, -21,-20,-19,-18,-17,-15,-14,-13,
---12,-11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4,
-+(uint8)-54,(uint8)-53,(uint8)-52,(uint8)-51,(uint8)-50,(uint8)-58,(uint8)-49,(uint8)-47, (uint8)-62,(uint8)-62,(uint8)-62,(uint8)-62,(uint8)-62,(uint8)-62,(uint8)-62,(uint8)-62,
-+(uint8)-46,(uint8)-45,(uint8)-44,(uint8)-43,(uint8)-42,(uint8)-41,(uint8)-40,(uint8)-39, (uint8)-38,(uint8)-37,(uint8)-36,(uint8)-35,(uint8)-34,(uint8)-33,(uint8)-31,(uint8)-30,
-+(uint8)-29,(uint8)-28,(uint8)-27,(uint8)-26,(uint8)-25,(uint8)-24,(uint8)-23,(uint8)-22, (uint8)-21,(uint8)-20,(uint8)-19,(uint8)-18,(uint8)-17,(uint8)-15,(uint8)-14,(uint8)-13,
-+(uint8)-12,(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4,
-
- // state[65 + 2] 0x003f00 Byte 3 of 3 (property)
- 217,217,208, 3,208,217,208,208, 6,229,208,228,229,229,208,229,
-@@ -547,10 +547,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 229,208,229,229,208,229,233, 0, 208,208,229,208,227,229,229,229,
-
- // state[80 + 2] 0x004000 Byte 2 of 3 (relative offsets)
---11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5,
-+(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
-- 38, 39, 40, 41, 42, 43, 44,-78, 45, 46, 47, 48, 49, 50, 51, 52,
-+ 38, 39, 40, 41, 42, 43, 44,(uint8)-78, 45, 46, 47, 48, 49, 50, 51, 52,
-
- // state[81 + 2] 0x0042c0 Byte 3 of 3 (property)
- 229, 0,229,229,229, 3, 4, 4, 229,229,229,229,208,229, 0,208,
-@@ -931,7 +931,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 0,142, 98, 28,117,206,212,212, 220, 15, 0,231,199,231,111, 28,
-
- // state[144 + 2] 0x005000 Byte 2 of 3 (relative offsets)
---11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5,
-+(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
-@@ -1315,7 +1315,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 16, 15,211,118, 0,231, 68,231, 0, 99,161, 0,115,221,144,140,
-
- // state[208 + 2] 0x006000 Byte 2 of 3 (relative offsets)
---10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6,
-+(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6,
- 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
-@@ -1699,7 +1699,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 119, 16, 51, 0, 0, 68,136, 72, 144,118, 87,201,191,136, 78,233,
-
- // state[272 + 2] 0x007000 Byte 2 of 3 (relative offsets)
-- -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7,
-+ (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
-@@ -2083,7 +2083,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 212,212, 0,126,140,220,220, 0, 0, 0,127,118,106, 0,199, 0,
-
- // state[336 + 2] 0x008000 Byte 2 of 3 (relative offsets)
-- -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7, 8,
-+ (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
-@@ -2467,7 +2467,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 0,122, 0,231,100,232, 0, 0, 117, 0,206,231, 0, 0,231, 0,
-
- // state[400 + 2] 0x009000 Byte 2 of 3 (relative offsets)
-- -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7, 8, 9,
-+ (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
-@@ -2851,10 +2851,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-
- // state[464 + 2] 0x00a000 Byte 2 of 3 (relative offsets)
-- -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6,
-- -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6,
-- -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6,
-- -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5,
-+ (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6,
-+ (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6,
-+ (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6,
-+ (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5,
-
- // state[465 + 2] 0x000080 Byte 2 of 2 (property)
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-@@ -2947,10 +2947,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 208,208,208,208, 5, 6,208, 2, 0, 6, 6, 5,208,208,208, 6,
-
- // state[480 + 2] 0x00b000 Byte 2 of 3 (relative offsets)
---20,-20,-20,-20,-20,-20,-20,-20, -20,-20,-20,-20,-20,-20,-20,-20,
---20,-20,-20,-20,-20,-20,-20,-20, -20,-20,-20,-20,-20,-20,-20,-20,
---20,-20,-20,-20,-20,-20,-20,-20, -20,-20,-20,-20,-20,-20,-20,-20,
---20,-20,-20,-20,-20,-20,-20,-20, -20,-20,-20,-20,-20,-20,-20,-20,
-+(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20, (uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,
-+(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20, (uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,
-+(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20, (uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,
-+(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20, (uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,
-
- // state[481 + 2] 0x020100 Byte 4 of 4 (property)
- 2, 6, 5, 6, 5,229, 5,208, 208,208,208,208,208,208,208,229,
-@@ -3043,10 +3043,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 208,208, 5, 5, 5,208,208, 2, 229, 5, 5, 5, 5, 5, 6,208,
-
- // state[496 + 2] 0x00d000 Byte 2 of 3 (relative offsets)
---35,-35,-35,-35,-35,-35,-35,-35, -35,-35,-35,-35,-35,-35,-35,-35,
---35,-35,-35,-35,-35,-35,-35,-35, -35,-35,-35,-35,-35,-35,-34,-33,
---33,-33,-33,-33,-33,-33,-33,-33, -33,-33,-33,-33,-33,-33,-33,-33,
---33,-33,-33,-33,-33,-33,-33,-33, -33,-33,-33,-33,-33,-33,-33,-33,
-+(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35, (uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,
-+(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35, (uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-34,(uint8)-33,
-+(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33, (uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,
-+(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33, (uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,
-
- // state[497 + 2] 0x0204c0 Byte 4 of 4 (property)
- 2, 2, 5, 5, 5, 2,208, 2, 5, 5, 6,208,208, 5, 5, 5,
-@@ -3139,10 +3139,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 208,208, 5, 5, 5, 5, 6, 6, 208,208, 2,208,208,208,208,208,
-
- // state[512 + 2] 0x00f000 Byte 2 of 3 (relative offsets)
---47,-47,-47,-47,-47,-47,-47,-47, -47,-47,-47,-47,-47,-47,-47,-47,
---47,-47,-47,-47,-47,-47,-47,-47, -47,-47,-47,-47,-47,-47,-47,-47,
---47,-47,-47,-47,-46,-45,-44,-43, -42,-41,-44,-40,-47,-47,-47,-47,
---47,-47,-47,-47,-47,-47,-47,-47, -47,-47,-47,-47,-47,-39,-38,-37,
-+(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47, (uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,
-+(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47, (uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,
-+(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-46,(uint8)-45,(uint8)-44,(uint8)-43, (uint8)-42,(uint8)-41,(uint8)-44,(uint8)-40,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,
-+(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47, (uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-39,(uint8)-38,(uint8)-37,
-
- // state[513 + 2] 0x020880 Byte 4 of 4 (property)
- 5, 5, 5, 6,208,208,208,208, 208,208, 5, 5, 6, 6,208,208,
-@@ -3235,10 +3235,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 5, 6,208,218,208,208,208,218, 208, 6,227,229, 6, 6, 6,208,
-
- // state[528 + 2] 0x020000 Byte 3 of 4 (relative offsets)
---52,-51,-50,-49,-47,-46,-45,-44, -43,-42,-41,-40,-39,-38,-37,-36,
---35,-34,-33,-31,-30,-29,-28,-27, -26,-25,-24,-23,-22,-21,-20,-19,
---18,-17,-15,-14,-13,-12,-11,-10, -9, -8, -7, -6, -5, -4, -3, -2,
-- -1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
-+(uint8)-52,(uint8)-51,(uint8)-50,(uint8)-49,(uint8)-47,(uint8)-46,(uint8)-45,(uint8)-44, (uint8)-43,(uint8)-42,(uint8)-41,(uint8)-40,(uint8)-39,(uint8)-38,(uint8)-37,(uint8)-36,
-+(uint8)-35,(uint8)-34,(uint8)-33,(uint8)-31,(uint8)-30,(uint8)-29,(uint8)-28,(uint8)-27, (uint8)-26,(uint8)-25,(uint8)-24,(uint8)-23,(uint8)-22,(uint8)-21,(uint8)-20,(uint8)-19,
-+(uint8)-18,(uint8)-17,(uint8)-15,(uint8)-14,(uint8)-13,(uint8)-12,(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2,
-+ (uint8)-1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
-
- // state[529 + 2] 0x020c40 Byte 4 of 4 (property)
- 227, 5, 5, 5, 2, 2, 2, 2, 213, 2, 2, 2, 2, 2,208, 6,
-@@ -3427,7 +3427,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 208,208,208,208,208,208,208,208, 208, 6, 6, 6, 6, 2, 5, 5,
-
- // state[560 + 2] 0x021000 Byte 3 of 4 (relative offsets)
---16,-15,-14,-13,-12,-11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1,
-+(uint8)-16,(uint8)-15,(uint8)-14,(uint8)-13,(uint8)-12,(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1,
- 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
- 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
-@@ -3811,7 +3811,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 5, 5, 5, 6, 6, 6, 5,208, 208,229,208,208, 5, 5, 5, 5,
-
- // state[624 + 2] 0x022000 Byte 3 of 4 (relative offsets)
---15,-14,-13,-12,-11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1,
-+(uint8)-15,(uint8)-14,(uint8)-13,(uint8)-12,(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1,
- 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
- 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
-@@ -4195,7 +4195,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 6, 6, 4, 5,208,208,208,208, 208,208,229, 6, 5, 6, 6, 6,
-
- // state[688 + 2] 0x023000 Byte 3 of 4 (relative offsets)
---14,-13,-12,-11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2,
-+(uint8)-14,(uint8)-13,(uint8)-12,(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2,
- 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
- 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
-@@ -4579,7 +4579,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 5, 5, 5, 5, 5, 5, 5, 6, 208,208,208,208,208,208, 6, 6,
-
- // state[752 + 2] 0x024000 Byte 3 of 4 (relative offsets)
---13,-12,-11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3,
-+(uint8)-13,(uint8)-12,(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3,
- 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
-@@ -4963,7 +4963,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 229, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 2, 2, 6,229,
-
- // state[816 + 2] 0x025000 Byte 3 of 4 (relative offsets)
---12,-11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4,
-+(uint8)-12,(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
-@@ -5347,7 +5347,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 6, 6, 6, 5, 5, 5, 5, 6, 6, 6, 3, 6,229,208,208,229,
-
- // state[880 + 2] 0x026000 Byte 3 of 4 (relative offsets)
---11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5,
-+(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
-@@ -5731,7 +5731,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 208, 6, 6,208,208,208,208,208, 6, 6, 6,216, 5, 5, 5, 5,
-
- // state[944 + 2] 0x027000 Byte 3 of 4 (relative offsets)
---10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6,
-+(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6,
- 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
-@@ -6115,7 +6115,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 5, 5, 5, 6,208,208, 6, 6, 208,229,208,208,208, 5, 5, 5,
-
- // state[1008 + 2] 0x028000 Byte 3 of 4 (relative offsets)
-- -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7,
-+ (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
-@@ -6499,7 +6499,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 208,208, 5, 5, 6,208,208, 5, 208,208,208, 6,208, 6,208,208,
-
- // state[1072 + 2] 0x029000 Byte 3 of 4 (relative offsets)
-- -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7, 8,
-+ (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
-@@ -6883,7 +6883,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 229,229,229,229,208,208,208,229, 208,208,208,229, 0,229,208,208,
-
- // state[1136 + 2] 0x02a000 Byte 3 of 4 (relative offsets)
-- -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7, 8, 9,
-+ (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 22, 22, 22,
- 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
- 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
-@@ -7075,10 +7075,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
-
- // state[1168 + 2] 0x02f000 Byte 3 of 4 (relative offsets)
-- -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
-- -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
-- -8, -7, -6, -5, -4, -3, -2, -1, 1, -9, -9, -9, -9, -9, -9, -9,
-- -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
-+ (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9,
-+ (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9,
-+ (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9,
-+ (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9,
-
- // state[1169 + 2] 0x02fa00 Byte 4 of 4 (property)
- 217, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,217, 5, 5,
-diff -up chromium-56.0.2924.87/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 chromium-56.0.2924.87/third_party/webgl/src/specs/latest/2.0/webgl2.idl
---- chromium-56.0.2924.87/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 2017-02-01 21:03:57.000000000 -0500
-+++ chromium-56.0.2924.87/third_party/webgl/src/specs/latest/2.0/webgl2.idl 2017-02-09 10:38:38.380789675 -0500
-@@ -265,7 +265,7 @@ interface WebGL2RenderingContextBase
- const GLenum UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46;
-- const GLenum INVALID_INDEX = 0xFFFFFFFF;
-+ const GLenum INVALID_INDEX = 256;
- const GLenum MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
- const GLenum MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
- const GLenum MAX_SERVER_WAIT_TIMEOUT = 0x9111;
-diff -up chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.h.gcc5 chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.h
---- chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.h.gcc5 2017-02-01 21:03:09.000000000 -0500
-+++ chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.h 2017-02-09 10:38:38.387789535 -0500
-@@ -49,7 +49,7 @@ class NodeFilter final : public GarbageC
- * to the value of NodeType for the equivalent node type.
- */
- enum {
-- kShowAll = 0xFFFFFFFF,
-+ kShowAll = 256 /* 0xFFFFFFFF */,
- kShowElement = 0x00000001,
- kShowAttribute = 0x00000002,
- kShowText = 0x00000004,
-diff -up chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.idl.gcc5 chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.idl
---- chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.idl.gcc5 2017-02-01 21:03:09.000000000 -0500
-+++ chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.idl 2017-02-09 10:38:38.394789395 -0500
-@@ -30,7 +30,7 @@
- const unsigned short FILTER_SKIP = 3;
-
- // Constants for whatToShow
-- const unsigned long SHOW_ALL = 0xFFFFFFFF;
-+ const unsigned long SHOW_ALL = 256; // 0xFFFFFFFF
- const unsigned long SHOW_ELEMENT = 0x1;
- const unsigned long SHOW_ATTRIBUTE = 0x2; // historical
- const unsigned long SHOW_TEXT = 0x4;
-diff -up chromium-56.0.2924.87/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl.gcc5 chromium-56.0.2924.87/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl
---- chromium-56.0.2924.87/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl.gcc5 2017-02-01 21:03:09.000000000 -0500
-+++ chromium-56.0.2924.87/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl 2017-02-09 11:07:32.828682863 -0500
-@@ -239,7 +239,7 @@ typedef unsigned long long GLuint64;
- const GLenum UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46;
-- const GLenum INVALID_INDEX = 0xFFFFFFFF;
-+ const GLenum INVALID_INDEX = 256;
- const GLenum MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
- const GLenum MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
- const GLenum MAX_SERVER_WAIT_TIMEOUT = 0x9111;
-@@ -269,7 +269,7 @@ typedef unsigned long long GLuint64;
- const GLenum TEXTURE_IMMUTABLE_FORMAT = 0x912F;
- const GLenum MAX_ELEMENT_INDEX = 0x8D6B;
- const GLenum TEXTURE_IMMUTABLE_LEVELS = 0x82DF;
-- const GLint TIMEOUT_IGNORED = -1;
-+ const GLint TIMEOUT_IGNORED = 256;
-
- /* WebGL-specific enums */
- const GLenum MAX_CLIENT_WAIT_TIMEOUT_WEBGL = 0x9247;
diff --git a/chromium-56.0.2924.87-gcc7.patch b/chromium-56.0.2924.87-gcc7.patch
deleted file mode 100644
index 6d6e9ee..0000000
--- a/chromium-56.0.2924.87-gcc7.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-diff -up chromium-56.0.2924.87/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.gcc7 chromium-56.0.2924.87/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h
---- chromium-56.0.2924.87/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.gcc7 2017-03-01 11:29:32.681142930 -0500
-+++ chromium-56.0.2924.87/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h 2017-03-01 11:30:19.396536499 -0500
-@@ -5,6 +5,7 @@
- #include "platform/PlatformExport.h"
- #include "wtf/ThreadSpecific.h"
-
-+#include <functional>
- #include <memory>
-
- namespace gpu {
-diff -up chromium-56.0.2924.87/v8/src/objects-body-descriptors.h.gcc7 chromium-56.0.2924.87/v8/src/objects-body-descriptors.h
---- chromium-56.0.2924.87/v8/src/objects-body-descriptors.h.gcc7 2017-02-28 16:00:27.313172210 -0500
-+++ chromium-56.0.2924.87/v8/src/objects-body-descriptors.h 2017-02-28 16:00:46.016804708 -0500
-@@ -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 -up chromium-56.0.2924.87/v8/src/objects.h.gcc7 chromium-56.0.2924.87/v8/src/objects.h
---- chromium-56.0.2924.87/v8/src/objects.h.gcc7 2017-02-28 15:58:27.368527968 -0500
-+++ chromium-56.0.2924.87/v8/src/objects.h 2017-02-28 15:59:25.868379455 -0500
-@@ -3531,22 +3531,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 -up chromium-56.0.2924.87/v8/src/objects-inl.h.gcc7 chromium-56.0.2924.87/v8/src/objects-inl.h
---- chromium-56.0.2924.87/v8/src/objects-inl.h.gcc7 2017-02-28 15:59:44.293016928 -0500
-+++ chromium-56.0.2924.87/v8/src/objects-inl.h 2017-02-28 16:00:18.187351116 -0500
-@@ -39,6 +39,25 @@
- 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();
- }
diff --git a/chromium-57.0.2987.110-enable-mp3.patch b/chromium-57.0.2987.110-enable-mp3.patch
deleted file mode 100644
index a8b9ee6..0000000
--- a/chromium-57.0.2987.110-enable-mp3.patch
+++ /dev/null
@@ -1,128 +0,0 @@
-diff -up chromium-57.0.2987.110/third_party/ffmpeg/ffmpeg_generated.gni.mp3 chromium-57.0.2987.110/third_party/ffmpeg/ffmpeg_generated.gni
---- chromium-57.0.2987.110/third_party/ffmpeg/ffmpeg_generated.gni.mp3 2017-03-20 13:53:24.000000000 -0400
-+++ chromium-57.0.2987.110/third_party/ffmpeg/ffmpeg_generated.gni 2017-03-20 13:59:11.214419428 -0400
-@@ -176,19 +176,12 @@ if ((is_linux && current_cpu == "arm" &&
- ]
- }
-
--if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_win && ffmpeg_branding == "Chrome")) {
-+if ((current_cpu == "x64") || (is_android && current_cpu == "arm" && arm_use_neon) || (is_android && current_cpu == "arm64") || (is_android && current_cpu == "mips64el") || (is_android && current_cpu == "mipsel") || (is_android && current_cpu == "x86") || (is_linux && current_cpu == "arm" && arm_use_neon) || (is_linux && current_cpu == "arm" && arm_use_neon) || (is_linux && current_cpu == "arm") || (is_linux && current_cpu == "arm64") || (is_linux && current_cpu == "mipsel") || (is_linux && current_cpu == "x64") || (is_linux && current_cpu == "x86") || (is_win))
-+{
- ffmpeg_c_sources += [
-- "libavcodec/aac_ac3_parser.c",
-- "libavcodec/aac_parser.c",
-- "libavcodec/aacadtsdec.c",
-- "libavcodec/aacps_float.c",
-- "libavcodec/aacpsdsp_float.c",
-- "libavcodec/aacsbr.c",
-- "libavcodec/aactab.c",
-- "libavcodec/ac3tab.c",
-- "libavcodec/autorename_libavcodec_aacdec.c",
- "libavcodec/autorename_libavcodec_mpegaudiodsp.c",
- "libavcodec/autorename_libavcodec_sbrdsp.c",
-+ "libavcodec/ac3tab.c",
- "libavcodec/cbrt_data.c",
- "libavcodec/dct.c",
- "libavcodec/dct32_fixed.c",
-@@ -204,7 +197,6 @@ if ((current_cpu == "x64" && ffmpeg_bran
- "libavcodec/mpegaudiodsp_float.c",
- "libavcodec/sinewin.c",
- "libavcodec/sinewin_fixed.c",
-- "libavformat/aacdec.c",
- "libavformat/apetag.c",
- "libavformat/img2.c",
- "libavformat/mov.c",
-@@ -213,6 +205,21 @@ if ((current_cpu == "x64" && ffmpeg_bran
- ]
- }
-
-+if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_win && ffmpeg_branding == "Chrome"))
-+{
-+ ffmpeg_c_sources += [
-+ "libavcodec/aac_ac3_parser.c",
-+ "libavcodec/aac_parser.c",
-+ "libavcodec/aacadtsdec.c",
-+ "libavcodec/aacps_float.c",
-+ "libavcodec/aacpsdsp_float.c",
-+ "libavcodec/aacsbr.c",
-+ "libavcodec/aactab.c",
-+ "libavcodec/autorename_libavcodec_aacdec.c",
-+ "libavformat/aacdec.c",
-+ ]
-+}
-+
- if ((is_android && current_cpu == "x64") || (is_android && current_cpu == "x86") || (is_linux && current_cpu == "x64") || (is_linux && current_cpu == "x86") || (is_mac) || (is_win)) {
- ffmpeg_c_sources += [
- "libavcodec/x86/autorename_libavcodec_x86_vorbisdsp_init.c",
-@@ -312,21 +319,31 @@ if ((is_linux && current_cpu == "x64") |
- if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_win && ffmpeg_branding == "Chrome")) {
- ffmpeg_c_sources += [
- "libavcodec/x86/aacpsdsp_init.c",
-+ ]
-+}
-+
-+if ((current_cpu == "x64") || (is_android && current_cpu == "x86") || (is_linux && current_cpu == "x64") || (is_linux && current_cpu == "x86") || (is_win)) {
-+ ffmpeg_c_sources += [
- "libavcodec/x86/dct_init.c",
- "libavcodec/x86/mpegaudiodsp.c",
- "libavcodec/x86/sbrdsp_init.c",
- ]
- }
-
--if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_win && ffmpeg_branding == "Chrome")) {
-+if ((current_cpu == "x64") || (is_android && current_cpu == "x86") || (is_linux && current_cpu == "x64") || (is_linux && current_cpu == "x86") || (is_win)) {
- ffmpeg_yasm_sources += [
-- "libavcodec/x86/aacpsdsp.asm",
- "libavcodec/x86/dct32.asm",
- "libavcodec/x86/imdct36.asm",
- "libavcodec/x86/sbrdsp.asm",
- ]
- }
-
-+if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_win && ffmpeg_branding == "Chrome")) {
-+ ffmpeg_yasm_sources += [
-+ "libavcodec/x86/aacpsdsp.asm",
-+ ]
-+}
-+
- if ((is_linux && current_cpu == "arm" && arm_use_neon) || (is_linux && current_cpu == "arm")) {
- ffmpeg_c_sources += [
- "libavcodec/arm/h264pred_init_arm.c",
-diff -up chromium-57.0.2987.110/third_party/ffmpeg/libavcodec/sbrdsp.c.mp3 chromium-57.0.2987.110/third_party/ffmpeg/libavcodec/sbrdsp.c
---- chromium-57.0.2987.110/third_party/ffmpeg/libavcodec/sbrdsp.c.mp3 2017-03-20 14:15:22.068309439 -0400
-+++ chromium-57.0.2987.110/third_party/ffmpeg/libavcodec/sbrdsp.c 2017-03-20 14:15:47.826802603 -0400
-@@ -23,6 +23,7 @@
- #define USE_FIXED 0
-
- #include "aac.h"
-+#include "aacsbrdata.h"
- #include "config.h"
- #include "libavutil/attributes.h"
- #include "libavutil/intfloat.h"
-diff -up chromium-57.0.2987.110/media/base/mime_util_internal.cc.mp3 chromium-57.0.2987.110/media/base/mime_util_internal.cc
---- chromium-57.0.2987.110/media/base/mime_util_internal.cc.mp3 2017-03-26 11:11:41.480377812 -0400
-+++ chromium-57.0.2987.110/media/base/mime_util_internal.cc 2017-03-26 11:13:19.289810708 -0400
-@@ -291,10 +291,10 @@ void MimeUtil::AddSupportedMediaFormats(
- CodecSet webm_codecs(webm_audio_codecs);
- webm_codecs.insert(webm_video_codecs.begin(), webm_video_codecs.end());
-
--#if defined(USE_PROPRIETARY_CODECS)
- CodecSet mp3_codecs;
- mp3_codecs.insert(MP3);
-
-+#if defined(USE_PROPRIETARY_CODECS)
- CodecSet aac;
- aac.insert(MPEG2_AAC);
- aac.insert(MPEG4_AAC);
-@@ -335,10 +335,10 @@ void MimeUtil::AddSupportedMediaFormats(
- AddContainerWithCodecs("application/ogg", ogg_codecs, false);
- AddContainerWithCodecs("audio/flac", implicit_codec, false);
-
--#if defined(USE_PROPRIETARY_CODECS)
- AddContainerWithCodecs("audio/mpeg", mp3_codecs, true); // Allow "mp3".
- AddContainerWithCodecs("audio/mp3", implicit_codec, true);
- AddContainerWithCodecs("audio/x-mp3", implicit_codec, true);
-+#if defined(USE_PROPRIETARY_CODECS)
- AddContainerWithCodecs("audio/aac", implicit_codec, true); // AAC / ADTS.
- AddContainerWithCodecs("audio/mp4", mp4_audio_codecs, true);
- DCHECK(!mp4_video_codecs.empty());
diff --git a/chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch b/chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
new file mode 100644
index 0000000..ddb94a0
--- /dev/null
+++ b/chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
@@ -0,0 +1,19 @@
+diff -up chromium-58.0.3029.96/ui/events/devices/x11/device_data_manager_x11.cc.revert chromium-58.0.3029.96/ui/events/devices/x11/device_data_manager_x11.cc
+--- chromium-58.0.3029.96/ui/events/devices/x11/device_data_manager_x11.cc.revert 2017-05-08 14:58:11.767482431 -0400
++++ chromium-58.0.3029.96/ui/events/devices/x11/device_data_manager_x11.cc 2017-05-08 14:58:37.722960109 -0400
+@@ -790,15 +790,6 @@ void DeviceDataManagerX11::UpdateScrollC
+ DCHECK(deviceid >= 0 && deviceid < kMaxDeviceNum);
+ ScrollInfo& info = scroll_data_[deviceid];
+
+- bool legacy_scroll_available =
+- (scroll_class_info->flags & XIScrollFlagNoEmulation) == 0;
+- // If the device's highest resolution is lower than the resolution of xinput1
+- // then use xinput1's events instead (ie. don't configure smooth scrolling).
+- if (legacy_scroll_available &&
+- std::abs(scroll_class_info->increment) <= 1.0) {
+- return;
+- }
+-
+ switch (scroll_class_info->scroll_type) {
+ case XIScrollTypeVertical:
+ info.vertical.number = scroll_class_info->number;
diff --git a/chromium-59-clang-workaround.patch b/chromium-59-clang-workaround.patch
new file mode 100644
index 0000000..da6bee3
--- /dev/null
+++ b/chromium-59-clang-workaround.patch
@@ -0,0 +1,101 @@
+--- chromium-65.0.3298.3/third_party/angle/src/compiler/preprocessor/ExpressionParser.cpp.0120~ 2017-12-19 21:07:32.000000000 +0100
++++ chromium-65.0.3298.3/third_party/angle/src/compiler/preprocessor/ExpressionParser.cpp 2017-12-19 23:44:51.796064532 +0100
+@@ -291,7 +291,7 @@ typedef short int yytype_int16;
+ # define YYUSE(E) /* empty */
+ #endif
+
+-#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
++#if !defined(__clang__) && defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
+ /* Suppress an incorrect diagnostic about yylval being uninitialized. */
+ # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
+ _Pragma ("GCC diagnostic push") \
+--- chromium-65.0.3298.3/third_party/angle/src/compiler/translator/glslang_tab.cpp.0120~ 2017-12-19 21:07:32.000000000 +0100
++++ chromium-65.0.3298.3/third_party/angle/src/compiler/translator/glslang_tab.cpp 2017-12-19 23:44:51.797064539 +0100
+@@ -520,7 +520,7 @@ typedef short int yytype_int16;
+ # define YYUSE(E) /* empty */
+ #endif
+
+-#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
++#if !defined(__clang__) && defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
+ /* Suppress an incorrect diagnostic about yylval being uninitialized. */
+ # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
+ _Pragma ("GCC diagnostic push") \
+--- chromium-65.0.3298.3/third_party/libdrm/src/xf86drm.c.0120~ 2017-12-19 21:07:33.000000000 +0100
++++ chromium-65.0.3298.3/third_party/libdrm/src/xf86drm.c 2017-12-19 23:44:51.797064539 +0100
+@@ -2735,8 +2735,8 @@ int drmGetNodeTypeFromFd(int fd)
+ if (fstat(fd, &sbuf))
+ return -1;
+
+- maj = major(sbuf.st_rdev);
+- min = minor(sbuf.st_rdev);
++ maj = gnu_dev_major(sbuf.st_rdev);
++ min = gnu_dev_minor(sbuf.st_rdev);
+
+ if (maj != DRM_MAJOR || !S_ISCHR(sbuf.st_mode)) {
+ errno = EINVAL;
+@@ -2801,8 +2801,8 @@ static char *drmGetMinorNameForFD(int fd
+ if (fstat(fd, &sbuf))
+ return NULL;
+
+- maj = major(sbuf.st_rdev);
+- min = minor(sbuf.st_rdev);
++ maj = gnu_dev_major(sbuf.st_rdev);
++ min = gnu_dev_minor(sbuf.st_rdev);
+
+ if (maj != DRM_MAJOR || !S_ISCHR(sbuf.st_mode))
+ return NULL;
+@@ -3787,8 +3787,8 @@ int drmGetDevice2(int fd, uint32_t flags
+ return -errno;
+
+ find_rdev = sbuf.st_rdev;
+- maj = major(sbuf.st_rdev);
+- min = minor(sbuf.st_rdev);
++ maj = gnu_dev_major(sbuf.st_rdev);
++ min = gnu_dev_minor(sbuf.st_rdev);
+
+ if (maj != DRM_MAJOR || !S_ISCHR(sbuf.st_mode))
+ return -EINVAL;
+@@ -3815,8 +3815,8 @@ int drmGetDevice2(int fd, uint32_t flags
+ if (stat(node, &sbuf))
+ continue;
+
+- maj = major(sbuf.st_rdev);
+- min = minor(sbuf.st_rdev);
++ maj = gnu_dev_major(sbuf.st_rdev);
++ min = gnu_dev_minor(sbuf.st_rdev);
+
+ if (maj != DRM_MAJOR || !S_ISCHR(sbuf.st_mode))
+ continue;
+@@ -3965,8 +3965,8 @@ int drmGetDevices2(uint32_t flags, drmDe
+ if (stat(node, &sbuf))
+ continue;
+
+- maj = major(sbuf.st_rdev);
+- min = minor(sbuf.st_rdev);
++ maj = gnu_dev_major(sbuf.st_rdev);
++ min = gnu_dev_minor(sbuf.st_rdev);
+
+ if (maj != DRM_MAJOR || !S_ISCHR(sbuf.st_mode))
+ continue;
+--- chromium-65.0.3298.3/third_party/swiftshader/src/OpenGL/compiler/glslang_tab.cpp.0120~ 2017-12-19 21:07:35.000000000 +0100
++++ chromium-65.0.3298.3/third_party/swiftshader/src/OpenGL/compiler/glslang_tab.cpp 2017-12-19 23:44:51.798064546 +0100
+@@ -483,7 +483,7 @@ typedef short int yytype_int16;
+ # define YYUSE(E) /* empty */
+ #endif
+
+-#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
++#if !defined(__clang__) && defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
+ /* Suppress an incorrect diagnostic about yylval being uninitialized. */
+ # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
+ _Pragma ("GCC diagnostic push") \
+--- chromium-65.0.3298.3/third_party/swiftshader/src/OpenGL/compiler/preprocessor/ExpressionParser.cpp.0120~ 2017-12-19 21:07:35.000000000 +0100
++++ chromium-65.0.3298.3/third_party/swiftshader/src/OpenGL/compiler/preprocessor/ExpressionParser.cpp 2017-12-19 23:44:51.798064546 +0100
+@@ -277,7 +277,7 @@ typedef short int yytype_int16;
+ # define YYUSE(E) /* empty */
+ #endif
+
+-#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
++#if !defined(__clang__) && defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
+ /* Suppress an incorrect diagnostic about yylval being uninitialized. */
+ # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
+ _Pragma ("GCC diagnostic push") \
diff --git a/chromium-59.0.3071.86-i686-ld-memory-tricks.patch b/chromium-59.0.3071.86-i686-ld-memory-tricks.patch
new file mode 100644
index 0000000..9dde4c5
--- /dev/null
+++ b/chromium-59.0.3071.86-i686-ld-memory-tricks.patch
@@ -0,0 +1,12 @@
+diff -up chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn.ldmemory chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn
+--- chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn.ldmemory 2017-06-07 15:37:09.436616113 -0400
++++ chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn 2017-06-07 15:38:04.508519102 -0400
+@@ -93,7 +93,7 @@ gcc_toolchain("x86") {
+ nm = "nm"
+ ar = "ar"
+ ld = cxx
+- extra_cppflags = "-fno-delete-null-pointer-checks"
++ extra_cppflags = "-fno-delete-null-pointer-checks -g1"
+
+ # Output linker map files for binary size analysis.
+ enable_linker_map = true
diff --git a/chromium-59.0.3071.86-nullfix.patch b/chromium-59.0.3071.86-nullfix.patch
new file mode 100644
index 0000000..33bf255
--- /dev/null
+++ b/chromium-59.0.3071.86-nullfix.patch
@@ -0,0 +1,34 @@
+--- chromium-63.0.3236.7/build/toolchain/linux/BUILD.gn.0024~ 2017-10-13 03:05:24.000000000 +0200
++++ chromium-63.0.3236.7/build/toolchain/linux/BUILD.gn 2017-10-17 13:18:19.877771152 +0200
+@@ -31,6 +31,7 @@ gcc_toolchain("arm64") {
+ ld = cxx
+ readelf = "${toolprefix}readelf"
+ nm = "${toolprefix}nm"
++ extra_cppflags = "-fno-delete-null-pointer-checks"
+
+ toolchain_args = {
+ current_cpu = "arm64"
+@@ -49,6 +50,7 @@ gcc_toolchain("arm") {
+ ld = cxx
+ readelf = "${toolprefix}readelf"
+ nm = "${toolprefix}nm"
++ extra_cppflags = "-fno-delete-null-pointer-checks"
+
+ toolchain_args = {
+ current_cpu = "arm"
+@@ -99,6 +101,7 @@ gcc_toolchain("x86") {
+ nm = "nm"
+ ar = "ar"
+ ld = cxx
++ extra_cppflags = "-fno-delete-null-pointer-checks"
+
+ # Output linker map files for binary size analysis.
+ enable_linker_map = true
+@@ -152,6 +155,7 @@ gcc_toolchain("x64") {
+ nm = "nm"
+ ar = "ar"
+ ld = cxx
++ extra_cppflags = "-fno-delete-null-pointer-checks"
+
+ # Output linker map files for binary size analysis.
+ enable_linker_map = true
diff --git a/chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch b/chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
new file mode 100644
index 0000000..7248825
--- /dev/null
+++ b/chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
@@ -0,0 +1,21 @@
+diff -up chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h.pathfix chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h
+--- chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h.pathfix 2017-08-25 15:29:12.143242471 -0400
++++ chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h 2017-08-25 15:29:36.941835865 -0400
+@@ -39,13 +39,13 @@
+ #include "log.h"
+
+ #if ARCH_AARCH64
+-# include "aarch64/timer.h"
++# include "libavutil/aarch64/timer.h"
+ #elif ARCH_ARM
+-# include "arm/timer.h"
++# include "libavutil/arm/timer.h"
+ #elif ARCH_PPC
+-# include "ppc/timer.h"
++# include "libavutil/ppc/timer.h"
+ #elif ARCH_X86
+-# include "x86/timer.h"
++# include "libavutil/x86/timer.h"
+ #endif
+
+ #if !defined(AV_READ_TIME)
diff --git a/chromium-60.0.3112.78-jpeg-nomangle.patch b/chromium-60.0.3112.78-jpeg-nomangle.patch
new file mode 100644
index 0000000..0b758a4
--- /dev/null
+++ b/chromium-60.0.3112.78-jpeg-nomangle.patch
@@ -0,0 +1,14 @@
+diff -up chromium-60.0.3112.78/third_party/libjpeg_turbo/jpeglib.h.nomangle chromium-60.0.3112.78/third_party/libjpeg_turbo/jpeglib.h
+--- chromium-60.0.3112.78/third_party/libjpeg_turbo/jpeglib.h.nomangle 2017-08-01 15:29:00.870759406 -0400
++++ chromium-60.0.3112.78/third_party/libjpeg_turbo/jpeglib.h 2017-08-01 15:29:09.326593414 -0400
+@@ -18,10 +18,6 @@
+ #ifndef JPEGLIB_H
+ #define JPEGLIB_H
+
+-/* Begin chromium edits */
+-#include "jpeglibmangler.h"
+-/* End chromium edits */
+-
+ /*
+ * First we include the configuration files that record how this
+ * installation of the JPEG library is set up. jconfig.h can be
diff --git a/chromium-60.0.3112.78-no-libpng-prefix.patch b/chromium-60.0.3112.78-no-libpng-prefix.patch
new file mode 100644
index 0000000..0dbdcf9
--- /dev/null
+++ b/chromium-60.0.3112.78-no-libpng-prefix.patch
@@ -0,0 +1,17 @@
+diff -up chromium-60.0.3112.78/third_party/libpng/pnglibconf.h.noprefix chromium-60.0.3112.78/third_party/libpng/pnglibconf.h
+--- chromium-60.0.3112.78/third_party/libpng/pnglibconf.h.noprefix 2017-08-01 14:42:54.321986758 -0400
++++ chromium-60.0.3112.78/third_party/libpng/pnglibconf.h 2017-08-01 14:43:01.493845832 -0400
+@@ -225,13 +225,4 @@
+ #define PNG_USER_CHUNK_MALLOC_MAX 4000000L
+ /* end of chromium settings */
+
+-/* chromium prefixing */
+-/*
+- * This is necessary to build multiple copies of libpng. We need this while pdfium builds
+- * its own copy of libpng.
+- */
+-#define PNG_PREFIX
+-#include "pngprefix.h"
+-/* end of chromium prefixing */
+-
+ #endif /* PNGLCONF_H */
diff --git a/chromium-60.0.3112.78-no-zlib-mangle.patch b/chromium-60.0.3112.78-no-zlib-mangle.patch
new file mode 100644
index 0000000..4b90360
--- /dev/null
+++ b/chromium-60.0.3112.78-no-zlib-mangle.patch
@@ -0,0 +1,13 @@
+diff -up chromium-60.0.3112.78/third_party/zlib/zconf.h.nozmangle chromium-60.0.3112.78/third_party/zlib/zconf.h
+--- chromium-60.0.3112.78/third_party/zlib/zconf.h.nozmangle 2017-08-04 10:45:17.509152089 -0400
++++ chromium-60.0.3112.78/third_party/zlib/zconf.h 2017-08-04 10:45:30.451902380 -0400
+@@ -8,9 +8,6 @@
+ #ifndef ZCONF_H
+ #define ZCONF_H
+
+-/* This include does prefixing as below, but with an updated set of names */
+-#include "names.h"
+-
+ /*
+ * If you *really* need a unique prefix for all types and library functions,
+ * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
diff --git a/chromium-61.0.3163.79-gcc-no-opt-safe-math.patch b/chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
new file mode 100644
index 0000000..183b5ab
--- /dev/null
+++ b/chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
@@ -0,0 +1,13 @@
+diff -up chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h.fixgcc3 chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h
+--- chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h.fixgcc3 2017-09-06 16:30:15.898454585 -0400
++++ chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h 2017-09-06 16:30:27.570229539 -0400
+@@ -21,8 +21,7 @@
+ #if !defined(__native_client__) && \
+ ((defined(__clang__) && \
+ ((__clang_major__ > 3) || \
+- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
+- (defined(__GNUC__) && __GNUC__ >= 5))
++ (__clang_major__ == 3 && __clang_minor__ >= 4))))
+ #include "base/numerics/safe_math_clang_gcc_impl.h"
+ #define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
+ #else
diff --git a/chromium-62.0.3202.62-kmaxskip-constexpr.patch b/chromium-62.0.3202.62-kmaxskip-constexpr.patch
new file mode 100644
index 0000000..d4f8250
--- /dev/null
+++ b/chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -0,0 +1,12 @@
+diff -up chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc.kmaxskip chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc
+--- chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc.kmaxskip 2017-10-18 10:00:28.503714392 -0400
++++ chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc 2017-10-18 10:00:43.153430212 -0400
+@@ -336,7 +336,7 @@ TYPES(M);
+ #undef TYPES
+
+ const SkRect PaintOp::kUnsetRect = {SK_ScalarInfinity, 0, 0, 0};
+-const size_t PaintOp::kMaxSkip;
++constexpr size_t PaintOp::kMaxSkip;
+
+ std::string PaintOpTypeToString(PaintOpType type) {
+ switch (type) {
diff --git a/chromium-63.0.3289.84-aarch64-glibc-2.26.90.patch b/chromium-63.0.3289.84-aarch64-glibc-2.26.90.patch
new file mode 100644
index 0000000..469d680
--- /dev/null
+++ b/chromium-63.0.3289.84-aarch64-glibc-2.26.90.patch
@@ -0,0 +1,12 @@
+diff -up chromium-63.0.3239.84/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc.aarch64glibc chromium-63.0.3239.84/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
+--- chromium-63.0.3239.84/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc.aarch64glibc 2017-12-12 09:56:24.469343868 -0500
++++ chromium-63.0.3239.84/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc 2017-12-12 09:56:38.468071095 -0500
+@@ -461,7 +461,7 @@ bool ExceptionHandler::HandleSignal(int
+ #if defined(__aarch64__)
+ ucontext_t* uc_ptr = (ucontext_t*)uc;
+ struct fpsimd_context* fp_ptr =
+- (struct fpsimd_context*)&uc_ptr->uc_mcontext.__reserved;
++ (struct fpsimd_context*)&uc_ptr->uc_mcontext.__glibc_reserved1;
+ if (fp_ptr->head.magic == FPSIMD_MAGIC) {
+ memcpy(&g_crash_context_.float_state, fp_ptr,
+ sizeof(g_crash_context_.float_state));
diff --git a/chromium-64-system-curl.patch b/chromium-64-system-curl.patch
new file mode 100644
index 0000000..4d35bfb
--- /dev/null
+++ b/chromium-64-system-curl.patch
@@ -0,0 +1,11 @@
+--- chromium-64.0.3253.3/third_party/breakpad/breakpad/src/common/linux/libcurl_wrapper.h.omv~ 2017-11-06 03:12:12.165490461 +0100
++++ chromium-64.0.3253.3/third_party/breakpad/breakpad/src/common/linux/libcurl_wrapper.h 2017-11-06 03:12:20.899515168 +0100
+@@ -37,7 +37,7 @@
+ #include <map>
+
+ #include "common/using_std_string.h"
+-#include "third_party/curl/curl.h"
++#include <curl/curl.h>
+
+ namespace google_breakpad {
+ class LibcurlWrapper {
diff --git a/chromium-64.0.3282.119-ffmpeg-stdatomic.patch b/chromium-64.0.3282.119-ffmpeg-stdatomic.patch
new file mode 100644
index 0000000..64c5f26
--- /dev/null
+++ b/chromium-64.0.3282.119-ffmpeg-stdatomic.patch
@@ -0,0 +1,17 @@
+diff -up chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c.ffmpeg-stdatomic chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c
+--- chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c.ffmpeg-stdatomic 2018-01-25 11:55:57.880936815 -0500
++++ chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c 2018-01-25 11:57:18.456787888 -0500
+@@ -18,7 +18,13 @@
+
+ #include <stddef.h>
+ #include <stdint.h>
++// GCC 4.8 didn't have stdatomic, but was advertising it.
++// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58016
++#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ == 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ == 8)))
++#include <compat/atomics/gcc/stdatomic.h>
++#else
+ #include <stdatomic.h>
++#endif
+
+ #include "attributes.h"
+ #include "cpu.h"
diff --git a/chromium-65.0.3325.146-gcc-round-fix.patch b/chromium-65.0.3325.146-gcc-round-fix.patch
new file mode 100644
index 0000000..a29779d
--- /dev/null
+++ b/chromium-65.0.3325.146-gcc-round-fix.patch
@@ -0,0 +1,12 @@
+diff -up chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc.gcc-round-fix chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc
+--- chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc.gcc-round-fix 2018-03-07 10:57:11.284376048 -0500
++++ chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc 2018-03-07 10:58:16.590742636 -0500
+@@ -10,7 +10,7 @@
+
+ #include "p2p/base/port.h"
+
+-#include <math.h>
++#include <cmath>
+
+ #include <algorithm>
+ #include <utility>
diff --git a/chromium-65.0.3325.146-memcpy-fix.patch b/chromium-65.0.3325.146-memcpy-fix.patch
new file mode 100644
index 0000000..b2b2cd4
--- /dev/null
+++ b/chromium-65.0.3325.146-memcpy-fix.patch
@@ -0,0 +1,12 @@
+diff -up chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc.memcpyfix chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc
+--- chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc.memcpyfix 2018-03-07 11:04:14.690379817 -0500
++++ chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc 2018-03-07 11:06:04.339878069 -0500
+@@ -3,7 +3,7 @@
+ // found in the LICENSE file.
+
+ #include "cc/paint/raw_memory_transfer_cache_entry.h"
+-
++#include <memory.h>
+ #include <string.h>
+
+ namespace cc {
diff --git a/chromium-65.0.3325.162-epel7-stdc++.patch b/chromium-65.0.3325.162-epel7-stdc++.patch
new file mode 100644
index 0000000..ee2066b
--- /dev/null
+++ b/chromium-65.0.3325.162-epel7-stdc++.patch
@@ -0,0 +1,12 @@
+diff -up chromium-65.0.3325.162/build/config/posix/BUILD.gn.epel7 chromium-65.0.3325.162/build/config/posix/BUILD.gn
+--- chromium-65.0.3325.162/build/config/posix/BUILD.gn.epel7 2018-03-20 16:14:42.425926323 -0400
++++ chromium-65.0.3325.162/build/config/posix/BUILD.gn 2018-03-20 16:15:10.150152245 -0400
+@@ -74,6 +74,8 @@ config("runtime_library") {
+ "rt",
+ ]
+ }
++ } else {
++ libs += [ "stdc++" ]
+ }
+
+ if (!is_mac && !is_ios && sysroot != "") {
diff --git a/chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch b/chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
new file mode 100644
index 0000000..d5b19cf
--- /dev/null
+++ b/chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
@@ -0,0 +1,18 @@
+diff -up chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h.gcc-cpolicyprovider chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h
+--- chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h.gcc-cpolicyprovider 2018-04-25 16:33:40.872222779 -0400
++++ chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h 2018-04-25 16:37:23.175883637 -0400
+@@ -11,13 +11,13 @@
+ #include "base/callback_forward.h"
+ #include "base/macros.h"
+ #include "components/policy/core/browser/configuration_policy_handler_list.h"
++#include "components/policy/core/common/configuration_policy_provider.h"
+ #include "components/policy/core/common/schema.h"
+ #include "components/policy/core/common/schema_registry.h"
+ #include "components/policy/policy_export.h"
+
+ namespace policy {
+
+-class ConfigurationPolicyProvider;
+ class PolicyService;
+ class PolicyServiceImpl;
+
diff --git a/chromium-66.0.3359.117-gcc5-r3.patch b/chromium-66.0.3359.117-gcc5-r3.patch
new file mode 100644
index 0000000..56abcf1
--- /dev/null
+++ b/chromium-66.0.3359.117-gcc5-r3.patch
@@ -0,0 +1,38 @@
+diff -up chromium-66.0.3359.117/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-66.0.3359.117/gpu/ipc/common/mailbox_struct_traits.h
+--- chromium-66.0.3359.117/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2018-04-17 21:04:33.000000000 -0400
++++ chromium-66.0.3359.117/gpu/ipc/common/mailbox_struct_traits.h 2018-04-18 12:12:40.065663210 -0400
+@@ -15,7 +15,7 @@ namespace mojo {
+ template <>
+ struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
+ static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
+- return mailbox.name;
++ return base::make_span(mailbox.name);
+ }
+ static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
+ };
+diff -up chromium-66.0.3359.117/services/viz/public/cpp/compositing/filter_operation_struct_traits.h.gcc5-r3 chromium-66.0.3359.117/services/viz/public/cpp/compositing/filter_operation_struct_traits.h
+diff -up chromium-66.0.3359.117/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-66.0.3359.117/services/viz/public/cpp/compositing/quads_struct_traits.h
+--- chromium-66.0.3359.117/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2018-04-17 21:04:43.000000000 -0400
++++ chromium-66.0.3359.117/services/viz/public/cpp/compositing/quads_struct_traits.h 2018-04-18 12:12:40.067663160 -0400
+@@ -308,7 +308,7 @@ struct StructTraits<viz::mojom::TextureQ
+ static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
+ const viz::TextureDrawQuad* quad =
+ viz::TextureDrawQuad::MaterialCast(&input);
+- return quad->vertex_opacity;
++ return base::make_span(quad->vertex_opacity);
+ }
+
+ static bool y_flipped(const viz::DrawQuad& input) {
+diff -up chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h.gcc5-r3 chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h
+diff -up chromium-66.0.3359.117/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-66.0.3359.117/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
+--- chromium-66.0.3359.117/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2018-04-17 21:06:20.000000000 -0400
++++ chromium-66.0.3359.117/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2018-04-18 12:12:40.068663134 -0400
+@@ -10,7 +10,7 @@
+
+ #include "modules/audio_processing/aec3/aec_state.h"
+
+-#include <math.h>
++#include <cmath>
+
+ #include <numeric>
+ #include <vector>
diff --git a/chromium-66.0.3359.117-missing-files.patch b/chromium-66.0.3359.117-missing-files.patch
new file mode 100644
index 0000000..746d56e
--- /dev/null
+++ b/chromium-66.0.3359.117-missing-files.patch
@@ -0,0 +1,272 @@
+diff -up chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/__init__.py.missing chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/__init__.py
+--- chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/__init__.py.missing 2018-04-19 09:51:46.165723235 -0400
++++ chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/__init__.py 2018-04-19 09:51:46.171723115 -0400
+@@ -0,0 +1,3 @@
++# Copyright 2017 The Chromium Authors. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
+diff -up chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter.py.missing chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter.py
+--- chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter.py.missing 2018-04-19 09:51:46.171723115 -0400
++++ chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter.py 2018-04-19 09:51:46.172723095 -0400
+@@ -0,0 +1,110 @@
++# Copyright 2017 The Chromium Authors. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++# pylint: disable=import-error,print-statement,relative-import
++import re
++SPECIAL_TOKENS = [
++ # This list should be sorted by length.
++ 'CString',
++ 'Float32',
++ 'Float64',
++ 'Base64',
++ 'IFrame',
++ 'Latin1',
++ 'PlugIn',
++ 'SQLite',
++ 'Uint16',
++ 'Uint32',
++ 'WebGL2',
++ 'ASCII',
++ 'CType',
++ 'DList',
++ 'Int16',
++ 'Int32',
++ 'MPath',
++ 'OList',
++ 'TSpan',
++ 'UList',
++ 'UTF16',
++ 'Uint8',
++ 'WebGL',
++ 'XPath',
++ 'ETC1',
++ 'HTML',
++ 'Int8',
++ 'S3TC',
++ 'SPv2',
++ 'UTF8',
++ 'API',
++ 'CSS',
++ 'DOM',
++ 'EXT',
++ 'RTC',
++ 'SVG',
++ '2D',
++ 'AX',
++ 'V0',
++ 'V8',
++]
++MATCHING_EXPRESSION = '((?:[A-Z][a-z]+)|[0-9]D?$)'
++class SmartTokenizer(object):
++ """Detects special cases that are not easily discernible without additional
++ knowledge, such as recognizing that in SVGSVGElement, the first two SVGs
++ are separate tokens, but WebGL is one token."""
++ def __init__(self, name):
++ self.remaining = name
++ def tokenize(self):
++ name = self.remaining
++ tokens = []
++ while len(name) > 0:
++ matched_token = None
++ for token in SPECIAL_TOKENS:
++ if name.startswith(token):
++ matched_token = token
++ break
++ if not matched_token:
++ match = re.search(MATCHING_EXPRESSION, name)
++ if not match:
++ matched_token = name
++ elif match.start(0) != 0:
++ matched_token = name[:match.start(0)]
++ else:
++ matched_token = match.group(0)
++ tokens.append(name[:len(matched_token)])
++ name = name[len(matched_token):]
++ return tokens
++class NameStyleConverter(object):
++ """Converts names from camelCase to various other styles.
++ """
++ def __init__(self, name):
++ self.tokens = self.tokenize(name)
++ def tokenize(self, name):
++ tokenizer = SmartTokenizer(name)
++ return tokenizer.tokenize()
++ def to_snake_case(self):
++ """Snake case is the file and variable name style per Google C++ Style
++ Guide:
++ https://google.github.io/styleguide/cppguide.html#Variable_Names
++ Also known as the hacker case.
++ https://en.wikipedia.org/wiki/Snake_case
++ """
++ return '_'.join([token.lower() for token in self.tokens])
++ def to_upper_camel_case(self):
++ """Upper-camel case is the class and function name style per
++ Google C++ Style Guide:
++ https://google.github.io/styleguide/cppguide.html#Function_Names
++ Also known as the PascalCase.
++ https://en.wikipedia.org/wiki/Camel_case.
++ """
++ return ''.join([token[0].upper() + token[1:] for token in self.tokens])
++ def to_macro_case(self):
++ """Macro case is the macro name style per Google C++ Style Guide:
++ https://google.github.io/styleguide/cppguide.html#Macro_Names
++ """
++ return '_'.join([token.upper() for token in self.tokens])
++ def to_all_cases(self):
++ return {
++ 'snake_case': self.to_snake_case(),
++ 'upper_camel_case': self.to_upper_camel_case(),
++ 'macro_case': self.to_macro_case(),
++ }
+diff -up chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter_test.py.missing chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter_test.py
+--- chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter_test.py.missing 2018-04-19 09:51:46.172723095 -0400
++++ chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter_test.py 2018-04-19 09:51:46.173723075 -0400
+@@ -0,0 +1,140 @@
++# Copyright 2017 The Chromium Authors. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++# pylint: disable=import-error,print-statement,relative-import,protected-access
++"""Unit tests for name_style_converter.py."""
++import unittest
++from name_style_converter import NameStyleConverter
++from name_style_converter import SmartTokenizer
++class SmartTokenizerTest(unittest.TestCase):
++ def test_simple_cases(self):
++ tokenizer = SmartTokenizer('foo')
++ self.assertEqual(tokenizer.tokenize(), ['foo'])
++ tokenizer = SmartTokenizer('fooBar')
++ self.assertEqual(tokenizer.tokenize(), ['foo', 'Bar'])
++ tokenizer = SmartTokenizer('fooBarBaz')
++ self.assertEqual(tokenizer.tokenize(), ['foo', 'Bar', 'Baz'])
++ tokenizer = SmartTokenizer('Baz')
++ self.assertEqual(tokenizer.tokenize(), ['Baz'])
++ tokenizer = SmartTokenizer('')
++ self.assertEqual(tokenizer.tokenize(), [])
++ tokenizer = SmartTokenizer('FOO')
++ self.assertEqual(tokenizer.tokenize(), ['FOO'])
++ tokenizer = SmartTokenizer('foo2')
++ self.assertEqual(tokenizer.tokenize(), ['foo', '2'])
++ def test_tricky_cases(self):
++ tokenizer = SmartTokenizer('XMLHttpRequest')
++ self.assertEqual(tokenizer.tokenize(), ['XML', 'Http', 'Request'])
++ tokenizer = SmartTokenizer('HTMLElement')
++ self.assertEqual(tokenizer.tokenize(), ['HTML', 'Element'])
++ tokenizer = SmartTokenizer('WebGLRenderingContext')
++ self.assertEqual(tokenizer.tokenize(),
++ ['WebGL', 'Rendering', 'Context'])
++ tokenizer = SmartTokenizer('CanvasRenderingContext2D')
++ self.assertEqual(tokenizer.tokenize(),
++ ['Canvas', 'Rendering', 'Context', '2D'])
++ tokenizer = SmartTokenizer('CanvasRenderingContext2DAPITest')
++ self.assertEqual(tokenizer.tokenize(),
++ ['Canvas', 'Rendering', 'Context', '2D', 'API', 'Test'])
++ tokenizer = SmartTokenizer('SVGSVGElement')
++ self.assertEqual(tokenizer.tokenize(), ['SVG', 'SVG', 'Element'])
++ tokenizer = SmartTokenizer('CanvasRenderingContext2D')
++ self.assertEqual(tokenizer.tokenize(), ['Canvas', 'Rendering', 'Context', '2D'])
++ tokenizer = SmartTokenizer('CSSURLImageValue')
++ self.assertEqual(tokenizer.tokenize(), ['CSS', 'URL', 'Image', 'Value'])
++ tokenizer = SmartTokenizer('CSSPropertyAPID')
++ self.assertEqual(tokenizer.tokenize(), ['CSS', 'Property', 'API', 'D'])
++ tokenizer = SmartTokenizer('AXARIAGridCell')
++ self.assertEqual(tokenizer.tokenize(), ['AX', 'ARIA', 'Grid', 'Cell'])
++ tokenizer = SmartTokenizer('CDATASection')
++ self.assertEqual(tokenizer.tokenize(), ['CDATA', 'Section'])
++ tokenizer = SmartTokenizer('ASCIICType')
++ self.assertEqual(tokenizer.tokenize(), ['ASCII', 'CType'])
++ tokenizer = SmartTokenizer('CString')
++ self.assertEqual(tokenizer.tokenize(), ['CString'])
++ tokenizer = SmartTokenizer('HTMLDListElement')
++ self.assertEqual(tokenizer.tokenize(), ['HTML', 'DList', 'Element'])
++ tokenizer = SmartTokenizer('HTMLOListElement')
++ self.assertEqual(tokenizer.tokenize(), ['HTML', 'OList', 'Element'])
++ tokenizer = SmartTokenizer('HTMLIFrameElement')
++ self.assertEqual(tokenizer.tokenize(), ['HTML', 'IFrame', 'Element'])
++ tokenizer = SmartTokenizer('HTMLPlugInElement')
++ self.assertEqual(tokenizer.tokenize(), ['HTML', 'PlugIn', 'Element'])
++ # No special handling for OptGroup, FieldSet, and TextArea.
++ tokenizer = SmartTokenizer('HTMLOptGroupElement')
++ self.assertEqual(tokenizer.tokenize(), ['HTML', 'Opt', 'Group', 'Element'])
++ tokenizer = SmartTokenizer('HTMLFieldSetElement')
++ self.assertEqual(tokenizer.tokenize(), ['HTML', 'Field', 'Set', 'Element'])
++ tokenizer = SmartTokenizer('HTMLTextAreaElement')
++ self.assertEqual(tokenizer.tokenize(), ['HTML', 'Text', 'Area', 'Element'])
++ tokenizer = SmartTokenizer('Path2D')
++ self.assertEqual(tokenizer.tokenize(), ['Path', '2D'])
++ tokenizer = SmartTokenizer('Point2D')
++ self.assertEqual(tokenizer.tokenize(), ['Point', '2D'])
++ tokenizer = SmartTokenizer('CanvasRenderingContext2DState')
++ self.assertEqual(tokenizer.tokenize(), ['Canvas', 'Rendering', 'Context', '2D', 'State'])
++ tokenizer = SmartTokenizer('RTCDTMFSender')
++ self.assertEqual(tokenizer.tokenize(), ['RTC', 'DTMF', 'Sender'])
++ tokenizer = SmartTokenizer('WebGLCompressedTextureS3TCsRGB')
++ self.assertEqual(tokenizer.tokenize(), ['WebGL', 'Compressed', 'Texture', 'S3TC', 'sRGB'])
++ tokenizer = SmartTokenizer('WebGL2CompressedTextureETC1')
++ self.assertEqual(tokenizer.tokenize(), ['WebGL2', 'Compressed', 'Texture', 'ETC1'])
++ tokenizer = SmartTokenizer('EXTsRGB')
++ self.assertEqual(tokenizer.tokenize(), ['EXT', 'sRGB'])
++ tokenizer = SmartTokenizer('SVGFEBlendElement')
++ self.assertEqual(tokenizer.tokenize(), ['SVG', 'FE', 'Blend', 'Element'])
++ tokenizer = SmartTokenizer('SVGMPathElement')
++ self.assertEqual(tokenizer.tokenize(), ['SVG', 'MPath', 'Element'])
++ tokenizer = SmartTokenizer('SVGTSpanElement')
++ self.assertEqual(tokenizer.tokenize(), ['SVG', 'TSpan', 'Element'])
++ tokenizer = SmartTokenizer('SVGURIReference')
++ self.assertEqual(tokenizer.tokenize(), ['SVG', 'URI', 'Reference'])
++ tokenizer = SmartTokenizer('UTF16TextIterator')
++ self.assertEqual(tokenizer.tokenize(), ['UTF16', 'Text', 'Iterator'])
++ tokenizer = SmartTokenizer('UTF8Decoder')
++ self.assertEqual(tokenizer.tokenize(), ['UTF8', 'Decoder'])
++ tokenizer = SmartTokenizer('Uint8Array')
++ self.assertEqual(tokenizer.tokenize(), ['Uint8', 'Array'])
++ tokenizer = SmartTokenizer('DOMWindowBase64')
++ self.assertEqual(tokenizer.tokenize(), ['DOM', 'Window', 'Base64'])
++ tokenizer = SmartTokenizer('TextCodecLatin1')
++ self.assertEqual(tokenizer.tokenize(), ['Text', 'Codec', 'Latin1'])
++ tokenizer = SmartTokenizer('V8BindingForCore')
++ self.assertEqual(tokenizer.tokenize(), ['V8', 'Binding', 'For', 'Core'])
++ tokenizer = SmartTokenizer('V8DOMRect')
++ self.assertEqual(tokenizer.tokenize(), ['V8', 'DOM', 'Rect'])
++ tokenizer = SmartTokenizer('V0InsertionPoint')
++ self.assertEqual(tokenizer.tokenize(), ['V0', 'Insertion', 'Point'])
++ tokenizer = SmartTokenizer('ShadowDOMV0Test')
++ self.assertEqual(tokenizer.tokenize(), ['Shadow', 'DOM', 'V0', 'Test'])
++ tokenizer = SmartTokenizer('ElementShadowV0')
++ self.assertEqual(tokenizer.tokenize(), ['Element', 'Shadow', 'V0'])
++ tokenizer = SmartTokenizer('StubChromeClientForSPv2')
++ self.assertEqual(tokenizer.tokenize(), ['Stub', 'Chrome', 'Client', 'For', 'SPv2'])
++ tokenizer = SmartTokenizer('SQLiteAuthorizer')
++ self.assertEqual(tokenizer.tokenize(), ['SQLite', 'Authorizer'])
++ tokenizer = SmartTokenizer('XPathEvaluator')
++ self.assertEqual(tokenizer.tokenize(), ['XPath', 'Evaluator'])
++ tokenizer = SmartTokenizer('IsXHTMLDocument')
++ self.assertEqual(tokenizer.tokenize(), ['Is', 'XHTML', 'Document'])
++ tokenizer = SmartTokenizer('Animation.idl')
++ self.assertEqual(tokenizer.tokenize(), ['Animation', '.idl'])
++class NameStyleConverterTest(unittest.TestCase):
++ def test_snake_case(self):
++ converter = NameStyleConverter('HTMLElement')
++ self.assertEqual(converter.to_snake_case(), 'html_element')
++ def test_upper_camel_case(self):
++ converter = NameStyleConverter('someSuperThing')
++ self.assertEqual(converter.to_upper_camel_case(), 'SomeSuperThing')
++ converter = NameStyleConverter('SVGElement')
++ self.assertEqual(converter.to_upper_camel_case(), 'SVGElement')
++ def test_macro_case(self):
++ converter = NameStyleConverter('WebGLBaz2D')
++ self.assertEqual(converter.to_macro_case(), 'WEBGL_BAZ_2D')
++ def test_all_cases(self):
++ converter = NameStyleConverter('SVGScriptElement')
++ self.assertEqual(converter.to_all_cases(), {
++ 'snake_case': 'svg_script_element',
++ 'upper_camel_case': 'SVGScriptElement',
++ 'macro_case': 'SVG_SCRIPT_ELEMENT',
++ })
+diff -up chromium-66.0.3359.117/third_party/blink/tools/blinkpy/__init__.py.missing chromium-66.0.3359.117/third_party/blink/tools/blinkpy/__init__.py
+--- chromium-66.0.3359.117/third_party/blink/tools/blinkpy/__init__.py.missing 2018-04-19 11:34:40.621293007 -0400
++++ chromium-66.0.3359.117/third_party/blink/tools/blinkpy/__init__.py 2018-04-19 11:34:34.440413163 -0400
+@@ -0,0 +1,3 @@
++# Copyright 2017 The Chromium Authors. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
diff --git a/chromium-66.0.3359.117-system-clang.patch b/chromium-66.0.3359.117-system-clang.patch
new file mode 100644
index 0000000..e90dc58
--- /dev/null
+++ b/chromium-66.0.3359.117-system-clang.patch
@@ -0,0 +1,12 @@
+diff -up chromium-66.0.3359.117/build/config/clang/clang.gni.system-clang chromium-66.0.3359.117/build/config/clang/clang.gni
+--- chromium-66.0.3359.117/build/config/clang/clang.gni.system-clang 2018-04-18 12:08:45.658190297 -0400
++++ chromium-66.0.3359.117/build/config/clang/clang.gni 2018-04-18 12:09:37.612032982 -0400
+@@ -4,7 +4,7 @@
+
+ import("//build/toolchain/toolchain.gni")
+
+-default_clang_base_path = "//third_party/llvm-build/Release+Asserts"
++default_clang_base_path = "/usr"
+
+ declare_args() {
+ # Indicates if the build should use the Chrome-specific plugins for enforcing
diff --git a/chromium-67.0.3396.62-gcc5.patch b/chromium-67.0.3396.62-gcc5.patch
new file mode 100644
index 0000000..ceef85d
--- /dev/null
+++ b/chromium-67.0.3396.62-gcc5.patch
@@ -0,0 +1,12 @@
+diff -up chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl
+--- chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 2018-05-30 04:44:33.000000000 -0400
++++ chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl 2018-05-30 11:59:26.218625660 -0400
+@@ -262,7 +262,7 @@ interface mixin WebGL2RenderingContextBa
+ const GLenum UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43;
+ const GLenum UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44;
+ const GLenum UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46;
+- const GLenum INVALID_INDEX = 0xFFFFFFFF;
++ const GLenum INVALID_INDEX = 256;
+ const GLenum MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
+ const GLenum MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
+ const GLenum MAX_SERVER_WAIT_TIMEOUT = 0x9111;
diff --git a/chromium-54.0.2840.59-gn-system.patch b/chromium-67.0.3396.62-gn-system.patch
similarity index 69%
rename from chromium-54.0.2840.59-gn-system.patch
rename to chromium-67.0.3396.62-gn-system.patch
index fc855ad..4a08e94 100644
--- a/chromium-54.0.2840.59-gn-system.patch
+++ b/chromium-67.0.3396.62-gn-system.patch
@@ -1,20 +1,7 @@
-diff -up chromium-54.0.2840.59/build/linux/unbundle/libjpeg.gn.gnsystem chromium-54.0.2840.59/build/linux/unbundle/libjpeg.gn
---- chromium-54.0.2840.59/build/linux/unbundle/libjpeg.gn.gnsystem 2016-10-13 16:06:00.464796742 -0400
-+++ chromium-54.0.2840.59/build/linux/unbundle/libjpeg.gn 2016-10-13 16:06:08.976631824 -0400
-@@ -16,6 +16,10 @@ source_set("libjpeg") {
- libs = [ "jpeg" ]
- }
-
-+config("system_libjpeg") {
-+ defines = [ "USE_SYSTEM_LIBJPEG=1" ]
-+}
-+
- source_set("simd") {
- }
-
-diff -up chromium-54.0.2840.59/build/linux/unbundle/libusb.gn.gnsystem chromium-54.0.2840.59/build/linux/unbundle/libusb.gn
---- chromium-54.0.2840.59/build/linux/unbundle/libusb.gn.gnsystem 2016-10-13 15:47:48.147891525 -0400
-+++ chromium-54.0.2840.59/build/linux/unbundle/libusb.gn 2016-10-13 15:47:48.147891525 -0400
+diff -up chromium-67.0.3396.62/build/linux/unbundle/libjpeg.gn.gnsystem chromium-67.0.3396.62/build/linux/unbundle/libjpeg.gn
+diff -up chromium-67.0.3396.62/build/linux/unbundle/libusb.gn.gnsystem chromium-67.0.3396.62/build/linux/unbundle/libusb.gn
+--- chromium-67.0.3396.62/build/linux/unbundle/libusb.gn.gnsystem 2018-05-30 12:18:36.949488683 -0400
++++ chromium-67.0.3396.62/build/linux/unbundle/libusb.gn 2018-05-30 12:18:36.949488683 -0400
@@ -0,0 +1,24 @@
+# Copyright 2016 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
@@ -40,10 +27,10 @@ diff -up chromium-54.0.2840.59/build/linux/unbundle/libusb.gn.gnsystem chromium-
+ ]
+ public_configs = [ ":system_libusb" ]
+}
-diff -up chromium-54.0.2840.59/build/linux/unbundle/opus.gn.gnsystem chromium-54.0.2840.59/build/linux/unbundle/opus.gn
---- chromium-54.0.2840.59/build/linux/unbundle/opus.gn.gnsystem 2016-10-13 15:47:48.147891525 -0400
-+++ chromium-54.0.2840.59/build/linux/unbundle/opus.gn 2016-10-13 15:47:48.147891525 -0400
-@@ -0,0 +1,161 @@
+diff -up chromium-67.0.3396.62/build/linux/unbundle/opus.gn.gnsystem chromium-67.0.3396.62/build/linux/unbundle/opus.gn
+--- chromium-67.0.3396.62/build/linux/unbundle/opus.gn.gnsystem 2018-05-30 04:43:03.000000000 -0400
++++ chromium-67.0.3396.62/build/linux/unbundle/opus.gn 2018-05-30 12:18:36.950488661 -0400
+@@ -1,3 +1,164 @@
+# Copyright 2016 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
@@ -205,19 +192,17 @@ diff -up chromium-54.0.2840.59/build/linux/unbundle/opus.gn.gnsystem chromium-54
+ ]
+}
+
-diff -up chromium-54.0.2840.59/build/linux/unbundle/replace_gn_files.py.gnsystem chromium-54.0.2840.59/build/linux/unbundle/replace_gn_files.py
---- chromium-54.0.2840.59/build/linux/unbundle/replace_gn_files.py.gnsystem 2016-10-12 15:02:53.000000000 -0400
-+++ chromium-54.0.2840.59/build/linux/unbundle/replace_gn_files.py 2016-10-13 15:47:48.147891525 -0400
-@@ -23,10 +23,12 @@ REPLACEMENTS = {
+ # Copyright 2017 The Chromium Authors. All rights reserved.
+ # Use of this source code is governed by a BSD-style license that can be
+ # found in the LICENSE file.
+diff -up chromium-67.0.3396.62/build/linux/unbundle/replace_gn_files.py.gnsystem chromium-67.0.3396.62/build/linux/unbundle/replace_gn_files.py
+--- chromium-67.0.3396.62/build/linux/unbundle/replace_gn_files.py.gnsystem 2018-05-30 12:18:36.951488638 -0400
++++ chromium-67.0.3396.62/build/linux/unbundle/replace_gn_files.py 2018-05-30 12:20:02.542534270 -0400
+@@ -27,6 +27,7 @@ REPLACEMENTS = {
'libevent': 'base/third_party/libevent/BUILD.gn',
- 'libjpeg': 'build/secondary/third_party/libjpeg_turbo/BUILD.gn',
+ 'libjpeg': 'third_party/libjpeg.gni',
'libpng': 'third_party/libpng/BUILD.gn',
+ 'libusb': 'third_party/libusb/BUILD.gn',
'libvpx': 'third_party/libvpx/BUILD.gn',
'libwebp': 'third_party/libwebp/BUILD.gn',
'libxml': 'third_party/libxml/BUILD.gn',
- 'libxslt': 'third_party/libxslt/BUILD.gn',
-+ 'opus': 'third_party/opus/BUILD.gn',
- 're2': 'third_party/re2/BUILD.gn',
- 'snappy': 'third_party/snappy/BUILD.gn',
- 'yasm': 'third_party/yasm/yasm_assemble.gni',
diff --git a/chromium-67.0.3396.62-skia-aarch64-buildfix.patch b/chromium-67.0.3396.62-skia-aarch64-buildfix.patch
new file mode 100644
index 0000000..6b37b08
--- /dev/null
+++ b/chromium-67.0.3396.62-skia-aarch64-buildfix.patch
@@ -0,0 +1,21 @@
+diff -up chromium-67.0.3396.62/third_party/skia/src/opts/SkRasterPipeline_opts.h.aarch64fix chromium-67.0.3396.62/third_party/skia/src/opts/SkRasterPipeline_opts.h
+--- chromium-67.0.3396.62/third_party/skia/src/opts/SkRasterPipeline_opts.h.aarch64fix 2018-05-30 12:38:06.131467092 -0400
++++ chromium-67.0.3396.62/third_party/skia/src/opts/SkRasterPipeline_opts.h 2018-05-30 12:38:39.861734819 -0400
+@@ -653,7 +653,7 @@ SI F approx_powf(F x, F y) {
+ }
+
+ SI F from_half(U16 h) {
+-#if defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
++#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
+ return vcvt_f32_f16(h);
+
+ #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
+@@ -673,7 +673,7 @@ SI F from_half(U16 h) {
+ }
+
+ SI U16 to_half(F f) {
+-#if defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
++#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
+ return vcvt_f16_f32(f);
+
+ #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
diff --git a/chromium-69-extra-media.patch b/chromium-69-extra-media.patch
new file mode 100644
index 0000000..fc1cb99
--- /dev/null
+++ b/chromium-69-extra-media.patch
@@ -0,0 +1,274 @@
+diff -up chromium-69.0.3497.100/media/base/audio_codecs.cc.37~ chromium-69.0.3497.100/media/base/audio_codecs.cc
+--- chromium-69.0.3497.100/media/base/audio_codecs.cc.37~ 2018-09-17 21:10:16.000000000 +0200
++++ chromium-69.0.3497.100/media/base/audio_codecs.cc 2018-10-02 22:30:05.030093084 +0200
+@@ -46,6 +46,8 @@ std::string GetCodecName(AudioCodec code
+ return "ac3";
+ case kCodecMpegHAudio:
+ return "mpeg-h-audio";
++ case kCodecDTS:
++ return "dts";
+ }
+ NOTREACHED();
+ return "";
+@@ -72,6 +74,8 @@ AudioCodec StringToAudioCodec(const std:
+ return kCodecVorbis;
+ if (base::StartsWith(codec_id, "mp4a.40.", base::CompareCase::SENSITIVE))
+ return kCodecAAC;
++ if (codec_id == "dts")
++ return kCodecDTS;
+ return kUnknownAudioCodec;
+ }
+
+diff -up chromium-69.0.3497.100/media/base/audio_codecs.h.37~ chromium-69.0.3497.100/media/base/audio_codecs.h
+--- chromium-69.0.3497.100/media/base/audio_codecs.h.37~ 2018-09-17 21:10:16.000000000 +0200
++++ chromium-69.0.3497.100/media/base/audio_codecs.h 2018-10-02 22:30:05.030093084 +0200
+@@ -33,13 +33,14 @@ enum AudioCodec {
+ kCodecALAC = 15,
+ kCodecAC3 = 16,
+ kCodecMpegHAudio = 17,
++ kCodecDTS = 18,
+ // DO NOT ADD RANDOM AUDIO CODECS!
+ //
+ // The only acceptable time to add a new codec is if there is production code
+ // that uses said codec in the same CL.
+
+ // Must always be equal to the largest entry ever logged.
+- kAudioCodecMax = kCodecMpegHAudio,
++ kAudioCodecMax = kCodecDTS,
+ };
+
+ std::string MEDIA_EXPORT GetCodecName(AudioCodec codec);
+diff -up chromium-69.0.3497.100/media/base/decode_capabilities.cc.37~ chromium-69.0.3497.100/media/base/decode_capabilities.cc
+--- chromium-69.0.3497.100/media/base/decode_capabilities.cc.37~ 2018-09-17 21:10:16.000000000 +0200
++++ chromium-69.0.3497.100/media/base/decode_capabilities.cc 2018-10-02 22:30:05.031093090 +0200
+@@ -176,13 +176,13 @@ bool IsSupportedVideoConfig(const VideoC
+ case media::kCodecH264:
+ case media::kCodecVP8:
+ case media::kCodecTheora:
+- return true;
+-
+- case media::kUnknownVideoCodec:
+ case media::kCodecVC1:
+ case media::kCodecMPEG2:
+ case media::kCodecMPEG4:
+ case media::kCodecHEVC:
++ return true;
++
++ case media::kUnknownVideoCodec:
+ case media::kCodecDolbyVision:
+ return false;
+ }
+diff -up chromium-69.0.3497.100/media/base/mime_util_internal.cc.37~ chromium-69.0.3497.100/media/base/mime_util_internal.cc
+--- chromium-69.0.3497.100/media/base/mime_util_internal.cc.37~ 2018-09-17 21:10:16.000000000 +0200
++++ chromium-69.0.3497.100/media/base/mime_util_internal.cc 2018-10-02 22:31:21.254548374 +0200
+@@ -74,6 +74,8 @@ const base::flat_map<std::string, MimeUt
+ {"vorbis", MimeUtil::VORBIS}, {"opus", MimeUtil::OPUS},
+ {"flac", MimeUtil::FLAC}, {"vp8", MimeUtil::VP8},
+ {"vp8.0", MimeUtil::VP8}, {"theora", MimeUtil::THEORA},
++ {"dts", MimeUtil::DTS}, {"mp2", MimeUtil::MP2},
++ {"mp4v.20.8", MimeUtil::MPEG4_SP}, {"mp4v.20.240", MimeUtil::MPEG4_ASP},
+ },
+ base::KEEP_FIRST_OF_DUPES);
+
+@@ -172,6 +174,9 @@ VideoCodec MimeUtilToVideoCodec(MimeUtil
+ return kCodecTheora;
+ case MimeUtil::DOLBY_VISION:
+ return kCodecDolbyVision;
++ case MimeUtil::MPEG4_SP:
++ case MimeUtil::MPEG4_ASP:
++ return kCodecMPEG4;
+ default:
+ break;
+ }
+@@ -266,6 +271,31 @@ void MimeUtil::AddSupportedMediaFormats(
+ CodecSet ogg_codecs(ogg_audio_codecs);
+ ogg_codecs.insert(ogg_video_codecs.begin(), ogg_video_codecs.end());
+
++ CodecSet matroska_audio_codecs;
++ matroska_audio_codecs.insert(OPUS);
++ matroska_audio_codecs.insert(VORBIS);
++ matroska_audio_codecs.insert(AC3);
++ matroska_audio_codecs.insert(EAC3);
++ matroska_audio_codecs.insert(DTS);
++ matroska_audio_codecs.insert(MP3);
++ matroska_audio_codecs.insert(MP2);
++ matroska_audio_codecs.insert(MPEG2_AAC);
++ matroska_audio_codecs.insert(MPEG4_AAC);
++ matroska_audio_codecs.insert(PCM);
++
++ CodecSet matroska_video_codecs;
++ matroska_video_codecs.insert(THEORA);
++ matroska_video_codecs.insert(VP8);
++ matroska_video_codecs.insert(VP9);
++ matroska_video_codecs.insert(H264);
++ matroska_video_codecs.insert(MPEG4_SP);
++ matroska_video_codecs.insert(MPEG4_ASP);
++#if BUILDFLAG(ENABLE_HEVC_DEMUXING)
++ matroska_video_codecs.insert(HEVC);
++#endif // BUILDFLAG(ENABLE_HEVC_DEMUXING)
++ CodecSet matroska_codecs(matroska_audio_codecs);
++ matroska_codecs.insert(matroska_video_codecs.begin(), matroska_video_codecs.end());
++
+ const CodecSet webm_audio_codecs{OPUS, VORBIS};
+ CodecSet webm_video_codecs{VP8, VP9};
+ #if BUILDFLAG(ENABLE_AV1_DECODER)
+@@ -307,6 +337,8 @@ void MimeUtil::AddSupportedMediaFormats(
+ #if BUILDFLAG(ENABLE_HEVC_DEMUXING)
+ mp4_video_codecs.emplace(HEVC);
+ #endif // BUILDFLAG(ENABLE_HEVC_DEMUXING)
++ mp4_video_codecs.emplace(MPEG4_SP);
++ mp4_video_codecs.emplace(MPEG4_ASP);
+
+ #if BUILDFLAG(ENABLE_DOLBY_VISION_DEMUXING)
+ mp4_video_codecs.emplace(DOLBY_VISION);
+@@ -341,12 +373,16 @@ void MimeUtil::AddSupportedMediaFormats(
+ DCHECK(!mp4_video_codecs.empty());
+ AddContainerWithCodecs("video/mp4", mp4_codecs, false);
+
++ AddContainerWithCodecs("audio/x-matroska", matroska_audio_codecs, false);
++ AddContainerWithCodecs("video/x-matroska", matroska_video_codecs, false);
++
+ #if BUILDFLAG(USE_PROPRIETARY_CODECS)
+ AddContainerWithCodecs("audio/aac", implicit_codec, true); // AAC / ADTS.
+ // These strings are supported for backwards compatibility only and thus only
+ // support the codecs needed for compatibility.
+ AddContainerWithCodecs("audio/x-m4a", aac, true);
+ AddContainerWithCodecs("video/x-m4v", avc_and_aac, true);
++ AddContainerWithCodecs("video/x-msvideo", matroska_codecs, true);
+
+ #if BUILDFLAG(ENABLE_MSE_MPEG2TS_STREAM_PARSER)
+ CodecSet mp2t_codecs{H264, MPEG2_AAC, MPEG4_AAC, MP3};
+@@ -968,9 +1004,13 @@ bool MimeUtil::IsCodecProprietary(Codec
+ case H264:
+ case HEVC:
+ case DOLBY_VISION:
++ case DTS:
++ case MPEG4_SP:
++ case MPEG4_ASP:
+ return true;
+
+ case MP3:
++ case MP2:
+ case PCM:
+ case VORBIS:
+ case OPUS:
+diff -up chromium-69.0.3497.100/media/base/mime_util_internal.h.37~ chromium-69.0.3497.100/media/base/mime_util_internal.h
+--- chromium-69.0.3497.100/media/base/mime_util_internal.h.37~ 2018-09-17 21:10:16.000000000 +0200
++++ chromium-69.0.3497.100/media/base/mime_util_internal.h 2018-10-02 22:30:05.031093090 +0200
+@@ -46,7 +46,11 @@ class MEDIA_EXPORT MimeUtil {
+ DOLBY_VISION,
+ AV1,
+ MPEG_H_AUDIO,
+- LAST_CODEC = MPEG_H_AUDIO
++ DTS,
++ MP2,
++ MPEG4_SP,
++ MPEG4_ASP,
++ LAST_CODEC = MPEG4_ASP
+ };
+
+ // Platform configuration structure. Controls which codecs are supported at
+diff -up chromium-69.0.3497.100/media/ffmpeg/ffmpeg_common.cc.37~ chromium-69.0.3497.100/media/ffmpeg/ffmpeg_common.cc
+--- chromium-69.0.3497.100/media/ffmpeg/ffmpeg_common.cc.37~ 2018-09-17 21:10:16.000000000 +0200
++++ chromium-69.0.3497.100/media/ffmpeg/ffmpeg_common.cc 2018-10-02 22:30:05.031093090 +0200
+@@ -115,6 +115,8 @@ AudioCodec CodecIDToAudioCodec(AVCodecID
+ return kCodecOpus;
+ case AV_CODEC_ID_ALAC:
+ return kCodecALAC;
++ case AV_CODEC_ID_DTS:
++ return kCodecDTS;
+ default:
+ DVLOG(1) << "Unknown audio CodecID: " << codec_id;
+ }
+@@ -166,6 +168,10 @@ AVCodecID AudioCodecToCodecID(AudioCodec
+ return AV_CODEC_ID_PCM_MULAW;
+ case kCodecOpus:
+ return AV_CODEC_ID_OPUS;
++ case kCodecAC3:
++ return AV_CODEC_ID_AC3;
++ case kCodecDTS:
++ return AV_CODEC_ID_DTS;
+ default:
+ DVLOG(1) << "Unknown AudioCodec: " << audio_codec;
+ }
+diff -up chromium-69.0.3497.100/media/filters/ffmpeg_video_decoder.cc.37~ chromium-69.0.3497.100/media/filters/ffmpeg_video_decoder.cc
+--- chromium-69.0.3497.100/media/filters/ffmpeg_video_decoder.cc.37~ 2018-09-17 21:10:16.000000000 +0200
++++ chromium-69.0.3497.100/media/filters/ffmpeg_video_decoder.cc 2018-10-02 22:30:05.031093090 +0200
+@@ -58,7 +58,6 @@ static int GetThreadCount(const VideoDec
+ case kUnknownVideoCodec:
+ case kCodecVC1:
+ case kCodecMPEG2:
+- case kCodecHEVC:
+ case kCodecVP9:
+ case kCodecAV1:
+ case kCodecDolbyVision:
+@@ -72,6 +71,7 @@ static int GetThreadCount(const VideoDec
+ case kCodecH264:
+ case kCodecMPEG4:
+ case kCodecVP8:
++ case kCodecHEVC:
+ // Normalize to three threads for 1080p content, then scale linearly
+ // with number of pixels.
+ // Examples:
+diff -up chromium-69.0.3497.100/media/remoting/proto_enum_utils.cc.37~ chromium-69.0.3497.100/media/remoting/proto_enum_utils.cc
+--- chromium-69.0.3497.100/media/remoting/proto_enum_utils.cc.37~ 2018-09-17 21:10:16.000000000 +0200
++++ chromium-69.0.3497.100/media/remoting/proto_enum_utils.cc 2018-10-02 22:30:05.031093090 +0200
+@@ -58,6 +58,7 @@ base::Optional<AudioCodec> ToMediaAudioC
+ CASE_RETURN_OTHER(kCodecALAC);
+ CASE_RETURN_OTHER(kCodecAC3);
+ CASE_RETURN_OTHER(kCodecMpegHAudio);
++ CASE_RETURN_OTHER(kCodecDTS);
+ }
+ return base::nullopt; // Not a 'default' to ensure compile-time checks.
+ }
+@@ -85,6 +86,7 @@ base::Optional<pb::AudioDecoderConfig::C
+ CASE_RETURN_OTHER(kCodecALAC);
+ CASE_RETURN_OTHER(kCodecAC3);
+ CASE_RETURN_OTHER(kCodecMpegHAudio);
++ CASE_RETURN_OTHER(kCodecDTS);
+ }
+ return base::nullopt; // Not a 'default' to ensure compile-time checks.
+ }
+diff -up chromium-69.0.3497.100/media/remoting/rpc.proto.37~ chromium-69.0.3497.100/media/remoting/rpc.proto
+--- chromium-69.0.3497.100/media/remoting/media_remoting_rpc.proto.37~ 2018-09-17 21:10:16.000000000 +0200
++++ chromium-69.0.3497.100/media/remoting/media_remoting_rpc.proto 2018-10-02 22:30:05.031093090 +0200
+@@ -67,6 +67,7 @@ message AudioDecoderConfig {
+ kCodecALAC = 15;
+ kCodecAC3 = 16;
+ kCodecMpegHAudio = 17;
++ kCodecDTS = 18;
+ }
+
+ // Proto version of media::SampleFormat.
+diff -up chromium-69.0.3497.100/net/base/mime_util.cc.37~ chromium-69.0.3497.100/net/base/mime_util.cc
+--- chromium-69.0.3497.100/net/base/mime_util.cc.37~ 2018-09-17 21:10:18.000000000 +0200
++++ chromium-69.0.3497.100/net/base/mime_util.cc 2018-10-02 22:30:05.031093090 +0200
+@@ -101,6 +101,9 @@ static const MimeInfo kPrimaryMappings[]
+ {"text/xml", "xml"},
+ {"video/mp4", "mp4,m4v"},
+ {"video/ogg", "ogv,ogm"},
++ {"video/x-matroska", "mkv"},
++ {"audio/x-matroska", "mkv"},
++ {"video/x-msvideo", "avi"},
+ };
+
+ static const MimeInfo kSecondaryMappings[] = {
+@@ -490,6 +493,7 @@ static const char* const kStandardAudioT
+ "audio/vorbis",
+ "audio/wav",
+ "audio/webm",
++ "audio/x-matroska",
+ "audio/x-m4a",
+ "audio/x-ms-wma",
+ "audio/vnd.rn-realaudio",
+@@ -507,8 +511,10 @@ static const char* const kStandardVideoT
+ "video/webm",
+ "video/x-dv",
+ "video/x-m4v",
++ "video/x-matroska",
+ "video/x-mpeg",
+ "video/x-ms-asf",
++ "video/x-msvideo",
+ "video/x-ms-wmv"
+ };
+
diff --git a/chromium-69-no-static-libstdc++.patch b/chromium-69-no-static-libstdc++.patch
new file mode 100644
index 0000000..c2f9ea9
--- /dev/null
+++ b/chromium-69-no-static-libstdc++.patch
@@ -0,0 +1,11 @@
+diff -up chromium-69.0.3497.100/tools/gn/build/gen.py.omv~ chromium-69.0.3497.100/tools/gn/build/gen.py
+--- chromium-69.0.3497.100/tools/gn/build/gen.py.omv~ 2018-10-02 23:08:29.804860884 +0200
++++ chromium-69.0.3497.100/tools/gn/build/gen.py 2018-10-02 23:08:33.896888587 +0200
+@@ -369,7 +369,6 @@ def WriteGNNinja(path, platform, host, o
+
+ if platform.is_linux():
+ ldflags.extend([
+- '-static-libstdc++',
+ '-Wl,--as-needed',
+ ])
+ libs.extend([
diff --git a/chromium-69-wmvflvmpg.patch b/chromium-69-wmvflvmpg.patch
new file mode 100644
index 0000000..a76d43f
--- /dev/null
+++ b/chromium-69-wmvflvmpg.patch
@@ -0,0 +1,135 @@
+diff -up chromium-69.0.3497.100/media/base/mime_util_internal.cc.38~ chromium-69.0.3497.100/media/base/mime_util_internal.cc
+--- chromium-69.0.3497.100/media/base/mime_util_internal.cc.38~ 2018-10-02 22:33:23.202267666 +0200
++++ chromium-69.0.3497.100/media/base/mime_util_internal.cc 2018-10-02 22:35:18.081936900 +0200
+@@ -76,6 +76,11 @@ const base::flat_map<std::string, MimeUt
+ {"vp8.0", MimeUtil::VP8}, {"theora", MimeUtil::THEORA},
+ {"dts", MimeUtil::DTS}, {"mp2", MimeUtil::MP2},
+ {"mp4v.20.8", MimeUtil::MPEG4_SP}, {"mp4v.20.240", MimeUtil::MPEG4_ASP},
++ {"msmpeg4v1", MimeUtil::MSMPEG4v1}, {"msmpeg4v2", MimeUtil::MSMPEG4v2},
++ {"msmpeg4v3", MimeUtil::MSMPEG4v3}, {"wmv7", MimeUtil::WMV7},
++ {"wmv8", MimeUtil::WMV8}, {"wmv9", MimeUtil::WMV9},
++ {"vc-1", MimeUtil::VC1}, {"wma", MimeUtil::WMA},
++ {"vp6", MimeUtil::VP6}, {"mpeg1", MimeUtil::MPEG1}
+ },
+ base::KEEP_FIRST_OF_DUPES);
+
+@@ -306,6 +311,9 @@ void MimeUtil::AddSupportedMediaFormats(
+ CodecSet webm_codecs(webm_audio_codecs);
+ webm_codecs.insert(webm_video_codecs.begin(), webm_video_codecs.end());
+
++ CodecSet mp1_codecs;
++ mp1_codecs.insert(MPEG1);
++
+ const CodecSet mp3_codecs{MP3};
+
+ CodecSet mp4_audio_codecs{FLAC, MP3, OPUS};
+@@ -352,6 +360,29 @@ void MimeUtil::AddSupportedMediaFormats(
+ CodecSet mp4_codecs(mp4_audio_codecs);
+ mp4_codecs.insert(mp4_video_codecs.begin(), mp4_video_codecs.end());
+
++ CodecSet wma_codecs;
++ wma_codecs.insert(WMA);
++
++ CodecSet wmv_codecs(wma_codecs);
++ wmv_codecs.insert(MSMPEG4v1);
++ wmv_codecs.insert(MSMPEG4v2);
++ wmv_codecs.insert(MSMPEG4v3);
++ wmv_codecs.insert(MPEG4_SP);
++ wmv_codecs.insert(MPEG4_ASP);
++ wmv_codecs.insert(WMV7);
++ wmv_codecs.insert(WMV8);
++ wmv_codecs.insert(WMV9);
++ wmv_codecs.insert(VC1);
++
++ matroska_codecs.insert(MSMPEG4v1);
++ matroska_codecs.insert(MSMPEG4v2);
++ matroska_codecs.insert(MSMPEG4v3);
++
++ CodecSet flv_codecs;
++ flv_codecs.insert(VP6);
++ flv_codecs.insert(mp4_codecs.begin(), mp4_codecs.end());
++ flv_codecs.insert(MP3);
++
+ const CodecSet implicit_codec;
+ AddContainerWithCodecs("audio/wav", wav_codecs, false);
+ AddContainerWithCodecs("audio/x-wav", wav_codecs, false);
+@@ -375,6 +406,11 @@ void MimeUtil::AddSupportedMediaFormats(
+
+ AddContainerWithCodecs("audio/x-matroska", matroska_audio_codecs, false);
+ AddContainerWithCodecs("video/x-matroska", matroska_video_codecs, false);
++ AddContainerWithCodecs("video/x-ms-wmv", wmv_codecs, true);
++ AddContainerWithCodecs("video/x-ms-wma", wma_codecs, true);
++ AddContainerWithCodecs("video/x-ms-asf", wmv_codecs, true);
++ AddContainerWithCodecs("video/x-flv", flv_codecs, true);
++ AddContainerWithCodecs("video/mpeg", mp1_codecs, true);
+
+ #if BUILDFLAG(USE_PROPRIETARY_CODECS)
+ AddContainerWithCodecs("audio/aac", implicit_codec, true); // AAC / ADTS.
+@@ -1007,6 +1043,15 @@ bool MimeUtil::IsCodecProprietary(Codec
+ case DTS:
+ case MPEG4_SP:
+ case MPEG4_ASP:
++ case MSMPEG4v1:
++ case MSMPEG4v2:
++ case MSMPEG4v3:
++ case WMV7:
++ case WMV8:
++ case WMV9:
++ case VC1:
++ case WMA:
++ case VP6:
+ return true;
+
+ case MP3:
+@@ -1018,6 +1063,7 @@ bool MimeUtil::IsCodecProprietary(Codec
+ case VP8:
+ case VP9:
+ case THEORA:
++ case MPEG1:
+ case AV1:
+ return false;
+ }
+diff -up chromium-69.0.3497.100/media/base/mime_util_internal.h.38~ chromium-69.0.3497.100/media/base/mime_util_internal.h
+--- chromium-69.0.3497.100/media/base/mime_util_internal.h.38~ 2018-10-02 22:33:23.202267666 +0200
++++ chromium-69.0.3497.100/media/base/mime_util_internal.h 2018-10-02 22:33:23.205267683 +0200
+@@ -50,7 +50,17 @@ class MEDIA_EXPORT MimeUtil {
+ MP2,
+ MPEG4_SP,
+ MPEG4_ASP,
+- LAST_CODEC = MPEG4_ASP
++ MSMPEG4v1,
++ MSMPEG4v2,
++ MSMPEG4v3,
++ WMV7,
++ WMV8,
++ WMV9,
++ VC1,
++ WMA,
++ VP6,
++ MPEG1,
++ LAST_CODEC = MPEG1
+ };
+
+ // Platform configuration structure. Controls which codecs are supported at
+diff -up chromium-69.0.3497.100/net/base/mime_util.cc.38~ chromium-69.0.3497.100/net/base/mime_util.cc
+--- chromium-69.0.3497.100/net/base/mime_util.cc.38~ 2018-10-02 22:33:23.203267672 +0200
++++ chromium-69.0.3497.100/net/base/mime_util.cc 2018-10-02 22:33:23.205267683 +0200
+@@ -104,6 +104,10 @@ static const MimeInfo kPrimaryMappings[]
+ {"video/x-matroska", "mkv"},
+ {"audio/x-matroska", "mkv"},
+ {"video/x-msvideo", "avi"},
++ {"video/x-ms-wmv", "wmv"},
++ {"audio/x-ms-wma", "wma"},
++ {"video/x-flv", "flv"},
++ {"video/mpeg", "mpg,mpeg"}
+ };
+
+ static const MimeInfo kSecondaryMappings[] = {
+@@ -510,6 +514,7 @@ static const char* const kStandardVideoT
+ "video/sd-video",
+ "video/webm",
+ "video/x-dv",
++ "video/x-flv",
+ "video/x-m4v",
+ "video/x-matroska",
+ "video/x-mpeg",
diff --git a/chromium-69.0.3497.81-build-sanely-please.patch b/chromium-69.0.3497.81-build-sanely-please.patch
new file mode 100644
index 0000000..6241a97
--- /dev/null
+++ b/chromium-69.0.3497.81-build-sanely-please.patch
@@ -0,0 +1,33 @@
+diff -up chromium-69.0.3497.81/build/config/BUILD.gn.fyoursysroot chromium-69.0.3497.81/build/config/BUILD.gn
+--- chromium-69.0.3497.81/build/config/BUILD.gn.fyoursysroot 2018-09-06 13:43:44.863375238 -0400
++++ chromium-69.0.3497.81/build/config/BUILD.gn 2018-09-06 13:43:58.377083290 -0400
+@@ -284,9 +284,9 @@ group("executable_and_loadable_module_an
+ public_deps += [ "//build/config/sanitizers:deps" ]
+ }
+
+- if (use_custom_libcxx) {
+- public_deps += [ "//buildtools/third_party/libc++" ]
+- }
++ # if (use_custom_libcxx) {
++ # public_deps += [ "//buildtools/third_party/libc++" ]
++ # }
+
+ if (use_afl) {
+ public_deps += [ "//third_party/afl" ]
+diff -up chromium-69.0.3497.81/build/config/sysroot.gni.fyoursysroot chromium-69.0.3497.81/build/config/sysroot.gni
+--- chromium-69.0.3497.81/build/config/sysroot.gni.fyoursysroot 2018-09-06 13:40:46.212232232 -0400
++++ chromium-69.0.3497.81/build/config/sysroot.gni 2018-09-06 13:41:02.421882529 -0400
+@@ -15,9 +15,10 @@ declare_args() {
+ # The absolute path to directory containing linux sysroot images
+ target_sysroot_dir = "//build/linux"
+
+- use_sysroot = current_cpu == "x86" || current_cpu == "x64" ||
+- current_cpu == "arm" || current_cpu == "arm64" ||
+- current_cpu == "mipsel" || current_cpu == "mips64el"
++ use_sysroot = false
++ # use_sysroot = current_cpu == "x86" || current_cpu == "x64" ||
++ # current_cpu == "arm" || current_cpu == "arm64" ||
++ # current_cpu == "mipsel" || current_cpu == "mips64el"
+ }
+
+ if (current_os == target_os && current_cpu == target_cpu &&
diff --git a/chromium-69.0.3497.81-gcc8-alignof.patch b/chromium-69.0.3497.81-gcc8-alignof.patch
new file mode 100644
index 0000000..234b391
--- /dev/null
+++ b/chromium-69.0.3497.81-gcc8-alignof.patch
@@ -0,0 +1,18 @@
+diff -up chromium-69.0.3497.81/mojo/public/c/system/macros.h.gcc8-alignof chromium-69.0.3497.81/mojo/public/c/system/macros.h
+--- chromium-69.0.3497.81/mojo/public/c/system/macros.h.gcc8-alignof 2018-09-06 10:11:54.336432699 -0400
++++ chromium-69.0.3497.81/mojo/public/c/system/macros.h 2018-09-06 10:13:56.555727572 -0400
+@@ -27,7 +27,13 @@
+ (sizeof(void*) == 4 ? 32 : 0)
+
+ // Like the C++11 |alignof| operator.
+-#if __cplusplus >= 201103L
++#if defined(__GNUC__) && __GNUC__ >= 8
++// GCC 8 has changed the alignof operator to return the minimal alignment
++// required by the target ABI, instead of the preferred alignment.
++// This means that on 32-bit x86, it will return 4 instead of 8.
++// Use __alignof__ instead to avoid this.
++#define MOJO_ALIGNOF(type) __alignof__(type)
++#elif __cplusplus >= 201103L
+ #define MOJO_ALIGNOF(type) alignof(type)
+ #elif defined(__GNUC__)
+ #define MOJO_ALIGNOF(type) __alignof__(type)
diff --git a/chromium-69.0.3497.81-norar.patch b/chromium-69.0.3497.81-norar.patch
new file mode 100644
index 0000000..9545b60
--- /dev/null
+++ b/chromium-69.0.3497.81-norar.patch
@@ -0,0 +1,79 @@
+diff -up chromium-69.0.3497.81/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-69.0.3497.81/chrome/common/safe_browsing/BUILD.gn
+--- chromium-69.0.3497.81/chrome/common/safe_browsing/BUILD.gn.nounrar 2018-09-06 13:29:47.114511569 -0400
++++ chromium-69.0.3497.81/chrome/common/safe_browsing/BUILD.gn 2018-09-06 13:29:47.120511452 -0400
+@@ -55,40 +55,6 @@ if (safe_browsing_mode == 1) {
+ "//components/safe_browsing:csd_proto",
+ ]
+ }
+-
+- source_set("rar_analyzer") {
+- sources = [
+- "rar_analyzer.cc",
+- "rar_analyzer.h",
+- ]
+-
+- deps = [
+- ":archive_analyzer_results",
+- ":download_protection_util",
+- ":file_type_policies",
+- "//base",
+- "//base:i18n",
+- "//third_party/unrar:unrar",
+- ]
+-
+- defines = [
+- "_FILE_OFFSET_BITS=64",
+- "LARGEFILE_SOURCE",
+- "RAR_SMP",
+- "SILENT",
+-
+- # The following is set to disable certain macro definitions in the unrar
+- # source code.
+- "CHROMIUM_UNRAR",
+-
+- # Disables exceptions in unrar, replaces them with process termination.
+- "UNRAR_NO_EXCEPTIONS",
+- ]
+-
+- public_deps = [
+- "//components/safe_browsing:csd_proto",
+- ]
+- }
+ }
+
+ source_set("safe_browsing") {
+@@ -121,7 +87,6 @@ source_set("safe_browsing") {
+ deps += [
+ ":archive_analyzer_results",
+ ":download_protection_util",
+- ":rar_analyzer",
+ "//components/safe_browsing:features",
+ ]
+
+diff -up chromium-69.0.3497.81/chrome/common/safe_browsing/DEPS.nounrar chromium-69.0.3497.81/chrome/common/safe_browsing/DEPS
+--- chromium-69.0.3497.81/chrome/common/safe_browsing/DEPS.nounrar 2018-09-06 13:29:47.119511472 -0400
++++ chromium-69.0.3497.81/chrome/common/safe_browsing/DEPS 2018-09-06 13:29:47.116511530 -0400
+@@ -1,6 +1,5 @@
+ include_rules = [
+ "+components/safe_browsing",
+ "+third_party/protobuf",
+- "+third_party/unrar",
+ "+third_party/zlib",
+ ]
+diff -up chromium-69.0.3497.81/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-69.0.3497.81/chrome/services/file_util/safe_archive_analyzer.cc
+--- chromium-69.0.3497.81/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2018-09-07 10:10:42.286041744 -0400
++++ chromium-69.0.3497.81/chrome/services/file_util/safe_archive_analyzer.cc 2018-09-07 10:11:14.934308285 -0400
+@@ -47,9 +47,13 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile
+
+ void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file,
+ AnalyzeRarFileCallback callback) {
++#if 0
+ DCHECK(rar_file.IsValid());
+
+ safe_browsing::ArchiveAnalyzerResults results;
+ safe_browsing::rar_analyzer::AnalyzeRarFile(std::move(rar_file), &results);
+ std::move(callback).Run(results);
++#else
++ NOTREACHED();
++#endif
+ }
diff --git a/chromium-70.0.3538.102-sysroot.patch b/chromium-70.0.3538.102-sysroot.patch
new file mode 100644
index 0000000..7df3f34
--- /dev/null
+++ b/chromium-70.0.3538.102-sysroot.patch
@@ -0,0 +1,22 @@
+--- chromium-70.0.3538.77/tools/gn/bootstrap/bootstrap.py 2018-10-24 22:54:15.000000000 +0100
++++ chromium-70.0.3538.102/tools/gn/bootstrap/bootstrap.py 2018-11-14 19:29:39.670979656 +0000
+@@ -46,10 +46,6 @@
+ '--build-path',
+ help='The directory in which to build gn, '
+ 'relative to the src directory. (eg. out/Release)')
+- parser.add_option(
+- '--with-sysroot',
+- action='store_true',
+- help='Download and build with the Debian sysroot.')
+ parser.add_option('-v', '--verbose', help='ignored')
+ options, args = parser.parse_args(argv)
+ if args:
+@@ -71,8 +67,6 @@
+ '--no-last-commit-position',
+ '--out-path=' + gn_build_dir,
+ ]
+- if not options.with_sysroot:
+- cmd.append('--no-sysroot')
+ if options.debug:
+ cmd.append('--debug')
+ subprocess.check_call(cmd)
diff --git a/chromium-70.0.3538.67-sandbox-pie.patch b/chromium-70.0.3538.67-sandbox-pie.patch
new file mode 100644
index 0000000..0f104e9
--- /dev/null
+++ b/chromium-70.0.3538.67-sandbox-pie.patch
@@ -0,0 +1,20 @@
+diff -up chromium-70.0.3538.67/sandbox/linux/BUILD.gn.sandboxpie chromium-70.0.3538.67/sandbox/linux/BUILD.gn
+--- chromium-70.0.3538.67/sandbox/linux/BUILD.gn.sandboxpie 2018-10-18 12:14:05.766939769 -0400
++++ chromium-70.0.3538.67/sandbox/linux/BUILD.gn 2018-10-18 12:16:37.820027182 -0400
+@@ -315,10 +315,16 @@ if (is_linux) {
+ # For ULLONG_MAX
+ "-std=gnu99",
+
++ "-fPIE",
++
+ # These files have a suspicious comparison.
+ # TODO fix this and re-enable this warning.
+ "-Wno-sign-compare",
+ ]
++
++ ldflags = [
++ "-pie",
++ ]
+ }
+ }
+
diff --git a/chromium-70.0.3538.77-gcc7.patch b/chromium-70.0.3538.77-gcc7.patch
new file mode 100644
index 0000000..537e1bd
--- /dev/null
+++ b/chromium-70.0.3538.77-gcc7.patch
@@ -0,0 +1,117 @@
+--- chromium-70.0.3538.77/gpu/config/gpu_info.h.orig 2018-11-08 21:07:55.602876608 +0000
++++ chromium-70.0.3538.77/gpu/config/gpu_info.h 2018-11-08 21:08:07.971875817 +0000
+@@ -111,7 +111,7 @@
+ GPUDevice(GPUDevice&& other) noexcept;
+ ~GPUDevice() noexcept;
+ GPUDevice& operator=(const GPUDevice& other);
+- GPUDevice& operator=(GPUDevice&& other) noexcept;
++ GPUDevice& operator=(GPUDevice&& other);
+
+ // The DWORD (uint32_t) representing the graphics card vendor id.
+ uint32_t vendor_id;
+--- chromium-70.0.3538.77/gpu/config/gpu_info.cc.orig 2018-11-08 21:07:37.703877753 +0000
++++ chromium-70.0.3538.77/gpu/config/gpu_info.cc 2018-11-08 21:07:47.841877105 +0000
+@@ -105,7 +105,7 @@
+ const GPUInfo::GPUDevice& other) = default;
+
+ GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
+- GPUInfo::GPUDevice&& other) noexcept = default;
++ GPUInfo::GPUDevice&& other) = default;
+
+ GPUInfo::GPUInfo()
+ : optimus(false),
+--- chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc.122692c 2018-08-17 14:54:30.587338865 -0400
++++ chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc 2018-08-17 14:55:20.461184298 -0400
+@@ -14,22 +14,22 @@ LogoMetadata::LogoMetadata() = default;
+ LogoMetadata::LogoMetadata(const LogoMetadata&) = default;
+ LogoMetadata::LogoMetadata(LogoMetadata&&) noexcept = default;
+ LogoMetadata& LogoMetadata::operator=(const LogoMetadata&) = default;
+-LogoMetadata& LogoMetadata::operator=(LogoMetadata&&) noexcept = default;
++LogoMetadata& LogoMetadata::operator=(LogoMetadata&&) = default;
+ LogoMetadata::~LogoMetadata() = default;
+
+ EncodedLogo::EncodedLogo() = default;
+ EncodedLogo::EncodedLogo(const EncodedLogo&) = default;
+ EncodedLogo::EncodedLogo(EncodedLogo&&) noexcept = default;
+ EncodedLogo& EncodedLogo::operator=(const EncodedLogo&) = default;
+-EncodedLogo& EncodedLogo::operator=(EncodedLogo&&) noexcept = default;
++EncodedLogo& EncodedLogo::operator=(EncodedLogo&&) = default;
+ EncodedLogo::~EncodedLogo() = default;
+
+ Logo::Logo() = default;
+ Logo::~Logo() = default;
+
+ LogoCallbacks::LogoCallbacks() = default;
+-LogoCallbacks::LogoCallbacks(LogoCallbacks&&) noexcept = default;
+-LogoCallbacks& LogoCallbacks::operator=(LogoCallbacks&&) noexcept = default;
++LogoCallbacks::LogoCallbacks(LogoCallbacks&&) = default;
++LogoCallbacks& LogoCallbacks::operator=(LogoCallbacks&&) = default;
+ LogoCallbacks::~LogoCallbacks() = default;
+
+ } // namespace search_provider_logos
+--- chromium-70.0.3538.77/chrome/common/media_router/media_sink.h.orig 2018-11-08 23:17:56.354377772 +0000
++++ chromium-70.0.3538.77/chrome/common/media_router/media_sink.h 2018-11-08 23:18:15.905376521 +0000
+@@ -54,7 +54,7 @@
+ ~MediaSink();
+
+ MediaSink& operator=(const MediaSink& other);
+- MediaSink& operator=(MediaSink&& other) noexcept;
++ MediaSink& operator=(MediaSink&& other);
+
+ void set_sink_id(const MediaSink::Id& sink_id) { sink_id_ = sink_id; }
+ const MediaSink::Id& id() const { return sink_id_; }
+--- chromium-70.0.3538.77/chrome/common/media_router/media_sink.cc.orig 2018-11-08 23:17:22.962379907 +0000
++++ chromium-70.0.3538.77/chrome/common/media_router/media_sink.cc 2018-11-08 23:17:36.625379033 +0000
+@@ -24,7 +24,7 @@
+ MediaSink::~MediaSink() = default;
+
+ MediaSink& MediaSink::operator=(const MediaSink& other) = default;
+-MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
++MediaSink& MediaSink::operator=(MediaSink&& other) = default;
+
+ bool MediaSink::Equals(const MediaSink& other) const {
+ return sink_id_ == other.sink_id_;
+--- chromium-70.0.3538.77/components/policy/core/common/policy_map.cc.orig 2018-11-08 23:55:51.325232293 +0000
++++ chromium-70.0.3538.77/components/policy/core/common/policy_map.cc 2018-11-08 23:56:17.654230610 +0000
+@@ -18,7 +18,7 @@
+ PolicyMap::Entry::~Entry() = default;
+
+ PolicyMap::Entry::Entry(Entry&&) noexcept = default;
+-PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
++PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
+
+ PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
+ Entry copy;
+--- chromium-70.0.3538.77/components/policy/core/common/policy_map.h.orig 2018-11-08 23:56:03.948231486 +0000
++++ chromium-70.0.3538.77/components/policy/core/common/policy_map.h 2018-11-08 23:56:35.908229442 +0000
+@@ -40,7 +40,7 @@
+ ~Entry();
+
+ Entry(Entry&&) noexcept;
+- Entry& operator=(Entry&&) noexcept;
++ Entry& operator=(Entry&&);
+
+ // Returns a copy of |this|.
+ Entry DeepCopy() const;
+--- chromium-70.0.3538.77/components/signin/core/browser/account_info.h.orig 2018-11-09 00:03:20.709203557 +0000
++++ chromium-70.0.3538.77/components/signin/core/browser/account_info.h 2018-11-09 00:03:59.284201090 +0000
+@@ -20,7 +20,7 @@
+ AccountInfo(AccountInfo&& other) noexcept;
+
+ AccountInfo& operator=(const AccountInfo& other);
+- AccountInfo& operator=(AccountInfo&& other) noexcept;
++ AccountInfo& operator=(AccountInfo&& other);
+
+ std::string account_id; // The account ID used by OAuth2TokenService.
+ std::string gaia;
+--- chromium-70.0.3538.77/components/signin/core/browser/account_info.cc.orig 2018-11-09 00:03:15.789203871 +0000
++++ chromium-70.0.3538.77/components/signin/core/browser/account_info.cc 2018-11-09 00:03:52.644201514 +0000
+@@ -32,7 +32,7 @@
+
+ AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
+
+-AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
++AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
+
+ bool AccountInfo::IsEmpty() const {
+ return account_id.empty() && email.empty() && gaia.empty() &&
diff --git a/chromium-browser-stable.rpmlintrc b/chromium-browser-stable.rpmlintrc
new file mode 100644
index 0000000..cc102ee
--- /dev/null
+++ b/chromium-browser-stable.rpmlintrc
@@ -0,0 +1,3 @@
+# False positive -- this is about libEGL.so and friends
+# symlinks in swiftshader
+addFilter("E: devel-file-in-non-devel-package")
diff --git a/chromium-browser-stable.spec b/chromium-browser-stable.spec
index 717939e..8e5826e 100644
--- a/chromium-browser-stable.spec
+++ b/chromium-browser-stable.spec
@@ -1,3 +1,12 @@
+%define channel stable
+%if "%{channel}" == "stable"
+%define namesuffix %{nil}
+%else
+%define namesuffix -%{channel}
+%endif
+
+%define _disable_ld_no_undefined 1
+
# eol 'fix' corrupts some .bin files
%define dont_fix_eol 1
@@ -5,9 +14,6 @@
%define crname chromium-browser
%define _crdir %{_libdir}/%{crname}
%define _src %{_topdir}/SOURCES
-# Valid current basever numbers can be found at
-# http://omahaproxy.appspot.com/
-%define basever 58.0.3029.110
%define debug_package %nil
%ifarch %ix86
@@ -22,16 +28,14 @@
%define google_default_client_secret RDdr-pHq2gStY4uw0m-zxXeo
%bcond_with plf
-# Chromium breaks on wayland, hidpi, and colors with gtk3 enabled.
-%bcond_with gtk3
# crisb - ozone causes a segfault on startup as of 57.0.2987.133
%bcond_with ozone
%bcond_with system_icu
%bcond_without system_ffmpeg
-%bcond_without system_minizip
+# Temporarily broken, cr_z_* symbols used even when we're supposed to use system minizip
+%bcond_with system_minizip
# chromium 58 fails with system vpx 1.6.1
%bcond_with system_vpx
-%bcond_without system_harfbuzz
# Always support proprietary codecs
# or html5 does not work
@@ -40,84 +44,136 @@
%define distsuffix plf
%endif
-Name: chromium-browser-stable
-Version: %basever
-Release: 2%{?extrarelsuffix}
+Name: chromium-browser-%{channel}
+# Working version numbers can be found at
+# http://omahaproxy.appspot.com/
+Version: 70.0.3538.102
+Release: 1%{?extrarelsuffix}
Summary: A fast webkit-based web browser
Group: Networking/WWW
License: BSD, LGPL
# From : http://gsdview.appspot.com/chromium-browser-official/
-Source0: https://commondatastorage.googleapis.com/chromium-browser-official/chromium-%{basever}.tar.xz
+Source0: https://commondatastorage.googleapis.com/chromium-browser-official/chromium-%{version}.tar.xz
Source1: chromium-wrapper
-Source2: chromium-browser.desktop
+Source2: chromium-browser%{namesuffix}.desktop
Source3: master_preferences
-
-%if %mdvver >= 201500
-# Don't use clang's integrated as while trying to check the version of gas
-#Patch4: chromium-36.0.1985.143-clang-no-integrated-as.patch
-%endif
-
-#Patch20: chromium-last-commit-position-r0.patch
+Source100: %{name}.rpmlintrc
### Chromium Fedora Patches ###
-Patch0: chromium-56.0.2924.87-gcc5.patch
-Patch1: chromium-45.0.2454.101-linux-path-max.patch
-Patch2: chromium-55.0.2883.75-addrfix.patch
-Patch4: chromium-46.0.2490.71-notest.patch
+Patch0: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-67.0.3396.62-gcc5.patch
+Patch1: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-45.0.2454.101-linux-path-max.patch
+Patch2: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-55.0.2883.75-addrfix.patch
+Patch4: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-46.0.2490.71-notest.patch
+#Patch6: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
# Ignore broken nacl open fd counter
-Patch7: chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
+Patch7: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
# Use libusb_interrupt_event_handler from current libusbx (1.0.21-0.1.git448584a)
-Patch9: chromium-48.0.2564.116-libusb_interrupt_event_handler.patch
+Patch9: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-48.0.2564.116-libusb_interrupt_event_handler.patch
# Ignore deprecations in cups 2.2
# https://bugs.chromium.org/p/chromium/issues/detail?id=622493
-Patch12: chromium-55.0.2883.75-cups22.patch
-# Add ICU Text Codec aliases (from openSUSE via Russian Fedora)
-Patch14: chromium-55.0.2883.75-more-codec-aliases.patch
+Patch12: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-55.0.2883.75-cups22.patch
# Use PIE in the Linux sandbox (from openSUSE via Russian Fedora)
-Patch15: chromium-55.0.2883.75-sandbox-pie.patch
+Patch15: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-70.0.3538.67-sandbox-pie.patch
# Enable ARM CPU detection for webrtc (from archlinux via Russian Fedora)
-Patch16: chromium-52.0.2743.82-arm-webrtc.patch
+#Patch16: chromium-52.0.2743.82-arm-webrtc.patch
# Use /etc/chromium for master_prefs
-Patch18: chromium-52.0.2743.82-master-prefs-path.patch
+Patch18: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-52.0.2743.82-master-prefs-path.patch
# Use gn system files
-Patch20: chromium-54.0.2840.59-gn-system.patch
+Patch20: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-67.0.3396.62-gn-system.patch
# Fix last commit position issue
# https://groups.google.com/a/chromium.org/forum/#!topic/gn-dev/7nlJv486bD4
-Patch21: chromium-53.0.2785.92-last-commit-position.patch
+# Patch21: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-60.0.3112.78-last-commit-position.patch
# Fix issue where timespec is not defined when sys/stat.h is included.
-Patch22: chromium-53.0.2785.92-boringssl-time-fix.patch
+Patch22: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-53.0.2785.92-boringssl-time-fix.patch
# I wouldn't have to do this if there was a standard way to append extra compiler flags
-Patch24: chromium-54.0.2840.59-nullfix.patch
+Patch24: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-59.0.3071.86-nullfix.patch
# Add explicit includedir for jpeglib.h
-Patch25: chromium-54.0.2840.59-jpeg-include-dir.patch
+Patch25: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-54.0.2840.59-jpeg-include-dir.patch
# On i686, pass --no-keep-memory --reduce-memory-overheads to ld.
-Patch26: chromium-54.0.2840.59-i686-ld-memory-tricks.patch
-# obj/content/renderer/renderer/child_frame_compositing_helper.o: In function `content::ChildFrameCompositingHelper::OnSetSurface(cc::SurfaceId const&, gfx::Size const&, float, cc::SurfaceSequence const&)':
-# /builddir/build/BUILD/chromium-54.0.2840.90/out/Release/../../content/renderer/child_frame_compositing_helper.cc:214: undefined reference to `cc_blink::WebLayerImpl::setOpaque(bool)'
-Patch27: chromium-54.0.2840.90-setopaque.patch
-# Use -fpermissive to build WebKit
-Patch31: chromium-56.0.2924.87-fpermissive.patch
-# Fix issue with compilation on gcc7
-# Thanks to Ben Noordhuis
-Patch33: chromium-56.0.2924.87-gcc7.patch
+Patch26: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-59.0.3071.86-i686-ld-memory-tricks.patch
+Patch32: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-69.0.3497.81-norar.patch
+Patch33: chromium-50-system-ffmpeg-3.patch
+Patch36: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
+# Correctly compile the stdatomic.h in ffmpeg with gcc 4.8
+Patch37: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-64.0.3282.119-ffmpeg-stdatomic.patch
+# Nacl can't die soon enough
+Patch39: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-66.0.3359.117-system-clang.patch
+# Do not prefix libpng functions
+Patch42: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-60.0.3112.78-no-libpng-prefix.patch
+# Do not mangle libjpeg
+Patch43: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-60.0.3112.78-jpeg-nomangle.patch
+# Do not mangle zlib
+Patch45: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-60.0.3112.78-no-zlib-mangle.patch
+# Apply these changes to work around EPEL7 compiler issues
+Patch46: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-62.0.3202.62-kmaxskip-constexpr.patch
+#Patch47: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-60.0.3112.90-vulkan-force-c99.patch
+# Fix libavutil include pathing to find arch specific timer.h
+# For some reason, this only fails on aarch64. No idea why.
+Patch50: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
+# from gentoo
+Patch53: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
+# Only needed when glibc 2.26.90 or later is used
+Patch57: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-63.0.3289.84-aarch64-glibc-2.26.90.patch
+# From gentoo
+Patch62: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-66.0.3359.117-gcc5-r3.patch
+# Do not try to use libc++ in the remoting stack
+# Patch63: chromium-63.0.3289.84-nolibc++.patch
+# To use round with gcc, you need to #include <cmath>
+Patch65: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-65.0.3325.146-gcc-round-fix.patch
+# Include proper headers to invoke memcpy()
+Patch67: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-65.0.3325.146-memcpy-fix.patch
+# From Debian
+Patch86: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-67.0.3396.62-skia-aarch64-buildfix.patch
+# Use lstdc++ on EPEL7 only
+Patch87: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-65.0.3325.162-epel7-stdc++.patch
+# Missing files in tarball
+Patch88: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-66.0.3359.117-missing-files.patch
+# https://chromium.googlesource.com/chromium/src/+/ba4141e451f4e0b1b19410b1b503bd32e150df06%5E%21/#F0
+# Patch89: chromium-66.0.3359.117-gcc-optional-move-fixes.patch
+# https://chromium.googlesource.com/chromium/src/+/4f2b52281ce1649ea8347489443965ad33262ecc%5E%21
+# Patch90: chromium-66.0.3359.117-gcc-copy-constructor-fix.patch
+# https://bugs.chromium.org/p/chromium/issues/detail?id=816952
+# Patch91: chromium-66.0.3359.117-gcc-vector-copy-constructor-fix.patch
+Patch94: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
+# Patch95: chromium-65.0.3325.146-GCC-IDB-methods-String-renamed-to-GetString.patch
+# https://github.com/archlinuxarm/PKGBUILDs/blob/master/extra/chromium/0006-GCC-do-not-use-initializer-list-for-NoDestructor-of-.patch
+# Patch96: chromium-66.0.3359.117-GCC-do-not-use-initializer-list-for-NoDestructor-of-.patch
+# https://chromium.googlesource.com/chromium/src/+/b84682f31dc99b9c90f5a04947075815697c68d9%5E%21/#F0
+# Patch97: chromium-66.0.3359.139-arm-init-fix.patch
+# GCC8 has changed the alignof operator to return the minimal alignment required by the target ABI
+# instead of the preferred alignment. This means int64_t is now 4 on i686 (instead of 8).
+# Use __alignof__ to get the value we expect (and chromium checks for).
+Patch98: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-69.0.3497.81-gcc8-alignof.patch
+# Don't build in a Debian chroot
+Patch99: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-69.0.3497.81-build-sanely-please.patch
+
+Patch100: chromium-gcc8-r589614.patch
+Patch101: chromium-gcc8-r591015.patch
+Patch102: chromium-gcc8-r588316.patch
+Patch103: chromium-gcc8-r588547.patch
### Chromium Tests Patches ###
-Patch100: chromium-46.0.2490.86-use_system_opus.patch
-Patch101: chromium-55.0.2883.75-use_system_harfbuzz.patch
-
# suse, system libs
-Patch103: arm_use_right_compiler.patch
-Patch104: chromium-system-ffmpeg-r3.patch
-Patch105: chromium-system-jinja-r13.patch
+Patch200: arm_use_right_compiler.patch
+# Gentoo, fix widevine
+Patch201: https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files/chromium-widevine-r2.patch
+# Arch Linux, fix for compile error with system ICU
+Patch202: https://raw.githubusercontent.com/archlinuxarm/PKGBUILDs/master/extra/chromium/chromium-system-icu.patch
# mga
-Patch111: chromium-55-extra-media.patch
-Patch112: chromium-40-wmvflvmpg.patch
-Patch114: chromium-55-flac.patch
+Patch300: chromium-69-extra-media.patch
+Patch301: chromium-69-wmvflvmpg.patch
+Patch302: chromium-55-flac.patch
+
+# omv
+Patch500: chromium-59-clang-workaround.patch
+Patch501: chromium-64-system-curl.patch
+Patch502: chromium-69-no-static-libstdc++.patch
+Patch503: revert-Xclang-instcombine-lower-dbg-declare.patch
+Patch504: chromium-70.0.3538.77-gcc7.patch
-# arch
-# fix gn build
-Patch120: chromium-gn-bootstrap-r2.patch
+# fixed upstream
+Patch505: chromium-70.0.3538.102-sysroot.patch
Provides: %{crname}
Obsoletes: chromium-browser-unstable < 26.0.1410.51
@@ -128,24 +184,25 @@ BuildRequires: bison
BuildRequires: re2c
BuildRequires: flex
#BuildRequires: v8-devel
+BuildRequires: pkgconfig(alsa)
+BuildRequires: pkgconfig(krb5)
+BuildRequires: pkgconfig(re2)
+BuildRequires: pkgconfig(com_err)
BuildRequires: alsa-oss-devel
-%if %mdvver >= 201500
BuildRequires: atomic-devel
BuildRequires: harfbuzz-devel
-%else
-BuildRequires: %{_lib}atomic1
-%endif
BuildRequires: pkgconfig(icu-i18n)
BuildRequires: snappy-devel
BuildRequires: jsoncpp-devel
BuildRequires: pkgconfig(expat)
BuildRequires: pkgconfig(glib-2.0)
-BuildRequires: pkgconfig(re2)
BuildRequires: pkgconfig(wayland-egl)
BuildRequires: pkgconfig(nss)
BuildRequires: bzip2-devel
BuildRequires: jpeg-devel
BuildRequires: pkgconfig(libpng)
+BuildRequires: pkgconfig(libcurl)
+BuildRequires: clang lld
%if %{with system_ffmpeg}
BuildRequires: pkgconfig(libavcodec)
BuildRequires: pkgconfig(libavfilter)
@@ -180,6 +237,7 @@ BuildRequires: pkgconfig(flac)
BuildRequires: pkgconfig(opus)
BuildRequires: pkgconfig(libwebp)
BuildRequires: pkgconfig(speex)
+BuildRequires: pkgconfig(lcms2)
%if %{with system_minizip}
BuildRequires: pkgconfig(minizip)
%endif
@@ -189,11 +247,7 @@ BuildRequires: pkgconfig(libusb-1.0)
BuildRequires: speech-dispatcher-devel
BuildRequires: pkgconfig(libpci)
BuildRequires: pkgconfig(libexif)
-%if %mdvver >= 201500
BuildRequires: python2
-%else
-BuildRequires: python
-%endif
BuildRequires: ninja
BuildRequires: nodejs
BuildRequires: python2-markupsafe
@@ -211,6 +265,7 @@ browser which is updated with features and fixes once they have been
thoroughly tested. If you want the latest features, install the
chromium-browser-dev package instead.
+%if "%{channel}" == "stable"
%package -n chromium-browser
Summary: A fast webkit-based web browser (transition package)
Epoch: 1
@@ -224,14 +279,15 @@ technology to make the web faster, safer, and easier.
This is a transition package that installs the stable channel Chromium
browser. If you prefer the dev channel browser, install the
chromium-browser-dev package instead.
+%endif
-%package -n chromedriver
-Summary: WebDriver for Google Chrome/Chromium
-Group: Development/Other
-Requires: %{name} = %{version}-%{release}
+%package -n chromedriver%{namesuffix}
+Summary: WebDriver for Google Chrome/Chromium
+Group: Development/Other
+Requires: %{name} = %{version}-%{release}
-%description -n chromedriver
+%description -n chromedriver%{namesuffix}
WebDriver is an open source tool for automated testing of webapps across many
browsers. It provides capabilities for navigating to web pages, user input,
JavaScript execution, and more. ChromeDriver is a standalone server which
@@ -240,13 +296,16 @@ members of the Chromium and WebDriver teams.
%prep
-%setup -q -n chromium-%{basever}
+%setup -q -n chromium-%{version}
%apply_patches
rm -rf third_party/binutils/
echo "%{revision}" > build/LASTCHANGE.in
+sed -i 's!-nostdlib++!!g' build/config/posix/BUILD.gn
+sed -i 's!ffmpeg_buildflags!ffmpeg_features!g' build/linux/unbundle/ffmpeg.gn
+
# Hard code extra version
FILE=chrome/common/channel_info_posix.cc
sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"%{product_vendor} %{product_version}"/' $FILE
@@ -261,153 +320,199 @@ mkdir -p third_party/node/linux/node-linux-x64/bin
ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/
# Remove bundled libs
-keeplibs=(
- base/third_party/dmg_fp
- base/third_party/dynamic_annotations
- base/third_party/nspr
- base/third_party/icu
- base/third_party/superfasthash
- base/third_party/symbolize
- base/third_party/valgrind
- base/third_party/xdg_mime
- base/third_party/xdg_user_dirs
- breakpad/src/third_party/curl
- chrome/third_party/mozilla_security_manager
- courgette/third_party
- net/third_party/mozilla_security_manager
- net/third_party/nss
- third_party/WebKit
- third_party/wayland
- third_party/analytics
- third_party/angle
- third_party/angle/src/common/third_party/numerics
- third_party/angle/src/third_party/compiler
- third_party/angle/src/third_party/libXNVCtrl
- third_party/angle/src/third_party/murmurhash
- third_party/angle/src/third_party/trace_event
- third_party/boringssl
- third_party/brotli
- third_party/cacheinvalidation
- third_party/catapult
- third_party/catapult/third_party/polymer
- third_party/catapult/third_party/py_vulcanize
- third_party/catapult/third_party/py_vulcanize/third_party/rcssmin
- third_party/catapult/third_party/py_vulcanize/third_party/rjsmin
- third_party/catapult/tracing/third_party/d3
- third_party/catapult/tracing/third_party/gl-matrix
- third_party/catapult/tracing/third_party/jszip
- third_party/catapult/tracing/third_party/mannwhitneyu
- third_party/ced
- third_party/cld_2
- third_party/cld_3
- third_party/cros_system_api
- third_party/devscripts
- third_party/dom_distiller_js
- third_party/fips181
- third_party/flatbuffers
- third_party/flot
- third_party/google_input_tools
- third_party/google_input_tools/third_party/closure_library
- third_party/google_input_tools/third_party/closure_library/third_party/closure
- third_party/hunspell
- third_party/iccjpeg
- third_party/inspector_protocol
- third_party/jstemplate
- third_party/khronos
- third_party/leveldatabase
- third_party/libXNVCtrl
- third_party/libaddressinput
- third_party/libjingle
- third_party/libphonenumber
- third_party/libsecret
- third_party/libsrtp
- third_party/libudev
- third_party/libusb
- third_party/libwebm
- third_party/libxml/chromium
- third_party/libyuv
- third_party/lss
- third_party/lzma_sdk
- third_party/mesa
- third_party/modp_b64
- third_party/mt19937ar
- third_party/node
- third_party/node/node_modules/vulcanize/third_party/UglifyJS2
- third_party/openh264
- third_party/openmax_dl
- third_party/opus
- third_party/ots
- third_party/pdfium
- third_party/pdfium/third_party/agg23
- third_party/pdfium/third_party/base
- third_party/pdfium/third_party/bigint
- third_party/pdfium/third_party/freetype
- third_party/pdfium/third_party/lcms2-2.6
- third_party/pdfium/third_party/libjpeg
- third_party/pdfium/third_party/libopenjpeg20
- third_party/pdfium/third_party/libpng16
- third_party/pdfium/third_party/libtiff
- third_party/pdfium/third_party/zlib_v128
- third_party/polymer
- third_party/protobuf
- third_party/protobuf/third_party/six
- third_party/qcms
- third_party/sfntly
- third_party/skia
- third_party/smhasher
- third_party/sqlite
- third_party/tcmalloc
- third_party/usrsctp
- third_party/web-animations-js
- third_party/webdriver
- third_party/webrtc
- third_party/widevine
- third_party/woff2
- third_party/x86inc
- third_party/zlib/google
- url/third_party/mozilla
- v8/src/third_party/valgrind
- v8/third_party/inspector_protocol
- third_party/libva
- third_party/yasm
- third_party/jinja2
- third_party/markupsafe
- third_party/simplejson
- third_party/ply
- third_party/catapult/third_party/beautifulsoup4
- third_party/catapult/third_party/html5lib-python
- third_party/catapult/third_party/six
-)
-
-%if !%{with system_minizip}
-keeplibs+=( third_party/zlib )
-%endif
-%if !%{with system_icu}
-keeplibs+=( third_party/icu )
-%endif
-%if !%{with system_vpx}
-keeplibs+=(
- third_party/libvpx
- third_party/libvpx/source/libvpx/third_party/x86inc
-)
-%endif
-%if !%{with system_ffmpeg}
-keeplibs+=( third_party/ffmpeg )
-%endif
-%if !%{with system_harfbuzz}
-keeplibs+=( third_party/harfbuzz-ng )
-%endif
-# needed due to bugs in GN
-keeplibs+=(
- base/third_party/libevent
- third_party/adobe
- third_party/speech-dispatcher
- third_party/usb_ids
- third_party/xdg-utils
- third_party/yasm/run_yasm.py
-)
-python2 build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove
-
+python2 build/linux/unbundle/remove_bundled_libraries.py \
+ 'buildtools/third_party/libc++' \
+ 'buildtools/third_party/libc++abi' \
+ 'base/third_party/dmg_fp' \
+ 'base/third_party/dynamic_annotations' \
+ 'base/third_party/icu' \
+ 'base/third_party/libevent' \
+ 'base/third_party/nspr' \
+ 'base/third_party/superfasthash' \
+ 'base/third_party/symbolize' \
+ 'base/third_party/valgrind' \
+ 'base/third_party/xdg_mime' \
+ 'base/third_party/xdg_user_dirs' \
+ 'chrome/third_party/mozilla_security_manager' \
+ 'courgette/third_party' \
+ 'net/third_party/http2' \
+ 'net/third_party/mozilla_security_manager' \
+ 'net/third_party/nss' \
+ 'net/third_party/quic' \
+ 'net/third_party/spdy' \
+ 'net/third_party/uri_template' \
+ 'third_party/WebKit' \
+ 'third_party/abseil-cpp' \
+ 'third_party/adobe' \
+ 'third_party/analytics' \
+ 'third_party/angle' \
+ 'third_party/angle/src/common/third_party/base' \
+ 'third_party/angle/src/common/third_party/smhasher' \
+ 'third_party/angle/src/third_party/compiler' \
+ 'third_party/angle/src/third_party/libXNVCtrl' \
+ 'third_party/angle/src/third_party/trace_event' \
+ 'third_party/angle/third_party/glslang' \
+ 'third_party/angle/third_party/spirv-headers' \
+ 'third_party/angle/third_party/spirv-tools' \
+ 'third_party/angle/third_party/vulkan-headers' \
+ 'third_party/angle/third_party/vulkan-loader' \
+ 'third_party/angle/third_party/vulkan-tools' \
+ 'third_party/angle/third_party/vulkan-validation-layers' \
+ 'third_party/apple_apsl' \
+ 'third_party/blanketjs' \
+ 'third_party/blink' \
+ 'third_party/boringssl' \
+ 'third_party/boringssl/src/third_party/fiat' \
+ 'third_party/breakpad' \
+ 'third_party/breakpad/breakpad/src/third_party/curl' \
+ 'third_party/brotli' \
+ 'third_party/cacheinvalidation' \
+ 'third_party/catapult' \
+ 'third_party/catapult/common/py_vulcanize/third_party/rcssmin' \
+ 'third_party/catapult/common/py_vulcanize/third_party/rjsmin' \
+ 'third_party/catapult/third_party/beautifulsoup4' \
+ 'third_party/catapult/third_party/html5lib-python' \
+ 'third_party/catapult/third_party/polymer' \
+ 'third_party/catapult/third_party/six' \
+ 'third_party/catapult/tracing/third_party/d3' \
+ 'third_party/catapult/tracing/third_party/gl-matrix' \
+ 'third_party/catapult/tracing/third_party/jszip' \
+ 'third_party/catapult/tracing/third_party/mannwhitneyu' \
+ 'third_party/catapult/tracing/third_party/oboe' \
+ 'third_party/catapult/tracing/third_party/pako' \
+ 'third_party/ced' \
+ 'third_party/cld_3' \
+ 'third_party/crashpad' \
+ 'third_party/crashpad/crashpad/third_party/zlib/' \
+ 'third_party/crc32c' \
+ 'third_party/cros_system_api' \
+ 'third_party/devscripts' \
+ 'third_party/dom_distiller_js' \
+ 'third_party/expat' \
+ 'third_party/ffmpeg' \
+ 'third_party/fips181' \
+ 'third_party/flac' \
+ 'third_party/flatbuffers' \
+ 'third_party/flot' \
+ 'third_party/fontconfig' \
+ 'third_party/freetype' \
+ 'third_party/glslang-angle' \
+ 'third_party/google_input_tools' \
+ 'third_party/google_input_tools/third_party/closure_library' \
+ 'third_party/google_input_tools/third_party/closure_library/third_party/closure' \
+ 'third_party/googletest' \
+ 'third_party/harfbuzz-ng' \
+ 'third_party/hunspell' \
+ 'third_party/iccjpeg' \
+ 'third_party/icu' \
+ 'third_party/inspector_protocol' \
+ 'third_party/jinja2' \
+ 'third_party/jstemplate' \
+ 'third_party/khronos' \
+ 'third_party/leveldatabase' \
+ 'third_party/libXNVCtrl' \
+ 'third_party/libaddressinput' \
+ 'third_party/libaom' \
+ 'third_party/libaom/source/libaom/third_party/vector' \
+ 'third_party/libaom/source/libaom/third_party/x86inc' \
+ 'third_party/libdrm' \
+ 'third_party/libjingle' \
+ 'third_party/libjpeg_turbo' \
+ 'third_party/libphonenumber' \
+ 'third_party/libpng' \
+ 'third_party/libsecret' \
+ 'third_party/libsrtp' \
+ 'third_party/libsync' \
+ 'third_party/libudev' \
+ 'third_party/libusb' \
+ 'third_party/libvpx' \
+ 'third_party/libvpx/source/libvpx/third_party/x86inc' \
+ 'third_party/libxml' \
+ 'third_party/libxml/chromium' \
+ 'third_party/libxslt' \
+ 'third_party/libwebm' \
+ 'third_party/libwebp' \
+ 'third_party/libyuv' \
+ 'third_party/llvm-build' \
+ 'third_party/lss' \
+ 'third_party/lzma_sdk' \
+ 'third_party/markupsafe' \
+ 'third_party/mesa' \
+ 'third_party/metrics_proto' \
+ 'third_party/modp_b64' \
+ 'third_party/node' \
+ 'third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2' \
+ 'third_party/openh264' \
+ 'third_party/openmax_dl' \
+ 'third_party/opus' \
+ 'third_party/ots' \
+ 'third_party/pdfium' \
+ 'third_party/pdfium/third_party/agg23' \
+ 'third_party/pdfium/third_party/base' \
+ 'third_party/pdfium/third_party/bigint' \
+ 'third_party/pdfium/third_party/freetype' \
+ 'third_party/pdfium/third_party/lcms' \
+ 'third_party/pdfium/third_party/libopenjpeg20' \
+ 'third_party/pdfium/third_party/libpng16' \
+ 'third_party/pdfium/third_party/libtiff' \
+ 'third_party/pdfium/third_party/skia_shared' \
+ 'third_party/perfetto' \
+ 'third_party/ply' \
+ 'third_party/polymer' \
+ 'third_party/protobuf' \
+ 'third_party/protobuf/third_party/six' \
+ 'third_party/pyjson5' \
+ 'third_party/qcms' \
+ 'third_party/qunit' \
+ 'third_party/re2' \
+ 'third_party/rnnoise' \
+ 'third_party/s2cellid' \
+ 'third_party/sfntly' \
+ 'third_party/simplejson' \
+ 'third_party/sinonjs' \
+ 'third_party/skia' \
+ 'third_party/skia/third_party/gif' \
+ 'third_party/skia/third_party/skcms' \
+ 'third_party/skia/third_party/vulkan' \
+ 'third_party/smhasher' \
+ 'third_party/snappy' \
+ 'third_party/speech-dispatcher' \
+ 'third_party/spirv-headers' \
+ 'third_party/spirv-tools-angle' \
+ 'third_party/sqlite' \
+ 'third_party/swiftshader' \
+ 'third_party/swiftshader/third_party/subzero' \
+ 'third_party/swiftshader/third_party/LLVM' \
+ 'third_party/swiftshader/third_party/llvm-subzero' \
+ 'third_party/tcmalloc' \
+ 'third_party/test_fonts' \
+ 'third_party/usb_ids' \
+ 'third_party/usrsctp' \
+ 'third_party/vulkan' \
+ 'third_party/vulkan-validation-layers' \
+ 'third_party/web-animations-js' \
+ 'third_party/webdriver' \
+ 'third_party/webrtc' \
+ 'third_party/webrtc/common_audio/third_party/fft4g' \
+ 'third_party/webrtc/common_audio/third_party/spl_sqrt_floor' \
+ 'third_party/webrtc/modules/third_party/fft' \
+ 'third_party/webrtc/modules/third_party/g711' \
+ 'third_party/webrtc/modules/third_party/g722' \
+ 'third_party/webrtc/rtc_base/third_party/base64' \
+ 'third_party/webrtc/rtc_base/third_party/sigslot' \
+ 'third_party/widevine' \
+ 'third_party/woff2' \
+ 'third_party/xdg-utils' \
+ 'third_party/yasm' \
+ 'third_party/zlib' \
+ 'third_party/zlib/google' \
+ 'tools/gn/base/third_party/icu' \
+ 'url/third_party/mozilla' \
+ 'v8/src/third_party/utf8-decoder' \
+ 'v8/src/third_party/valgrind' \
+ 'v8/third_party/v8' \
+ 'v8/third_party/inspector_protocol' \
+ --do-remove
# Look, I don't know. This package is spit and chewing gum. Sorry.
rm -rf third_party/markupsafe
@@ -416,11 +521,11 @@ ln -s %{python2_sitearch}/markupsafe third_party/markupsafe
# workaround build failure
if [ ! -f chrome/test/data/webui/i18n_process_css_test.html ]; then
- touch chrome/test/data/webui/i18n_process_css_test.html
+ touch chrome/test/data/webui/i18n_process_css_test.html
fi
%build
-%ifarch %{arm}
+%ifarch %{arm} %{ix86}
# Use linker flags to reduce memory consumption on low-mem architectures
%global optflags %(echo %{optflags} | sed -e 's/-g /-g0 /' -e 's/-gdwarf-4//')
mkdir -p bfd
@@ -430,100 +535,98 @@ export PATH=$PWD/bfd:$PATH
%global ldflags %{ldflags} -fuse-ld=bfd -Wl,--no-keep-memory -Wl,--reduce-memory-overheads
%endif
-%if %mdvver >= 201500
-%ifarch %arm
export CC=gcc
export CXX=g++
-%else
-export CC=clang
-export CXX=clang++
-%endif
-%else
-export CC=gcc
-export CXX=g++
-%endif
# gn is rather convoluted and not python3 friendly -- let's make
# sure it sees python2 when it calls python
export PATH=`pwd`:$PATH
-myconf_gn=" use_sysroot=false is_debug=false use_gold=true"
-%if %mdvver >= 201500
-%ifarch %arm
-myconf_gn+=" is_clang=false"
-%else
-myconf_gn+=" is_clang=true clang_base_path=\"/usr\" clang_use_chrome_plugins=false"
-%endif
+CHROMIUM_CORE_GN_DEFINES=" use_sysroot=false is_debug=false fieldtrial_testing_like_official_build=true use_lld=false"
+%ifarch %{ix86}
+CHROMIUM_CORE_GN_DEFINES+=" use_gold=false"
%else
-myconf_gn+=" is_clang=false"
-%endif
-
-myconf_gn+=" treat_warnings_as_errors=false"
-myconf_gn+=" use_system_libjpeg=true "
-%if %mdvver >= 201500
-#myconf_gn+=" use_system_harfbuzz=true "
-%endif
-myconf_gn+=" use_gnome_keyring=false "
-myconf_gn+=" fatal_linker_warnings=false "
-myconf_gn+=" system_libdir=\"%{_lib}\""
-myconf_gn+=" use_allocator=\"none\""
-myconf_gn+=" use_aura=true "
-myconf_gn+=" use_gconf=false"
-myconf_gn+=" icu_use_data_file=true"
-%if %{with gtk3}
-myconf_gn+=" use_gtk3=true "
-%else
-myconf_gn+=" use_gtk3=false "
+CHROMIUM_CORE_GN_DEFINES+=" use_gold=true"
%endif
+CHROMIUM_CORE_GN_DEFINES+=" is_clang=false clang_base_path=\"%{_prefix}\" clang_use_chrome_plugins=false "
+CHROMIUM_CORE_GN_DEFINES+=" treat_warnings_as_errors=false use_custom_libcxx=false "
+CHROMIUM_CORE_GN_DEFINES+=" use_system_libjpeg=true "
+CHROMIUM_CORE_GN_DEFINES+=" use_system_lcms2=true "
+CHROMIUM_CORE_GN_DEFINES+=" use_system_libpng=true "
+CHROMIUM_CORE_GN_DEFINES+=" use_system_harfbuzz=true "
+CHROMIUM_CORE_GN_DEFINES+=" use_gnome_keyring=false "
+CHROMIUM_CORE_GN_DEFINES+=" fatal_linker_warnings=false "
+CHROMIUM_CORE_GN_DEFINES+=" system_libdir=\"%{_lib}\""
+CHROMIUM_CORE_GN_DEFINES+=" use_allocator=\"none\""
+CHROMIUM_CORE_GN_DEFINES+=" use_aura=true "
+#CHROMIUM_CORE_GN_DEFINES+=" use_gio=true"
+CHROMIUM_CORE_GN_DEFINES+=" icu_use_data_file=true"
%if %{with ozone}
-myconf_gn+=" use_ozone=true "
+CHROMIUM_CORE_GN_DEFINES+=" use_ozone=true "
%endif
-myconf_gn+=" enable_nacl=false "
-myconf_gn+=" proprietary_codecs=true "
-myconf_gn+=" ffmpeg_branding=\"Chrome\" "
-myconf_gn+=" enable_ac3_eac3_audio_demuxing=true "
-myconf_gn+=" enable_hevc_demuxing=true "
-myconf_gn+=" enable_mse_mpeg2ts_stream_parser=true "
-%ifarch i586
-myconf_gn+=" target_cpu=\"x86\""
+CHROMIUM_CORE_GN_DEFINES+=" enable_nacl=false "
+CHROMIUM_CORE_GN_DEFINES+=" proprietary_codecs=true "
+CHROMIUM_CORE_GN_DEFINES+=" ffmpeg_branding=\"ChromeOS\" "
+CHROMIUM_CORE_GN_DEFINES+=" enable_ac3_eac3_audio_demuxing=true "
+CHROMIUM_CORE_GN_DEFINES+=" enable_hevc_demuxing=true "
+CHROMIUM_CORE_GN_DEFINES+=" enable_mse_mpeg2ts_stream_parser=true "
+%ifarch %{ix86}
+CHROMIUM_CORE_GN_DEFINES+=" target_cpu=\"x86\""
%endif
-%ifarch x86_64
-myconf_gn+=" target_cpu=\"x64\""
+%ifarch %{x86_64}
+CHROMIUM_CORE_GN_DEFINES+=" target_cpu=\"x64\""
%endif
-%ifarch %arm
-myconf_gn+=" target_cpu=\"arm\""
-myconf_gn+=" remove_webcore_debug_symbols=true"
-myconf_gn+=" rtc_build_with_neon=true"
+%ifarch %{arm}
+CHROMIUM_CORE_GN_DEFINES+=" target_cpu=\"arm\""
+CHROMIUM_CORE_GN_DEFINES+=" remove_webcore_debug_symbols=true"
+CHROMIUM_CORE_GN_DEFINES+=" rtc_build_with_neon=true"
%endif
-%ifarch aarch64
-myconf_gn+=" target_cpu=\"arm64\""
+%ifarch %{aarch64}
+CHROMIUM_CORE_GN_DEFINES+=" target_cpu=\"arm64\""
%endif
-myconf_gn+=" google_api_key=\"%{google_api_key}\""
-myconf_gn+=" google_default_client_id=\"%{google_default_client_id}\""
-myconf_gn+=" google_default_client_secret=\"%{google_default_client_secret}\""
+CHROMIUM_CORE_GN_DEFINES+=" google_api_key=\"%{google_api_key}\""
+CHROMIUM_CORE_GN_DEFINES+=" google_default_client_id=\"%{google_default_client_id}\""
+CHROMIUM_CORE_GN_DEFINES+=" google_default_client_secret=\"%{google_default_client_secret}\""
+CHROMIUM_CORE_GN_DEFINES+=' use_jumbo_build=true jumbo_file_merge_limit=4'
+
+CHROMIUM_BROWSER_GN_DEFINES="use_pulseaudio=true icu_use_data_file=true"
+CHROMIUM_BROWSER_GN_DEFINES+=" enable_nacl=false"
+CHROMIUM_BROWSER_GN_DEFINES+=" is_component_ffmpeg=true is_component_build=true"
+CHROMIUM_BROWSER_GN_DEFINES+=" enable_hangout_services_extension=true"
+CHROMIUM_BROWSER_GN_DEFINES+=" use_aura=true"
+CHROMIUM_BROWSER_GN_DEFINES+=" enable_widevine=true"
+CHROMIUM_BROWSER_GN_DEFINES+=" enable_webrtc=true"
+
+CHROMIUM_HEADLESS_GN_DEFINES=' use_ozone=true ozone_auto_platforms=false ozone_platform="headless" ozone_platform_headless=true'
+CHROMIUM_HEADLESS_GN_DEFINES+=' headless_use_embedded_resources=true icu_use_data_file=false v8_use_external_startup_data=false'
+CHROMIUM_HEADLESS_GN_DEFINES+=' enable_nacl=false enable_print_preview=false enable_remoting=false use_alsa=false'
+CHROMIUM_HEADLESS_GN_DEFINES+=' use_cups=false use_dbus=false use_gio=false use_kerberos=false use_libpci=false'
+CHROMIUM_HEADLESS_GN_DEFINES+=' use_pulseaudio=false use_udev=false'
-# Set system libraries to be used
gn_system_libraries="
flac
+ fontconfig
+ freetype
+ harfbuzz-ng
+ libdrm
libjpeg
- libpng
- libwebp
libusb
+ libevent
+ libwebp
libxml
libxslt
re2
snappy
yasm
"
+# libpng
+# opus
# cb - chrome 58
# libevent as system lib causes some hanging issues particularly with extensions
%if %{with system_minizip}
gn_system_libraries+=" zlib"
%endif
-%if %{with system_harfbuzz}
-gn_system_libraries+=" harfbuzz-ng"
-%endif
%if %{with system_icu}
gn_system_libraries+=" icu"
%endif
@@ -535,11 +638,11 @@ gn_system_libraries+=" ffmpeg"
%endif
python2 build/linux/unbundle/replace_gn_files.py --system-libraries ${gn_system_libraries}
-python2 tools/gn/bootstrap/bootstrap.py -v --gn-gen-args "${myconf_gn}"
+python2 tools/gn/bootstrap/bootstrap.py -v "${CHROMIUM_CORE_GN_DEFINES} ${CHROMIUM_BROWSER_GN_DEFILES}"
python2 third_party/libaddressinput/chromium/tools/update-strings.py
-out/Release/gn gen --args="${myconf_gn}" out/Release
+out/Release/gn gen --args="${CHROMIUM_CORE_GN_DEFINES}" out/Release
# Note: DON'T use system sqlite (3.7.3) -- it breaks history search
# As of 36.0.1985.143, use_system_icu breaks the build.
@@ -557,11 +660,11 @@ install -m 755 %{SOURCE1} %{buildroot}%{_libdir}/%{name}/
install -m 755 out/Release/chrome %{buildroot}%{_libdir}/%{name}/
install -m 4755 out/Release/chrome_sandbox %{buildroot}%{_libdir}/%{name}/chrome-sandbox
cp -a out/Release/chromedriver %{buildroot}%{_libdir}/%{name}/chromedriver
-install -m 644 out/Release/chrome.1 %{buildroot}%{_mandir}/man1/%{name}.1
install -m 644 out/Release/locales/*.pak %{buildroot}%{_libdir}/%{name}/locales/
install -m 644 out/Release/chrome_100_percent.pak %{buildroot}%{_libdir}/%{name}/
install -m 644 out/Release/resources.pak %{buildroot}%{_libdir}/%{name}/
-install -m 644 out/Release/icudtl.dat %{buildroot}%{_libdir}/%{name}/
+# May or may not be there depending on whether or not we use system icu
+[ -e out/Release/icudtl.dat ] && install -m 644 out/Release/icudtl.dat %{buildroot}%{_libdir}/%{name}/
install -m 644 out/Release/*.bin %{buildroot}%{_libdir}/%{name}/
install -m 644 chrome/browser/resources/default_apps/* %{buildroot}%{_libdir}/%{name}/default_apps/
ln -s %{_libdir}/%{name}/chromium-wrapper %{buildroot}%{_bindir}/%{name}
@@ -585,10 +688,18 @@ done
mkdir -p %{buildroot}%{_sysconfdir}/chromium
install -m 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/chromium
+# FIXME ultimately Chromium should just use the system version
+# instead of looking in its own directory... But for now, symlinking
+# stuff where Chromium wants it will do
+mkdir -p %{buildroot}%{_libdir}/%{name}/swiftshader
+ln -s %{_libdir}/libGLESv2.so.2.0.0 %{buildroot}%{_libdir}/%{name}/swiftshader/libGLESv2.so
+ln -s %{_libdir}/libEGL.so.1.0.0 %{buildroot}%{_libdir}/%{name}/swiftshader/libEGL.so
find %{buildroot} -name "*.nexe" -exec strip {} \;
+%if "%{channel}" == "stable"
%files -n chromium-browser
+%endif
%files
%doc LICENSE AUTHORS
@@ -598,19 +709,18 @@ find %{buildroot} -name "*.nexe" -exec strip {} \;
%{_libdir}/%{name}/chromium-wrapper
%{_libdir}/%{name}/chrome
%{_libdir}/%{name}/chrome-sandbox
-%{_libdir}/%{name}/icudtl.dat
+%optional %{_libdir}/%{name}/icudtl.dat
%{_libdir}/%{name}/locales
%{_libdir}/%{name}/chrome_100_percent.pak
%{_libdir}/%{name}/resources.pak
%{_libdir}/%{name}/resources
%{_libdir}/%{name}/themes
%{_libdir}/%{name}/default_apps
-%{_mandir}/man1/%{name}*
%{_datadir}/applications/*.desktop
%{_datadir}/icons/hicolor/*/apps/%{name}.png
+%{_libdir}/%{name}/swiftshader
-
-%files -n chromedriver
+%files -n chromedriver%{namesuffix}
%doc LICENSE AUTHORS
%{_bindir}/chromedriver
%{_libdir}/%{name}/chromedriver
diff --git a/chromium-gcc8-r588316.patch b/chromium-gcc8-r588316.patch
new file mode 100644
index 0000000..d980805
--- /dev/null
+++ b/chromium-gcc8-r588316.patch
@@ -0,0 +1,98 @@
+From 87902b3202f81d689dd314c17006ffc907fe12a1 Mon Sep 17 00:00:00 2001
+From: Wang Qing <wangqing-hf@loongson.cn>
+Date: Mon, 3 Sep 2018 02:41:08 +0000
+Subject: [PATCH] Fix build error for blink.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This CLs fixed the error of constexpr function call to non-constexpr function.
+
+Bug: 878202
+Change-Id: I6ad217a687e62a9a384980d852743a56479de3a9
+Reviewed-on: https://chromium-review.googlesource.com/1192467
+Commit-Queue: 汪 清 <wangqing-hf@loongson.cn>
+Reviewed-by: Eric Willigers <ericwilligers@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#588316}
+---
+ .../core/animation/animation_time_delta.cc | 22 ++++++++++++++
+ .../core/animation/animation_time_delta.h | 30 +++++++------------
+ 2 files changed, 32 insertions(+), 20 deletions(-)
+
+diff --git a/third_party/blink/renderer/core/animation/animation_time_delta.cc b/third_party/blink/renderer/core/animation/animation_time_delta.cc
+index 1b25469c7f2f..2e30a18890da 100644
+--- a/third_party/blink/renderer/core/animation/animation_time_delta.cc
++++ b/third_party/blink/renderer/core/animation/animation_time_delta.cc
+@@ -7,6 +7,28 @@
+ namespace blink {
+
+ #if !defined(BLINK_ANIMATION_USE_TIME_DELTA)
++// Comparison operators on AnimationTimeDelta.
++bool CORE_EXPORT operator==(const AnimationTimeDelta& lhs,
++ const AnimationTimeDelta& rhs) {
++ return lhs.InSecondsF() == rhs.InSecondsF();
++}
++bool CORE_EXPORT operator!=(const AnimationTimeDelta& lhs,
++ const AnimationTimeDelta& rhs) {
++ return lhs.InSecondsF() != rhs.InSecondsF();
++}
++bool CORE_EXPORT operator>(const AnimationTimeDelta& lhs,
++ const AnimationTimeDelta& rhs) {
++ return lhs.InSecondsF() > rhs.InSecondsF();
++}
++bool CORE_EXPORT operator>=(const AnimationTimeDelta& lhs,
++ const AnimationTimeDelta& rhs) {
++ return lhs.InSecondsF() >= rhs.InSecondsF();
++}
++bool CORE_EXPORT operator<=(const AnimationTimeDelta& lhs,
++ const AnimationTimeDelta& rhs) {
++ return lhs.InSecondsF() <= rhs.InSecondsF();
++}
++
+ std::ostream& operator<<(std::ostream& os, AnimationTimeDelta time) {
+ return os << time.InSecondsF() << " s";
+ }
+diff --git a/third_party/blink/renderer/core/animation/animation_time_delta.h b/third_party/blink/renderer/core/animation/animation_time_delta.h
+index 1903c1150d3e..95d218466d90 100644
+--- a/third_party/blink/renderer/core/animation/animation_time_delta.h
++++ b/third_party/blink/renderer/core/animation/animation_time_delta.h
+@@ -90,26 +90,16 @@ AnimationTimeDelta operator*(T a, AnimationTimeDelta td) {
+ }
+
+ // Comparison operators on AnimationTimeDelta.
+-constexpr bool CORE_EXPORT operator==(const AnimationTimeDelta& lhs,
+- const AnimationTimeDelta& rhs) {
+- return lhs.InSecondsF() == rhs.InSecondsF();
+-}
+-constexpr bool CORE_EXPORT operator!=(const AnimationTimeDelta& lhs,
+- const AnimationTimeDelta& rhs) {
+- return lhs.InSecondsF() != rhs.InSecondsF();
+-}
+-constexpr bool CORE_EXPORT operator>(const AnimationTimeDelta& lhs,
+- const AnimationTimeDelta& rhs) {
+- return lhs.InSecondsF() > rhs.InSecondsF();
+-}
+-constexpr bool CORE_EXPORT operator>=(const AnimationTimeDelta& lhs,
+- const AnimationTimeDelta& rhs) {
+- return lhs.InSecondsF() >= rhs.InSecondsF();
+-}
+-constexpr bool CORE_EXPORT operator<=(const AnimationTimeDelta& lhs,
+- const AnimationTimeDelta& rhs) {
+- return lhs.InSecondsF() <= rhs.InSecondsF();
+-}
++bool CORE_EXPORT operator==(const AnimationTimeDelta& lhs,
++ const AnimationTimeDelta& rhs);
++bool CORE_EXPORT operator!=(const AnimationTimeDelta& lhs,
++ const AnimationTimeDelta& rhs);
++bool CORE_EXPORT operator>(const AnimationTimeDelta& lhs,
++ const AnimationTimeDelta& rhs);
++bool CORE_EXPORT operator>=(const AnimationTimeDelta& lhs,
++ const AnimationTimeDelta& rhs);
++bool CORE_EXPORT operator<=(const AnimationTimeDelta& lhs,
++ const AnimationTimeDelta& rhs);
+
+ // Defined to allow DCHECK_EQ/etc to work with the class.
+ CORE_EXPORT std::ostream& operator<<(std::ostream& os, AnimationTimeDelta time);
+--
+2.17.2
+
diff --git a/chromium-gcc8-r588547.patch b/chromium-gcc8-r588547.patch
new file mode 100644
index 0000000..5f12f7f
--- /dev/null
+++ b/chromium-gcc8-r588547.patch
@@ -0,0 +1,30 @@
+From e3ad3deb6a6e79284f3748fa7410311d87df91c5 Mon Sep 17 00:00:00 2001
+From: Henrique Nakashima <hnakashima@chromium.org>
+Date: Tue, 4 Sep 2018 16:49:51 +0000
+Subject: [PATCH] IWYU: stdint.h in pdfium_mem_buffer_file_write.h for uint8_t
+
+Bug: 879900
+Change-Id: I9c15d1c280a23c53d31f2d72c9d0d1db79eab886
+Reviewed-on: https://chromium-review.googlesource.com/1204410
+Reviewed-by: Lei Zhang <thestig@chromium.org>
+Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#588547}
+---
+ pdf/pdfium/pdfium_mem_buffer_file_write.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/pdf/pdfium/pdfium_mem_buffer_file_write.h b/pdf/pdfium/pdfium_mem_buffer_file_write.h
+index 03c54bb63800..82e82d23684d 100644
+--- a/pdf/pdfium/pdfium_mem_buffer_file_write.h
++++ b/pdf/pdfium/pdfium_mem_buffer_file_write.h
+@@ -6,6 +6,7 @@
+ #define PDF_PDFIUM_PDFIUM_MEM_BUFFER_FILE_WRITE_H_
+
+ #include <stddef.h>
++#include <stdint.h>
+
+ #include <vector>
+
+--
+2.17.2
+
diff --git a/chromium-gcc8-r589614.patch b/chromium-gcc8-r589614.patch
new file mode 100644
index 0000000..0c187fd
--- /dev/null
+++ b/chromium-gcc8-r589614.patch
@@ -0,0 +1,37 @@
+From cbdb8bd6567c8143dc8c1e5e86a21a8ea064eea4 Mon Sep 17 00:00:00 2001
+From: Maksim Sisov <msisov@igalia.com>
+Date: Fri, 7 Sep 2018 18:57:42 +0000
+Subject: [PATCH] OmniboxTextView: fix gcc error for structure initialization
+
+It looks like there is bug in GCC 6, which cannot go through
+structure initialization normally.
+
+Thus, instead of a default initialization of one of the members,
+explicitly initialize it to a default value.
+
+Change-Id: Ia55cc6658e6b6b2f8a80c2582dd28f001c9e648c
+Reviewed-on: https://chromium-review.googlesource.com/1213181
+Reviewed-by: Scott Violet <sky@chromium.org>
+Commit-Queue: Maksim Sisov <msisov@igalia.com>
+Cr-Commit-Position: refs/heads/master@{#589614}
+---
+ chrome/browser/ui/views/omnibox/omnibox_text_view.cc | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/chrome/browser/ui/views/omnibox/omnibox_text_view.cc b/chrome/browser/ui/views/omnibox/omnibox_text_view.cc
+index f0a8083dc930..9021284f166d 100644
+--- a/chrome/browser/ui/views/omnibox/omnibox_text_view.cc
++++ b/chrome/browser/ui/views/omnibox/omnibox_text_view.cc
+@@ -175,7 +175,8 @@ void ApplyTextStyleForType(SuggestionAnswer::TextStyle text_style,
+ style = {part_color, .baseline = gfx::SUPERIOR};
+ break;
+ case SuggestionAnswer::TextStyle::BOLD:
+- style = {part_color, .weight = gfx::Font::Weight::BOLD};
++ style = {part_color, .baseline = gfx::NORMAL_BASELINE,
++ .weight = gfx::Font::Weight::BOLD};
+ break;
+ case SuggestionAnswer::TextStyle::NORMAL:
+ case SuggestionAnswer::TextStyle::NORMAL_DIM:
+--
+2.17.2
+
diff --git a/chromium-gcc8-r591015.patch b/chromium-gcc8-r591015.patch
new file mode 100644
index 0000000..65c09e8
--- /dev/null
+++ b/chromium-gcc8-r591015.patch
@@ -0,0 +1,70 @@
+From e98f8ef8b2f236ecbb01df8c39e6ee1c8fbe8d7d Mon Sep 17 00:00:00 2001
+From: Maksim Sisov <msisov@igalia.com>
+Date: Thu, 13 Sep 2018 15:17:29 +0000
+Subject: [PATCH] ScrollPaintPropertyNode: Rename SnapContainerData() to
+ GetSnapContainerData()
+
+GCC is stricter than clang when it comes to class members' names and how
+they can change the meaning of a previously existing symbol with the same
+name.
+
+Here is a short error message:
+
+error: changes meaning of 'SnapContainerData' from 'using SnapContainerData =
+class cc::SnapContainerData' [-fpermissive] using SnapContainerData =
+cc::SnapContainerData;
+
+Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
+Change-Id: I0de5460f17b13484253e1ff0538b111c9a3b0d13
+Reviewed-on: https://chromium-review.googlesource.com/1213180
+Commit-Queue: Maksim Sisov <msisov@igalia.com>
+Reviewed-by: Philip Rogers <pdr@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#591015}
+---
+ .../blink/renderer/core/paint/paint_property_tree_update_tests.cc | 2 +-
+ .../renderer/platform/graphics/compositing/property_tree_manager.cc | 2 +-
+ .../blink/renderer/platform/graphics/paint/scroll_paint_property_node.h | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/third_party/blink/renderer/core/paint/paint_property_tree_update_tests.cc b/third_party/blink/renderer/core/paint/paint_property_tree_update_tests.cc
+index 0d999d45076f..1fe1815a5659 100644
+--- a/third_party/blink/renderer/core/paint/paint_property_tree_update_tests.cc
++++ b/third_party/blink/renderer/core/paint/paint_property_tree_update_tests.cc
+@@ -1310,7 +1310,7 @@ TEST_P(PaintPropertyTreeUpdateTest, EnsureSnapContainerData) {
+ GetDocument().View()->Resize(300, 300);
+ GetDocument().View()->UpdateAllLifecyclePhases();
+
+- auto doc_snap_container_data = DocScroll()->SnapContainerData();
++ auto doc_snap_container_data = DocScroll()->GetSnapContainerData();
+ ASSERT_TRUE(doc_snap_container_data);
+ EXPECT_EQ(doc_snap_container_data->scroll_snap_type().axis, SnapAxis::kBoth);
+ EXPECT_EQ(doc_snap_container_data->scroll_snap_type().strictness,
+diff --git a/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc b/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc
+index 745b8c8b387e..5f87eeea9435 100644
+--- a/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc
++++ b/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc
+@@ -333,7 +333,7 @@ void PropertyTreeManager::CreateCompositorScrollNode(
+ scroll_node->OverscrollBehaviorX()),
+ static_cast<cc::OverscrollBehavior::OverscrollBehaviorType>(
+ scroll_node->OverscrollBehaviorY()));
+- compositor_node.snap_container_data = scroll_node->SnapContainerData();
++ compositor_node.snap_container_data = scroll_node->GetSnapContainerData();
+
+ auto compositor_element_id = scroll_node->GetCompositorElementId();
+ if (compositor_element_id) {
+diff --git a/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.h b/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.h
+index e1479269ccc3..5bd7f65f10ba 100644
+--- a/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.h
++++ b/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.h
+@@ -99,7 +99,7 @@ class PLATFORM_EXPORT ScrollPaintPropertyNode
+ return state_.overscroll_behavior.y;
+ }
+
+- base::Optional<SnapContainerData> SnapContainerData() const {
++ base::Optional<SnapContainerData> GetSnapContainerData() const {
+ return state_.snap_container_data;
+ }
+
+--
+2.14.3
+
diff --git a/chromium-gn-bootstrap-r2.patch b/chromium-gn-bootstrap-r2.patch
deleted file mode 100644
index 76287e1..0000000
--- a/chromium-gn-bootstrap-r2.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: tools/gn/bootstrap/bootstrap.py
-diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
-index 38cfb117d29c3895291379f00d8dc8c8b0727474..679170e610f8292bcbeb76508fd247d322a69c79 100755
---- a/tools/gn/bootstrap/bootstrap.py
-+++ b/tools/gn/bootstrap/bootstrap.py
-@@ -385,6 +385,7 @@ def write_gn_ninja(path, root_gen_dir, options):
- 'base/base_switches.cc',
- 'base/build_time.cc',
- 'base/callback_internal.cc',
-+ 'base/callback_helpers.cc',
- 'base/command_line.cc',
- 'base/debug/activity_tracker.cc',
- 'base/debug/alias.cc',
diff --git a/chromium-system-ffmpeg-r3.patch b/chromium-system-ffmpeg-r3.patch
deleted file mode 100644
index 3abfc16..0000000
--- a/chromium-system-ffmpeg-r3.patch
+++ /dev/null
@@ -1,48 +0,0 @@
---- a/media/ffmpeg/ffmpeg_common.h.orig 2016-09-09 13:16:07.757294768 +0000
-+++ b/media/ffmpeg/ffmpeg_common.h 2016-09-09 13:16:41.705989273 +0000
-@@ -22,10 +22,6 @@
-
- // Include FFmpeg header files.
- extern "C" {
--// Disable deprecated features which result in spammy compile warnings. This
--// list of defines must mirror those in the 'defines' section of FFmpeg's
--// BUILD.gn file or the headers below will generate different structures!
--#define FF_API_CONVERGENCE_DURATION 0
- // Upstream libavcodec/utils.c still uses the deprecated
- // av_dup_packet(), causing deprecation warnings.
- // The normal fix for such things is to disable the feature as below,
-@@ -35,7 +35,6 @@
- MSVC_PUSH_DISABLE_WARNING(4244);
- #include <libavcodec/avcodec.h>
- #include <libavformat/avformat.h>
--#include <libavformat/internal.h>
- #include <libavformat/avio.h>
- #include <libavutil/avutil.h>
- #include <libavutil/imgutils.h>
---- a/media/filters/ffmpeg_demuxer.cc.orig 2016-09-09 14:21:40.185828912 +0000
-+++ b/media/filters/ffmpeg_demuxer.cc 2016-09-09 14:21:52.894089352 +0000
-@@ -1185,24 +1185,6 @@
- // If no estimate is found, the stream entry will be kInfiniteDuration.
- std::vector<base::TimeDelta> start_time_estimates(format_context->nb_streams,
- kInfiniteDuration);
-- const AVFormatInternal* internal = format_context->internal;
-- if (internal && internal->packet_buffer &&
-- format_context->start_time != static_cast<int64_t>(AV_NOPTS_VALUE)) {
-- struct AVPacketList* packet_buffer = internal->packet_buffer;
-- while (packet_buffer != internal->packet_buffer_end) {
-- DCHECK_LT(static_cast<size_t>(packet_buffer->pkt.stream_index),
-- start_time_estimates.size());
-- const AVStream* stream =
-- format_context->streams[packet_buffer->pkt.stream_index];
-- if (packet_buffer->pkt.pts != static_cast<int64_t>(AV_NOPTS_VALUE)) {
-- const base::TimeDelta packet_pts =
-- ConvertFromTimeBase(stream->time_base, packet_buffer->pkt.pts);
-- if (packet_pts < start_time_estimates[stream->index])
-- start_time_estimates[stream->index] = packet_pts;
-- }
-- packet_buffer = packet_buffer->next;
-- }
-- }
-
- std::unique_ptr<MediaTracks> media_tracks(new MediaTracks());
-
diff --git a/chromium-system-icu.patch b/chromium-system-icu.patch
new file mode 100644
index 0000000..89a7b00
--- /dev/null
+++ b/chromium-system-icu.patch
@@ -0,0 +1,19 @@
+diff --git a/third_party/blink/renderer/platform/text/character_property_data_generator.h b/third_party/blink/renderer/platform/text/character_property_data_generator.h
+index 28fb6a9..bb4dbd7 100644
+--- a/third_party/blink/renderer/platform/text/character_property_data_generator.h
++++ b/third_party/blink/renderer/platform/text/character_property_data_generator.h
+@@ -244,10 +244,12 @@ static const UChar32 kIsHangulRanges[] = {
+ 0xD7B0, 0xD7FF,
+ // Halfwidth Hangul Jamo
+ // https://www.unicode.org/charts/nameslist/c_FF00.html
+- 0xFFA0, 0xFFDC,
++ 0xFFA0, 0xFFDB,
+ };
+
+-static const UChar32 kIsHangulArray[] = {};
++static const UChar32 kIsHangulArray[] = {
++ 0xFFDC,
++};
+
+ } // namespace blink
+
diff --git a/chromium-system-jinja-r13.patch b/chromium-system-jinja-r13.patch
deleted file mode 100644
index 943b68a..0000000
--- a/chromium-system-jinja-r13.patch
+++ /dev/null
@@ -1,31 +0,0 @@
---- a/third_party/WebKit/Source/build/scripts/scripts.gni.orig 2016-06-02 09:54:28.510152077 +0000
-+++ b/third_party/WebKit/Source/build/scripts/scripts.gni 2016-06-02 09:54:50.966612510 +0000
-@@ -9,10 +9,6 @@
- _scripts_dir = "//third_party/WebKit/Source/build/scripts"
-
- scripts_for_json5_files = [
-- # jinja2/__init__.py contains version string, so sufficient as
-- # dependency for whole jinja2 package
-- "//third_party/jinja2/__init__.py",
-- "//third_party/markupsafe/__init__.py", # jinja2 dep
- "$_scripts_dir/hasher.py",
- "$_scripts_dir/json5_generator.py",
- "$_scripts_dir/license.py",
---- a/third_party/WebKit/Source/bindings/scripts/scripts.gni.orig 2016-09-09 13:40:51.971660406 +0000
-+++ b/third_party/WebKit/Source/bindings/scripts/scripts.gni 2016-09-09 13:41:15.472141236 +0000
-@@ -9,15 +9,9 @@
- bindings_scripts_output_dir = "$root_gen_dir/blink/bindings/scripts"
-
- jinja_module_files = [
-- "//third_party/jinja2/__init__.py",
-- "//third_party/markupsafe/__init__.py", # jinja2 dep
- ]
-
- idl_lexer_parser_files = get_path_info([
-- # PLY (Python Lex-Yacc)
-- "//third_party/ply/lex.py",
-- "//third_party/ply/yacc.py",
--
- # Web IDL lexer/parser (base parser)
- "//tools/idl_parser/idl_lexer.py",
- "//tools/idl_parser/idl_node.py",
diff --git a/chromium-widevine-r2.patch b/chromium-widevine-r2.patch
new file mode 100644
index 0000000..5527f7f
--- /dev/null
+++ b/chromium-widevine-r2.patch
@@ -0,0 +1,39 @@
+Minimal patch to get chromium to compile with widevine support.
+
+Exactly the same as -r1, but we now need to patch
+ninja to pretty please not terminate our build.
+
+caveat emptor: it's in no way clear that building chromium this
+way is safer, from a security perspective, than whatever Google
+Chrome does.
+
+Upstream appears to be cooking up a code-signing trust-chain
+which may protect users against malicious cdm blobs; I doubt
+we benefit from these using this kludge. Ideally, someone
+would look into this more carefully than I have ... tbh as
+soon as I got my "stories" back, I pretty much lost interest :)
+
+-gmt
+
+--
+--- a/third_party/widevine/cdm/stub/widevine_cdm_version.h
++++ b/third_party/widevine/cdm/stub/widevine_cdm_version.h
+@@ -10,6 +10,7 @@
+
+ #include "third_party/widevine/cdm/widevine_cdm_common.h"
+
++#define WIDEVINE_CDM_VERSION_STRING "unknown"
+ #define WIDEVINE_CDM_AVAILABLE
+
+ #endif // WIDEVINE_CDM_VERSION_H_
+--- a/third_party/widevine/cdm/BUILD.gn
++++ b/third_party/widevine/cdm/BUILD.gn
+@@ -11,7 +11,7 @@ import("//third_party/widevine/cdm/widev
+ # Internal Cast builds set enable_widevine=true to bring in Widevine support.
+ # TODO(xhwang): Support component updated CDM on other platforms and remove this
+ # assert.
+-assert(!enable_widevine || is_win || is_mac || is_chromecast,
++assert(!enable_widevine || is_win || is_mac || is_chromecast || is_linux,
+ "Component updated CDM only supported on Windows and Mac for now.")
+
+ widevine_arch = current_cpu
diff --git a/revert-Xclang-instcombine-lower-dbg-declare.patch b/revert-Xclang-instcombine-lower-dbg-declare.patch
new file mode 100644
index 0000000..0d40ead
--- /dev/null
+++ b/revert-Xclang-instcombine-lower-dbg-declare.patch
@@ -0,0 +1,24 @@
+Author: Olivier Tilloy <olivier.tilloy@canonical.com>
+Description: revert of 074fa51f85b15ad2e2d6c804a03825d48dbeb063, which requires Clang r313108 (unreleased yet)
+
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -466,18 +466,6 @@ config("compiler") {
+ }
+ }
+
+- if (is_clang && !is_nacl && current_toolchain == host_toolchain &&
+- target_os != "chromeos") {
+- cflags += [
+- # TODO(hans): Remove this once Clang generates better optimized debug info
+- # by default. https://crbug.com/765793
+- "-Xclang",
+- "-mllvm",
+- "-Xclang",
+- "-instcombine-lower-dbg-declare=0",
+- ]
+- }
+-
+ # Print absolute paths in diagnostics. There is no precedent for doing this
+ # on Linux/Mac (GCC doesn't support it), but MSVC does this with /FC and
+ # Windows developers rely on it (crbug.com/636109) so only do this on Windows.