diff --git a/.abf.yml b/.abf.yml index 56598ee..b1d3ce7 100644 --- a/.abf.yml +++ b/.abf.yml @@ -1,5 +1,5 @@ sources: - chromium-68.0.3440.106.tar.xz: a52bdc6623286a7681939096cf57ca1aafa29aec + chromium-69.0.3497.100.tar.xz: 79c8fb089e8f344dce40c6495a006a172d4fc4ac depot_tools.tar.xz: 082b7f9a4dfa7eb03900755b4866aef2d73543a5 icons.tar.bz2: a835954af164bf38f8ea4ea80608839bed7800a3 new-system-icons.tar.xz: 89339b8b3b05359a8745ed7968fe148902a2fa28 diff --git a/chromium-52-pdfium-system-libtiff-libpng.patch b/chromium-52-pdfium-system-libtiff-libpng.patch index 619826d..2f8a496 100644 --- a/chromium-52-pdfium-system-libtiff-libpng.patch +++ b/chromium-52-pdfium-system-libtiff-libpng.patch @@ -28,18 +28,18 @@ diff -up chromium-60.0.3112.40/third_party/pdfium/BUILD.gn.pdfium-system-libtiff diff -up chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/ccodec_tiffmodule.cpp.pdfium-system-libtiff-libpng chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/ccodec_tiffmodule.cpp --- chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/ccodec_tiffmodule.cpp.pdfium-system-libtiff-libpng 2017-06-22 00:04:10.000000000 +0200 +++ chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/ccodec_tiffmodule.cpp 2017-06-24 00:05:50.524671846 +0200 -@@ -17,9 +17,7 @@ +@@ -19,9 +19,7 @@ #include "third_party/base/logging.h" #include "third_party/base/ptr_util.h" -extern "C" { -#include "third_party/libtiff/tiffiop.h" --} +-} // extern C +#include - class CTiffContext : public CCodec_TiffModule::Context { - public: -@@ -176,7 +174,7 @@ + namespace { + +@@ -188,7 +186,7 @@ tiff_write, tiff_seek, tiff_close, tiff_get_size, tiff_map, tiff_unmap); if (tif) { @@ -51,10 +51,10 @@ diff -up chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/ccodec_tiff diff -up chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/cjpx_decoder.h.pdfium-system-libtiff-libpng chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/cjpx_decoder.h --- chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/cjpx_decoder.h.pdfium-system-libtiff-libpng 2017-06-24 00:05:50.526671809 +0200 +++ chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/cjpx_decoder.h 2017-06-25 12:29:14.039984794 +0200 -@@ -12,7 +12,7 @@ - +@@ -13,7 +13,7 @@ #include "core/fxcodec/codec/codec_int.h" #include "core/fxcrt/unowned_ptr.h" + #include "third_party/base/span.h" -#include "third_party/libopenjpeg20/openjpeg.h" +#include @@ -90,15 +90,15 @@ diff -up chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/fx_codec_jp namespace { -@@ -484,7 +488,7 @@ - m_Image = nullptr; +@@ -514,7 +518,7 @@ return false; - } + + m_Image = pTempImage; - m_Image->pdfium_use_colorspace = !!m_ColorSpace; +// m_Image->pdfium_use_colorspace = !!m_ColorSpace; if (!m_Parameters.nb_tile_to_decode) { - if (!opj_set_decode_area(m_Codec, m_Image, m_Parameters.DA_x0, + if (!opj_set_decode_area(m_Codec.Get(), m_Image.Get(), m_Parameters.DA_x0, diff -up chromium-60.0.3112.40/third_party/pdfium/third_party/BUILD.gn.pdfium-system-libtiff-libpng chromium-60.0.3112.40/third_party/pdfium/third_party/BUILD.gn --- chromium-60.0.3112.40/third_party/pdfium/third_party/BUILD.gn.pdfium-system-libtiff-libpng 2017-06-22 00:04:10.000000000 +0200 +++ chromium-60.0.3112.40/third_party/pdfium/third_party/BUILD.gn 2017-06-24 22:25:18.901585830 +0200 diff --git a/chromium-55-extra-media.patch b/chromium-55-extra-media.patch index 1a9840c..3dada03 100644 --- a/chromium-55-extra-media.patch +++ b/chromium-55-extra-media.patch @@ -80,7 +80,7 @@ diff -up chromium-62.0.3192.0/media/base/decode_capabilities.cc.extra-media chro diff -up chromium-62.0.3192.0/media/base/mime_util_internal.cc.extra-media chromium-62.0.3192.0/media/base/mime_util_internal.cc --- chromium-62.0.3192.0/media/base/mime_util_internal.cc.extra-media 2017-08-22 21:04:45.000000000 +0200 +++ chromium-62.0.3192.0/media/base/mime_util_internal.cc 2017-08-30 15:44:46.519076991 +0200 -@@ -74,6 +74,10 @@ const base::flat_map +Date: Tue Mar 7 10:48:54 2017 -0800 + + Remove exported symbols redefinition + + By using the same zlib in pdfium, we no longer have the + need to redefine the exported symbols. + + This will speed up the process of syncing with upstream zlib. + +diff --git a/third_party/zlib/BUILD.gn b/third_party/zlib/BUILD.gn +index 5086563..3ff08df 100644 +--- a/third_party/zlib/BUILD.gn ++++ b/third_party/zlib/BUILD.gn +@@ -60,7 +60,6 @@ static_library("zlib") { + "inflate.h", + "inftrees.c", + "inftrees.h", +- "names.h", + "trees.c", + "trees.h", + "uncompr.c", +--- chromium-68.0.3440.106/third_party/zlib/names.h-del 2018-08-08 22:11:58.000000000 +0300 ++++ chromium-68.0.3440.106/third_party/zlib/names.h 1970-01-01 03:00:00.000000000 +0300 +@@ -1,183 +0,0 @@ +-/* 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. */ +- +-#ifndef THIRD_PARTY_ZLIB_NAMES_H_ +-#define THIRD_PARTY_ZLIB_NAMES_H_ +- +-/* Rename all zlib names with a Cr_z_ prefix. This is based on the Z_PREFIX +- * option from zconf.h, but with a custom prefix. Where zconf.h would rename +- * both a macro and its underscore-suffixed internal implementation (such as +- * deflateInit2 and deflateInit2_), only the implementation is renamed here. +- * The Byte type is also omitted. +- * +- * To generate this list, run +- * sed -rn -e 's/^# *define +([^ ]+) +(z_[^ ]+)$/#define \1 Cr_\2/p' zconf.h +- * (use -E instead of -r on macOS). +- * +- * gzread is also addressed by modifications in gzread.c and zlib.h. */ +- +-#define Z_CR_PREFIX_SET +- +-#define _dist_code Cr_z__dist_code +-#define _length_code Cr_z__length_code +-#define _tr_align Cr_z__tr_align +-#define _tr_flush_bits Cr_z__tr_flush_bits +-#define _tr_flush_block Cr_z__tr_flush_block +-#define _tr_init Cr_z__tr_init +-#define _tr_stored_block Cr_z__tr_stored_block +-#define _tr_tally Cr_z__tr_tally +-#define adler32 Cr_z_adler32 +-#define adler32_combine Cr_z_adler32_combine +-#define adler32_combine64 Cr_z_adler32_combine64 +-#define adler32_z Cr_z_adler32_z +-#define compress Cr_z_compress +-#define compress2 Cr_z_compress2 +-#define compressBound Cr_z_compressBound +-#define crc32 Cr_z_crc32 +-#define crc32_combine Cr_z_crc32_combine +-#define crc32_combine64 Cr_z_crc32_combine64 +-#define crc32_z Cr_z_crc32_z +-#define deflate Cr_z_deflate +-#define deflateBound Cr_z_deflateBound +-#define deflateCopy Cr_z_deflateCopy +-#define deflateEnd Cr_z_deflateEnd +-#define deflateGetDictionary Cr_z_deflateGetDictionary +-/* #undef deflateInit */ +-/* #undef deflateInit2 */ +-#define deflateInit2_ Cr_z_deflateInit2_ +-#define deflateInit_ Cr_z_deflateInit_ +-#define deflateParams Cr_z_deflateParams +-#define deflatePending Cr_z_deflatePending +-#define deflatePrime Cr_z_deflatePrime +-#define deflateReset Cr_z_deflateReset +-#define deflateResetKeep Cr_z_deflateResetKeep +-#define deflateSetDictionary Cr_z_deflateSetDictionary +-#define deflateSetHeader Cr_z_deflateSetHeader +-#define deflateTune Cr_z_deflateTune +-#define deflate_copyright Cr_z_deflate_copyright +-#define get_crc_table Cr_z_get_crc_table +-#define gz_error Cr_z_gz_error +-#define gz_intmax Cr_z_gz_intmax +-#define gz_strwinerror Cr_z_gz_strwinerror +-#define gzbuffer Cr_z_gzbuffer +-#define gzclearerr Cr_z_gzclearerr +-#define gzclose Cr_z_gzclose +-#define gzclose_r Cr_z_gzclose_r +-#define gzclose_w Cr_z_gzclose_w +-#define gzdirect Cr_z_gzdirect +-#define gzdopen Cr_z_gzdopen +-#define gzeof Cr_z_gzeof +-#define gzerror Cr_z_gzerror +-#define gzflush Cr_z_gzflush +-#define gzfread Cr_z_gzfread +-#define gzfwrite Cr_z_gzfwrite +-#define gzgetc Cr_z_gzgetc +-#define gzgetc_ Cr_z_gzgetc_ +-#define gzgets Cr_z_gzgets +-#define gzoffset Cr_z_gzoffset +-#define gzoffset64 Cr_z_gzoffset64 +-#define gzopen Cr_z_gzopen +-#define gzopen64 Cr_z_gzopen64 +-#define gzopen_w Cr_z_gzopen_w +-#define gzprintf Cr_z_gzprintf +-#define gzputc Cr_z_gzputc +-#define gzputs Cr_z_gzputs +-#define gzread Cr_z_gzread +-#define gzrewind Cr_z_gzrewind +-#define gzseek Cr_z_gzseek +-#define gzseek64 Cr_z_gzseek64 +-#define gzsetparams Cr_z_gzsetparams +-#define gztell Cr_z_gztell +-#define gztell64 Cr_z_gztell64 +-#define gzungetc Cr_z_gzungetc +-#define gzvprintf Cr_z_gzvprintf +-#define gzwrite Cr_z_gzwrite +-#define inflate Cr_z_inflate +-#define inflateBack Cr_z_inflateBack +-#define inflateBackEnd Cr_z_inflateBackEnd +-/* #undef inflateBackInit */ +-#define inflateBackInit_ Cr_z_inflateBackInit_ +-#define inflateCodesUsed Cr_z_inflateCodesUsed +-#define inflateCopy Cr_z_inflateCopy +-#define inflateEnd Cr_z_inflateEnd +-#define inflateGetDictionary Cr_z_inflateGetDictionary +-#define inflateGetHeader Cr_z_inflateGetHeader +-/* #undef inflateInit */ +-/* #undef inflateInit2 */ +-#define inflateInit2_ Cr_z_inflateInit2_ +-#define inflateInit_ Cr_z_inflateInit_ +-#define inflateMark Cr_z_inflateMark +-#define inflatePrime Cr_z_inflatePrime +-#define inflateReset Cr_z_inflateReset +-#define inflateReset2 Cr_z_inflateReset2 +-#define inflateResetKeep Cr_z_inflateResetKeep +-#define inflateSetDictionary Cr_z_inflateSetDictionary +-#define inflateSync Cr_z_inflateSync +-#define inflateSyncPoint Cr_z_inflateSyncPoint +-#define inflateUndermine Cr_z_inflateUndermine +-#define inflateValidate Cr_z_inflateValidate +-#define inflate_copyright Cr_z_inflate_copyright +-#define inflate_fast Cr_z_inflate_fast +-#define inflate_table Cr_z_inflate_table +-#define uncompress Cr_z_uncompress +-#define uncompress2 Cr_z_uncompress2 +-#define zError Cr_z_zError +-#define zcalloc Cr_z_zcalloc +-#define zcfree Cr_z_zcfree +-#define zlibCompileFlags Cr_z_zlibCompileFlags +-#define zlibVersion Cr_z_zlibVersion +-/* #undef Byte */ +-#define Bytef Cr_z_Bytef +-#define alloc_func Cr_z_alloc_func +-#define charf Cr_z_charf +-#define free_func Cr_z_free_func +-#define gzFile Cr_z_gzFile +-#define gz_header Cr_z_gz_header +-#define gz_headerp Cr_z_gz_headerp +-#define in_func Cr_z_in_func +-#define intf Cr_z_intf +-#define out_func Cr_z_out_func +-#define uInt Cr_z_uInt +-#define uIntf Cr_z_uIntf +-#define uLong Cr_z_uLong +-#define uLongf Cr_z_uLongf +-#define voidp Cr_z_voidp +-#define voidpc Cr_z_voidpc +-#define voidpf Cr_z_voidpf +-#define gz_header_s Cr_z_gz_header_s +-#define internal_state Cr_z_internal_state +-/* #undef z_off64_t */ +- +-/* An exported symbol that isn't handled by Z_PREFIX in zconf.h */ +-#define z_errmsg Cr_z_z_errmsg +- +-/* Symbols added in simd.patch */ +-#define copy_with_crc Cr_z_copy_with_crc +-#define crc_finalize Cr_z_crc_finalize +-#define crc_fold_512to32 Cr_z_crc_fold_512to32 +-#define crc_fold_copy Cr_z_crc_fold_copy +-#define crc_fold_init Cr_z_crc_fold_init +-#define crc_reset Cr_z_crc_reset +-#define fill_window_sse Cr_z_fill_window_sse +-#define deflate_read_buf Cr_z_deflate_read_buf +-#define x86_check_features Cr_z_x86_check_features +-#define x86_cpu_enable_simd Cr_z_x86_cpu_enable_simd +- +-/* Symbols added by adler_simd.c */ +-#define adler32_simd_ Cr_z_adler32_simd_ +-#define x86_cpu_enable_ssse3 Cr_z_x86_cpu_enable_ssse3 +- +-/* Symbols added by contrib/optimizations/inffast_chunk */ +-#define inflate_fast_chunk_ Cr_z_inflate_fast_chunk_ +- +-/* Symbols added by crc32_simd.c */ +-#define crc32_sse42_simd_ Cr_z_crc32_sse42_simd_ +- +-/* Symbols added by armv8_crc32 */ +-#define arm_cpu_enable_crc32 Cr_z_arm_cpu_enable_crc32 +-#define arm_cpu_enable_pmull Cr_z_arm_cpu_enable_pmull +-#define arm_check_features Cr_z_arm_check_features +-#define armv8_crc32_little Cr_z_armv8_crc32_little +- +-#endif /* THIRD_PARTY_ZLIB_NAMES_H_ */ +diff --git a/third_party/zlib/zconf.h b/third_party/zlib/zconf.h +index a7a815f..2424b2c 100644 +--- a/third_party/zlib/zconf.h ++++ b/third_party/zlib/zconf.h +@@ -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-68.0.3440.106-rosa-user-agent.patch b/chromium-68.0.3440.106-rosa-user-agent.patch new file mode 100644 index 0000000..ff07331 --- /dev/null +++ b/chromium-68.0.3440.106-rosa-user-agent.patch @@ -0,0 +1,12 @@ +diff -up chromium-68.0.3440.106/content/common/user_agent.cc.fedora-user-agent chromium-68.0.3440.106/content/common/user_agent.cc +--- chromium-68.0.3440.106/content/common/user_agent.cc.fedora-user-agent 2018-08-09 03:27:45.965769824 -0400 ++++ chromium-68.0.3440.106/content/common/user_agent.cc 2018-08-09 03:28:34.001586650 -0400 +@@ -135,7 +135,7 @@ std::string getUserAgentPlatform() { + #elif defined(OS_MACOSX) + "Macintosh; "; + #elif defined(USE_X11) || defined(USE_OZONE) +- "X11; "; // strange, but that's what Firefox uses ++ "X11; OS ROSA; "; // strange, but that's what Firefox uses + #elif defined(OS_ANDROID) + "Linux; "; + #elif defined(OS_POSIX) || defined(OS_FUCHSIA) diff --git a/chromium-69.0.3497.100-build-error-in-clang6.patch b/chromium-69.0.3497.100-build-error-in-clang6.patch new file mode 100644 index 0000000..ef79f7c --- /dev/null +++ b/chromium-69.0.3497.100-build-error-in-clang6.patch @@ -0,0 +1,17 @@ +--- chromium-69.0.3497.100/build/config/compiler/BUILD.gn.orig ++++ chromium-69.0.3497.100/build/config/compiler/BUILD.gn +@@ -666,10 +666,10 @@ + # This flag enforces that member pointer base types are complete. It helps + # prevent us from running into problems in the Microsoft C++ ABI (see + # https://crbug.com/847724). +- if (is_clang && !is_nacl && target_os != "chromeos" && !use_xcode_clang && +- (is_win || use_custom_libcxx)) { +- cflags += [ "-fcomplete-member-pointers" ] +- } ++ #if (is_clang && !is_nacl && target_os != "chromeos" && !use_xcode_clang && ++ # (is_win || use_custom_libcxx)) { ++ # cflags += [ "-fcomplete-member-pointers" ] ++ #} + + # Pass the same C/C++ flags to the objective C/C++ compiler. + cflags_objc += cflags_c diff --git a/chromium-browser-stable.spec b/chromium-browser-stable.spec index 1d67a98..da0eee2 100644 --- a/chromium-browser-stable.spec +++ b/chromium-browser-stable.spec @@ -34,8 +34,8 @@ Summary: A fast web browser based on the Blink engine Name: chromium-browser-stable -Version: 68.0.3440.106 -Release: 2 +Version: 69.0.3497.100 +Release: 1 License: BSD, LGPL Group: Networking/WWW Url: https://www.chromium.org/Home @@ -69,8 +69,6 @@ Patch35: chromium-50-system-ffmpeg-3.patch Patch36: chromium-58-glib.patch # clang builtin subtract functions, scoped enum Patch47: chromium-61-gcc5.patch -# (cjw) fix jpeglib.h include -Patch188: chromium-68-system-libjpeg.patch # New from Debian Patch500: chromium-third-party-cookies-off-by-default.patch @@ -84,7 +82,7 @@ Patch502: chromium-45.0.2454.101-system-icu-54-does-not-have-detectHostTimeZone. # fix build with icu other than 54 Patch504: chromium-system-icu-r0.patch # https://aur.archlinux.org/packages/chromium-vaapi/ -Patch508: chromium-vaapi-r19.patch +Patch508: chromium-vaapi-r20.patch Patch509: chromium-widevine-r2.patch # ROSA Build @@ -97,11 +95,20 @@ Patch602: chromium-gcc5-r4.patch # https://github.com/RussianFedora/chromium/blob/fedora-stable/chromium-66.0.3359.81-system-clang.patch Patch603: chromium-66.0.3359.81-system-clang.patch # http://ftp.riken.jp/Linux/gentoo/www-client/chromium/files/ -Patch604: chromium-compiler-r2.patch -Patch605: chromium-ffmpeg-r1.patch +Patch604: chromium-compiler-r4.patch +Patch605: chromium-ffmpeg-ebp-r1.patch # https://chromium.googlesource.com/chromium/src/+/40a8d84a54ac47d3299194c5377aebd71714f1f0%5E%21/ Patch607: chromium-67.0.3396.87-fix-build-llvm-ar.patch +# /usr/bin/ld.lld: error: undefined symbol: Cr_z_*** +Patch626: chromium-68.0.3440.106-linker-build-error.patch +# Add "ROSA" to the user agent string +Patch627: chromium-68.0.3440.106-rosa-user-agent.patch +# Do not prefix libpng functions +Patch629: chromium-60.0.3112.78-no-libpng-prefix.patch +# Fix errors build in 69 +Patch631: chromium-69.0.3497.100-build-error-in-clang6.patch + Provides: %{crname} = %{EVRD} Conflicts: chromium-browser-unstable Conflicts: chromium-browser-beta @@ -113,6 +120,8 @@ BuildRequires: lld BuildRequires: libcxx-devel BuildRequires: libcxxabi-devel %endif +# gn needs these +BuildRequires: libstdc++-static-devel BuildRequires: flex BuildRequires: git BuildRequires: gperf @@ -180,6 +189,8 @@ BuildRequires: pkgconfig(xscrnsaver) BuildRequires: pkgconfig(xt) BuildRequires: pkgconfig(xtst) BuildRequires: pkgconfig(zlib) +BuildRequires: pythonegg(beautifulsoup4) +BuildRequires: pythonegg(html5lib) Suggests: chromium-browser-pepper-flash Conflicts: chromium-widevinecdm-plugin < 54 @@ -238,6 +249,7 @@ fi Summary: A fast web browser based on the Blink engine Epoch: 1 Group: Networking/WWW +# No %%{EVRD} Requires: %{name} = %{version}-%{release} %description -n chromium-browser @@ -255,7 +267,8 @@ chromium-browser-unstable package instead. %package -n chromedriver Summary: WebDriver for Google Chrome/Chromium Group: Development/Other -Requires: %{name} = %{EVRD} +# No %%{EVRD} +Requires: %{name} = %{version}-%{release} %description -n chromedriver WebDriver is an open source tool for automated testing of webapps across many @@ -286,7 +299,6 @@ members of the Chromium and WebDriver teams. %endif %patch36 -p1 %patch47 -p1 -%patch188 -p1 # new from debian %patch500 -p1 @@ -312,86 +324,210 @@ members of the Chromium and WebDriver teams. %patch607 -p1 +%patch626 -p1 +%patch627 -p1 +%patch629 -p1 + +%patch631 -p1 -b .clang6 + mkdir -p third_party/llvm-build/Release+Asserts/bin pushd third_party/llvm-build/Release+Asserts/bin ln -sf /usr/bin/clang clang ln -sf /usr/bin/clang++ clang++ popd -# files we do not want from upstream source bundles -rm -rf breakpad/src/processor/testdata/ -rm -rf chrome/app/test_data/dlls/ -rm -rf chrome/common/extensions/docs/ -rm -rf chrome/test/data/{android,app_shim,apptest,ash,autofill,automation,automation_proxy_snapshot,banners,bookmark_html_reader,bookmarks,captive_portal,chromedriver,chrome_endure,chromeos,chromeproxy,cld2_component,click_modifier,components,constrained_files,content,content_setting_bubble,devtools,diagnostics,dom_automation,dom_checker,dom_distiller,downloads,drive_first_run,dromaeo,durable,edge_database_reader,edge_profile,encoding_tests,extensions,fast_shutdown,fast_tab_close,favicon,feeds,file_select_helper,find_in_page,firefox320_profile,firefox35_profile,firefox3_nss,firefox3_nss_mac,firefox3_profile,firefox_profile,firefox_searchplugins,focus,frame_dom_access,frame_tree,ftp,fullscreen_mouselock,geolocation,google,gpu,History,image_decoding,image_search,import,indexeddb,inspector,installer,interstitial_page,keyboard,login,native_messaging,navigation_interception,notifications,page_cycler,page_load_metrics,panels,password,pdf,pepper,perf,permissions,plugin_power_saver,policy,popup_blocker,predictor,prefs,pref_service,prerender,printing,profiles,push_messaging,referrer_policy,requirements_checker,safe_browsing,SafeBrowsing,save_page,scroll,sdch,search,session_history,session_restore,sessions,settings,speech,ssl,subresource_filter,sunspider,sync,template_url_scraper,textinput,third_party,top_sites,translate,unit,v8_benchmark_v6,viewsource,web_app_info,webapps,webrtc,websocket,webui_test_resources.grd,whitelists,workers} -touch chrome/test/data/webui/i18n_process_css_test.html -rm -rf chrome/tools/test/reference_build/chrome_linux/ -rm -rf components/test/data/component_updater/jebgalgnebhfojomionfpkfelancnnkf/component1.dll -rm -rf content/test/data/ -#rm -rf net/data/ -#rm -rf ppapi/examples/ -rm -rf ppapi/native_client/tests/ -rm -rf third_party/apache-win32/ -rm -rf third_party/binutils/ -rm -rf third_party/expat/files/ -%if 0%{?ffmpeg} -rm -rf third_party/ffmpeg/*/* -rm -rf third_party/ffmpeg/*.[ch] -%endif -rm -rf third_party/flac/{include,src} -#rm -rf third_party/icu/{android,linux,mac,patches,public,source,windows} -rm -rf third_party/lcov -#rm -rf base/third_party/libevent/*/* -#rm -rf base/third_party/libevent/*.[ch] -#rm -rf third_party/libvpx/source/libvpx -rm -rf third_party/libexif/sources -rm -rf third_party/libjpeg/*.[ch] -rm -rf third_party/libjpeg_turbo/*.[ch] -rm -f third_party/pdfium/third_party/libopenjpeg20/*.[ch] -rm -rf third_party/libpng/*.[ch] -rm -rf third_party/libxslt/{libexslt,libxslt,linux,mac,win32} -#rm -rf third_party/mesa/src/src -rm -rf third_party/swig -rm -rf third_party/WebKit/LayoutTests/ -rm -rf third_party/WebKit/Tools/Scripts/ -rm -rf third_party/xdg-utils/tests/ -rm -rf third_party/yasm/source/ -rm -rf third_party/zlib/{*.[ch],contrib/minizip} -rm -rf tools/gyp/test/ -#rm -rf v8/test/ -#rm -f third_party/pdfium/third_party/libtiff/*.[ch] - -rm -f third_party/skia/platform_tools/android/apps/gradle/wrapper/gradle-wrapper.jar -rm -f third_party/WebKit/Source/devtools/scripts/jsdoc-validator/jsdoc-validator.jar -rm -f third_party/WebKit/Source/devtools/scripts/closure/compiler.jar -rm -f third_party/WebKit/Source/devtools/scripts/compiler-runner/closure-runner.jar -rm -rf third_party/sfntly/src/java/lib -rm -f third_party/haha/haha-2.0.2.jar -rm -f third_party/android_platform/webview/frameworks_5.1.0_r1.jar -rm -f third_party/android_platform/webview/frameworks_6.0.jar -rm -f third_party/libphonenumber/dist/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar -rm -f third_party/libphonenumber/dist/tools/java/cpp-build/target/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar -rm -rf third_party/libphonenumber/dist/java/demo/war/WEB-INF/lib -rm -rf third_party/libphonenumber/dist/java/lib -rm -f third_party/webrtc/examples/androidapp/third_party/autobanh/autobanh.jar -rm -rf third_party/cacheinvalidation/src/example-app-build/libs -rm -f third_party/closure_compiler/runner/runner.jar -rm -f third_party/closure_compiler/compiler/compiler.jar -rm -rf third_party/proguard/lib -rm -f third_party/checkstyle/checkstyle-6.5-all.jar -rm -rf third_party/sfntly/src/cpp/ext -#rm -rf third_party/node - +# Remove most of the bundled libraries. Libraries specified below (taken from +# Gentoo's Chromium ebuild) are the libraries that needs to be preserved. +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' \ + '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/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/unrar' \ + '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/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/antlr4' \ + 'v8/third_party/inspector_protocol' \ + --do-remove + # Remove bundled ICU; its header files appear to get picked up instead of # the system ones, leading to errors during the final link stage. # https://groups.google.com/a/chromium.org/d/topic/chromium-packagers/BNGvJc08B6Q #find third_party/icu -type f \! -regex '.*\.\(gn\|gni\|isolate\)' -delete -### build with widevine support - -# Patch from crbug (chromium bugtracker) -# fix the missing define (if not, fail build) (need upstream fix) (https://crbug.com/473866) -sed '14i#define WIDEVINE_CDM_VERSION_STRING "Something fresh"' -i "third_party/widevine/cdm/stub/widevine_cdm_version.h" - # 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 @@ -487,6 +623,9 @@ export CC=clang export CXX=clang++ export AR=ar export NM=nm + +# flags to fix i586 builds +export LDFLAGS="$LDFLAGS -Wl,-z,notext" %else %setup_compile_flags CC=%{__cc}; export CC @@ -500,7 +639,7 @@ CFLAGS=$(echo "$CFLAGS"|sed -e 's/-gdwarf-4//' -e 's/-fvar-tracking-assignments/ CXXFLAGS=$(echo "$CXXFLAGS"|sed -e 's/-gdwarf-4//' -e 's/-fvar-tracking-assignments//' -e 's/-frecord-gcc-switches//') CFLAGS="$CFLAGS -Wno-error=pointer-to-int-cast -Wno-error=int-to-pointer-cast" -CXXFLAGS="$CXXFLAGS -Wno-error=attributes -Wno-error=comment -Wno-error=unused-variable -Wno-error=strict-overflow -Wno-error=deprecated-declarations " +CXXFLAGS="$CXXFLAGS -Wno-error=attributes -Wno-error=comment -Wno-error=unused-variable -Wno-error=strict-overflow -Wno-error=deprecated-declarations" %endif python tools/gn/bootstrap/bootstrap.py --gn-gen-args='%{gn_config}' diff --git a/chromium-compiler-r2.patch b/chromium-compiler-r4.patch similarity index 82% rename from chromium-compiler-r2.patch rename to chromium-compiler-r4.patch index 3ac2eb8..3fe73ef 100644 --- a/chromium-compiler-r2.patch +++ b/chromium-compiler-r4.patch @@ -1,4 +1,4 @@ -From 4310db462fab74bf14066f2a6f7cf250ecba0cf1 Mon Sep 17 00:00:00 2001 +From 777d166eec22c1894108dce985498f75ac5931e8 Mon Sep 17 00:00:00 2001 From: Mike Gilbert Date: Wed, 25 Apr 2018 13:22:49 -0400 Subject: [PATCH] Disable various compiler configs @@ -8,10 +8,10 @@ Subject: [PATCH] Disable various compiler configs 1 file changed, 18 insertions(+), 43 deletions(-) diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn -index 83337d52e4b9..f2c192fc31ca 100644 +index 6e38ad782d38..87bbd423f67f 100644 --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -228,8 +228,6 @@ config("compiler") { +@@ -225,8 +225,6 @@ config("compiler") { configs += [ # See the definitions below. @@ -39,18 +39,18 @@ index 83337d52e4b9..f2c192fc31ca 100644 # 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. -@@ -1415,10 +1401,6 @@ config("default_warnings") { - - # TODO(hans): https://crbug.com/766891 - "-Wno-null-pointer-arithmetic", +@@ -1473,10 +1459,6 @@ config("default_warnings") { + cflags += [ + # TODO(thakis): https://crbug.com/753973 + "-Wno-enum-compare-switch", - -- # Ignore warnings about MSVC optimization pragmas. -- # TODO(thakis): Only for no_chromium_code? http://crbug.com/505314 -- "-Wno-ignored-pragma-optimize", - ] - } else if (use_xcode_clang) { - cflags += [ -@@ -1462,22 +1444,6 @@ config("chromium_code") { +- # Ignore warnings about MSVC optimization pragmas. +- # TODO(thakis): Only for no_chromium_code? http://crbug.com/505314 +- "-Wno-ignored-pragma-optimize", + ] + } + } +@@ -1518,22 +1500,6 @@ config("chromium_code") { "__STDC_FORMAT_MACROS", ] @@ -73,7 +73,7 @@ index 83337d52e4b9..f2c192fc31ca 100644 if (is_mac || is_ios) { cflags_objc = [ "-Wobjc-missing-property-synthesis" ] cflags_objcc = [ "-Wobjc-missing-property-synthesis" ] -@@ -1807,7 +1773,8 @@ config("default_stack_frames") { +@@ -1863,7 +1829,8 @@ config("default_stack_frames") { } # Default "optimization on" config. @@ -83,7 +83,7 @@ index 83337d52e4b9..f2c192fc31ca 100644 if (is_win) { # TODO(thakis): Remove is_clang here, https://crbug.com/598772 if (is_official_build && full_wpo_on_official && !is_clang) { -@@ -1841,7 +1808,8 @@ config("optimize") { +@@ -1897,7 +1864,8 @@ config("optimize") { } # Same config as 'optimize' but without the WPO flag. @@ -93,7 +93,7 @@ index 83337d52e4b9..f2c192fc31ca 100644 if (is_win) { # Favor size over speed, /O1 must be before the common flags. The GYP # build also specifies /Os and /GF but these are implied by /O1. -@@ -1864,7 +1832,8 @@ config("optimize_no_wpo") { +@@ -1920,7 +1888,8 @@ config("optimize_no_wpo") { } # Turn off optimizations. @@ -103,7 +103,7 @@ index 83337d52e4b9..f2c192fc31ca 100644 if (is_win) { cflags = [ "/Od", # Disable optimization. -@@ -1888,7 +1857,8 @@ config("no_optimize") { +@@ -1944,7 +1913,8 @@ config("no_optimize") { # Turns up the optimization level. On Windows, this implies whole program # optimization and link-time code generation which is very expensive and should # be used sparingly. @@ -113,7 +113,7 @@ index 83337d52e4b9..f2c192fc31ca 100644 if (is_nacl && is_nacl_irt) { # The NaCl IRT is a special case and always wants its own config. # Various components do: -@@ -1935,7 +1905,8 @@ config("optimize_max") { +@@ -1991,7 +1961,8 @@ config("optimize_max") { # # TODO(crbug.com/621335) - rework how all of these configs are related # so that we don't need this disclaimer. @@ -123,7 +123,7 @@ index 83337d52e4b9..f2c192fc31ca 100644 if (is_nacl && is_nacl_irt) { # The NaCl IRT is a special case and always wants its own config. # Various components do: -@@ -1973,7 +1944,8 @@ config("optimize_speed") { +@@ -2029,7 +2000,8 @@ config("optimize_speed") { } } @@ -133,7 +133,7 @@ index 83337d52e4b9..f2c192fc31ca 100644 cflags = [ "-O1" ] + common_optimize_on_cflags ldflags = common_optimize_on_ldflags visibility = [ ":default_optimization" ] -@@ -2057,7 +2029,8 @@ config("afdo") { +@@ -2115,7 +2087,8 @@ config("afdo") { # configs += [ "//build/config/compiler:symbols" ] # Full symbols. @@ -143,7 +143,7 @@ index 83337d52e4b9..f2c192fc31ca 100644 if (is_win) { if (use_goma || is_clang) { # Note that with VC++ this requires is_win_fastlink, enforced elsewhere. -@@ -2155,7 +2128,8 @@ config("symbols") { +@@ -2213,7 +2186,8 @@ config("symbols") { # Minimal symbols. # This config guarantees to hold symbol for stack trace which are shown to user # when crash happens in unittests running on buildbot. @@ -153,7 +153,7 @@ index 83337d52e4b9..f2c192fc31ca 100644 if (is_win) { # Linker symbols for backtraces only. cflags = [] -@@ -2186,7 +2160,8 @@ config("minimal_symbols") { +@@ -2244,7 +2218,8 @@ config("minimal_symbols") { } # No symbols. @@ -164,5 +164,5 @@ index 83337d52e4b9..f2c192fc31ca 100644 cflags = [ "-g0" ] asmflags = cflags -- -2.17.0 +2.18.0 diff --git a/chromium-ffmpeg-ebp-r1.patch b/chromium-ffmpeg-ebp-r1.patch new file mode 100644 index 0000000..20ded61 --- /dev/null +++ b/chromium-ffmpeg-ebp-r1.patch @@ -0,0 +1,18 @@ +https://bugs.chromium.org/p/chromium/issues/detail?id=796379 +https://bugs.gentoo.org/656902 + +--- a/third_party/ffmpeg/BUILD.gn ++++ b/third_party/ffmpeg/BUILD.gn +@@ -239,11 +239,7 @@ + # Windows builds can't compile without EBP because we can't omit frame + # pointers like we do on posix. + if (target_cpu == "x86") { +- if (using_sanitizer || is_win) { +- defines += [ "HAVE_EBP_AVAILABLE=0" ] +- } else { +- defines += [ "HAVE_EBP_AVAILABLE=1" ] +- } ++ defines += [ "HAVE_EBP_AVAILABLE=0" ] + } + + if (is_posix || is_fuchsia) { diff --git a/chromium-ffmpeg-r1.patch b/chromium-ffmpeg-r1.patch deleted file mode 100644 index 53d61e8..0000000 --- a/chromium-ffmpeg-r1.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- a/build/linux/unbundle/ffmpeg.gn -+++ b/build/linux/unbundle/ffmpeg.gn -@@ -14,8 +14,8 @@ pkg_config("system_ffmpeg") { - ] - } - --buildflag_header("ffmpeg_buildflags") { -- header = "ffmpeg_buildflags.h" -+buildflag_header("ffmpeg_features") { -+ header = "ffmpeg_features.h" - flags = [ "USE_SYSTEM_FFMPEG=true" ] - } - -@@ -30,7 +30,7 @@ shim_headers("ffmpeg_shim") { - - source_set("ffmpeg") { - deps = [ -- ":ffmpeg_buildflags", -+ ":ffmpeg_features", - ":ffmpeg_shim", - ] - public_configs = [ ":system_ffmpeg" ] diff --git a/chromium-vaapi-r19.patch b/chromium-vaapi-r20.patch similarity index 82% rename from chromium-vaapi-r19.patch rename to chromium-vaapi-r20.patch index 9d94843..96a58c1 100644 --- a/chromium-vaapi-r19.patch +++ b/chromium-vaapi-r20.patch @@ -36,7 +36,7 @@ Signed-off-by: Daniel Charles --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -1277,12 +1277,14 @@ const FeatureEntry kFeatureEntries[] = { +@@ -1273,12 +1273,14 @@ const FeatureEntry kFeatureEntries[] = { {"ui-disable-partial-swap", flag_descriptions::kUiPartialSwapName, flag_descriptions::kUiPartialSwapDescription, kOsAll, SINGLE_DISABLE_VALUE_TYPE(switches::kUIDisablePartialSwap)}, @@ -51,7 +51,7 @@ Signed-off-by: Daniel Charles {"enable-webrtc-hw-h264-encoding", flag_descriptions::kWebrtcHwH264EncodingName, flag_descriptions::kWebrtcHwH264EncodingDescription, kOsAndroid | kOsCrOS, -@@ -1611,6 +1613,13 @@ const FeatureEntry kFeatureEntries[] = { +@@ -1647,6 +1649,13 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kShowTouchHudDescription, kOsCrOS, SINGLE_VALUE_TYPE(ash::switches::kAshTouchHud)}, #endif // OS_CHROMEOS @@ -65,7 +65,7 @@ Signed-off-by: Daniel Charles { "disable-accelerated-video-decode", flag_descriptions::kAcceleratedVideoDecodeName, -@@ -1618,6 +1627,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -1654,6 +1663,7 @@ const FeatureEntry kFeatureEntries[] = { kOsMac | kOsWin | kOsCrOS | kOsAndroid, SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode), }, @@ -73,7 +73,7 @@ Signed-off-by: Daniel Charles #if defined(OS_WIN) {"enable-hdr", flag_descriptions::kEnableHDRName, flag_descriptions::kEnableHDRDescription, kOsWin, -@@ -2296,12 +2306,17 @@ const FeatureEntry kFeatureEntries[] = { +@@ -2326,12 +2336,17 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(features::kOpenVR)}, #endif // ENABLE_OPENVR #endif // ENABLE_VR @@ -118,10 +118,10 @@ Signed-off-by: Daniel Charles ::switches::kDisableBlinkFeatures, ::switches::kDisableCastStreamingHWEncoding, ::switches::kDisableGpu, -@@ -159,8 +165,10 @@ void DeriveCommandLine(const GURL& start - ::switches::kDisableWebGLImageChromium, +@@ -160,8 +166,10 @@ void DeriveCommandLine(const GURL& start ::switches::kEnableWebGLImageChromium, ::switches::kEnableWebVR, + ::switches::kEnableUnsafeWebGPU, +#if (defined(OS_CHROMEOS) || defined(OS_ANDROID)) ::switches::kDisableWebRtcHWDecoding, ::switches::kDisableWebRtcHWEncoding, @@ -145,7 +145,7 @@ Signed-off-by: Daniel Charles const char kAcceleratedVideoDecodeName[] = "Hardware-accelerated video decode"; const char kAcceleratedVideoDecodeDescription[] = "Hardware-accelerated video decode where available."; -@@ -1845,6 +1852,7 @@ const char kWebrtcEchoCanceller3Name[] = +@@ -1986,6 +1993,7 @@ const char kWebrtcEchoCanceller3Name[] = const char kWebrtcEchoCanceller3Description[] = "Experimental WebRTC echo canceller (AEC3)."; @@ -153,7 +153,7 @@ Signed-off-by: Daniel Charles const char kWebrtcHwDecodingName[] = "WebRTC hardware video decoding"; const char kWebrtcHwDecodingDescription[] = "Support in WebRTC for decoding video streams using platform hardware."; -@@ -1852,6 +1860,7 @@ const char kWebrtcHwDecodingDescription[ +@@ -1993,6 +2001,7 @@ const char kWebrtcHwDecodingDescription[ const char kWebrtcHwEncodingName[] = "WebRTC hardware video encoding"; const char kWebrtcHwEncodingDescription[] = "Support in WebRTC for encoding video streams using platform hardware."; @@ -161,7 +161,7 @@ Signed-off-by: Daniel Charles const char kWebrtcHwH264EncodingName[] = "WebRTC hardware h264 video encoding"; const char kWebrtcHwH264EncodingDescription[] = -@@ -2659,14 +2668,16 @@ const char kTabStripKeyboardFocusDescrip +@@ -2892,14 +2901,16 @@ const char kTabStripKeyboardFocusDescrip // Chrome OS ------------------------------------------------------------------- @@ -192,7 +192,7 @@ Signed-off-by: Daniel Charles extern const char kAcceleratedVideoDecodeName[]; extern const char kAcceleratedVideoDecodeDescription[]; -@@ -1627,13 +1631,17 @@ extern const char kPermissionPromptPersi +@@ -1762,13 +1766,17 @@ extern const char kPermissionPromptPersi #endif // defined(OS_MACOSX) @@ -229,10 +229,10 @@ Signed-off-by: Daniel Charles true, true}, --- a/content/browser/gpu/gpu_process_host.cc +++ b/content/browser/gpu/gpu_process_host.cc -@@ -185,7 +185,9 @@ static const char* const kSwitchNames[] - switches::kDisableGLExtensions, +@@ -209,7 +209,9 @@ static const char* const kSwitchNames[] switches::kDisableLogging, switches::kDisableShaderNameHashing, + switches::kDisableSkiaRuntimeOpts, +#if !defined(OS_LINUX) switches::kDisableWebRtcHWEncoding, +#endif @@ -241,7 +241,7 @@ Signed-off-by: Daniel Charles #endif --- a/content/browser/renderer_host/media/video_capture_browsertest.cc +++ b/content/browser/renderer_host/media/video_capture_browsertest.cc -@@ -163,8 +163,13 @@ class VideoCaptureBrowserTest : public C +@@ -165,8 +165,13 @@ class VideoCaptureBrowserTest : public C base::CommandLine::ForCurrentProcess()->AppendSwitch( switches::kUseFakeJpegDecodeAccelerator); } else { @@ -255,37 +255,9 @@ Signed-off-by: Daniel Charles } } ---- a/content/browser/renderer_host/media/video_capture_gpu_jpeg_decoder.cc -+++ b/content/browser/renderer_host/media/video_capture_gpu_jpeg_decoder.cc -@@ -66,15 +66,21 @@ void VideoCaptureGpuJpegDecoder::Initial - bool is_platform_supported = - base::CommandLine::ForCurrentProcess()->HasSwitch( - switches::kUseFakeJpegDecodeAccelerator); --#if defined(OS_CHROMEOS) -- // Non-ChromeOS platforms do not support HW JPEG decode now. Do not establish -- // gpu channel to avoid introducing overhead. -+#if !defined(OS_ANDROID) && defined(OS_LINUX) -+ // Non-ChromeOS or Non-Linux platforms do not support HW JPEG decode now. Do -+ // not establish gpu channel to avoid introducing overhead. - is_platform_supported = true; - #endif - - if (!is_platform_supported || -+#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID) -+ !base::CommandLine::ForCurrentProcess()->HasSwitch( -+ switches::kEnableAcceleratedMjpegDecode) -+#else - base::CommandLine::ForCurrentProcess()->HasSwitch( -- switches::kDisableAcceleratedMjpegDecode)) { -+ switches::kDisableAcceleratedMjpegDecode) -+#endif -+ ) { - decoder_status_ = FAILED; - RecordInitDecodeUMA_Locked(); - return; --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -2691,7 +2691,11 @@ void RenderProcessHostImpl::PropagateBro +@@ -2799,7 +2799,11 @@ void RenderProcessHostImpl::PropagateBro switches::kDefaultTileHeight, switches::kDisable2dCanvasImageChromium, switches::kDisableAcceleratedJpegDecoding, @@ -297,7 +269,7 @@ Signed-off-by: Daniel Charles switches::kDisableBackgroundTasks, switches::kDisableBackgroundTimerThrottling, switches::kDisableBreakpad, -@@ -2825,8 +2829,10 @@ void RenderProcessHostImpl::PropagateBro +@@ -2936,8 +2940,10 @@ void RenderProcessHostImpl::PropagateBro #if BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION) switches::kDisableMojoRenderer, #endif @@ -326,7 +298,7 @@ Signed-off-by: Daniel Charles private: --- a/content/gpu/BUILD.gn +++ b/content/gpu/BUILD.gn -@@ -134,4 +134,8 @@ target(link_target_type, "gpu_sources") +@@ -133,4 +133,8 @@ target(link_target_type, "gpu_sources") (!is_chromecast || is_cast_desktop_build)) { configs += [ "//build/config/linux/dri" ] } @@ -337,7 +309,7 @@ Signed-off-by: Daniel Charles } --- a/content/gpu/gpu_main.cc +++ b/content/gpu/gpu_main.cc -@@ -286,7 +286,7 @@ int GpuMain(const MainFunctionParams& pa +@@ -284,7 +284,7 @@ int GpuMain(const MainFunctionParams& pa base::PlatformThread::SetName("CrGpuMain"); @@ -346,7 +318,7 @@ Signed-off-by: Daniel Charles // Set thread priority before sandbox initialization. base::PlatformThread::SetCurrentThreadPriority(base::ThreadPriority::DISPLAY); #endif -@@ -315,7 +315,7 @@ int GpuMain(const MainFunctionParams& pa +@@ -317,7 +317,7 @@ int GpuMain(const MainFunctionParams& pa GetContentClient()->SetGpuInfo(gpu_init->gpu_info()); base::ThreadPriority io_thread_priority = base::ThreadPriority::NORMAL; @@ -357,7 +329,7 @@ Signed-off-by: Daniel Charles --- a/content/public/browser/gpu_utils.cc +++ b/content/public/browser/gpu_utils.cc -@@ -58,9 +58,17 @@ const gpu::GpuPreferences GetGpuPreferen +@@ -57,9 +57,17 @@ const gpu::GpuPreferences GetGpuPreferen gpu_preferences.in_process_gpu = command_line->HasSwitch(switches::kInProcessGPU); gpu_preferences.disable_accelerated_video_decode = @@ -377,20 +349,9 @@ Signed-off-by: Daniel Charles gpu::GpuPreferences::VPX_VENDOR_MICROSOFT; --- a/content/public/common/content_switches.cc +++ b/content/public/common/content_switches.cc -@@ -78,12 +78,21 @@ const char kDisable3DAPIs[] - +@@ -79,6 +79,11 @@ const char kDisable3DAPIs[] // Disable gpu-accelerated 2d canvas. const char kDisableAccelerated2dCanvas[] = "disable-accelerated-2d-canvas"; -- -+#if defined(OS_LINUX) && !defined(OS_CHROMEOS) -+// Enable hardware accelerated mjpeg decode on linux -+const char kEnableAcceleratedMjpegDecode[] = "enable-accelerated-mjpeg-decode"; -+#else - // Disable hardware acceleration of mjpeg decode for captured frame, where - // available. - const char kDisableAcceleratedMjpegDecode[] = - "disable-accelerated-mjpeg-decode"; -+#endif +#if defined(OS_LINUX) +// Enables hardware acceleration of video for Linux only. VA-API driver @@ -400,7 +361,7 @@ Signed-off-by: Daniel Charles // Disables hardware acceleration of video decode, where available. const char kDisableAcceleratedVideoDecode[] = "disable-accelerated-video-decode"; -@@ -856,11 +865,13 @@ const char kWaitForDebuggerChildren[] +@@ -868,11 +873,13 @@ const char kWaitForDebuggerChildren[] // ignores this switch on its stable and beta channels. const char kDisableWebRtcEncryption[] = "disable-webrtc-encryption"; @@ -416,29 +377,17 @@ Signed-off-by: Daniel Charles // See https://tools.ietf.org/html/rfc7714 for further information. --- a/content/public/common/content_switches.h +++ b/content/public/common/content_switches.h -@@ -33,7 +33,11 @@ CONTENT_EXPORT extern const char kDisabl - CONTENT_EXPORT extern const char kDisable3DAPIs[]; - CONTENT_EXPORT extern const char kDisableAccelerated2dCanvas[]; - CONTENT_EXPORT extern const char kDisableAcceleratedJpegDecoding[]; -+#if defined(OS_LINUX) && !defined(OS_CHROMEOS) -+CONTENT_EXPORT extern const char kEnableAcceleratedMjpegDecode[]; -+#else - CONTENT_EXPORT extern const char kDisableAcceleratedMjpegDecode[]; -+#endif - CONTENT_EXPORT extern const char kDisableAcceleratedVideoDecode[]; - CONTENT_EXPORT extern const char kDisableAcceleratedVideoEncode[]; - CONTENT_EXPORT extern const char kDisableAudioSupportForDesktopShare[]; -@@ -105,6 +109,9 @@ CONTENT_EXPORT extern const char kDisabl +@@ -104,6 +104,9 @@ CONTENT_EXPORT extern const char kDisabl CONTENT_EXPORT extern const char kDomAutomationController[]; extern const char kDisable2dCanvasClipAntialiasing[]; CONTENT_EXPORT extern const char kDumpBlinkRuntimeCallStats[]; +#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID) +CONTENT_EXPORT extern const char kEnableAcceleratedVideo[]; +#endif + CONTENT_EXPORT extern const char kEnableAccessibilityObjectModel[]; CONTENT_EXPORT extern const char kEnableAggressiveDOMStorageFlushing[]; CONTENT_EXPORT extern const char kEnableAutomation[]; - CONTENT_EXPORT extern const char kEnablePreferCompositingToLCDText[]; -@@ -237,8 +244,10 @@ CONTENT_EXPORT extern const char kValida +@@ -241,8 +244,10 @@ CONTENT_EXPORT extern const char kValida CONTENT_EXPORT extern const char kWaitForDebuggerChildren[]; CONTENT_EXPORT extern const char kDisableWebRtcEncryption[]; @@ -472,8 +421,8 @@ Signed-off-by: Daniel Charles --- a/content/renderer/render_thread_impl.cc +++ b/content/renderer/render_thread_impl.cc -@@ -1479,7 +1479,11 @@ media::GpuVideoAcceleratorFactories* Ren - kGpuStreamIdMedia, kGpuStreamPriorityMedia); +@@ -1441,7 +1441,11 @@ media::GpuVideoAcceleratorFactories* Ren + kGpuStreamPriorityMedia); const bool enable_video_accelerator = +#if defined(OS_LINUX) && !defined(OS_CHROMEOS) @@ -506,7 +455,7 @@ Signed-off-by: Daniel Charles "cr_bugs": [145531, 332596, 571899, 629434], --- a/media/gpu/BUILD.gn +++ b/media/gpu/BUILD.gn -@@ -500,6 +500,14 @@ if (use_v4l2_codec || use_vaapi || is_ma +@@ -495,6 +495,14 @@ if (use_v4l2_codec || use_vaapi || is_ma } } @@ -521,7 +470,7 @@ Signed-off-by: Daniel Charles if (use_vaapi) { test("jpeg_encode_accelerator_unittest") { deps = [ -@@ -558,6 +566,10 @@ if (use_v4l2_codec || use_vaapi) { +@@ -559,6 +567,10 @@ if (use_v4l2_codec || use_vaapi) { if (use_ozone) { deps += [ "//ui/ozone" ] } @@ -532,3 +481,85 @@ Signed-off-by: Daniel Charles } } +--- a/media/base/media_switches.cc ++++ b/media/base/media_switches.cc +@@ -117,10 +117,15 @@ const char kUseFileForFakeAudioCapture[] + // accelerator hardware to be present. + const char kUseFakeJpegDecodeAccelerator[] = "use-fake-jpeg-decode-accelerator"; + ++#if defined(OS_LINUX) && !defined(OS_CHROMEOS) ++// Enable hardware accelerated mjpeg decode on linux ++const char kEnableAcceleratedMjpegDecode[] = "enable-accelerated-mjpeg-decode"; ++#else + // Disable hardware acceleration of mjpeg decode for captured frame, where + // available. + const char kDisableAcceleratedMjpegDecode[] = + "disable-accelerated-mjpeg-decode"; ++#endif + + // When running tests on a system without the required hardware or libraries, + // this flag will cause the tests to fail. Otherwise, they silently succeed. +@@ -462,15 +467,22 @@ const base::Feature kPreloadMediaEngagem + #endif + + bool IsVideoCaptureAcceleratedJpegDecodingEnabled() { ++ ++#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID) ++ if (!base::CommandLine::ForCurrentProcess()->HasSwitch( ++ switches::kEnableAcceleratedMjpegDecode) ++#else + if (base::CommandLine::ForCurrentProcess()->HasSwitch( +- switches::kDisableAcceleratedMjpegDecode)) { ++ switches::kDisableAcceleratedMjpegDecode) ++#endif ++ ) { + return false; + } + if (base::CommandLine::ForCurrentProcess()->HasSwitch( + switches::kUseFakeJpegDecodeAccelerator)) { + return true; + } +-#if defined(OS_CHROMEOS) ++#if !defined(OS_ANDROID) && defined(OS_LINUX) + return true; + #endif + return false; +--- a/media/base/media_switches.h ++++ b/media/base/media_switches.h +@@ -66,7 +66,11 @@ MEDIA_EXPORT extern const char kUseFakeD + MEDIA_EXPORT extern const char kUseFileForFakeVideoCapture[]; + MEDIA_EXPORT extern const char kUseFileForFakeAudioCapture[]; + MEDIA_EXPORT extern const char kUseFakeJpegDecodeAccelerator[]; ++#if defined(OS_LINUX) && !defined(OS_CHROMEOS) ++MEDIA_EXPORT extern const char kEnableAcceleratedMjpegDecode[]; ++#else + MEDIA_EXPORT extern const char kDisableAcceleratedMjpegDecode[]; ++#endif + + MEDIA_EXPORT extern const char kRequireAudioHardwareForTesting[]; + MEDIA_EXPORT extern const char kMuteAudio[]; +--- a/content/browser/utility_process_host.cc ++++ b/content/browser/utility_process_host.cc +@@ -296,7 +296,11 @@ bool UtilityProcessHost::StartProcess() + switches::kOverrideUseSoftwareGLForTests, + switches::kOverrideEnabledCdmInterfaceVersion, + switches::kProxyServer, ++#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID) ++ switches::kEnableAcceleratedMjpegDecode, ++#else + switches::kDisableAcceleratedMjpegDecode, ++#endif + switches::kUseFakeDeviceForMediaStream, + switches::kUseFakeJpegDecodeAccelerator, + switches::kUseFileForFakeVideoCapture, +--- chromium-69.0.3497.92.orig/media/gpu/vaapi/vaapi_jpeg_decode_accelerator.cc 2018-09-11 21:09:48.000000000 +0200 ++++ chromium-69.0.3497.92/media/gpu/vaapi/vaapi_jpeg_decode_accelerator.cc 2018-09-12 08:48:49.606320048 +0200 +@@ -174,7 +174,7 @@ bool VaapiJpegDecodeAccelerator::OutputP + + VAImage image = {}; + VAImageFormat format = {}; +- format.fourcc = VA_FOURCC_I420; ++ format.fourcc = libyuv::FOURCC_I420; + format.byte_order = VA_LSB_FIRST; + format.bits_per_pixel = 12; // 12 for I420 +