diff --git a/desktop/gnome/base/accountsservice/pspec.xml b/desktop/gnome/base/accountsservice/pspec.xml
index 6d5c89936c..30867d53fd 100644
--- a/desktop/gnome/base/accountsservice/pspec.xml
+++ b/desktop/gnome/base/accountsservice/pspec.xml
@@ -12,7 +12,7 @@
library
D-Bus Service to Manipulate User Account Information
accountsservice server provides a set of D-Bus interfaces for querying and manipulating user account information.
- https://www.freedesktop.org/software/accountsservice/accountsservice-0.6.50.tar.xz
+ https://www.freedesktop.org/software/accountsservice/accountsservice-0.6.55.tar.xz
intltool
gtk-doc
diff --git a/network/web/chromium-browser_1/actions.py b/network/web/chromium-browser_1/actions.py
new file mode 100644
index 0000000000..80a547940f
--- /dev/null
+++ b/network/web/chromium-browser_1/actions.py
@@ -0,0 +1,81 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+#
+# Licensed under the GNU General Public License, version 3.
+# See the file http://www.gnu.org/licenses/gpl.txt
+
+from pisi.actionsapi import autotools
+from pisi.actionsapi import pisitools
+from pisi.actionsapi import shelltools
+from pisi.actionsapi import get
+
+WorkDir = "chromium-%s" % get.srcVERSION()
+
+shelltools.export("HOME", get.workDIR())
+
+ARCH = "x64"
+
+def setup():
+ shelltools.export("LC_ALL", "C")
+ shelltools.system("mkdir -p third_party/node/linux/node-linux-x64/bin")
+ shelltools.system("ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/")
+
+ for LIB in ["flac", "harfbuzz-ng" "libwebp" ,"libxslt", "yasm"]:
+ shelltools.system('find -type f -path "*third_party/$LIB/*" \! -path "*third_party/$LIB/chromium/*" \! -path "*third_party/$LIB/google/*" \! -regex ".*\.\(gn\|gni\|isolate\|py\)" -delete')
+
+ shelltools.system("build/linux/unbundle/replace_gn_files.py --system-libraries flac harfbuzz-ng libwebp libxslt yasm")
+
+ opt = 'use_sysroot=false \
+ is_clang=false enable_nacl=false \
+ fieldtrial_testing_like_official_build=true \
+ clang_use_chrome_plugins=false \
+ fatal_linker_warnings=false \
+ treat_warnings_as_errors=false \
+ use_gnome_keyring=false\
+ use_gold=false \
+ enable_hangout_services_extension=true \
+ enable_widevine=true \
+ linux_use_bundled_binutils=false \
+ is_debug=false \
+ ffmpeg_branding="Chrome" \
+ google_default_client_secret="0ZChLK6AxeA3Isu96MkwqDR4" \
+ google_api_key="AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM" \
+ google_default_client_id="413772536636.apps.googleusercontent.com" \
+ remove_webcore_debug_symbols=true \
+ proprietary_codecs=true \
+ link_pulseaudio=true \
+ use_custom_libcxx=false \
+ enable_swiftshader=false'
+
+ shelltools.system("tools/gn/bootstrap/bootstrap.py --gn-gen-args '%s'"% opt)
+ shelltools.system("out/Release/gn gen out/Release --args='%s'"% opt)
+
+
+def build():
+ #Sandbox for error must remain separate
+ shelltools.system("ninja -C out/Release chrome")
+ shelltools.system("ninja -C out/Release chrome_sandbox")
+ shelltools.system("ninja -C out/Release chromedriver")
+ shelltools.system("ninja -C out/Release widevinecdmadapter")
+
+def install():
+ shelltools.cd("out/Release")
+
+ #should be checked should for the missing folder "out/Release"
+ for vla in ["*.pak", "*.json", "chrome", "locales", "resources", "icudtl.dat", "mksnapshot", "chromedriver", "natives_blob.bin", "snapshot_blob.bin", "character_data_generator"]:
+ pisitools.insinto("/usr/lib/chromium-browser", "%s" % vla)
+
+ pisitools.insinto("/usr/lib/chromium-browser", "chrome_sandbox", "chrome-sandbox")
+ pisitools.dosym("/usr/lib/chromium-browser/chrome", "/usr/bin/chromium-browser")
+
+ shelltools.system("chmod -v 4755 %s/usr/lib/chromium-browser/chrome-sandbox" %get.installDIR())
+
+ pisitools.newman("chrome.1", "chromium-browser.1")
+
+ shelltools.cd("../..")
+ for size in ["22", "24", "48", "64", "128", "256"]:
+ pisitools.insinto("/usr/share/icons/hicolor/%sx%s/apps" %(size, size), "chrome/app/theme/chromium/product_logo_%s.png" % size, "chromium-browser.png")
+
+ pisitools.dosym("/usr/share/icons/hicolor/256x256/apps/chromium-browser.png", "/usr/share/pixmaps/chromium-browser.png")
+
+ pisitools.dodoc("LICENSE")
diff --git a/network/web/chromium-browser_1/files/chromium-browser.desktop b/network/web/chromium-browser_1/files/chromium-browser.desktop
new file mode 100644
index 0000000000..795b084894
--- /dev/null
+++ b/network/web/chromium-browser_1/files/chromium-browser.desktop
@@ -0,0 +1,114 @@
+#!/usr/bin/env xdg-open
+[Desktop Entry]
+Version=1.0
+Encoding=UTF-8
+Name=Chromium Browser
+GenericName=Web Browser
+GenericName[ar]=متصفح الشبكة
+GenericName[bg]=Уеб браузър
+GenericName[ca]=Navegador web
+GenericName[cs]=WWW prohlížeč
+GenericName[da]=Browser
+GenericName[de]=Web-Browser
+GenericName[el]=Περιηγητής ιστού
+GenericName[en_GB]=Web Browser
+GenericName[es]=Navegador web
+GenericName[et]=Veebibrauser
+GenericName[fi]=WWW-selain
+GenericName[fr]=Navigateur Web
+GenericName[gu]=વેબ બ્રાઉઝર
+GenericName[he]=דפדפן אינטרנט
+GenericName[hi]=वेब ब्राउज़र
+GenericName[hu]=Webböngésző
+GenericName[it]=Browser Web
+GenericName[ja]=ウェブブラウザ
+GenericName[kn]=ಜಾಲ ವೀಕ್ಷಕ
+GenericName[ko]=웹 브라우저
+GenericName[lt]=Žiniatinklio naršyklė
+GenericName[lv]=Tīmekļa pārlūks
+GenericName[ml]=വെബ് ബ്രൌസര്
+GenericName[mr]=वेब ब्राऊजर
+GenericName[nb]=Nettleser
+GenericName[nl]=Webbrowser
+GenericName[pl]=Przeglądarka WWW
+GenericName[pt]=Navegador Web
+GenericName[pt_BR]=Navegador da Internet
+GenericName[ro]=Navigator de Internet
+GenericName[ru]=Веб-браузер
+GenericName[sl]=Spletni brskalnik
+GenericName[sv]=Webbläsare
+GenericName[ta]=இணைய உலாவி
+GenericName[th]=เว็บเบราว์เซอร์
+GenericName[tr]=Web Tarayıcı
+GenericName[uk]=Навігатор Тенет
+GenericName[zh_CN]=网页浏览器
+GenericName[zh_HK]=網頁瀏覽器
+GenericName[zh_TW]=網頁瀏覽器
+GenericName[bn]=ওয়েব ব্রাউজার
+GenericName[fil]=Web Browser
+GenericName[hr]=Web preglednik
+GenericName[id]=Browser Web
+GenericName[or]=ଓ୍ବେବ ବ୍ରାଉଜର
+GenericName[sk]=WWW prehliadač
+GenericName[sr]=Интернет прегледник
+GenericName[te]=మహాతల అన్వేషి
+GenericName[vi]=Bộ duyệt Web
+Comment=Access the Internet
+Comment[ar]=الدخول إلى الإنترنت
+Comment[bg]=Достъп до интернет
+Comment[bn]=ইন্টারনেটটি অ্যাক্সেস করুন
+Comment[ca]=Accedeix a Internet
+Comment[cs]=Přístup k internetu
+Comment[da]=Få adgang til internettet
+Comment[de]=Internetzugriff
+Comment[el]=Πρόσβαση στο Διαδίκτυο
+Comment[en_GB]=Access the Internet
+Comment[es]=Accede a Internet.
+Comment[et]=Pääs Internetti
+Comment[fi]=Käytä internetiä
+Comment[fil]=I-access ang Internet
+Comment[fr]=Accéder à Internet
+Comment[gu]=ઇંટરનેટ ઍક્સેસ કરો
+Comment[he]=גישה אל האינטרנט
+Comment[hi]=इंटरनेट तक पहुंच स्थापित करें
+Comment[hr]=Pristup Internetu
+Comment[hu]=Internetelérés
+Comment[id]=Akses Internet
+Comment[it]=Accesso a Internet
+Comment[ja]=インターネットにアクセス
+Comment[kn]=ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ
+Comment[ko]=인터넷 연결
+Comment[lt]=Interneto prieiga
+Comment[lv]=Piekļūt internetam
+Comment[ml]=ഇന്റര്നെറ്റ് ആക്സസ് ചെയ്യുക
+Comment[mr]=इंटरनेटमध्ये प्रवेश करा
+Comment[nb]=Gå til Internett
+Comment[nl]=Verbinding maken met internet
+Comment[or]=ଇଣ୍ଟର୍ନେଟ୍ ପ୍ରବେଶ କରନ୍ତୁ
+Comment[pl]=Skorzystaj z internetu
+Comment[pt]=Aceder à Internet
+Comment[pt_BR]=Acessar a internet
+Comment[ro]=Accesaţi Internetul
+Comment[ru]=Доступ в Интернет
+Comment[sk]=Prístup do siete Internet
+Comment[sl]=Dostop do interneta
+Comment[sr]=Приступите Интернету
+Comment[sv]=Gå ut på Internet
+Comment[ta]=இணையத்தை அணுகுதல்
+Comment[te]=ఇంటర్నెట్ను ఆక్సెస్ చెయ్యండి
+Comment[th]=เข้าถึงอินเทอร์เน็ต
+Comment[tr]=İnternet'e erişin
+Comment[uk]=Доступ до Інтернету
+Comment[vi]=Truy cập Internet
+Comment[zh_CN]=访问互联网
+Comment[zh_HK]=連線到網際網路
+Comment[zh_TW]=連線到網際網路
+Exec=chromium-browser %U --ppapi-flash-path=/usr/lib/chromium-browser/PepperFlash/libpepflashplayer.so --ppapi-flash-version=$version
+Terminal=false
+Icon=chromium-browser
+Type=Application
+Categories=Application;Network;
+MimeType=text/html;text/xml;application/xhtml_xml;
+StartupWMClass=Chromium
+StartupNotify=true
+
diff --git a/network/web/chromium-browser_1/files/chromium-compiler-r4.patch b/network/web/chromium-browser_1/files/chromium-compiler-r4.patch
new file mode 100644
index 0000000000..3fe73ef7fe
--- /dev/null
+++ b/network/web/chromium-browser_1/files/chromium-compiler-r4.patch
@@ -0,0 +1,168 @@
+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
+
+---
+ build/config/compiler/BUILD.gn | 61 ++++++++++------------------------
+ 1 file changed, 18 insertions(+), 43 deletions(-)
+
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 6e38ad782d38..87bbd423f67f 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -225,8 +225,6 @@ config("compiler") {
+
+ configs += [
+ # See the definitions below.
+- ":clang_revision",
+- ":compiler_cpu_abi",
+ ":compiler_codegen",
+ ]
+
+@@ -488,18 +486,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.
+@@ -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",
+ ]
+ }
+ }
+@@ -1518,22 +1500,6 @@ config("chromium_code") {
+ "__STDC_FORMAT_MACROS",
+ ]
+
+- if (!is_debug && !using_sanitizer &&
+- (!is_linux || !is_clang || is_official_build) &&
+- current_cpu != "s390x" && current_cpu != "s390" &&
+- current_cpu != "ppc64" && current_cpu != "ppc64" &&
+- current_cpu != "mips" && current_cpu != "mips64") {
+- # _FORTIFY_SOURCE isn't really supported by Clang now, see
+- # http://llvm.org/bugs/show_bug.cgi?id=16821.
+- # It seems to work fine with Ubuntu 12 headers though, so use it in
+- # official builds.
+- #
+- # Non-chromium code is not guaranteed to compile cleanly with
+- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+- # disabled, so only do that for Release build.
+- defines += [ "_FORTIFY_SOURCE=2" ]
+- }
+-
+ if (is_mac || is_ios) {
+ cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+ cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -1863,7 +1829,8 @@ config("default_stack_frames") {
+ }
+
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+ if (is_win) {
+ # TODO(thakis): Remove is_clang here, https://crbug.com/598772
+ if (is_official_build && full_wpo_on_official && !is_clang) {
+@@ -1897,7 +1864,8 @@ config("optimize") {
+ }
+
+ # Same config as 'optimize' but without the WPO flag.
+-config("optimize_no_wpo") {
++config("optimize_no_wpo") { }
++config("xoptimize_no_wpo") {
+ 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.
+@@ -1920,7 +1888,8 @@ config("optimize_no_wpo") {
+ }
+
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+ if (is_win) {
+ cflags = [
+ "/Od", # Disable optimization.
+@@ -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.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -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.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2029,7 +2000,8 @@ config("optimize_speed") {
+ }
+ }
+
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+ cflags = [ "-O1" ] + common_optimize_on_cflags
+ ldflags = common_optimize_on_ldflags
+ visibility = [ ":default_optimization" ]
+@@ -2115,7 +2087,8 @@ config("afdo") {
+ # configs += [ "//build/config/compiler:symbols" ]
+
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+ if (is_win) {
+ if (use_goma || is_clang) {
+ # Note that with VC++ this requires is_win_fastlink, enforced elsewhere.
+@@ -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.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+ if (is_win) {
+ # Linker symbols for backtraces only.
+ cflags = []
+@@ -2244,7 +2218,8 @@ config("minimal_symbols") {
+ }
+
+ # No symbols.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+ if (!is_win) {
+ cflags = [ "-g0" ]
+ asmflags = cflags
+--
+2.18.0
+
diff --git a/network/web/chromium-browser_1/files/chromium-skia-harmony.patch b/network/web/chromium-browser_1/files/chromium-skia-harmony.patch
new file mode 100644
index 0000000000..68e416d067
--- /dev/null
+++ b/network/web/chromium-browser_1/files/chromium-skia-harmony.patch
@@ -0,0 +1,78 @@
+diff -Nuar a/third_party/skia/src/ports/SkFontHost_FreeType.cpp b/third_party/skia/src/ports/SkFontHost_FreeType.cpp
+--- a/third_party/skia/src/ports/SkFontHost_FreeType.cpp 2018-09-04 22:11:58.000000000 +0300
++++ b/third_party/skia/src/ports/SkFontHost_FreeType.cpp 2018-09-11 23:05:41.613517599 +0300
+@@ -112,8 +112,6 @@
+ : fGetVarDesignCoordinates(nullptr)
+ , fGetVarAxisFlags(nullptr)
+ , fLibrary(nullptr)
+- , fIsLCDSupported(false)
+- , fLCDExtra(0)
+ {
+ if (FT_New_Library(&gFTMemory, &fLibrary)) {
+ return;
+@@ -173,12 +171,7 @@
+ }
+ #endif
+
+- // Setup LCD filtering. This reduces color fringes for LCD smoothed glyphs.
+- // The default has changed over time, so this doesn't mean the same thing to all users.
+- if (FT_Library_SetLcdFilter(fLibrary, FT_LCD_FILTER_DEFAULT) == 0) {
+- fIsLCDSupported = true;
+- fLCDExtra = 2; //Using a filter adds one full pixel to each side.
+- }
++ FT_Library_SetLcdFilter(fLibrary, FT_LCD_FILTER_DEFAULT);
+ }
+ ~FreeTypeLibrary() {
+ if (fLibrary) {
+@@ -187,8 +180,6 @@
+ }
+
+ FT_Library library() { return fLibrary; }
+- bool isLCDSupported() { return fIsLCDSupported; }
+- int lcdExtra() { return fLCDExtra; }
+
+ // FT_Get_{MM,Var}_{Blend,Design}_Coordinates were added in FreeType 2.7.1.
+ // Prior to this there was no way to get the coordinates out of the FT_Face.
+@@ -205,8 +196,6 @@
+
+ private:
+ FT_Library fLibrary;
+- bool fIsLCDSupported;
+- int fLCDExtra;
+
+ // FT_Library_SetLcdFilterWeights was introduced in FreeType 2.4.0.
+ // The following platforms provide FreeType of at least 2.4.0.
+@@ -704,17 +693,6 @@
+ rec->fTextSize = SkIntToScalar(1 << 14);
+ }
+
+- if (isLCD(*rec)) {
+- // TODO: re-work so that FreeType is set-up and selected by the SkFontMgr.
+- SkAutoMutexAcquire ama(gFTMutex);
+- ref_ft_library();
+- if (!gFTLibrary->isLCDSupported()) {
+- // If the runtime Freetype library doesn't support LCD, disable it here.
+- rec->fMaskFormat = SkMask::kA8_Format;
+- }
+- unref_ft_library();
+- }
+-
+ SkPaint::Hinting h = rec->getHinting();
+ if (SkPaint::kFull_Hinting == h && !isLCD(*rec)) {
+ // collapse full->normal hinting if we're not doing LCD
+@@ -1109,11 +1087,11 @@
+ void SkScalerContext_FreeType::updateGlyphIfLCD(SkGlyph* glyph) {
+ if (isLCD(fRec)) {
+ if (fLCDIsVert) {
+- glyph->fHeight += gFTLibrary->lcdExtra();
+- glyph->fTop -= gFTLibrary->lcdExtra() >> 1;
++ glyph->fHeight += 2;
++ glyph->fTop -= 1;
+ } else {
+- glyph->fWidth += gFTLibrary->lcdExtra();
+- glyph->fLeft -= gFTLibrary->lcdExtra() >> 1;
++ glyph->fWidth += 2;
++ glyph->fLeft -= 1;
+ }
+ }
+ }
diff --git a/network/web/chromium-browser_1/files/chromium-widevine-r2.patch b/network/web/chromium-browser_1/files/chromium-widevine-r2.patch
new file mode 100644
index 0000000000..5527f7f293
--- /dev/null
+++ b/network/web/chromium-browser_1/files/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/network/web/chromium-browser_1/files/fix-cfi-icall-failure-with-use_system_libjpeg-true.patch b/network/web/chromium-browser_1/files/fix-cfi-icall-failure-with-use_system_libjpeg-true.patch
new file mode 100644
index 0000000000..3c27898ed2
--- /dev/null
+++ b/network/web/chromium-browser_1/files/fix-cfi-icall-failure-with-use_system_libjpeg-true.patch
@@ -0,0 +1,52 @@
+From db82db1b609f30d144d45477f55697818bcd363c Mon Sep 17 00:00:00 2001
+From: Vlad Tsyrklevich
+Date: Tue, 31 Jul 2018 01:03:22 +0000
+Subject: [PATCH] Fix cfi-icall failure with use_system_libjpeg=true
+
+JPEGImageReader::AllocateSampleArray() can call the function pointer
+(*info_.mem->alloc_sarray) which can be set by the systems non-CFI
+enabled libjpeg DSO when chromium is built with use_system_libjpeg=true.
+Disable cfi-icall for that method.
+
+Bug: 866290
+Change-Id: I6d9bbf08c514d6d5f48ad34c3802c63419ed1223
+Reviewed-on: https://chromium-review.googlesource.com/1155927
+Reviewed-by: Kentaro Hara
+Commit-Queue: Vlad Tsyrklevich
+Cr-Commit-Position: refs/heads/master@{#579270}
+---
+ .../renderer/platform/image-decoders/jpeg/jpeg_image_decoder.cc | 2 +-
+ third_party/blink/renderer/platform/wtf/compiler.h | 2 ++
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/third_party/blink/renderer/platform/image-decoders/jpeg/jpeg_image_decoder.cc b/third_party/blink/renderer/platform/image-decoders/jpeg/jpeg_image_decoder.cc
+index a1e440f6eed5..fd4e72ba053c 100644
+--- a/third_party/blink/renderer/platform/image-decoders/jpeg/jpeg_image_decoder.cc
++++ b/third_party/blink/renderer/platform/image-decoders/jpeg/jpeg_image_decoder.cc
+@@ -643,7 +643,7 @@ class JPEGImageReader final {
+ IntSize UvSize() const { return uv_size_; }
+
+ private:
+- JSAMPARRAY AllocateSampleArray() {
++ NO_SANITIZE_CFI_ICALL JSAMPARRAY AllocateSampleArray() {
+ // Some output color spaces don't need the sample array: don't allocate in that
+ // case.
+ #if defined(TURBO_JPEG_RGB_SWIZZLE)
+diff --git a/third_party/blink/renderer/platform/wtf/compiler.h b/third_party/blink/renderer/platform/wtf/compiler.h
+index 51595afdc955..5225a70309d6 100644
+--- a/third_party/blink/renderer/platform/wtf/compiler.h
++++ b/third_party/blink/renderer/platform/wtf/compiler.h
+@@ -57,8 +57,10 @@
+ #if defined(__clang__)
+ #define NO_SANITIZE_UNRELATED_CAST \
+ __attribute__((no_sanitize("cfi-unrelated-cast", "vptr")))
++#define NO_SANITIZE_CFI_ICALL __attribute__((no_sanitize("cfi-icall")))
+ #else
+ #define NO_SANITIZE_UNRELATED_CAST
++#define NO_SANITIZE_CFI_ICALL
+ #endif
+
+ #endif /* WTF_Compiler_h */
+--
+2.18.0
+
diff --git a/network/web/chromium-browser_1/files/mageia/001-chromium-59-gcc5.patch b/network/web/chromium-browser_1/files/mageia/001-chromium-59-gcc5.patch
new file mode 100644
index 0000000000..a268f05b6a
--- /dev/null
+++ b/network/web/chromium-browser_1/files/mageia/001-chromium-59-gcc5.patch
@@ -0,0 +1,21 @@
+--- chromium-59.0.3071.86/third_party/swiftshader/src/Reactor/BUILD.gn.gcc-5 2017-06-05 21:04:23.000000000 +0200
++++ chromium-59.0.3071.86/third_party/swiftshader/src/Reactor/BUILD.gn 2017-06-10 18:13:09.946401226 +0200
+@@ -92,7 +92,7 @@
+ cflags += [ "-Wno-sign-compare" ]
+ }
+ }
+- } else if (is_linux || is_mac) {
++ } else if (is_clang && (is_linux || is_mac)) {
+ cflags += [ "-Wno-macro-redefined" ]
+ }
+
+--- chromium-59.0.3071.86/third_party/swiftshader/third_party/subzero/src/IceTargetLowering.cpp.gcc-5 2017-06-05 21:04:24.000000000 +0200
++++ chromium-59.0.3071.86/third_party/swiftshader/third_party/subzero/src/IceTargetLowering.cpp 2017-06-10 19:47:02.404476512 +0200
+@@ -48,6 +48,7 @@
+ // createTargetHeaderLowering(Ice::GlobalContext *);
+ // void staticInit(::Ice::GlobalContext *);
+ // }
++#undef SUBZERO_TARGET
+ #define SUBZERO_TARGET(X) \
+ namespace X { \
+ std::unique_ptr<::Ice::TargetLowering> \
diff --git a/network/web/chromium-browser_1/files/mageia/002-chromium-61-gcc5.patch b/network/web/chromium-browser_1/files/mageia/002-chromium-61-gcc5.patch
new file mode 100644
index 0000000000..91e27c32c2
--- /dev/null
+++ b/network/web/chromium-browser_1/files/mageia/002-chromium-61-gcc5.patch
@@ -0,0 +1,11 @@
+--- chromium-61.0.3163.59/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.bak 2017-08-23 21:08:14.000000000 +0200
++++ chromium-61.0.3163.59/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2017-08-29 13:07:50.789475942 +0200
+@@ -10,7 +10,7 @@
+
+ #include "modules/audio_processing/aec3/aec_state.h"
+
+-#include
++#include
+
+ #include
+ #include
diff --git a/network/web/chromium-browser_1/files/mageia/003-chromium-62-gcc5.patch b/network/web/chromium-browser_1/files/mageia/003-chromium-62-gcc5.patch
new file mode 100644
index 0000000000..9993b6ddfe
--- /dev/null
+++ b/network/web/chromium-browser_1/files/mageia/003-chromium-62-gcc5.patch
@@ -0,0 +1,11 @@
+--- chromium-62.0.3192.0/cc/paint/paint_op_reader.cc.enum 2017-08-22 21:04:38.000000000 +0200
++++ chromium-62.0.3192.0/cc/paint/paint_op_reader.cc 2017-08-30 19:19:41.082455143 +0200
+@@ -54,7 +54,7 @@
+
+ bool IsValidSkShaderTileMode(SkShader::TileMode mode) {
+ // When Skia adds Decal, update this (skbug.com/7638)
+- return mode <= SkShader::kMirror_TileMode;
++ return int(mode) <= SkShader::kMirror_TileMode;
+ }
+
+ bool IsValidPaintShaderScalingBehavior(PaintShader::ScalingBehavior behavior) {
diff --git a/network/web/chromium-browser_1/files/mageia/004-chromium-62-gcc7.patch b/network/web/chromium-browser_1/files/mageia/004-chromium-62-gcc7.patch
new file mode 100644
index 0000000000..31bf4ec2f3
--- /dev/null
+++ b/network/web/chromium-browser_1/files/mageia/004-chromium-62-gcc7.patch
@@ -0,0 +1,111 @@
+--- chromium-62.0.3192.0/third_party/webrtc/modules/video_processing/video_denoiser.cc.gcc7 2017-08-22 21:06:40.000000000 +0200
++++ chromium-62.0.3192.0/third_party/webrtc/modules/video_processing/video_denoiser.cc 2017-09-08 23:17:25.755051027 +0200
+@@ -183,7 +183,7 @@
+ // artifacts.
+ if (mb_filter_decision_[mb_index] != FILTER_BLOCK ||
+ IsTrailingBlock(moving_edge_, mb_row, mb_col) ||
+- (x_density_[mb_col] * y_density_[mb_row] &&
++ ((x_density_[mb_col] * y_density_[mb_row] != 0) &&
+ moving_object_[mb_row * mb_cols_ + mb_col])) {
+ // Copy y source.
+ filter_->CopyMem16x16(mb_src, stride_src, mb_dst, stride_dst);
+--- chromium-62.0.3192.0/extensions/common/permissions/settings_override_permission.cc.gcc7 2017-08-22 21:04:44.000000000 +0200
++++ chromium-62.0.3192.0/extensions/common/permissions/settings_override_permission.cc 2017-09-09 00:43:40.708568094 +0200
+@@ -43,7 +43,9 @@
+
+ bool SettingsOverrideAPIPermission::Equal(const APIPermission* rhs) const {
+ if (this != rhs)
++ {
+ CHECK_EQ(info(), rhs->info());
++ }
+ return true;
+ }
+
+--- chromium-62.0.3192.0/third_party/cacheinvalidation/src/google/cacheinvalidation/include/types.h.gcc7 2017-08-22 21:05:01.000000000 +0200
++++ chromium-62.0.3192.0/third_party/cacheinvalidation/src/google/cacheinvalidation/include/types.h 2017-09-09 00:47:09.190945226 +0200
+@@ -174,7 +174,7 @@
+ */
+ class ObjectId {
+ public:
+- ObjectId() : is_initialized_(false) {}
++ ObjectId() : is_initialized_(false), source_(0) {}
+
+ /* Creates an object id for the given source and name (the name is copied). */
+ ObjectId(int source, const string& name)
+--- chromium-62.0.3192.0/extensions/common/permissions/api_permission.cc.gcc7 2017-08-22 21:04:44.000000000 +0200
++++ chromium-62.0.3192.0/extensions/common/permissions/api_permission.cc 2017-09-09 01:26:10.983202025 +0200
+@@ -36,7 +36,9 @@
+
+ bool Equal(const APIPermission* rhs) const override {
+ if (this != rhs)
++ {
+ CHECK_EQ(info(), rhs->info());
++ }
+ return true;
+ }
+
+--- chromium-62.0.3192.0/content/browser/frame_host/navigation_controller_impl.cc.gcc7 2017-08-22 21:04:43.000000000 +0200
++++ chromium-62.0.3192.0/content/browser/frame_host/navigation_controller_impl.cc 2017-09-09 01:53:03.860647419 +0200
+@@ -980,7 +980,9 @@
+ // TODO(creis): This check won't pass for subframes until we create entries
+ // for subframe navigations.
+ if (!rfh->GetParent())
++ {
+ CHECK_EQ(active_entry->site_instance(), rfh->GetSiteInstance());
++ }
+
+ // Remember the bindings the renderer process has at this point, so that
+ // we do not grant this entry additional bindings if we come back to it.
+--- chromium-62.0.3192.0/content/browser/frame_host/navigator_impl.cc.gcc7 2017-08-22 21:04:43.000000000 +0200
++++ chromium-62.0.3192.0/content/browser/frame_host/navigator_impl.cc 2017-09-09 02:05:15.758922091 +0200
+@@ -411,11 +411,15 @@
+
+ // Make sure no code called via RFH::Navigate clears the pending entry.
+ if (is_pending_entry)
++ {
+ CHECK_EQ(nav_entry_id, controller_->GetPendingEntry()->GetUniqueID());
++ }
+
+ // Notify observers about navigation.
+ if (delegate_ && is_pending_entry)
++ {
+ delegate_->DidStartNavigationToPendingEntry(dest_url, reload_type);
++ }
+ }
+
+ void NavigatorImpl::RequestOpenURL(
+--- chromium-62.0.3192.0/content/browser/frame_host/render_frame_host_manager.cc.gcc7 2017-08-22 21:04:43.000000000 +0200
++++ chromium-62.0.3192.0/content/browser/frame_host/render_frame_host_manager.cc 2017-09-09 02:07:40.371353881 +0200
+@@ -1030,7 +1030,9 @@
+ // SiteInstance and the same frame, breaking lookup of RenderFrameHosts by
+ // SiteInstance.
+ if (force_swap)
++ {
+ CHECK_NE(new_instance, current_instance);
++ }
+
+ if (new_instance == current_instance) {
+ // If we're navigating to the same site instance, we won't need to use the
+--- chromium-62.0.3192.0/media/cast/receiver/video_decoder.cc.gcc7 2017-08-22 21:04:45.000000000 +0200
++++ chromium-62.0.3192.0/media/cast/receiver/video_decoder.cc 2017-09-09 05:02:17.907818439 +0200
+@@ -133,7 +133,9 @@
+ private:
+ ~Vp8Impl() final {
+ if (ImplBase::operational_status_ == STATUS_INITIALIZED)
++ {
+ CHECK_EQ(VPX_CODEC_OK, vpx_codec_destroy(&context_));
++ }
+ }
+
+ scoped_refptr Decode(uint8_t* data, int len) final {
+--- chromium-62.0.3202.9/third_party/skia/src/ports/SkTLS_pthread.cpp.gcc7 2017-09-11 04:39:22.554714295 +0200
++++ chromium-62.0.3202.9/third_party/skia/src/ports/SkTLS_pthread.cpp 2017-09-11 04:39:45.663296012 +0200
+@@ -16,7 +16,7 @@
+ // should we use forceCreateTheSlot to potentially just return nullptr if
+ // we've never been called with forceCreateTheSlot==true ?
+ static SkOnce once;
+- once(pthread_key_create, &gSkTLSKey, SkTLS::Destructor);
++ once(&pthread_key_create, &gSkTLSKey, SkTLS::Destructor);
+ return pthread_getspecific(gSkTLSKey);
+ }
+
diff --git a/network/web/chromium-browser_1/files/mageia/005-chromium-64-gcc7.patch b/network/web/chromium-browser_1/files/mageia/005-chromium-64-gcc7.patch
new file mode 100644
index 0000000000..cd134dad74
--- /dev/null
+++ b/network/web/chromium-browser_1/files/mageia/005-chromium-64-gcc7.patch
@@ -0,0 +1,84 @@
+--- chromium-64.0.3282.71/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc.gcc7 2018-01-04 00:06:33.000000000 +0100
++++ chromium-64.0.3282.71/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc 2018-01-07 10:30:57.354614167 +0100
+@@ -594,24 +594,6 @@
+ UCNV_FROM_U_CALLBACK_ESCAPE(context, from_unicode_args, code_units, length,
+ code_point, reason, err);
+ }
+-
+-static void GbkCallbackSubstitute(const void* context,
+- UConverterFromUnicodeArgs* from_unicode_args,
+- const UChar* code_units,
+- int32_t length,
+- UChar32 code_point,
+- UConverterCallbackReason reason,
+- UErrorCode* err) {
+- UChar out_char;
+- if (reason == UCNV_UNASSIGNED && (out_char = FallbackForGBK(code_point))) {
+- const UChar* source = &out_char;
+- *err = U_ZERO_ERROR;
+- ucnv_cbFromUWriteUChars(from_unicode_args, &source, source + 1, 0, err);
+- return;
+- }
+- UCNV_FROM_U_CALLBACK_SUBSTITUTE(context, from_unicode_args, code_units,
+- length, code_point, reason, err);
+-}
+ #endif // USING_SYSTEM_ICU
+
+ class TextCodecInput final {
+--- chromium-64.0.3282.71/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc.gcc7 2018-01-04 00:06:29.000000000 +0100
++++ chromium-64.0.3282.71/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc 2018-01-07 21:47:33.628080370 +0100
+@@ -2297,17 +2297,14 @@ bool PaintPropertyTreeBuilder::ObjectTyp
+ }
+
+ void PaintPropertyTreeBuilder::UpdatePaintingLayer() {
+- bool changed_painting_layer = false;
+ if (object_.HasLayer() &&
+ ToLayoutBoxModelObject(object_).HasSelfPaintingLayer()) {
+ context_.painting_layer = ToLayoutBoxModelObject(object_).Layer();
+- changed_painting_layer = true;
+ } else if (object_.IsColumnSpanAll() ||
+ object_.IsFloatingWithNonContainingBlockParent()) {
+ // See LayoutObject::paintingLayer() for the special-cases of floating under
+ // inline and multicolumn.
+ context_.painting_layer = object_.PaintingLayer();
+- changed_painting_layer = true;
+ }
+ DCHECK(context_.painting_layer == object_.PaintingLayer());
+ }
+--- chromium-64.0.3282.71/third_party/blink/renderer/platform/graphics/highcontrast/highcontrast_classifier.cc.gcc7 2018-01-04 00:06:32.000000000 +0100
++++ chromium-64.0.3282.71/third_party/blink/renderer/platform/graphics/highcontrast/highcontrast_classifier.cc 2018-01-07 22:06:16.757401299 +0100
+@@ -1127,7 +1127,6 @@
+ ,
+ FixedAllocations* __restrict fixed) {
+ const int32_t input0_shape[] = {1, 4};
+- int32_t logits_MatMul_merged_with_dnn_logits_BiasAdd0_shape[2];
+
+ // dnn/hiddenlayer_0/MatMul_merged_with_dnn/hiddenlayer_0/BiasAdd
+ FullyConnected(input0_shape, input0,
+@@ -1150,8 +1149,6 @@
+ dnn_logits_weights_part_0.values, dnn_logits_biases_part_0_shape,
+ dnn_logits_biases_part_0.values,
+ logits_MatMul_merged_with_dnn_logits_BiasAdd0);
+- logits_MatMul_merged_with_dnn_logits_BiasAdd0_shape[0] = 1;
+- logits_MatMul_merged_with_dnn_logits_BiasAdd0_shape[1] = 1;
+ }
+
+ } // namespace highcontrast_tfnative_model
+--- chromium-64.0.3282.71/extensions/renderer/runtime_custom_bindings.cc.gcc7 2018-01-04 00:06:04.000000000 +0100
++++ chromium-64.0.3282.71/extensions/renderer/runtime_custom_bindings.cc 2018-01-08 01:59:41.213107482 +0100
+@@ -60,11 +60,15 @@
+ ViewType view_type = VIEW_TYPE_INVALID;
+ bool parsed_view_type = GetViewTypeFromString(view_type_string, &view_type);
+ if (!parsed_view_type)
++ {
+ CHECK_EQ("ALL", view_type_string);
++ }
+
+ const std::string& extension_id = context()->GetExtensionID();
+ if (extension_id.empty())
++ {
+ return;
++ }
+
+ v8::Local v8_context = args.GetIsolate()->GetCurrentContext();
+ // We ignore iframes here. (Returning subframes can cause broken behavior by
diff --git a/network/web/chromium-browser_1/files/mageia/006-chromium-65-gcc7.patch b/network/web/chromium-browser_1/files/mageia/006-chromium-65-gcc7.patch
new file mode 100644
index 0000000000..0b15f78a78
--- /dev/null
+++ b/network/web/chromium-browser_1/files/mageia/006-chromium-65-gcc7.patch
@@ -0,0 +1,32 @@
+--- chromium-65.0.3325.51/ui/gfx/ipc/buffer_types/gfx_param_traits.cc.format 2018-02-06 21:06:22.000000000 +0100
++++ chromium-65.0.3325.51/ui/gfx/ipc/buffer_types/gfx_param_traits.cc 2018-02-17 02:35:15.445832776 +0100
+@@ -30,7 +30,7 @@
+ void ParamTraits::Log(
+ const gfx::BufferUsageAndFormat& p,
+ std::string* l) {
+- l->append(base::StringPrintf("(%d, %d)", p.usage, p.format));
++ l->append(base::StringPrintf("(%d, %d)", int(p.usage), int(p.format)));
+ }
+
+ } // namespace IPC
+--- chromium-65.0.3325.51/components/assist_ranker/ranker_example_util.cc.gcc7 2018-02-06 21:05:28.000000000 +0100
++++ chromium-65.0.3325.51/components/assist_ranker/ranker_example_util.cc 2018-02-17 03:15:17.577865763 +0100
+@@ -9,6 +9,8 @@
+ #include "base/metrics/metrics_hashes.h"
+ #include "base/strings/stringprintf.h"
+
++#include
++
+ namespace assist_ranker {
+ namespace {
+ const uint64_t MASK32Bits = (1LL << 32) - 1;
+--- chromium-65.0.3325.51/chrome/browser/vr/sample_queue.h.gcc7 2018-02-06 21:05:25.000000000 +0100
++++ chromium-65.0.3325.51/chrome/browser/vr/sample_queue.h 2018-02-17 20:35:26.406726748 +0100
+@@ -6,6 +6,7 @@
+ #define CHROME_BROWSER_VR_SAMPLE_QUEUE_H_
+
+ #include
++#include
+
+ #include "base/macros.h"
+
diff --git a/network/web/chromium-browser_1/files/mageia/007-chromium-66-gcc7.patch b/network/web/chromium-browser_1/files/mageia/007-chromium-66-gcc7.patch
new file mode 100644
index 0000000000..72effe07ff
--- /dev/null
+++ b/network/web/chromium-browser_1/files/mageia/007-chromium-66-gcc7.patch
@@ -0,0 +1,69 @@
+--- chromium-66.0.3359.66/ui/gfx/ipc/skia/gfx_skia_param_traits_macros.h.gcc7_5 2018-03-30 17:16:10.416384243 +0200
++++ chromium-66.0.3359.66/ui/gfx/ipc/skia/gfx_skia_param_traits_macros.h 2018-03-30 17:17:45.715797731 +0200
+@@ -10,7 +10,7 @@
+ #include "ipc/ipc_message_macros.h"
+ #include "third_party/skia/include/core/SkImageInfo.h"
+
+-IPC_ENUM_TRAITS_VALIDATE(SkColorType, kLastEnum_SkColorType);
+-IPC_ENUM_TRAITS_VALIDATE(SkAlphaType, kLastEnum_SkAlphaType);
++IPC_ENUM_TRAITS_VALIDATE(SkColorType, kLastEnum_SkColorType != 0);
++IPC_ENUM_TRAITS_VALIDATE(SkAlphaType, kLastEnum_SkAlphaType != 0);
+
+ #endif // UI_GFX_IPC_SKIA_GFX_SKIA_PARAM_TRAITS_MACROS_H_
+--- chromium-66.0.3359.66/components/autofill/core/common/autofill_regexes.cc.gcc7-5 2018-03-28 21:10:54.000000000 +0200
++++ chromium-66.0.3359.66/components/autofill/core/common/autofill_regexes.cc 2018-03-30 17:59:39.857829411 +0200
+@@ -54,10 +54,6 @@
+ g_autofill_regexes_tls.Pointer()->Set(this);
+ }
+
+-AutofillRegexes::~AutofillRegexes() {
+- g_autofill_regexes_tls.Pointer()->Set(nullptr);
+-}
+-
+ icu::RegexMatcher* AutofillRegexes::GetMatcher(const base::string16& pattern) {
+ auto it = matchers_.find(pattern);
+ if (it == matchers_.end()) {
+--- chromium-66.0.3359.66/chrome/browser/notifications/notification_permission_context.cc.gcc7-5 2018-03-28 21:10:50.000000000 +0200
++++ chromium-66.0.3359.66/chrome/browser/notifications/notification_permission_context.cc 2018-04-01 20:19:51.928280032 +0200
+@@ -42,9 +42,6 @@
+ base::TimeDelta visible_delay,
+ const PermissionRequestID& id);
+
+- // Deletes any earlier task(s) that match |id|.
+- void CancelTask(const PermissionRequestID& id);
+-
+ // WebContentsObserver:
+ void OnVisibilityChanged(content::Visibility visibility) override;
+ void WebContentsDestroyed() override;
+@@ -119,15 +116,6 @@
+ task_queue_.front().timer->Reset();
+ }
+
+-void VisibilityTimerTabHelper::CancelTask(const PermissionRequestID& id) {
+- bool deleting_front = task_queue_.front().id == id;
+-
+- base::EraseIf(task_queue_, [id](const Task& task) { return task.id == id; });
+-
+- if (!task_queue_.empty() && is_visible_ && deleting_front)
+- task_queue_.front().timer->Reset();
+-}
+-
+ void VisibilityTimerTabHelper::OnVisibilityChanged(
+ content::Visibility visibility) {
+ if (visibility == content::Visibility::VISIBLE) {
+--- chromium-66.0.3359.66/third_party/blink/renderer/platform/mhtml/mhtml_parser.cc.gcc7-5 2018-04-02 02:25:58.873350066 +0200
++++ chromium-66.0.3359.66/third_party/blink/renderer/platform/mhtml/mhtml_parser.cc 2018-04-02 02:27:48.929444720 +0200
+@@ -316,9 +316,10 @@
+ // In order to support parsing the MHTML archive file produced before the
+ // MHTMLArchive bug was fixed, we need to take a risk of stripping off the
+ // CRLF that indeed belongs to the content.
+- if (content.size() >= 2 && content[content.size() - 2] == '\r' &&
+- content[content.size() - 1] == '\n') {
+- content.resize(content.size() - 2);
++ size_t size = content.size();
++ if (size >= 2 && content[size - 2] == '\r' &&
++ content[size - 1] == '\n') {
++ content.resize(size - 2);
+ }
+
+ Vector next_chars;
diff --git a/network/web/chromium-browser_1/files/mageia/008-chromium-67-gcc7.patch b/network/web/chromium-browser_1/files/mageia/008-chromium-67-gcc7.patch
new file mode 100644
index 0000000000..ac88d0b909
--- /dev/null
+++ b/network/web/chromium-browser_1/files/mageia/008-chromium-67-gcc7.patch
@@ -0,0 +1,155 @@
+--- chromium-67.0.3396.10/third_party/crashpad/crashpad/client/crashpad_info.h.gcc7 2018-04-18 21:05:43.000000000 +0200
++++ chromium-67.0.3396.10/third_party/crashpad/crashpad/client/crashpad_info.h 2018-04-22 14:48:58.402613864 +0200
+@@ -220,7 +220,7 @@
+ size_t size);
+
+ enum : uint32_t {
+- kSignature = 'CPad',
++ kSignature = 0x43506164, // 'CPad'
+ };
+
+ private:
+--- chromium-67.0.3396.10/third_party/crashpad/crashpad/client/settings.cc.gcc7 2018-04-18 21:05:43.000000000 +0200
++++ chromium-67.0.3396.10/third_party/crashpad/crashpad/client/settings.cc 2018-04-22 14:56:49.200391358 +0200
+@@ -84,7 +84,7 @@
+ #endif // OS_FUCHSIA
+
+ struct Settings::Data {
+- static const uint32_t kSettingsMagic = 'CPds';
++ static const uint32_t kSettingsMagic = 0x43506473; //'CPds'
+ static const uint32_t kSettingsVersion = 1;
+
+ enum Options : uint32_t {
+--- chromium-67.0.3396.10/third_party/crashpad/crashpad/util/misc/pdb_structures.h.gcc7 2018-04-18 21:05:43.000000000 +0200
++++ chromium-67.0.3396.10/third_party/crashpad/crashpad/util/misc/pdb_structures.h 2018-04-22 15:25:05.626833340 +0200
+@@ -41,7 +41,7 @@
+ //!
+ //! In a hex dump, this will appear as “NB10” when produced by a little-endian
+ //! machine.
+- static const uint32_t kSignature = '01BN';
++ static const uint32_t kSignature = 0x3031424e; // '01BN'
+
+ //! \brief The magic number identifying this structure version, the value of
+ //! #kSignature.
+@@ -102,7 +102,7 @@
+ //!
+ //! In a hex dump, this will appear as “RSDS” when produced by a little-endian
+ //! machine.
+- static const uint32_t kSignature = 'SDSR';
++ static const uint32_t kSignature = 0x53445352; // 'SDSR'
+
+ //! \brief The magic number identifying this structure version, the value of
+ //! #kSignature.
+--- chromium-67.0.3396.10/headless/lib/browser/protocol/browser_handler.cc.gcc7 2018-04-18 21:04:50.000000000 +0200
++++ chromium-67.0.3396.10/headless/lib/browser/protocol/browser_handler.cc 2018-04-22 17:26:04.113469026 +0200
+@@ -71,7 +71,7 @@
+ Response BrowserHandler::SetWindowBounds(
+ int window_id,
+ std::unique_ptr window_bounds) {
+- HeadlessWebContentsImpl* web_contents = web_contents =
++ HeadlessWebContentsImpl* web_contents =
+ browser()->GetWebContentsForWindowId(window_id);
+ if (!web_contents)
+ return Response::Error("Browser window not found");
+--- chromium-67.0.3396.10/chrome/browser/ui/webui/discards/discards_ui.cc.gcc7 2018-04-18 21:04:40.000000000 +0200
++++ chromium-67.0.3396.10/chrome/browser/ui/webui/discards/discards_ui.cc 2018-04-22 18:15:26.594324206 +0200
+@@ -44,7 +44,7 @@
+ case content::Visibility::VISIBLE:
+ return mojom::LifecycleUnitVisibility::VISIBLE;
+ }
+-#if defined(COMPILER_MSVC)
++#if defined(COMPILER_MSVC) || defined(COMPILER_GCC)
+ NOTREACHED();
+ return mojom::LifecycleUnitVisibility::VISIBLE;
+ #endif
+--- chromium-67.0.3396.10/third_party/blink/renderer/core/frame/local_frame_view.cc.gcc7 2018-04-18 21:05:39.000000000 +0200
++++ chromium-67.0.3396.10/third_party/blink/renderer/core/frame/local_frame_view.cc 2018-04-22 21:37:37.030626382 +0200
+@@ -4096,8 +4095,7 @@
+ scrollable_areas_ = new ScrollableAreaSet;
+ scrollable_areas_->insert(scrollable_area);
+
+- if (ScrollingCoordinator* scrolling_coordinator =
+- this->GetScrollingCoordinator()) {
++ if (this->GetScrollingCoordinator() != NULL) {
+ ScrollableAreasDidChange();
+ }
+ }
+@@ -4107,8 +4105,7 @@
+ return;
+ scrollable_areas_->erase(scrollable_area);
+
+- if (ScrollingCoordinator* scrolling_coordinator =
+- this->GetScrollingCoordinator()) {
++ if (this->GetScrollingCoordinator() != NULL) {
+ ScrollableAreasDidChange();
+ }
+ }
+@@ -4132,7 +4129,9 @@
+ // TODO(crbug.com/729196): Trace why LocalFrameView::DetachFromLayout crashes.
+ CHECK(!is_attached_);
+ if (frame_->GetDocument())
++ {
+ CHECK_NE(Lifecycle().GetState(), DocumentLifecycle::kStopping);
++ }
+ is_attached_ = true;
+ parent_ = ParentFrameView();
+ if (!parent_) {
+@@ -5296,8 +5295,7 @@
+ void LocalFrameView::Show() {
+ if (!IsSelfVisible()) {
+ SetSelfVisible(true);
+- if (ScrollingCoordinator* scrolling_coordinator =
+- this->GetScrollingCoordinator()) {
++ if (this->GetScrollingCoordinator() != NULL) {
+ GetScrollingContext()->SetScrollGestureRegionIsDirty(true);
+ }
+ SetNeedsCompositingUpdate(kCompositingUpdateRebuildTree);
+@@ -5325,8 +5323,7 @@
+ });
+ }
+ SetSelfVisible(false);
+- if (ScrollingCoordinator* scrolling_coordinator =
+- this->GetScrollingCoordinator()) {
++ if (this->GetScrollingCoordinator() != NULL) {
+ GetScrollingContext()->SetScrollGestureRegionIsDirty(true);
+ }
+ SetNeedsCompositingUpdate(kCompositingUpdateRebuildTree);
+--- chromium-67.0.3396.10/third_party/blink/renderer/core/html/parser/html_tree_builder.cc.gcc7 2018-04-18 21:05:39.000000000 +0200
++++ chromium-67.0.3396.10/third_party/blink/renderer/core/html/parser/html_tree_builder.cc 2018-04-22 22:29:51.951074679 +0200
+@@ -943,7 +943,7 @@
+ }
+ if (token->GetName() == colTag) {
+ ProcessFakeStartTag(colgroupTag);
+- DCHECK(kInColumnGroupMode);
++ DCHECK(kInColumnGroupMode != 0);
+ ProcessStartTag(token);
+ return;
+ }
+--- chromium-67.0.3396.10/third_party/blink/renderer/core/page/focus_controller.cc.gcc7 2018-04-18 21:05:40.000000000 +0200
++++ chromium-67.0.3396.10/third_party/blink/renderer/core/page/focus_controller.cc 2018-04-22 23:10:03.717765400 +0200
+@@ -333,25 +333,6 @@
+ return nullptr;
+ }
+
+-bool ScopedFocusNavigation::IsSlotFallbackScoped(const Element& element) {
+- return ScopedFocusNavigation::FindFallbackScopeOwnerSlot(element);
+-}
+-
+-bool ScopedFocusNavigation::IsSlotFallbackScopedForThisSlot(
+- const HTMLSlotElement& slot,
+- const Element& current) {
+- Element* parent = current.parentElement();
+- while (parent) {
+- if (IsHTMLSlotElement(parent) &&
+- ToHTMLSlotElement(parent)->AssignedNodes().IsEmpty()) {
+- return !SlotScopedTraversal::IsSlotScoped(current) &&
+- ToHTMLSlotElement(parent) == slot;
+- }
+- parent = parent->parentElement();
+- }
+- return false;
+-}
+-
+ inline void DispatchBlurEvent(const Document& document,
+ Element& focused_element) {
+ focused_element.DispatchBlurEvent(nullptr, kWebFocusTypePage);
diff --git a/network/web/chromium-browser_1/files/mageia/009-chromium-68-gcc7.patch b/network/web/chromium-browser_1/files/mageia/009-chromium-68-gcc7.patch
new file mode 100644
index 0000000000..39ad3309a9
--- /dev/null
+++ b/network/web/chromium-browser_1/files/mageia/009-chromium-68-gcc7.patch
@@ -0,0 +1,211 @@
+--- chromium-68.0.3418.2/base/allocator/partition_allocator/partition_alloc_constants.h.gcc7 2018-05-04 06:05:09.000000000 +0200
++++ chromium-68.0.3418.2/base/allocator/partition_allocator/partition_alloc_constants.h 2018-05-07 23:44:01.047768997 +0200
+@@ -9,6 +9,8 @@
+ #include "base/bits.h"
+ #include "base/logging.h"
+
++#include
++
+ namespace base {
+
+ // Allocation granularity of sizeof(void*) bytes.
+--- chromium-68.0.3418.2/media/capture/video/video_capture_device_descriptor.cc.gcc7 2018-05-04 06:05:23.000000000 +0200
++++ chromium-68.0.3418.2/media/capture/video/video_capture_device_descriptor.cc 2018-05-08 01:07:51.984718931 +0200
+@@ -93,6 +93,7 @@
+ case VideoCaptureApi::VIRTUAL_DEVICE:
+ return "Virtual Device";
+ case VideoCaptureApi::UNKNOWN:
++ default:
+ return "Unknown";
+ }
+ }
+--- chromium-68.0.3418.2/net/nqe/network_quality_estimator.cc.gcc7 2018-05-04 06:05:25.000000000 +0200
++++ chromium-68.0.3418.2/net/nqe/network_quality_estimator.cc 2018-05-08 01:51:43.640113593 +0200
+@@ -1307,6 +1307,7 @@
+ percentile, observations_count)
+ .value_or(nqe::internal::INVALID_RTT_THROUGHPUT));
+ case nqe::internal::OBSERVATION_CATEGORY_COUNT:
++ default:
+ NOTREACHED();
+ return base::TimeDelta();
+ }
+--- chromium-68.0.3418.2/components/cast_channel/cast_message_util.cc.gcc7 2018-05-04 06:05:16.000000000 +0200
++++ chromium-68.0.3418.2/components/cast_channel/cast_message_util.cc 2018-05-08 03:30:15.218856130 +0200
+@@ -284,6 +284,7 @@
+ case GetAppAvailabilityResult::kUnavailable:
+ return "unavailable";
+ case GetAppAvailabilityResult::kUnknown:
++ default:
+ return "unknown";
+ }
+ }
+--- chromium-68.0.3418.2/services/network/cross_origin_read_blocking.cc.gcc7 2018-05-04 06:05:26.000000000 +0200
++++ chromium-68.0.3418.2/services/network/cross_origin_read_blocking.cc 2018-05-08 04:58:22.484383246 +0200
+@@ -729,6 +729,7 @@
+ case kNeedToSniffMore:
+ return sniffers_.empty() && !found_blockable_content_;
+ case kBlock:
++ default:
+ return false;
+ }
+ }
+@@ -740,6 +741,7 @@
+ case kNeedToSniffMore:
+ return sniffers_.empty() && found_blockable_content_;
+ case kBlock:
++ default:
+ return true;
+ }
+ }
+--- chromium-68.0.3418.2/third_party/blink/renderer/modules/webaudio/audio_param.cc.gcc7 2018-05-04 06:05:50.000000000 +0200
++++ chromium-68.0.3418.2/third_party/blink/renderer/modules/webaudio/audio_param.cc 2018-05-13 16:16:36.362212522 +0200
+@@ -144,6 +144,7 @@
+ return custom_param_name_;
+ default:
+ NOTREACHED();
++ return "";
+ }
+ }
+
+--- chromium-68.0.3440.7/third_party/crashpad/crashpad/util/net/http_transport_socket.cc.gcc7 2018-05-31 12:46:18.000000000 +0200
++++ chromium-68.0.3440.7/third_party/crashpad/crashpad/util/net/http_transport_socket.cc 2018-06-02 15:30:05.860916765 +0200
+@@ -210,8 +210,13 @@ bool WriteRequest(int sock,
+ do {
+ constexpr size_t kCRLFSize = arraysize(kCRLFTerminator) - 1;
+ struct __attribute__((packed)) {
+- char size[8];
+- char crlf[2];
++ union {
++ struct {
++ char size[8];
++ char crlf[2];
++ };
++ char size_and_crlf[10];
++ };
+ uint8_t data[32 * 1024 + kCRLFSize];
+ } buf;
+ static_assert(
+@@ -238,7 +243,7 @@ bool WriteRequest(int sock,
+
+ // Not snprintf because non-null terminated is desired.
+ int rv = sprintf(
+- buf.size, "%08x", base::checked_cast(data_bytes));
++ buf.size_and_crlf, "%08x", base::checked_cast(data_bytes));
+ DCHECK_GE(rv, 0);
+ DCHECK_EQ(static_cast(rv), sizeof(buf.size));
+ DCHECK_NE(buf.size[sizeof(buf.size) - 1], '\0');
+--- chromium-68.0.3440.7/services/audio/public/cpp/audio_system_to_service_adapter.cc.gcc7 2018-05-31 12:45:46.000000000 +0200
++++ chromium-68.0.3440.7/services/audio/public/cpp/audio_system_to_service_adapter.cc 2018-06-02 16:23:31.460186468 +0200
+@@ -68,6 +68,7 @@
+ return "AudioSystemToServiceAdapter::GetInputDeviceInfo";
+ }
+ NOTREACHED();
++ return NULL;
+ }
+
+ void LogUMA(Action action, base::TimeTicks start_time) {
+--- chromium-68.0.3440.7/cc/input/snap_fling_controller.cc.gcc7 2018-05-31 12:45:27.000000000 +0200
++++ chromium-68.0.3440.7/cc/input/snap_fling_controller.cc 2018-06-02 16:44:43.320656957 +0200
+@@ -27,6 +27,8 @@
+ return state_ == State::kActive || state_ == State::kFinished;
+ }
+ }
++ // should not be reached
++ return false;
+ }
+
+ void SnapFlingController::ClearSnapFling() {
+--- chromium-68.0.3440.7/components/bookmarks/browser/bookmark_storage.h.gcc7 2018-05-31 12:45:36.000000000 +0200
++++ chromium-68.0.3440.7/components/bookmarks/browser/bookmark_storage.h 2018-06-02 16:54:37.974209537 +0200
+@@ -19,6 +19,7 @@
+ #include "base/memory/weak_ptr.h"
+ #include "components/bookmarks/browser/bookmark_node.h"
+ #include "components/bookmarks/browser/titled_url_index.h"
++#include "components/bookmarks/browser/url_index.h"
+
+ namespace base {
+ class SequencedTaskRunner;
+@@ -29,7 +30,6 @@
+ class BookmarkClient;
+ class BookmarkModel;
+ class BookmarkNode;
+-class UrlIndex;
+
+ // A list of BookmarkPermanentNodes that owns them.
+ using BookmarkPermanentNodeList =
+--- chromium-68.0.3440.7/components/autofill/core/browser/autofill_manager.cc.gcc7 2018-05-31 12:45:36.000000000 +0200
++++ chromium-68.0.3440.7/components/autofill/core/browser/autofill_manager.cc 2018-06-02 17:06:51.007106694 +0200
+@@ -303,6 +303,7 @@ PopupType AutofillManager::GetPopupType(
+
+ default:
+ NOTREACHED();
++ return PopupType::kUnspecified;
+ }
+ }
+
+--- chromium-68.0.3440.7/content/browser/web_package/signed_exchange_handler.cc.gcc7 2018-05-31 12:45:40.000000000 +0200
++++ chromium-68.0.3440.7/content/browser/web_package/signed_exchange_handler.cc 2018-06-02 19:13:50.092986453 +0200
+@@ -362,7 +362,7 @@
+ base::StringPrintf(
+ "OCSP check failed. response status: %d, revocation status: %d",
+ cert_verify_result_.ocsp_result.response_status,
+- cert_verify_result_.ocsp_result.revocation_status),
++ int(cert_verify_result_.ocsp_result.revocation_status)),
+ std::make_pair(0 /* signature_index */,
+ SignedExchangeError::Field::kSignatureCertUrl));
+ RunErrorCallback(net::ERR_INVALID_SIGNED_EXCHANGE);
+--- chromium-68.0.3440.7/content/browser/cache_storage/cache_storage_quota_client.cc.gcc7 2018-05-31 12:45:39.000000000 +0200
++++ chromium-68.0.3440.7/content/browser/cache_storage/cache_storage_quota_client.cc 2018-06-02 19:36:54.786503931 +0200
+@@ -99,6 +99,7 @@
+ case CacheStorageOwner::kBackgroundFetch:
+ return kBackgroundFetch;
+ }
++ return storage::QuotaClient::ID(0);
+ }
+
+ } // namespace content
+--- chromium-68.0.3440.7/content/browser/renderer_host/render_widget_host_view_base.cc.gcc7 2018-05-31 12:45:40.000000000 +0200
++++ chromium-68.0.3440.7/content/browser/renderer_host/render_widget_host_view_base.cc 2018-06-02 20:27:56.685605639 +0200
+@@ -227,7 +227,7 @@
+ if (default_background_color_ == color)
+ return;
+
+- bool opaque = default_background_color_
++ int opaque = default_background_color_
+ ? SkColorGetA(*default_background_color_)
+ : SK_AlphaOPAQUE;
+ default_background_color_ = color;
+--- chromium-68.0.3440.7/ui/accessibility/platform/ax_platform_node_auralinux.cc.gcc7 2018-05-31 12:46:30.000000000 +0200
++++ chromium-68.0.3440.7/ui/accessibility/platform/ax_platform_node_auralinux.cc 2018-06-02 20:45:03.373900877 +0200
+@@ -1289,6 +1289,8 @@ AtkRole AXPlatformNodeAuraLinux::GetAtkR
+ case ax::mojom::Role::kUnknown:
+ return ATK_ROLE_REDUNDANT_OBJECT;
+ }
++ // should not be reached
++ return AtkRole(0);
+ }
+
+ void AXPlatformNodeAuraLinux::GetAtkState(AtkStateSet* atk_state_set) {
+--- chromium-68.0.3440.7/ui/aura/hit_test_data_provider_aura.cc.gcc7 2018-05-31 12:46:30.000000000 +0200
++++ chromium-68.0.3440.7/ui/aura/hit_test_data_provider_aura.cc 2018-06-02 20:55:53.154472628 +0200
+@@ -53,8 +53,8 @@ base::Optional H
+ hit_test_region_list->flags =
+ event_targeting_policy ==
+ ui::mojom::EventTargetingPolicy::DESCENDANTS_ONLY
+- ? viz::HitTestRegionFlags::kHitTestIgnore
+- : viz::HitTestRegionFlags::kHitTestMine;
++ ? uint32_t(viz::HitTestRegionFlags::kHitTestIgnore)
++ : uint32_t(viz::HitTestRegionFlags::kHitTestMine);
+ // TODO(crbug.com/805416): Use pixels instead of DIP units for bounds.
+ hit_test_region_list->bounds = window_->bounds();
+
+--- chromium-68.0.3440.7/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc.gcc7 2018-05-31 12:46:13.000000000 +0200
++++ chromium-68.0.3440.7/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc 2018-06-03 01:23:30.476302728 +0200
+@@ -1140,6 +1140,7 @@
+ case EVerticalAlign::kSuper:
+ return kAXTextPositionSuperscript;
+ }
++ return AXTextPosition(0);
+ }
+
+ int AXLayoutObject::TextLength() const {
diff --git a/network/web/chromium-browser_1/files/mageia/010-chromium-68-gcc8.patch b/network/web/chromium-browser_1/files/mageia/010-chromium-68-gcc8.patch
new file mode 100644
index 0000000000..17e07a28d2
--- /dev/null
+++ b/network/web/chromium-browser_1/files/mageia/010-chromium-68-gcc8.patch
@@ -0,0 +1,812 @@
+--- chromium-68.0.3440.106/base/metrics/histogram_samples.cc.gcc8 2018-08-08 21:10:31.000000000 +0200
++++ chromium-68.0.3440.106/base/metrics/histogram_samples.cc 2018-08-14 02:31:33.960840778 +0200
+@@ -172,7 +172,9 @@
+ HistogramSamples::LocalMetadata::LocalMetadata() {
+ // This is the same way it's done for persistent metadata since no ctor
+ // is called for the data members in that case.
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(this, 0, sizeof(*this));
++#pragma GCC diagnostic pop
+ }
+
+ HistogramSamples::HistogramSamples(uint64_t id, Metadata* meta)
+--- chromium-68.0.3440.106/mojo/core/data_pipe_consumer_dispatcher.cc.gcc8 2018-08-14 03:11:50.492927855 +0200
++++ chromium-68.0.3440.106/mojo/core/data_pipe_consumer_dispatcher.cc 2018-08-14 03:12:32.254163933 +0200
+@@ -40,7 +40,7 @@
+ uint64_t buffer_guid_high;
+ uint64_t buffer_guid_low;
+ char padding[7];
+-};
++} __attribute__ ((aligned(8)));
+
+ static_assert(sizeof(SerializedState) % 8 == 0,
+ "Invalid SerializedState size.");
+--- chromium-68.0.3440.106/mojo/core/data_pipe_producer_dispatcher.cc.gcc8 2018-08-14 03:11:52.923883382 +0200
++++ chromium-68.0.3440.106/mojo/core/data_pipe_producer_dispatcher.cc 2018-08-14 03:12:35.341107472 +0200
+@@ -39,7 +39,7 @@
+ uint64_t buffer_guid_high;
+ uint64_t buffer_guid_low;
+ char padding[7];
+-};
++} __attribute__ ((aligned(8)));
+
+ static_assert(sizeof(SerializedState) % 8 == 0,
+ "Invalid SerializedState size.");
+--- chromium-68.0.3440.106/mojo/public/tools/bindings/generators/cpp_templates/struct_declaration.tmpl.gcc8 2018-08-14 21:12:13.141558150 +0200
++++ chromium-68.0.3440.106/mojo/public/tools/bindings/generators/cpp_templates/struct_declaration.tmpl 2018-08-14 21:13:14.068493440 +0200
+@@ -1,6 +1,6 @@
+ {%- set class_name = struct.name ~ "_Data" -%}
+
+-class {{export_attribute}} {{class_name}} {
++class {{export_attribute}} __attribute__ ((aligned(8))) {{class_name}} {
+ public:
+ class BufferWriter {
+ public:
+--- chromium-68.0.3440.106/mojo/public/tools/bindings/generators/cpp_templates/union_declaration.tmpl.gcc8 2018-08-14 21:12:15.324520008 +0200
++++ chromium-68.0.3440.106/mojo/public/tools/bindings/generators/cpp_templates/union_declaration.tmpl 2018-08-14 21:13:16.724447019 +0200
+@@ -2,7 +2,7 @@
+ {%- set enum_name = union.name ~ "_Tag" -%}
+ {%- import "struct_macros.tmpl" as struct_macros %}
+
+-class {{export_attribute}} {{class_name}} {
++class {{export_attribute}} __attribute__ ((aligned(8))) {{class_name}} {
+ public:
+ // Used to identify Mojom Union Data Classes.
+ typedef void MojomUnionDataType;
+--- chromium-68.0.3440.106/third_party/angle/src/libANGLE/VertexArray.cpp.gcc8 2018-08-08 21:13:09.000000000 +0200
++++ chromium-68.0.3440.106/third_party/angle/src/libANGLE/VertexArray.cpp 2018-08-14 21:24:50.555374549 +0200
+@@ -306,12 +306,14 @@
+ mDirtyBits.reset();
+ mDirtyBitsGuard.reset();
+
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ // This is a bit of an implementation hack - but since we know the implementation
+ // details of the dirty bit class it should always have the same effect as iterating
+ // individual attribs. We could also look into schemes where iterating the dirty
+ // bit set also resets it as you pass through it.
+ memset(&mDirtyAttribBits, 0, sizeof(mDirtyAttribBits));
+ memset(&mDirtyBindingBits, 0, sizeof(mDirtyBindingBits));
++#pragma GCC diagnostic pop
+ }
+ return gl::NoError();
+ }
+--- chromium-68.0.3440.106/third_party/angle/src/libANGLE/renderer/vulkan/vk_cache_utils.cpp.gcc8 2018-08-08 21:13:09.000000000 +0200
++++ chromium-68.0.3440.106/third_party/angle/src/libANGLE/renderer/vulkan/vk_cache_utils.cpp 2018-08-14 21:35:47.655983018 +0200
+@@ -350,7 +350,9 @@
+
+ PipelineDesc &PipelineDesc::operator=(const PipelineDesc &other)
+ {
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memcpy(this, &other, sizeof(PipelineDesc));
++#pragma GCC diagnostic pop
+ return *this;
+ }
+
+--- chromium-68.0.3440.106/third_party/webrtc/modules/audio_processing/include/audio_processing.h.gcc8 2018-08-08 21:13:16.000000000 +0200
++++ chromium-68.0.3440.106/third_party/webrtc/modules/audio_processing/include/audio_processing.h 2018-08-14 21:40:29.208073793 +0200
+@@ -292,7 +292,9 @@
+ // sanitizer builds.
+ Config& operator=(const Config& config) {
+ if (this != &config) {
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memcpy(this, &config, sizeof(*this));
++#pragma GCC diagnostic pop
+ }
+ return *this;
+ }
+--- chromium-68.0.3440.106/third_party/webrtc/modules/audio_processing/echo_cancellation_impl.cc.gcc8 2018-08-08 21:13:16.000000000 +0200
++++ chromium-68.0.3440.106/third_party/webrtc/modules/audio_processing/echo_cancellation_impl.cc 2018-08-14 21:46:52.906368109 +0200
+@@ -300,7 +300,9 @@
+
+ AecMetrics my_metrics;
+ memset(&my_metrics, 0, sizeof(my_metrics));
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(metrics, 0, sizeof(Metrics));
++#pragma GCC diagnostic pop
+
+ const int err = WebRtcAec_GetMetrics(cancellers_[0]->state(), &my_metrics);
+ if (err != AudioProcessing::kNoError) {
+--- chromium-68.0.3440.106/third_party/webrtc/modules/rtp_rtcp/source/rtp_header_parser.cc.gcc8 2018-08-08 21:13:16.000000000 +0200
++++ chromium-68.0.3440.106/third_party/webrtc/modules/rtp_rtcp/source/rtp_header_parser.cc 2018-08-14 21:49:50.106272582 +0200
+@@ -49,7 +49,9 @@
+ size_t length,
+ RTPHeader* header) const {
+ RtpUtility::RtpHeaderParser rtp_parser(packet, length);
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(header, 0, sizeof(*header));
++#pragma GCC diagnostic pop
+
+ RtpHeaderExtensionMap map;
+ {
+--- chromium-68.0.3440.106/third_party/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc.gcc8 2018-08-08 21:13:16.000000000 +0200
++++ chromium-68.0.3440.106/third_party/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc 2018-08-14 21:51:07.382922793 +0200
+@@ -64,7 +64,9 @@
+ } else {
+ // No clock implementation provided, use default clock.
+ RtpRtcp::Configuration configuration_copy;
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memcpy(&configuration_copy, &configuration, sizeof(RtpRtcp::Configuration));
++#pragma GCC diagnostic pop
+ configuration_copy.clock = Clock::GetRealTimeClock();
+ return new ModuleRtpRtcpImpl(configuration_copy);
+ }
+--- chromium-68.0.3440.106/third_party/blink/renderer/platform/wtf/vector.h.gcc8 2018-08-08 21:11:52.000000000 +0200
++++ chromium-68.0.3440.106/third_party/blink/renderer/platform/wtf/vector.h 2018-08-14 21:59:58.115654176 +0200
+@@ -141,8 +141,10 @@
+ struct VectorInitializer {
+ STATIC_ONLY(VectorInitializer);
+ static void Initialize(T* begin, T* end) {
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(begin, 0,
+ reinterpret_cast(end) - reinterpret_cast(begin));
++#pragma GCC diagnostic pop
+ }
+ };
+
+@@ -190,9 +192,11 @@
+ STATIC_ONLY(VectorMover);
+ static void Move(const T* src, const T* src_end, T* dst) {
+ if (LIKELY(dst && src)) {
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memcpy(dst, src,
+ reinterpret_cast(src_end) -
+ reinterpret_cast(src));
++#pragma GCC diagnostic pop
+ ConstructTraits, Allocator>::NotifyNewElements(
+ dst, src_end - src);
+ }
+@@ -203,9 +203,11 @@
+ }
+ static void MoveOverlapping(const T* src, const T* src_end, T* dst) {
+ if (LIKELY(dst && src)) {
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memmove(dst, src,
+ reinterpret_cast(src_end) -
+ reinterpret_cast(src));
++#pragma GCC diagnostic pop
+ ConstructTraits, Allocator>::NotifyNewElements(
+ dst, src_end - src);
+ }
+@@ -242,9 +244,11 @@
+ STATIC_ONLY(VectorCopier);
+ static void UninitializedCopy(const T* src, const T* src_end, T* dst) {
+ if (LIKELY(dst && src)) {
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memcpy(dst, src,
+ reinterpret_cast(src_end) -
+ reinterpret_cast(src));
++#pragma GCC diagnostic pop
+ ConstructTraits, Allocator>::NotifyNewElements(
+ dst, src_end - src);
+ }
+--- chromium-68.0.3440.106/third_party/blink/renderer/platform/wtf/hash_table.h.gcc8 2018-08-08 21:11:52.000000000 +0200
++++ chromium-68.0.3440.106/third_party/blink/renderer/platform/wtf/hash_table.h 2018-08-14 22:04:23.904013134 +0200
+@@ -1216,7 +1216,9 @@
+ // makes it possible to use this with types that don't support copying.
+ // The memset to 0 looks like a slow operation but is optimized by the
+ // compilers.
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(&bucket, 0, sizeof(bucket));
++#pragma GCC diagnostic pop
+ }
+ };
+
+@@ -1688,7 +1690,9 @@
+ if (IsEmptyOrDeletedBucket(table_[i])) {
+ DCHECK_NE(&table_[i], entry);
+ if (Traits::kEmptyValueIsZero) {
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(&temporary_table[i], 0, sizeof(ValueType));
++#pragma GCC diagnostic pop
+ } else {
+ InitializeBucket(temporary_table[i]);
+ }
+@@ -1703,7 +1707,9 @@
+ Allocator::BackingWriteBarrier(table_);
+
+ if (Traits::kEmptyValueIsZero) {
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(original_table, 0, new_table_size * sizeof(ValueType));
++#pragma GCC diagnostic pop
+ } else {
+ for (unsigned i = 0; i < new_table_size; i++)
+ InitializeBucket(original_table[i]);
+--- chromium-68.0.3440.106/gpu/command_buffer/client/raster_implementation.cc.gcc8 2018-08-08 21:10:58.000000000 +0200
++++ chromium-68.0.3440.106/gpu/command_buffer/client/raster_implementation.cc 2018-08-14 22:13:17.028701679 +0200
+@@ -848,7 +848,9 @@
+ for (GLsizei i = 0; i < count; ++i) {
+ if (sync_tokens[i]) {
+ SyncToken sync_token;
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memcpy(&sync_token, sync_tokens[i], sizeof(sync_token));
++#pragma GCC diagnostic pop
+
+ if (sync_token.HasData() && !sync_token.verified_flush()) {
+ if (!GetVerifiedSyncTokenForIPC(sync_token, &sync_token)) {
+@@ -879,7 +881,9 @@
+
+ // Copy the data over before data access to ensure alignment.
+ SyncToken sync_token, verified_sync_token;
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memcpy(&sync_token, sync_token_data, sizeof(SyncToken));
++#pragma GCC diagnostic pop
+
+ if (!sync_token.HasData())
+ return;
+--- chromium-68.0.3440.106/gpu/command_buffer/client/gles2_implementation.cc.gcc8 2018-08-08 21:10:58.000000000 +0200
++++ chromium-68.0.3440.106/gpu/command_buffer/client/gles2_implementation.cc 2018-08-14 22:15:45.728097911 +0200
+@@ -6002,7 +6002,9 @@
+ for (GLsizei i = 0; i < count; ++i) {
+ if (sync_tokens[i]) {
+ SyncToken sync_token;
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memcpy(&sync_token, sync_tokens[i], sizeof(sync_token));
++#pragma GCC diagnostic pop
+
+ if (sync_token.HasData() && !sync_token.verified_flush()) {
+ if (!GetVerifiedSyncTokenForIPC(sync_token, &sync_token)) {
+@@ -6032,7 +6034,9 @@
+
+ // Copy the data over before data access to ensure alignment.
+ SyncToken sync_token, verified_sync_token;
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memcpy(&sync_token, sync_token_data, sizeof(SyncToken));
++#pragma GCC diagnostic pop
+
+ if (!sync_token.HasData())
+ return;
+--- chromium-68.0.3440.106/third_party/webrtc/video/video_receive_stream.cc.gcc8 2018-08-08 21:13:17.000000000 +0200
++++ chromium-68.0.3440.106/third_party/webrtc/video/video_receive_stream.cc 2018-08-14 22:24:07.073210699 +0200
+@@ -46,7 +46,9 @@
+ namespace {
+ VideoCodec CreateDecoderVideoCodec(const VideoReceiveStream::Decoder& decoder) {
+ VideoCodec codec;
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(&codec, 0, sizeof(codec));
++#pragma GCC diagnostic pop
+
+ codec.plType = decoder.payload_type;
+ codec.codecType = PayloadStringToCodecType(decoder.payload_name);
+--- chromium-68.0.3440.106/third_party/pdfium/core/fxcodec/jbig2/JBig2_Context.cpp.gcc8 2018-08-08 21:13:13.000000000 +0200
++++ chromium-68.0.3440.106/third_party/pdfium/core/fxcodec/jbig2/JBig2_Context.cpp 2018-08-14 22:32:06.974633434 +0200
+@@ -817,7 +817,9 @@
+ if (pTRD->SBREFINE == 1) {
+ const size_t size = GetRefAggContextSize(pTRD->SBRTEMPLATE);
+ grContext.reset(FX_Alloc(JBig2ArithCtx, size));
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(grContext.get(), 0, sizeof(JBig2ArithCtx) * size);
++#pragma GCC diagnostic pop
+ }
+ if (pTRD->SBHUFF == 0) {
+ auto pArithDecoder =
+@@ -871,7 +873,9 @@
+ const size_t size = GetHuffContextSize(pPDD->HDTEMPLATE);
+ std::unique_ptr gbContext(
+ FX_Alloc(JBig2ArithCtx, size));
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(gbContext.get(), 0, sizeof(JBig2ArithCtx) * size);
++#pragma GCC diagnostic pop
+ auto pArithDecoder =
+ pdfium::MakeUnique(m_pStream.get());
+ pSegment->m_PatternDict =
+@@ -940,7 +944,9 @@
+ const size_t size = GetHuffContextSize(pHRD->HTEMPLATE);
+ std::unique_ptr gbContext(
+ FX_Alloc(JBig2ArithCtx, size));
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(gbContext.get(), 0, sizeof(JBig2ArithCtx) * size);
++#pragma GCC diagnostic pop
+ auto pArithDecoder =
+ pdfium::MakeUnique(m_pStream.get());
+ pSegment->m_Image =
+@@ -1120,7 +1126,9 @@
+ const size_t size = GetRefAggContextSize(pGRRD->GRTEMPLATE);
+ std::unique_ptr grContext(
+ FX_Alloc(JBig2ArithCtx, size));
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(grContext.get(), 0, sizeof(JBig2ArithCtx) * size);
++#pragma GCC diagnostic pop
+ auto pArithDecoder = pdfium::MakeUnique(m_pStream.get());
+ pSegment->m_nResultType = JBIG2_IMAGE_POINTER;
+ pSegment->m_Image = pGRRD->Decode(pArithDecoder.get(), grContext.get());
+--- chromium-68.0.3440.106/third_party/pdfium/xfa/fde/cfde_texteditengine.cpp.gcc8 2018-08-08 21:13:13.000000000 +0200
++++ chromium-68.0.3440.106/third_party/pdfium/xfa/fde/cfde_texteditengine.cpp 2018-08-14 22:34:59.589550686 +0200
+@@ -1043,7 +1043,9 @@
+ const CFX_BreakPiece* piece = text_break_.GetBreakPieceUnstable(i);
+
+ FDE_TEXTEDITPIECE txtEdtPiece;
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(&txtEdtPiece, 0, sizeof(FDE_TEXTEDITPIECE));
++#pragma GCC diagnostic pop
+
+ txtEdtPiece.nBidiLevel = piece->m_iBidiLevel;
+ txtEdtPiece.nCount = piece->GetLength();
+--- chromium-68.0.3440.106/third_party/webrtc/media/engine/simulcast_encoder_adapter.cc.gcc8 2018-08-08 21:13:15.000000000 +0200
++++ chromium-68.0.3440.106/third_party/webrtc/media/engine/simulcast_encoder_adapter.cc 2018-08-14 22:37:49.845519857 +0200
+@@ -118,7 +118,9 @@
+ // the encoder task queue.
+ encoder_queue_.Detach();
+
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(&codec_, 0, sizeof(webrtc::VideoCodec));
++#pragma GCC diagnostic pop
+ }
+
+ SimulcastEncoderAdapter::~SimulcastEncoderAdapter() {
+--- chromium-68.0.3440.106/third_party/webrtc/modules/video_coding/encoder_database.cc.gcc8 2018-08-08 21:13:16.000000000 +0200
++++ chromium-68.0.3440.106/third_party/webrtc/modules/video_coding/encoder_database.cc 2018-08-14 22:40:27.598718970 +0200
+@@ -103,7 +103,9 @@
+
+ void VCMEncoderDataBase::DeregisterExternalEncoder() {
+ DeleteEncoder();
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(&send_codec_, 0, sizeof(VideoCodec));
++#pragma GCC diagnostic pop
+ external_encoder_ = nullptr;
+ internal_source_ = false;
+ }
+--- chromium-68.0.3440.106/third_party/webrtc/modules/video_coding/decoder_database.cc.gcc8 2018-08-08 21:13:16.000000000 +0200
++++ chromium-68.0.3440.106/third_party/webrtc/modules/video_coding/decoder_database.cc 2018-08-14 22:42:30.590539511 +0200
+@@ -99,7 +99,9 @@
+ dec_map_.erase(it);
+ if (receive_codec_.plType == payload_type) {
+ // This codec is currently in use.
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(&receive_codec_, 0, sizeof(VideoCodec));
++#pragma GCC diagnostic pop
+ }
+ return true;
+ }
+@@ -115,7 +117,9 @@
+ // If decoder exists - delete.
+ if (ptr_decoder_) {
+ ptr_decoder_.reset();
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(&receive_codec_, 0, sizeof(VideoCodec));
++#pragma GCC diagnostic pop
+ }
+ ptr_decoder_ = CreateAndInitDecoder(frame, &receive_codec_);
+ if (!ptr_decoder_) {
+@@ -126,7 +130,9 @@
+ if (ptr_decoder_->RegisterDecodeCompleteCallback(decoded_frame_callback) <
+ 0) {
+ ptr_decoder_.reset();
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(&receive_codec_, 0, sizeof(VideoCodec));
++#pragma GCC diagnostic pop
+ return nullptr;
+ }
+ return ptr_decoder_.get();
+--- chromium-68.0.3440.106/third_party/webrtc/modules/video_coding/video_codec_initializer.cc.gcc8 2018-08-08 21:13:16.000000000 +0200
++++ chromium-68.0.3440.106/third_party/webrtc/modules/video_coding/video_codec_initializer.cc 2018-08-14 22:45:20.974525552 +0200
+@@ -77,7 +77,9 @@
+ RTC_DCHECK_GE(config.min_transmit_bitrate_bps, 0);
+
+ VideoCodec video_codec;
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(&video_codec, 0, sizeof(video_codec));
++#pragma GCC diagnostic pop
+ video_codec.codecType = config.codec_type;
+
+ switch (config.content_type) {
+--- chromium-68.0.3440.106/third_party/webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc.gcc8 2018-08-08 21:13:16.000000000 +0200
++++ chromium-68.0.3440.106/third_party/webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc 2018-08-14 22:46:55.545855003 +0200
+@@ -86,7 +86,9 @@
+ output_framerate_(1000.0, 1000.0),
+ last_encoded_frame_rtp_timestamp_(0),
+ is_flexible_mode_(false) {
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(&codec_, 0, sizeof(codec_));
++#pragma GCC diagnostic pop
+ memset(&svc_params_, 0, sizeof(vpx_svc_extra_cfg_t));
+ }
+
+@@ -761,7 +763,9 @@
+ }
+ RTC_DCHECK_LE(encoded_image_._length, encoded_image_._size);
+
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(&codec_specific_, 0, sizeof(codec_specific_));
++#pragma GCC diagnostic pop
+ PopulateCodecSpecific(&codec_specific_, *pkt, input_image_->timestamp(),
+ first_frame_in_picture);
+
+--- chromium-68.0.3440.106/media/filters/vp8_parser.cc.gcc8 2018-08-08 21:11:03.000000000 +0200
++++ chromium-68.0.3440.106/media/filters/vp8_parser.cc 2018-08-14 23:13:10.772858869 +0200
+@@ -59,7 +59,9 @@
+ stream_ = ptr;
+ bytes_left_ = frame_size;
+
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(fhdr, 0, sizeof(*fhdr));
++#pragma GCC diagnostic pop
+ fhdr->data = stream_;
+ fhdr->frame_size = bytes_left_;
+
+--- chromium-68.0.3440.106/media/video/h264_parser.cc.gcc8 2018-08-08 21:11:05.000000000 +0200
++++ chromium-68.0.3440.106/media/video/h264_parser.cc 2018-08-14 23:18:45.317942396 +0200
+@@ -1368,7 +1368,9 @@
+ const H264PPS* pps;
+ Result res;
+
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(shdr, 0, sizeof(*shdr));
++#pragma GCC diagnostic pop
+
+ shdr->idr_pic_flag = (nalu.nal_unit_type == 5);
+ shdr->nal_ref_idc = nalu.nal_ref_idc;
+@@ -1516,7 +1518,9 @@
+ H264Parser::Result H264Parser::ParseSEI(H264SEIMessage* sei_msg) {
+ int byte;
+
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(sei_msg, 0, sizeof(*sei_msg));
++#pragma GCC diagnostic pop
+
+ READ_BITS_OR_RETURN(8, &byte);
+ while (byte == 0xff) {
+--- chromium-68.0.3440.106/third_party/pdfium/xfa/fxfa/cxfa_textlayout.cpp.gcc8 2018-08-08 21:13:13.000000000 +0200
++++ chromium-68.0.3440.106/third_party/pdfium/xfa/fxfa/cxfa_textlayout.cpp 2018-08-14 23:29:04.550904864 +0200
+@@ -591,7 +591,9 @@
+ pCharPos = FX_Realloc(FXTEXT_CHARPOS, pCharPos, iChars);
+ iCharCount = iChars;
+ }
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(pCharPos, 0, iCharCount * sizeof(FXTEXT_CHARPOS));
++#pragma GCC diagnostic pop
+ RenderString(pFxDevice, pPieceLine, j, pCharPos, tmDoc2Device);
+ }
+ for (j = 0; j < iPieces; j++)
+--- chromium-68.0.3440.106/v8/src/frames.h.gcc8 2018-08-08 21:13:19.000000000 +0200
++++ chromium-68.0.3440.106/v8/src/frames.h 2018-08-14 23:30:16.197615313 +0200
+@@ -44,7 +44,9 @@
+ }
+
+ void Flush() {
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(&cache_[0], 0, sizeof(cache_));
++#pragma GCC diagnostic pop
+ }
+
+ InnerPointerToCodeCacheEntry* GetCacheEntry(Address inner_pointer);
+--- chromium-68.0.3440.106/v8/src/base/macros.h.gcc8 2018-08-08 21:13:19.000000000 +0200
++++ chromium-68.0.3440.106/v8/src/base/macros.h 2018-08-14 23:38:21.112816242 +0200
+@@ -101,7 +101,9 @@
+ static_assert(sizeof(Dest) == sizeof(Source),
+ "source and dest must be same size");
+ Dest dest;
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memcpy(&dest, &source, sizeof(dest));
++#pragma GCC diagnostic pop
+ return dest;
+ }
+
+--- chromium-68.0.3440.106/v8/src/compiler/node-cache.cc.gcc8 2018-08-08 21:13:19.000000000 +0200
++++ chromium-68.0.3440.106/v8/src/compiler/node-cache.cc 2018-08-14 23:45:26.941120662 +0200
+@@ -38,7 +38,9 @@
+ size_ *= 4;
+ size_t num_entries = size_ + kLinearProbe;
+ entries_ = zone->NewArray(num_entries);
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(entries_, 0, sizeof(Entry) * num_entries);
++#pragma GCC diagnostic pop
+
+ // Insert the old entries into the new block.
+ for (size_t i = 0; i < old_size; ++i) {
+@@ -69,7 +71,9 @@
+ size_t num_entries = kInitialSize + kLinearProbe;
+ entries_ = zone->NewArray(num_entries);
+ size_ = kInitialSize;
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(entries_, 0, sizeof(Entry) * num_entries);
++#pragma GCC diagnostic pop
+ Entry* entry = &entries_[hash & (kInitialSize - 1)];
+ entry->key_ = key;
+ return &entry->value_;
+--- chromium-68.0.3440.106/v8/src/compiler/simd-scalar-lowering.cc.gcc8 2018-08-08 21:13:19.000000000 +0200
++++ chromium-68.0.3440.106/v8/src/compiler/simd-scalar-lowering.cc 2018-08-14 23:47:52.217508370 +0200
+@@ -38,7 +38,9 @@
+ DCHECK_NOT_NULL(graph());
+ DCHECK_NOT_NULL(graph()->end());
+ replacements_ = zone()->NewArray(graph()->NodeCount());
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(replacements_, 0, sizeof(Replacement) * graph()->NodeCount());
++#pragma GCC diagnostic pop
+ }
+
+ void SimdScalarLowering::LowerGraph() {
+--- chromium-68.0.3440.106/v8/src/log.cc.gcc8 2018-08-08 21:13:19.000000000 +0200
++++ chromium-68.0.3440.106/v8/src/log.cc 2018-08-14 23:55:16.938544439 +0200
+@@ -668,7 +668,9 @@
+ SharedFunctionInfo* shared, const char* name,
+ int length) {
+ JitCodeEvent event;
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(&event, 0, sizeof(event));
++#pragma GCC diagnostic pop
+ event.type = JitCodeEvent::CODE_ADDED;
+ event.code_start = reinterpret_cast(code->InstructionStart());
+ event.code_type =
+@@ -689,7 +691,9 @@
+ void JitLogger::LogRecordedBuffer(const wasm::WasmCode* code, const char* name,
+ int length) {
+ JitCodeEvent event;
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(&event, 0, sizeof(event));
++#pragma GCC diagnostic pop
+ event.type = JitCodeEvent::CODE_ADDED;
+ event.code_type = JitCodeEvent::JIT_CODE;
+ event.code_start = code->instructions().start();
+@@ -726,7 +730,9 @@
+ int position,
+ JitCodeEvent::PositionType position_type) {
+ JitCodeEvent event;
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(&event, 0, sizeof(event));
++#pragma GCC diagnostic pop
+ event.type = JitCodeEvent::CODE_ADD_LINE_POS_INFO;
+ event.user_data = jit_handler_data;
+ event.line_info.offset = pc_offset;
+@@ -740,7 +746,9 @@
+
+ void* JitLogger::StartCodePosInfoEvent() {
+ JitCodeEvent event;
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(&event, 0, sizeof(event));
++#pragma GCC diagnostic pop
+ event.type = JitCodeEvent::CODE_START_LINE_INFO_RECORDING;
+ event.isolate = reinterpret_cast(isolate_);
+
+@@ -751,7 +759,9 @@
+ void JitLogger::EndCodePosInfoEvent(Address start_address,
+ void* jit_handler_data) {
+ JitCodeEvent event;
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(&event, 0, sizeof(event));
++#pragma GCC diagnostic pop
+ event.type = JitCodeEvent::CODE_END_LINE_INFO_RECORDING;
+ event.code_start = reinterpret_cast(start_address);
+ event.user_data = jit_handler_data;
+--- chromium-68.0.3440.106/components/web_cache/browser/web_cache_manager.cc.gcc8 2018-08-08 21:10:52.000000000 +0200
++++ chromium-68.0.3440.106/components/web_cache/browser/web_cache_manager.cc 2018-08-16 12:02:36.324221013 +0200
+@@ -80,7 +80,9 @@
+ active_renderers_.insert(renderer_id);
+
+ RendererInfo* stats = &(stats_[renderer_id]);
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(stats, 0, sizeof(*stats));
++#pragma GCC diagnostic pop
+ stats->access = Time::Now();
+
+ content::RenderProcessHost* host =
+--- chromium-68.0.3440.106/content/browser/browser_plugin/browser_plugin_guest.cc.gcc8 2018-08-08 21:10:53.000000000 +0200
++++ chromium-68.0.3440.106/content/browser/browser_plugin/browser_plugin_guest.cc 2018-08-16 12:40:59.741240759 +0200
+@@ -429,7 +429,9 @@
+ gfx::Vector2d offset_from_embedder = frame_rect_.OffsetFromOrigin();
+ if (event.GetType() == blink::WebInputEvent::kGestureScrollUpdate) {
+ blink::WebGestureEvent resent_gesture_event;
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memcpy(&resent_gesture_event, &event, sizeof(blink::WebGestureEvent));
++#pragma GCC diagnostic pop
+ resent_gesture_event.SetPositionInWidget(
+ resent_gesture_event.PositionInWidget() + offset_from_embedder);
+ // Mark the resend source with the browser plugin's instance id, so the
+@@ -441,7 +443,9 @@
+ view->ProcessGestureEvent(resent_gesture_event, latency_info);
+ } else if (event.GetType() == blink::WebInputEvent::kMouseWheel) {
+ blink::WebMouseWheelEvent resent_wheel_event;
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memcpy(&resent_wheel_event, &event, sizeof(blink::WebMouseWheelEvent));
++#pragma GCC diagnostic pop
+ resent_wheel_event.SetPositionInWidget(
+ resent_wheel_event.PositionInWidget().x + offset_from_embedder.x(),
+ resent_wheel_event.PositionInWidget().y + offset_from_embedder.y());
+--- chromium-68.0.3440.106/device/gamepad/public/cpp/gamepad_mojom_traits.cc.gcc8 2018-08-08 21:10:57.000000000 +0200
++++ chromium-68.0.3440.106/device/gamepad/public/cpp/gamepad_mojom_traits.cc 2018-08-16 14:55:08.981030117 +0200
+@@ -12,7 +12,9 @@
+ void StructTraits<
+ device::mojom::GamepadQuaternionDataView,
+ device::GamepadQuaternion>::SetToNull(device::GamepadQuaternion* out) {
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(out, 0, sizeof(device::GamepadQuaternion));
++#pragma GCC diagnostic pop
+ out->not_null = false;
+ }
+
+@@ -33,7 +35,9 @@
+ void StructTraits::SetToNull(device::GamepadVector*
+ out) {
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(out, 0, sizeof(device::GamepadVector));
++#pragma GCC diagnostic pop
+ out->not_null = false;
+ }
+
+@@ -101,7 +105,9 @@
+ void StructTraits::
+ SetToNull(device::GamepadHapticActuator* out) {
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(out, 0, sizeof(device::GamepadHapticActuator));
++#pragma GCC diagnostic pop
+ out->not_null = false;
+ }
+
+@@ -119,7 +125,9 @@
+ // static
+ void StructTraits::SetToNull(device::GamepadPose* out) {
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(out, 0, sizeof(device::GamepadPose));
++#pragma GCC diagnostic pop
+ out->not_null = false;
+ }
+
+--- chromium-68.0.3440.106/device/gamepad/gamepad_pad_state_provider.cc.gcc8 2018-08-08 21:10:57.000000000 +0200
++++ chromium-68.0.3440.106/device/gamepad/gamepad_pad_state_provider.cc 2018-08-16 14:57:16.836715112 +0200
+@@ -62,7 +62,9 @@
+ }
+
+ void GamepadPadStateProvider::ClearPadState(PadState& state) {
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(&state, 0, sizeof(PadState));
++#pragma GCC diagnostic pop
+ }
+
+ void GamepadPadStateProvider::InitializeDataFetcher(
+@@ -77,7 +79,9 @@
+ DCHECK(pad);
+
+ if (!pad_state->data.connected) {
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(pad, 0, sizeof(Gamepad));
++#pragma GCC diagnostic pop
+ return;
+ }
+
+--- chromium-68.0.3440.106/device/gamepad/gamepad_shared_buffer.cc.gcc8 2018-08-08 21:10:57.000000000 +0200
++++ chromium-68.0.3440.106/device/gamepad/gamepad_shared_buffer.cc 2018-08-16 15:12:56.372693313 +0200
+@@ -16,7 +16,9 @@
+ void* mem = shared_memory_mapping_.memory();
+ DCHECK(mem);
+ hardware_buffer_ = new (mem) GamepadHardwareBuffer();
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(&(hardware_buffer_->data), 0, sizeof(Gamepads));
++#pragma GCC diagnostic pop
+ }
+
+ GamepadSharedBuffer::~GamepadSharedBuffer() = default;
+--- chromium-68.0.3440.106/third_party/blink/renderer/platform/length.h.gcc8 2018-08-08 21:11:51.000000000 +0200
++++ chromium-68.0.3440.106/third_party/blink/renderer/platform/length.h 2018-08-16 21:04:12.500371375 +0200
+@@ -102,7 +102,9 @@
+ length.IncrementCalculatedRef();
+ if (IsCalculated())
+ DecrementCalculatedRef();
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memcpy(this, &length, sizeof(Length));
++#pragma GCC diagnostic pop
+ return *this;
+ }
+
+--- chromium-68.0.3440.106/ppapi/proxy/gamepad_resource.cc.gcc8 2018-08-08 21:11:07.000000000 +0200
++++ chromium-68.0.3440.106/ppapi/proxy/gamepad_resource.cc 2018-08-16 21:14:14.496252776 +0200
+@@ -60,7 +60,9 @@
+ device::Gamepads read_into;
+ do {
+ version = buffer_->seqlock.ReadBegin();
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memcpy(&read_into, &buffer_->data, sizeof(read_into));
++#pragma GCC diagnostic pop
+ ++contention_count;
+ if (contention_count == kMaximumContentionCount)
+ break;
+--- chromium-68.0.3440.106/third_party/blink/renderer/modules/gamepad/gamepad_shared_memory_reader.cc.gcc8 2018-08-08 21:10:55.000000000 +0200
++++ chromium-68.0.3440.106/third_party/blink/renderer/modules/gamepad/gamepad_shared_memory_reader.cc 2018-08-16 22:01:05.038368945 +0200
+@@ -87,7 +87,9 @@
+ base::subtle::Atomic32 version;
+ do {
+ version = gamepad_hardware_buffer_->seqlock.ReadBegin();
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memcpy(&read_into, &gamepad_hardware_buffer_->data, sizeof(read_into));
++#pragma GCC diagnostic pop
+ ++contention_count;
+ if (contention_count == kMaximumContentionCount)
+ break;
+@@ -102,7 +104,9 @@
+ }
+
+ // New data was read successfully, copy it into the output buffer.
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memcpy(&gamepads, &read_into, sizeof(gamepads));
++#pragma GCC diagnostic pop
+
+ if (!ever_interacted_with_) {
+ // Clear the connected flag if the user hasn't interacted with any of the
+--- chromium-68.0.3440.106/content/renderer/media/webrtc/rtc_video_encoder.cc.gcc8 2018-08-08 21:10:55.000000000 +0200
++++ chromium-68.0.3440.106/content/renderer/media/webrtc/rtc_video_encoder.cc 2018-08-16 22:35:12.295855869 +0200
+@@ -769,7 +769,9 @@
+ return;
+
+ webrtc::RTPFragmentationHeader header;
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(&header, 0, sizeof(header));
++#pragma GCC diagnostic pop
+ switch (video_codec_type_) {
+ case webrtc::kVideoCodecVP8:
+ // Generate a header describing a single fragment.
+@@ -794,7 +796,9 @@
+ }
+
+ webrtc::CodecSpecificInfo info;
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(&info, 0, sizeof(info));
++#pragma GCC diagnostic pop
+ info.codecType = video_codec_type_;
+ info.codec_name = ImplementationName();
+ if (video_codec_type_ == webrtc::kVideoCodecVP8) {
+--- chromium-68.0.3440.106/third_party/blink/renderer/core/css/css_selector_list.cc.gcc8 2018-08-08 21:11:49.000000000 +0200
++++ chromium-68.0.3440.106/third_party/blink/renderer/core/css/css_selector_list.cc 2018-08-16 22:38:46.625948903 +0200
+@@ -262,8 +262,10 @@
+ // Move item from the parser selector vector into selector_array_ without
+ // invoking destructor (Ugh.)
+ CSSSelector* current_selector = current->ReleaseSelector().release();
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memcpy(&list.selector_array_[array_index], current_selector,
+ sizeof(CSSSelector));
++#pragma GCC diagnostic pop
+ WTF::Partitions::FastFree(current_selector);
+
+ current = current->TagHistory();
+--- chromium-68.0.3440.106/content/renderer/pepper/plugin_module.cc.gcc8 2018-08-08 21:10:55.000000000 +0200
++++ chromium-68.0.3440.106/content/renderer/pepper/plugin_module.cc 2018-08-17 09:00:00.010744283 +0200
+@@ -506,7 +506,9 @@
+ if (!host_globals)
+ host_globals = new HostGlobals;
+
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(&entry_points_, 0, sizeof(entry_points_));
++#pragma GCC diagnostic pop
+ pp_module_ = HostGlobals::Get()->AddModule(this);
+ GetLivePluginSet()->insert(this);
+ }
+--- chromium-68.0.3440.106/mojo/public/c/system/message_pipe.h.gcc8 2018-08-08 21:11:05.000000000 +0200
++++ chromium-68.0.3440.106/mojo/public/c/system/message_pipe.h 2018-08-18 15:08:11.059119547 +0200
+@@ -35,7 +35,6 @@
+ // See |MojoCreateMessagePipeFlags|.
+ MojoCreateMessagePipeFlags flags;
+ };
+-MOJO_STATIC_ASSERT(MOJO_ALIGNOF(int64_t) == 8, "int64_t has weird alignment");
+ MOJO_STATIC_ASSERT(sizeof(MojoCreateMessagePipeOptions) == 8,
+ "MojoCreateMessagePipeOptions has wrong size");
+
+--- chromium-68.0.3440.106/mojo/public/c/system/data_pipe.h.gcc8 2018-08-08 21:11:05.000000000 +0200
++++ chromium-68.0.3440.106/mojo/public/c/system/data_pipe.h 2018-08-18 15:13:42.028075568 +0200
+@@ -40,7 +40,6 @@
+ // system-dependent capacity of at least one element in size.
+ uint32_t capacity_num_bytes;
+ };
+-MOJO_STATIC_ASSERT(MOJO_ALIGNOF(int64_t) == 8, "int64_t has weird alignment");
+ MOJO_STATIC_ASSERT(sizeof(MojoCreateDataPipeOptions) == 16,
+ "MojoCreateDataPipeOptions has wrong size");
+
+--- chromium-68.0.3440.106/mojo/public/c/system/buffer.h.gcc8 2018-08-08 21:11:05.000000000 +0200
++++ chromium-68.0.3440.106/mojo/public/c/system/buffer.h 2018-08-18 15:15:18.766308780 +0200
+@@ -30,7 +30,6 @@
+ // See |MojoCreateSharedBufferFlags|.
+ MojoCreateSharedBufferFlags flags;
+ };
+-MOJO_STATIC_ASSERT(MOJO_ALIGNOF(int64_t) == 8, "int64_t has weird alignment");
+ MOJO_STATIC_ASSERT(sizeof(MojoCreateSharedBufferOptions) == 8,
+ "MojoCreateSharedBufferOptions has wrong size");
+
+--- chromium-68.0.3440.106/mojo/core/options_validation_unittest.cc.gcc8 2018-08-08 21:11:05.000000000 +0200
++++ chromium-68.0.3440.106/mojo/core/options_validation_unittest.cc 2018-08-18 15:16:30.947990424 +0200
+@@ -18,7 +18,6 @@
+
+ using TestOptionsFlags = uint32_t;
+
+-static_assert(MOJO_ALIGNOF(int64_t) == 8, "int64_t has weird alignment");
+ struct MOJO_ALIGNAS(8) TestOptions {
+ uint32_t struct_size;
+ TestOptionsFlags flags;
diff --git a/network/web/chromium-browser_1/files/mageia/011-chromium-69-gcc7.patch b/network/web/chromium-browser_1/files/mageia/011-chromium-69-gcc7.patch
new file mode 100644
index 0000000000..153b4cea9e
--- /dev/null
+++ b/network/web/chromium-browser_1/files/mageia/011-chromium-69-gcc7.patch
@@ -0,0 +1,554 @@
+--- chromium-69.0.3472.3/third_party/webrtc/video/video_receive_stream.cc.gcc7 2018-06-26 06:35:08.000000000 +0200
++++ chromium-69.0.3472.3/third_party/webrtc/video/video_receive_stream.cc 2018-07-07 12:13:45.579733235 +0200
+@@ -320,10 +320,6 @@
+ const CodecSpecificInfo* codec_specific_info,
+ const RTPFragmentationHeader* fragmentation) {
+ stats_proxy_.OnPreDecode(encoded_image, codec_specific_info);
+- size_t simulcast_idx = 0;
+- if (codec_specific_info->codecType == kVideoCodecVP8) {
+- simulcast_idx = codec_specific_info->codecSpecific.VP8.simulcastIdx;
+- }
+ {
+ rtc::CritScope lock(&ivf_writer_lock_);
+ if (ivf_writer_.get()) {
+--- chromium-69.0.3472.3/third_party/crashpad/crashpad/compat/non_win/dbghelp.h.gcc7 2018-06-26 06:33:19.000000000 +0200
++++ chromium-69.0.3472.3/third_party/crashpad/crashpad/compat/non_win/dbghelp.h 2018-07-07 12:30:05.410672630 +0200
+@@ -29,7 +29,7 @@
+ //!
+ //! A hex dump of a little-endian minidump file will begin with the string
+ //! “MDMP”.
+-#define MINIDUMP_SIGNATURE ('PMDM') // 0x4d444d50
++#define MINIDUMP_SIGNATURE (0x4d444d50) // 'PMDM'
+
+ //! \brief The version of a minidump file, stored in MINIDUMP_HEADER::Version.
+ #define MINIDUMP_VERSION (42899)
+--- chromium-69.0.3472.3/chrome/browser/chrome_browser_main.cc.gcc7 2018-06-26 06:32:57.000000000 +0200
++++ chromium-69.0.3472.3/chrome/browser/chrome_browser_main.cc 2018-07-07 13:30:10.409446615 +0200
+@@ -740,9 +740,8 @@
+ chrome::AttemptExit();
+ return false;
+ }
+-#else
+- return true;
+ #endif
++ return true;
+ }
+
+ } // namespace
+--- chromium-69.0.3472.3/chrome/browser/resource_coordinator/tab_lifecycle_unit.cc.gcc7 2018-06-26 06:32:58.000000000 +0200
++++ chromium-69.0.3472.3/chrome/browser/resource_coordinator/tab_lifecycle_unit.cc 2018-07-07 13:47:27.816647653 +0200
+@@ -154,6 +154,7 @@
+ }
+ }
+ }
++ return false;
+ }
+
+ StateChangeReason DiscardReasonToStateChangeReason(DiscardReason reason) {
+@@ -165,6 +166,7 @@
+ case DiscardReason::kUrgent:
+ return StateChangeReason::SYSTEM_MEMORY_PRESSURE;
+ }
++ return StateChangeReason::BROWSER_INITIATED;
+ }
+
+ struct FeatureUsageEntry {
+--- chromium-69.0.3472.3/chrome/browser/ui/views/harmony/material_refresh_layout_provider.cc.gcc7 2018-06-26 06:32:58.000000000 +0200
++++ chromium-69.0.3472.3/chrome/browser/ui/views/harmony/material_refresh_layout_provider.cc 2018-07-07 14:36:14.447584185 +0200
+@@ -33,9 +33,6 @@
+ views::EmphasisMetric emphasis_metric,
+ const gfx::Size& size) const {
+ switch (emphasis_metric) {
+- case views::EMPHASIS_NONE:
+- NOTREACHED();
+- return 0;
+ case views::EMPHASIS_LOW:
+ case views::EMPHASIS_MEDIUM:
+ return 4;
+@@ -43,15 +40,15 @@
+ return 8;
+ case views::EMPHASIS_MAXIMUM:
+ return std::min(size.width(), size.height()) / 2;
++ case views::EMPHASIS_NONE:
++ NOTREACHED();
+ }
++ return 0;
+ }
+
+ int MaterialRefreshLayoutProvider::GetShadowElevationMetric(
+ views::EmphasisMetric emphasis_metric) const {
+ switch (emphasis_metric) {
+- case views::EMPHASIS_NONE:
+- NOTREACHED();
+- return 0;
+ case views::EMPHASIS_LOW:
+ return 1;
+ case views::EMPHASIS_MEDIUM:
+@@ -60,7 +57,10 @@
+ return 3;
+ case views::EMPHASIS_MAXIMUM:
+ return 16;
++ case views::EMPHASIS_NONE:
++ NOTREACHED();
+ }
++ return 0;
+ }
+
+ gfx::ShadowValues MaterialRefreshLayoutProvider::MakeShadowValues(
+--- chromium-69.0.3472.3/chrome/browser/ui/views/passwords/password_generation_popup_view_views.cc.gcc7 2018-06-26 06:32:58.000000000 +0200
++++ chromium-69.0.3472.3/chrome/browser/ui/views/passwords/password_generation_popup_view_views.cc 2018-07-07 15:04:10.502088288 +0200
+@@ -55,8 +55,8 @@
+ views::Label* suggestion_label = new views::Label(
+ suggestion, ChromeTextContext::CONTEXT_BODY_TEXT_LARGE,
+ state == PasswordGenerationPopupController::kOfferGeneration
+- ? views::style::STYLE_PRIMARY
+- : STYLE_SECONDARY);
++ ? int(views::style::STYLE_PRIMARY)
++ : int(STYLE_SECONDARY));
+ layout->AddView(suggestion_label);
+
+ DCHECK(!password_label_);
+--- chromium-69.0.3472.3/components/data_reduction_proxy/core/browser/data_reduction_proxy_util.cc.gcc7-7 2018-06-26 06:33:00.000000000 +0200
++++ chromium-69.0.3472.3/components/data_reduction_proxy/core/browser/data_reduction_proxy_util.cc 2018-07-07 15:22:43.289751740 +0200
+@@ -313,8 +313,6 @@
+ PageloadMetrics_ConnectionType ProtoConnectionTypeFromConnectionType(
+ net::NetworkChangeNotifier::ConnectionType connection_type) {
+ switch (connection_type) {
+- case net::NetworkChangeNotifier::CONNECTION_UNKNOWN:
+- return PageloadMetrics_ConnectionType_CONNECTION_UNKNOWN;
+ case net::NetworkChangeNotifier::CONNECTION_ETHERNET:
+ return PageloadMetrics_ConnectionType_CONNECTION_ETHERNET;
+ case net::NetworkChangeNotifier::CONNECTION_WIFI:
+@@ -329,7 +327,10 @@
+ return PageloadMetrics_ConnectionType_CONNECTION_NONE;
+ case net::NetworkChangeNotifier::CONNECTION_BLUETOOTH:
+ return PageloadMetrics_ConnectionType_CONNECTION_BLUETOOTH;
++ case net::NetworkChangeNotifier::CONNECTION_UNKNOWN:
++ break;
+ }
++ return PageloadMetrics_ConnectionType_CONNECTION_UNKNOWN;
+ }
+
+ RequestInfo_Protocol ProtoRequestInfoProtocolFromRequestInfoProtocol(
+@@ -342,8 +343,9 @@
+ case DataReductionProxyData::RequestInfo::Protocol::QUIC:
+ return RequestInfo_Protocol_QUIC;
+ case DataReductionProxyData::RequestInfo::Protocol::UNKNOWN:
+- return RequestInfo_Protocol_UNKNOWN;
++ break;
+ }
++ return RequestInfo_Protocol_UNKNOWN;
+ }
+
+ net::ProxyServer::Scheme SchemeFromProxyScheme(
+--- chromium-69.0.3472.3/components/previews/core/previews_black_list.cc.gcc7 2018-06-26 06:33:01.000000000 +0200
++++ chromium-69.0.3472.3/components/previews/core/previews_black_list.cc 2018-07-07 15:41:14.295381780 +0200
+@@ -34,6 +34,7 @@
+ case blacklist::BlacklistReason::kAllowed:
+ return PreviewsEligibilityReason::ALLOWED;
+ }
++ return PreviewsEligibilityReason::LAST;
+ }
+
+ }
+--- chromium-69.0.3472.3/base/callback_helpers.h.gcc7 2018-06-26 06:32:56.000000000 +0200
++++ chromium-69.0.3472.3/base/callback_helpers.h 2018-07-07 16:00:33.724127746 +0200
+@@ -91,7 +91,7 @@
+ void ReplaceClosure(OnceClosure closure);
+
+ // Releases the Closure without calling.
+- OnceClosure Release() WARN_UNUSED_RESULT;
++ OnceClosure Release();
+
+ private:
+ OnceClosure closure_;
+--- chromium-69.0.3472.3/content/browser/frame_host/frame_tree_node.cc.gcc7 2018-06-26 06:33:02.000000000 +0200
++++ chromium-69.0.3472.3/content/browser/frame_host/frame_tree_node.cc 2018-07-07 18:37:53.236178023 +0200
+@@ -624,6 +624,7 @@
+ return NotifyUserActivation();
+ }
+ NOTREACHED() << "Invalid update_type.";
++ return false;
+ }
+
+ void FrameTreeNode::OnSetHasReceivedUserGestureBeforeNavigation(bool value) {
+--- chromium-69.0.3472.3/device/bluetooth/bluetooth_remote_gatt_characteristic.cc.gcc7 2018-06-26 06:33:02.000000000 +0200
++++ chromium-69.0.3472.3/device/bluetooth/bluetooth_remote_gatt_characteristic.cc 2018-07-07 21:00:37.557253268 +0200
+@@ -362,14 +362,15 @@
+ Properties properties = GetProperties();
+ bool hasNotify = (properties & PROPERTY_NOTIFY) != 0;
+ bool hasIndicate = (properties & PROPERTY_INDICATE) != 0;
+- if (!notification_type)
+- return hasNotify || hasIndicate;
+- switch (notification_type.value()) {
+- case NotificationType::kNotification:
+- return hasNotify;
+- case NotificationType::kIndication:
+- return hasIndicate;
++ if (notification_type) {
++ switch (notification_type.value()) {
++ case NotificationType::kNotification:
++ return hasNotify;
++ case NotificationType::kIndication:
++ return hasIndicate;
++ }
+ }
++ return hasNotify || hasIndicate;
+ }
+
+ } // namespace device
+--- chromium-69.0.3472.3/ui/base/mojo/clipboard_struct_traits.h.gcc7 2018-06-26 06:33:23.000000000 +0200
++++ chromium-69.0.3472.3/ui/base/mojo/clipboard_struct_traits.h 2018-07-07 22:02:21.462873681 +0200
+@@ -21,6 +21,7 @@
+ case ui::CLIPBOARD_TYPE_DRAG:
+ return ui::mojom::ClipboardType::DRAG;
+ }
++ return ui::mojom::ClipboardType(int(ui::mojom::ClipboardType::kMaxValue) + 1);
+ }
+
+ static bool FromMojom(ui::mojom::ClipboardType type, ui::ClipboardType* out) {
+--- chromium-69.0.3472.3/pdf/out_of_process_instance.cc.gcc7 2018-06-26 06:33:05.000000000 +0200
++++ chromium-69.0.3472.3/pdf/out_of_process_instance.cc 2018-07-07 22:24:15.654709688 +0200
+@@ -471,7 +471,6 @@
+
+ text_input_ = std::make_unique(this);
+
+- bool enable_javascript = false;
+ const char* stream_url = nullptr;
+ const char* original_url = nullptr;
+ const char* top_level_url = nullptr;
+@@ -491,8 +490,6 @@
+ } else if (strcmp(argn[i], "top-toolbar-height") == 0) {
+ success =
+ base::StringToInt(argv[i], &top_toolbar_height_in_viewport_coords_);
+- } else if (strcmp(argn[i], "javascript") == 0) {
+- enable_javascript = (strcmp(argv[i], "allow") == 0);
+ }
+ if (!success)
+ return false;
+--- chromium-69.0.3472.3/ui/views/layout/layout_provider.cc.gcc7 2018-06-26 06:33:24.000000000 +0200
++++ chromium-69.0.3472.3/ui/views/layout/layout_provider.cc 2018-07-07 22:46:19.302390595 +0200
+@@ -148,7 +148,7 @@
+ switch (emphasis_metric) {
+ case views::EMPHASIS_NONE:
+ NOTREACHED();
+- return 0;
++ break;
+ case EMPHASIS_LOW:
+ case EMPHASIS_MEDIUM:
+ return is_touch ? 4 : 2;
+@@ -157,6 +157,7 @@
+ case EMPHASIS_MAXIMUM:
+ return is_touch ? std::min(size.width(), size.height()) / 2 : 4;
+ }
++ return 0;
+ }
+
+ int LayoutProvider::GetShadowElevationMetric(
+--- chromium-69.0.3472.3/content/renderer/input/input_event_prediction.cc.gcc7 2018-06-26 06:33:02.000000000 +0200
++++ chromium-69.0.3472.3/content/renderer/input/input_event_prediction.cc 2018-07-07 23:26:14.070643691 +0200
+@@ -77,6 +77,7 @@
+ case PredictorType::kKalman:
+ return std::make_unique();
+ }
++ return 0;
+ }
+
+ void InputEventPrediction::UpdatePrediction(const WebInputEvent& event) {
+--- chromium-69.0.3472.3/third_party/blink/renderer/platform/heap/heap_stats_collector.h.gcc7 2018-06-26 06:33:19.000000000 +0200
++++ chromium-69.0.3472.3/third_party/blink/renderer/platform/heap/heap_stats_collector.h 2018-07-08 02:47:57.843418842 +0200
+@@ -95,6 +95,7 @@
+ case Id::kVisitStackRoots:
+ return "BlinkGC.VisitStackRoots";
+ }
++ return 0;
+ }
+
+ static constexpr int kNumScopeIds = kLastScopeId + 1;
+--- chromium-69.0.3472.3/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc.gcc7 2018-06-26 06:33:19.000000000 +0200
++++ chromium-69.0.3472.3/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc 2018-07-08 10:57:14.446270568 +0200
+@@ -622,7 +622,7 @@
+ switch (old_state) {
+ case PageLifecycleState::kUnknown:
+ // We don't track the initial transition.
+- return base::nullopt;
++ break;
+ case PageLifecycleState::kActive:
+ switch (new_state) {
+ case PageLifecycleState::kHiddenForegrounded:
+@@ -631,7 +631,7 @@
+ return PageLifecycleStateTransition::kActiveToHiddenBackgrounded;
+ default:
+ NOTREACHED();
+- return base::nullopt;
++ break;
+ }
+ case PageLifecycleState::kHiddenForegrounded:
+ switch (new_state) {
+@@ -644,7 +644,7 @@
+ return PageLifecycleStateTransition::kHiddenForegroundedToFrozen;
+ default:
+ NOTREACHED();
+- return base::nullopt;
++ break;
+ }
+ case PageLifecycleState::kHiddenBackgrounded:
+ switch (new_state) {
+@@ -657,8 +657,8 @@
+ return PageLifecycleStateTransition::kHiddenBackgroundedToFrozen;
+ default:
+ NOTREACHED();
+- return base::nullopt;
+- }
++ break;
++ }
+ case PageLifecycleState::kFrozen:
+ switch (new_state) {
+ case PageLifecycleState::kActive:
+@@ -669,9 +669,10 @@
+ return PageLifecycleStateTransition::kFrozenToHiddenBackgrounded;
+ default:
+ NOTREACHED();
+- return base::nullopt;
++ break;
+ }
+ }
++ return base::nullopt;
+ }
+
+ // static
+--- chromium-69.0.3497.4/third_party/pdfium/core/fpdfapi/render/cpdf_scaledrenderbuffer.cpp.gcc7 2018-07-21 09:14:59.000000000 +0200
++++ chromium-69.0.3497.4/third_party/pdfium/core/fpdfapi/render/cpdf_scaledrenderbuffer.cpp 2018-07-21 18:57:05.372328475 +0200
+@@ -50,10 +50,8 @@
+ }
+ m_pBitmapDevice = pdfium::MakeUnique();
+ FXDIB_Format dibFormat = FXDIB_Rgb;
+- int32_t bpp = 24;
+ if (m_pDevice->GetDeviceCaps(FXDC_RENDER_CAPS) & FXRC_ALPHA_OUTPUT) {
+ dibFormat = FXDIB_Argb;
+- bpp = 32;
+ }
+ while (1) {
+ FX_RECT bitmap_rect =
+--- chromium-69.0.3497.4/third_party/pdfium/fxjs/cjs_field.cpp.gcc7 2018-07-21 09:14:59.000000000 +0200
++++ chromium-69.0.3497.4/third_party/pdfium/fxjs/cjs_field.cpp 2018-07-21 20:25:41.470285320 +0200
+@@ -703,14 +703,16 @@
+
+ CPDF_FormField* pFormField = GetFirstFormField();
+ if (!pFormField)
++ {
+ return CJS_Return(JSMessage::kBadObjectError);
+-
+- return CJS_Return(JSMessage::kBadObjectError);
++ }
+
+ CPDFSDK_Widget* pWidget =
+ GetWidget(m_pFormFillEnv.Get(), GetSmartFieldControl(pFormField));
+ if (!pWidget)
++ {
+ return CJS_Return(JSMessage::kBadObjectError);
++ }
+
+ switch (pWidget->GetBorderStyle()) {
+ case BorderStyle::SOLID:
+--- chromium-69.0.3497.4/components/policy/core/common/policy_proto_decoders.cc.gcc7 2018-07-21 09:12:56.000000000 +0200
++++ chromium-69.0.3497.4/components/policy/core/common/policy_proto_decoders.cc 2018-07-21 21:38:32.566870921 +0200
+@@ -43,6 +43,7 @@
+ case em::PolicyOptions::UNSET:
+ return false;
+ }
++ return false;
+ }
+
+ // Convert a BooleanPolicyProto to a bool base::Value.
+@@ -186,4 +187,4 @@
+ }
+ }
+
+-} // namespace policy
+\ No newline at end of file
++} // namespace policy
+--- chromium-69.0.3497.4/components/password_manager/core/browser/browser_save_password_progress_logger.cc.gcc7 2018-07-21 09:12:55.000000000 +0200
++++ chromium-69.0.3497.4/components/password_manager/core/browser/browser_save_password_progress_logger.cc 2018-07-21 23:21:48.274812853 +0200
+@@ -87,6 +87,7 @@
+ case AutofillUploadContents::Field::FIRST_USE:
+ return "First use";
+ }
++ return "";
+ }
+
+ } // namespace
+--- chromium-69.0.3497.4/components/previews/content/previews_hints.cc.gcc7 2018-07-21 09:12:56.000000000 +0200
++++ chromium-69.0.3497.4/components/previews/content/previews_hints.cc 2018-07-21 23:28:56.375131778 +0200
+@@ -95,6 +95,7 @@
+ case optimization_guide::proto::RESOURCE_LOADING:
+ return PreviewsType::RESOURCE_LOADING_HINTS;
+ }
++ return base::Optional();
+ }
+
+ void RecordProcessHintsResult(PreviewsProcessHintsResult result) {
+--- chromium-69.0.3497.4/content/browser/renderer_host/input/mouse_wheel_event_queue.cc.gcc7 2018-07-21 09:13:03.000000000 +0200
++++ chromium-69.0.3497.4/content/browser/renderer_host/input/mouse_wheel_event_queue.cc 2018-07-21 23:53:41.085484269 +0200
+@@ -178,13 +178,11 @@
+ bool current_phase_ended = false;
+ bool scroll_phase_ended = false;
+ bool momentum_phase_ended = false;
+- bool has_phase_info = false;
+
+ if (event_sent_for_gesture_ack_->event.phase !=
+ blink::WebMouseWheelEvent::kPhaseNone ||
+ event_sent_for_gesture_ack_->event.momentum_phase !=
+ blink::WebMouseWheelEvent::kPhaseNone) {
+- has_phase_info = true;
+ scroll_phase_ended = event_sent_for_gesture_ack_->event.phase ==
+ blink::WebMouseWheelEvent::kPhaseEnded ||
+ event_sent_for_gesture_ack_->event.phase ==
+--- chromium-69.0.3497.4/content/browser/web_package/signed_exchange_handler.cc.gcc7 2018-07-21 20:30:02.788552807 +0200
++++ chromium-69.0.3497.4/content/browser/web_package/signed_exchange_handler.cc 2018-07-22 00:32:42.325559060 +0200
+@@ -499,7 +499,7 @@
+ base::StringPrintf(
+ "CT verification failed. result: %s, policy compliance: %d",
+ net::ErrorToShortString(ct_result).c_str(),
+- ct_verify_result.policy_compliance),
++ int(ct_verify_result.policy_compliance)),
+ std::make_pair(0 /* signature_index */,
+ SignedExchangeError::Field::kSignatureCertUrl));
+ RunErrorCallback(net::ERR_INVALID_SIGNED_EXCHANGE);
+--- chromium-69.0.3497.4/net/third_party/quic/core/quic_framer.cc.gcc7 2018-07-21 09:13:13.000000000 +0200
++++ chromium-69.0.3497.4/net/third_party/quic/core/quic_framer.cc 2018-07-22 01:30:27.093813461 +0200
+@@ -3634,7 +3634,6 @@
+ return false;
+ }
+
+- size_t num_timestamps_offset = 0;
+ size_t max_num_ack_blocks = available_timestamp_and_ack_block_bytes /
+ (ack_block_length + PACKET_1BYTE_PACKET_NUMBER);
+
+@@ -3652,7 +3651,6 @@
+
+ // Write a placeholder for the number of timestamps which will be
+ // overwritten after the ack blocks have been written.
+- num_timestamps_offset = writer->length();
+ uint8_t num_timestamps = 0;
+ if (!writer->WriteUInt8(num_timestamps)) {
+ return false;
+--- chromium-69.0.3497.4/services/ui/public/cpp/gpu/command_buffer_metrics.cc.gcc7 2018-07-21 09:13:14.000000000 +0200
++++ chromium-69.0.3497.4/services/ui/public/cpp/gpu/command_buffer_metrics.cc 2018-07-22 02:02:14.833006828 +0200
+@@ -87,6 +87,7 @@
+ case ContextType::FOR_TESTING:
+ return "ForTesting";
+ }
++ return "Unexpected";
+ }
+
+ void UmaRecordContextInitFailed(ContextType type) {
+--- chromium-69.0.3497.4/third_party/blink/renderer/modules/peerconnection/rtc_rtp_transceiver.cc.gcc7 2018-07-21 09:13:41.000000000 +0200
++++ chromium-69.0.3497.4/third_party/blink/renderer/modules/peerconnection/rtc_rtp_transceiver.cc 2018-07-22 02:11:31.506330451 +0200
+@@ -29,6 +29,7 @@
+ case webrtc::RtpTransceiverDirection::kInactive:
+ return "inactive";
+ }
++ return "";
+ }
+
+ String OptionalTransceiverDirectionToString(
+--- chromium-69.0.3497.4/media/blink/watch_time_reporter.cc.gcc7 2018-07-21 09:13:09.000000000 +0200
++++ chromium-69.0.3497.4/media/blink/watch_time_reporter.cc 2018-07-22 03:13:23.483720815 +0200
+@@ -572,6 +572,7 @@
+ case DisplayType::kPictureInPicture:
+ return DISPLAY_TYPE_KEY(DisplayPictureInPicture);
+ }
++ return DISPLAY_TYPE_KEY(All);
+ }
+
+ #undef DISPLAY_TYPE_KEY
+--- chromium-69.0.3497.4/third_party/blink/renderer/core/css/style_environment_variables.cc.gcc7 2018-07-21 09:13:40.000000000 +0200
++++ chromium-69.0.3497.4/third_party/blink/renderer/core/css/style_environment_variables.cc 2018-07-22 10:53:45.772448293 +0200
+@@ -63,6 +63,7 @@
+ case UADefinedVariable::kSafeAreaInsetRight:
+ return "safe-area-inset-right";
+ default:
++ return "";
+ break;
+ }
+
+--- chromium-69.0.3497.4/third_party/blink/renderer/core/frame/local_frame_view.cc.gcc7 2018-07-21 20:30:02.719554057 +0200
++++ chromium-69.0.3497.4/third_party/blink/renderer/core/frame/local_frame_view.cc 2018-07-22 12:07:12.229220576 +0200
+@@ -3211,7 +3211,7 @@
+
+ FloatPoint LocalFrameView::ConvertToContainingEmbeddedContentView(
+ const FloatPoint& local_point) const {
+- if (LocalFrameView* parent = ParentFrameView()) {
++ if (ParentFrameView() != 0) {
+ auto* layout_object = frame_->OwnerLayoutObject();
+ if (!layout_object)
+ return local_point;
+--- chromium-69.0.3497.4/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.cc.gcc7 2018-07-21 09:13:41.000000000 +0200
++++ chromium-69.0.3497.4/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.cc 2018-07-22 12:12:33.199377829 +0200
+@@ -1753,9 +1753,6 @@
+ unsigned long identifier,
+ const ResourceResponse& response,
+ std::unique_ptr handle) {
+- // TODO(yhirano): Remove this CHECK: see https://crbug.com/570946.
+- CHECK(&response);
+-
+ ALLOW_UNUSED_LOCAL(handle);
+ DCHECK(!handle);
+ NETWORK_DVLOG(1) << this << " didReceiveResponse(" << identifier << ")";
+--- chromium-69.0.3497.4/third_party/blink/renderer/modules/cookie_store/cookie_change_event.cc.gcc7 2018-07-21 09:13:41.000000000 +0200
++++ chromium-69.0.3497.4/third_party/blink/renderer/modules/cookie_store/cookie_change_event.cc 2018-07-22 12:42:37.155347296 +0200
+@@ -56,6 +56,7 @@
+ }
+
+ NOTREACHED();
++ return "";
+ }
+
+ } // namespace
+--- chromium-69.0.3497.4/third_party/blink/renderer/platform/text/character_property_data_generator.h.gcc7 2018-07-22 13:38:55.938619906 +0200
++++ chromium-69.0.3497.4/third_party/blink/renderer/platform/text/character_property_data_generator.h 2018-07-22 13:39:12.271315025 +0200
+@@ -247,7 +247,7 @@
+ 0xFFA0, 0xFFDC,
+ };
+
+-static const UChar32 kIsHangulArray[] = {};
++static const UChar32 kIsHangulArray[] = {0};
+
+ } // namespace blink
+
+--- chromium-69.0.3497.42/chrome/browser/resource_coordinator/local_site_characteristics_webcontents_observer.cc.gcc7 2018-08-17 03:05:19.000000000 +0200
++++ chromium-69.0.3497.42/chrome/browser/resource_coordinator/local_site_characteristics_webcontents_observer.cc 2018-08-18 23:31:30.084822331 +0200
+@@ -254,9 +254,11 @@
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+
+ if (ShouldIgnoreFeatureUsageEvent(feature_type))
++ {
+ return;
++ }
+
+- (writer_.get()->*method)();
++ (writer_.get()->*method)();
+ }
+
+ void LocalSiteCharacteristicsWebContentsObserver::OnSiteLoaded() {
+--- chromium-69.0.3497.42/content/renderer/media/webrtc/peer_connection_tracker.cc.gcc7 2018-08-17 03:05:35.000000000 +0200
++++ chromium-69.0.3497.42/content/renderer/media/webrtc/peer_connection_tracker.cc 2018-08-19 10:00:21.171828248 +0200
+@@ -113,6 +113,7 @@
+ case webrtc::RtpTransceiverDirection::kInactive:
+ return "'inactive'";
+ }
++ return "";
+ }
+
+ static const char* SerializeOptionalDirection(
+--- chromium-69.0.3497.42/third_party/blink/renderer/core/html/media/media_controls.cc.gcc7 2018-08-17 03:06:24.000000000 +0200
++++ chromium-69.0.3497.42/third_party/blink/renderer/core/html/media/media_controls.cc 2018-08-19 12:30:24.128429583 +0200
+@@ -39,6 +39,7 @@
+ }
+
+ NOTREACHED();
++ return AtomicString();
+ }
+
+ MediaControls::MediaControls(HTMLMediaElement& media_element)
diff --git a/network/web/chromium-browser_1/files/mageia/012-chromium-69-gcc8.patch b/network/web/chromium-browser_1/files/mageia/012-chromium-69-gcc8.patch
new file mode 100644
index 0000000000..ef98f85741
--- /dev/null
+++ b/network/web/chromium-browser_1/files/mageia/012-chromium-69-gcc8.patch
@@ -0,0 +1,12 @@
+--- chromium-69.0.3497.42/third_party/blink/renderer/platform/heap/heap_stats_collector.cc.gcc8 2018-08-17 03:06:26.000000000 +0200
++++ chromium-69.0.3497.42/third_party/blink/renderer/platform/heap/heap_stats_collector.cc 2018-08-19 13:50:34.455693170 +0200
+@@ -83,7 +83,9 @@
+ // Reset the current state.
+ static_assert(!std::is_polymorphic::value,
+ "Event should not be polymorphic");
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
+ memset(¤t_, 0, sizeof(current_));
++#pragma GCC diagnostic pop
+ }
+
+ void ThreadHeapStatsCollector::UpdateReason(BlinkGC::GCReason reason) {
diff --git a/network/web/chromium-browser_1/files/mageia/chromium-45-no-external-components.patch b/network/web/chromium-browser_1/files/mageia/chromium-45-no-external-components.patch
new file mode 100644
index 0000000000..1a755a16d0
--- /dev/null
+++ b/network/web/chromium-browser_1/files/mageia/chromium-45-no-external-components.patch
@@ -0,0 +1,13 @@
+--- chromium-60.0.3112.40/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc.no-external-components 2017-06-23 23:37:14.038911768 +0200
++++ chromium-60.0.3112.40/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc 2017-06-23 23:49:00.077985242 +0200
+@@ -26,8 +26,10 @@
+
+ bool IsComponentExtensionWhitelisted(const std::string& extension_id) {
+ const char* const kAllowed[] = {
++#if 0
+ extension_misc::kInAppPaymentsSupportAppId,
+ extension_misc::kMediaRouterStableExtensionId,
++#endif
+ extension_misc::kPdfExtensionId,
+ #if defined(OS_CHROMEOS)
+ extension_misc::kAssessmentAssistantExtensionId,
diff --git a/network/web/chromium-browser_1/files/mageia/chromium-52-pdfium-system-libtiff-libpng.patch b/network/web/chromium-browser_1/files/mageia/chromium-52-pdfium-system-libtiff-libpng.patch
new file mode 100644
index 0000000000..2f8a4967c1
--- /dev/null
+++ b/network/web/chromium-browser_1/files/mageia/chromium-52-pdfium-system-libtiff-libpng.patch
@@ -0,0 +1,228 @@
+diff -up chromium-60.0.3112.40/third_party/pdfium/BUILD.gn.pdfium-system-libtiff-libpng chromium-60.0.3112.40/third_party/pdfium/BUILD.gn
+--- chromium-60.0.3112.40/third_party/pdfium/BUILD.gn.pdfium-system-libtiff-libpng 2017-06-22 00:04:09.000000000 +0200
++++ chromium-60.0.3112.40/third_party/pdfium/BUILD.gn 2017-06-24 00:05:50.521671902 +0200
+@@ -19,7 +19,6 @@ config("pdfium_common_config") {
+ ldflags = []
+ include_dirs = [ "." ]
+ defines = [
+- "OPJ_STATIC",
+ "PNG_PREFIX",
+ "PNG_USE_READ_MACROS",
+ ]
+@@ -668,6 +667,7 @@
+ deps = [
+ ":fxcrt",
+ "third_party:lcms2",
++ "third_party:fx_libopenjpeg",
+ ]
+ }
+
+@@ -685,6 +685,7 @@
+ configs += [ ":pdfium_core_config" ]
+ deps = [
+ ":fxcrt",
++ "third_party:fx_libopenjpeg",
+ ]
+ }
+
+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
+@@ -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
+
+ namespace {
+
+@@ -188,7 +186,7 @@
+ tiff_write, tiff_seek, tiff_close, tiff_get_size,
+ tiff_map, tiff_unmap);
+ if (tif) {
+- tif->tif_fd = (int)(intptr_t)context;
++ (void)TIFFSetFileno(tif, (int)(intptr_t)context);
+ }
+ return tif;
+ }
+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
+@@ -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
+
+ class CPDF_ColorSpace;
+
+diff -up chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/codec_int.h.pdfium-system-libtiff-libpng chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/codec_int.h
+--- chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/codec_int.h.pdfium-system-libtiff-libpng 2017-06-22 00:04:10.000000000 +0200
++++ chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/codec_int.h 2017-06-24 00:05:50.521671902 +0200
+@@ -15,7 +15,7 @@
+ #include
+
+ #include "core/fxcodec/jbig2/JBig2_Context.h"
+-#include "third_party/libopenjpeg20/openjpeg.h"
++#include
+
+ class CPDF_ColorSpace;
+
+diff -up chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/fx_codec_jpx_opj.cpp.pdfium-system-libtiff-libpng chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/fx_codec_jpx_opj.cpp
+--- chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/fx_codec_jpx_opj.cpp.pdfium-system-libtiff-libpng 2017-06-22 00:04:10.000000000 +0200
++++ chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/fx_codec_jpx_opj.cpp 2017-06-24 00:26:21.330902789 +0200
+@@ -16,8 +16,12 @@
+ #include "core/fxcrt/fx_memory.h"
+ #include "core/fxcrt/fx_safe_types.h"
+ #include "third_party/base/ptr_util.h"
+-#include "third_party/libopenjpeg20/openjpeg.h"
+-#include "third_party/libopenjpeg20/opj_malloc.h"
++#include
++//#include
++extern "C" {
++extern void * opj_calloc(size_t, size_t);
++extern void opj_free(void *);
++}
+
+ namespace {
+
+@@ -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.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
+@@ -356,49 +356,14 @@
+ }
+ }
+
+-config("fx_libopenjpeg_warnings") {
+- visibility = [ ":*" ]
+- if (is_win) {
+- cflags = [
+- # Signed/unsigned comparisons.
+- "/wd4018",
+- ]
+- }
++pkg_config("openjpeg_config") {
++ packages = [
++ "libopenjp2",
++ ]
+ }
+
+-static_library("fx_libopenjpeg") {
+- configs -= [ "//build/config/compiler:chromium_code" ]
+- configs += [
+- "//build/config/compiler:no_chromium_code",
+- "//build/config/sanitizers:cfi_icall_generalize_pointers",
+- ":pdfium_third_party_config",
+-
+- # Must be after no_chromium_code for warning flags to be ordered correctly.
+- ":fx_libopenjpeg_warnings",
+- ]
+- sources = [
+- "libopenjpeg20/bio.c",
+- "libopenjpeg20/cio.c",
+- "libopenjpeg20/dwt.c",
+- "libopenjpeg20/event.c",
+- "libopenjpeg20/function_list.c",
+- "libopenjpeg20/image.c",
+- "libopenjpeg20/invert.c",
+- "libopenjpeg20/j2k.c",
+- "libopenjpeg20/jp2.c",
+- "libopenjpeg20/mct.c",
+- "libopenjpeg20/mqc.c",
+- "libopenjpeg20/openjpeg.c",
+- "libopenjpeg20/opj_clock.c",
+- "libopenjpeg20/pi.c",
+- "libopenjpeg20/sparse_array.c",
+- "libopenjpeg20/sparse_array.h",
+- "libopenjpeg20/t1.c",
+- "libopenjpeg20/t2.c",
+- "libopenjpeg20/tcd.c",
+- "libopenjpeg20/tgt.c",
+- "libopenjpeg20/thread.c",
+- ]
++source_set("fx_libopenjpeg") {
++ public_configs = [ ":openjpeg_config" ]
+ }
+
+ config("system_libpng_config") {
+@@ -477,61 +442,13 @@
+ }
+ }
+
++config("fx_tiff_config") {
++ libs = [ "tiff" ]
++}
++
+ if (pdf_enable_xfa) {
+- static_library("fx_tiff") {
+- configs -= [ "//build/config/compiler:chromium_code" ]
+- configs += [
+- "//build/config/compiler:no_chromium_code",
+- ":pdfium_third_party_config",
+- ]
+- if (is_win) {
+- # Need to undefine the macro since it is redefined in
+- # tif_ojpeg.c and tif_jpeg.c.
+- configs -= [ "//build/config/win:lean_and_mean" ]
+- }
+- deps = [
+- ":zlib",
+- "//third_party:jpeg",
+- ]
+- sources = [
+- "libtiff/tif_aux.c",
+- "libtiff/tif_close.c",
+- "libtiff/tif_codec.c",
+- "libtiff/tif_color.c",
+- "libtiff/tif_compress.c",
+- "libtiff/tif_dir.c",
+- "libtiff/tif_dirinfo.c",
+- "libtiff/tif_dirread.c",
+- "libtiff/tif_dirwrite.c",
+- "libtiff/tif_dumpmode.c",
+- "libtiff/tif_error.c",
+- "libtiff/tif_extension.c",
+- "libtiff/tif_fax3.c",
+- "libtiff/tif_fax3sm.c",
+- "libtiff/tif_flush.c",
+- "libtiff/tif_getimage.c",
+- "libtiff/tif_jpeg.c",
+- "libtiff/tif_luv.c",
+- "libtiff/tif_lzw.c",
+- "libtiff/tif_next.c",
+- "libtiff/tif_ojpeg.c",
+- "libtiff/tif_open.c",
+- "libtiff/tif_packbits.c",
+- "libtiff/tif_pixarlog.c",
+- "libtiff/tif_predict.c",
+- "libtiff/tif_print.c",
+- "libtiff/tif_read.c",
+- "libtiff/tif_strip.c",
+- "libtiff/tif_swab.c",
+- "libtiff/tif_thunder.c",
+- "libtiff/tif_tile.c",
+- "libtiff/tif_version.c",
+- "libtiff/tif_warning.c",
+- "libtiff/tif_write.c",
+- "libtiff/tif_zip.c",
+- "libtiff/tiffiop.h",
+- "libtiff/tiffvers.h",
+- ]
++ source_set("fx_tiff") {
++ public_configs = [ ":fx_tiff_config" ]
+ }
+ }
+
diff --git a/network/web/chromium-browser_1/files/mageia/chromium-53-gn-system-icu-jsoncpp.patch b/network/web/chromium-browser_1/files/mageia/chromium-53-gn-system-icu-jsoncpp.patch
new file mode 100644
index 0000000000..2a848596e7
--- /dev/null
+++ b/network/web/chromium-browser_1/files/mageia/chromium-53-gn-system-icu-jsoncpp.patch
@@ -0,0 +1,46 @@
+diff -up chromium-55.0.2873.0/build/linux/unbundle/jsoncpp.gn.gn-system-icu-jsoncpp chromium-55.0.2873.0/build/linux/unbundle/jsoncpp.gn
+--- chromium-55.0.2873.0/build/linux/unbundle/jsoncpp.gn.gn-system-icu-jsoncpp 2016-10-01 16:21:27.343107786 +0200
++++ chromium-55.0.2873.0/build/linux/unbundle/jsoncpp.gn 2016-10-01 16:21:27.343107786 +0200
+@@ -0,0 +1,31 @@
++# 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.
++
++import("//build/config/linux/pkg_config.gni")
++import("//build/shim_headers.gni")
++
++shim_headers("jsoncpp_shim") {
++ root_path = "source/include"
++ headers = [
++ "json/assertions.h",
++ "json/autolink.h",
++ "json/config.h",
++ "json/features.h",
++ "json/forwards.h",
++ "json/json.h",
++ "json/reader.h",
++ "json/value.h",
++ "json/writer.h"
++ ]
++}
++
++source_set("jsoncpp") {
++ deps = [
++ ":jsoncpp_shim",
++ ]
++ libs = [ "jsoncpp" ]
++}
++
++config("jsoncpp_config") {
++}
+diff -up chromium-55.0.2873.0/build/linux/unbundle/replace_gn_files.py.gn-system-icu-jsoncpp chromium-55.0.2873.0/build/linux/unbundle/replace_gn_files.py
+--- chromium-55.0.2873.0/build/linux/unbundle/replace_gn_files.py.gn-system-icu-jsoncpp 2016-10-01 16:21:27.343107786 +0200
++++ chromium-55.0.2873.0/build/linux/unbundle/replace_gn_files.py 2016-10-01 17:17:38.913721403 +0200
+@@ -23,6 +23,7 @@
+ 'freetype': 'build/config/freetype/freetype.gni',
+ 'harfbuzz-ng': 'third_party/harfbuzz-ng/harfbuzz.gni',
+ 'icu': 'third_party/icu/BUILD.gn',
++ 'jsoncpp' : 'third_party/jsoncpp/BUILD.gn',
+ 'libdrm': 'third_party/libdrm/BUILD.gn',
+ 'libevent': 'base/third_party/libevent/BUILD.gn',
+ 'libjpeg': 'third_party/libjpeg.gni',
diff --git a/network/web/chromium-browser_1/files/mageia/chromium-53-gn-system-opus.patch b/network/web/chromium-browser_1/files/mageia/chromium-53-gn-system-opus.patch
new file mode 100644
index 0000000000..4e533e7f38
--- /dev/null
+++ b/network/web/chromium-browser_1/files/mageia/chromium-53-gn-system-opus.patch
@@ -0,0 +1,11 @@
+diff -up chromium-53.0.2785.46/build/linux/unbundle/opus.gn.gn-system-opus chromium-53.0.2785.46/build/linux/unbundle/opus.gn
+--- chromium-53.0.2785.46/build/linux/unbundle/opus.gn.gn-system-opus 2016-08-09 23:46:12.808470292 +0200
++++ chromium-53.0.2785.46/build/linux/unbundle/opus.gn 2016-08-09 23:53:16.660141755 +0200
+@@ -12,6 +12,7 @@
+ shim_headers("opus_shim") {
+ root_path = "src/include"
+ headers = [
++ "opus_custom.h",
+ "opus.h",
+ "opus_defines.h",
+ "opus_multistream.h",
diff --git a/network/web/chromium-browser_1/files/mageia/chromium-69-gn-bootstrap.patch b/network/web/chromium-browser_1/files/mageia/chromium-69-gn-bootstrap.patch
new file mode 100644
index 0000000000..b2f9218b11
--- /dev/null
+++ b/network/web/chromium-browser_1/files/mageia/chromium-69-gn-bootstrap.patch
@@ -0,0 +1,15 @@
+--- chromium-69.0.3497.4/tools/gn/build/gen.py.gn-bootstrap 2018-07-21 09:17:17.000000000 +0200
++++ chromium-69.0.3497.4/tools/gn/build/gen.py 2018-07-21 17:08:45.465590164 +0200
+@@ -367,10 +367,8 @@
+ # Use the sid sysroot that UpdateLinuxSysroot() downloads.
+ cflags.append('--sysroot=' + linux_sysroot)
+ ldflags.append('--sysroot=' + linux_sysroot)
+- ldflags.extend([
+- '-static-libstdc++',
+- '-Wl,--as-needed',
+- ])
++ ldflags.append('-static-libstdc++')
++ ldflags.append('-Wl,--as-needed')
+ libs.extend([
+ # These are needed by libc++.
+ '-ldl',
diff --git a/network/web/chromium-browser_1/files/marcos.patch b/network/web/chromium-browser_1/files/marcos.patch
new file mode 100644
index 0000000000..dc4be5ebd6
--- /dev/null
+++ b/network/web/chromium-browser_1/files/marcos.patch
@@ -0,0 +1,11 @@
+diff -Nuar a/third_party/libdrm/src/xf86drm.h b/third_party/libdrm/src/xf86drm.h
+--- a/third_party/libdrm/src/xf86drm.h 2018-09-12 11:32:38.000000000 +0300
++++ b/third_party/libdrm/src/xf86drm.h 2018-09-12 13:53:15.815152841 +0300
+@@ -35,6 +35,7 @@
+ #define _XF86DRM_H_
+
+ #include
++#include
+ #include
+ #include
+ #include
diff --git a/network/web/chromium-browser_1/files/master_preferences b/network/web/chromium-browser_1/files/master_preferences
new file mode 100644
index 0000000000..94932bd3aa
--- /dev/null
+++ b/network/web/chromium-browser_1/files/master_preferences
@@ -0,0 +1,24 @@
+{
+ "homepage" : "http://www.google.com.tr",
+ "homepage_is_newtabpage" : false,
+ "browser" : {
+ "show_home_button" : true,
+ "custom_chrome_frame" : true
+ },
+ "bookmark_bar" : {
+ "show_on_all_tabs" : true
+ },
+ "distribution" : {
+ "skip_first_run_ui" : true,
+ "show_welcome_page" : true,
+ "import_search_engine" : true,
+ "import_history" : false,
+ "create_all_shortcuts" : true,
+ "make_chrome_default" : false
+ },
+ "first_run_tabs" : [
+ "http://www.pisilinux.org",
+ "welcome_page",
+ "new_tab_page"
+ ]
+}
diff --git a/network/web/chromium-browser_1/files/only-disable-cfi-icall-when-use_system_libjpeg-true.patch b/network/web/chromium-browser_1/files/only-disable-cfi-icall-when-use_system_libjpeg-true.patch
new file mode 100644
index 0000000000..3a71f8c057
--- /dev/null
+++ b/network/web/chromium-browser_1/files/only-disable-cfi-icall-when-use_system_libjpeg-true.patch
@@ -0,0 +1,34 @@
+From 20f81a066ffdf6bd30fb4b696b8b3e101368e2f6 Mon Sep 17 00:00:00 2001
+From: Vlad Tsyrklevich
+Date: Tue, 31 Jul 2018 23:21:09 +0000
+Subject: [PATCH] Only disable cfi-icall when use_system_libjpeg=true
+
+Bug: 866290
+Change-Id: Ic5d175b3b854665f50781650406d599d09ee9849
+Reviewed-on: https://chromium-review.googlesource.com/1157136
+Reviewed-by: Kentaro Hara
+Commit-Queue: Vlad Tsyrklevich
+Cr-Commit-Position: refs/heads/master@{#579614}
+---
+ .../platform/image-decoders/jpeg/jpeg_image_decoder.cc | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/third_party/blink/renderer/platform/image-decoders/jpeg/jpeg_image_decoder.cc b/third_party/blink/renderer/platform/image-decoders/jpeg/jpeg_image_decoder.cc
+index fd4e72ba053c..afa90d83efee 100644
+--- a/third_party/blink/renderer/platform/image-decoders/jpeg/jpeg_image_decoder.cc
++++ b/third_party/blink/renderer/platform/image-decoders/jpeg/jpeg_image_decoder.cc
+@@ -643,7 +643,10 @@ class JPEGImageReader final {
+ IntSize UvSize() const { return uv_size_; }
+
+ private:
+- NO_SANITIZE_CFI_ICALL JSAMPARRAY AllocateSampleArray() {
++#if defined(USE_SYSTEM_LIBJPEG)
++ NO_SANITIZE_CFI_ICALL
++#endif
++ JSAMPARRAY AllocateSampleArray() {
+ // Some output color spaces don't need the sample array: don't allocate in that
+ // case.
+ #if defined(TURBO_JPEG_RGB_SWIZZLE)
+--
+2.18.0
+
diff --git a/network/web/chromium-browser_1/files/pisilinux/fix_build_with_newer_gcc.patch b/network/web/chromium-browser_1/files/pisilinux/fix_build_with_newer_gcc.patch
new file mode 100644
index 0000000000..517909f772
--- /dev/null
+++ b/network/web/chromium-browser_1/files/pisilinux/fix_build_with_newer_gcc.patch
@@ -0,0 +1,57 @@
+
+diff --git a/third_party/WebKit/Source/wtf/dtoa/bignum.cc b/third_party/WebKit/S
+ index a000b46..6c6d336 100644
+ --- a/third_party/WebKit/Source/wtf/dtoa/bignum.cc
+ +++ b/third_party/WebKit/Source/wtf/dtoa/bignum.cc
+-@@ -109,7 +109,10 @@ namespace double_conversion {
+- int length = value.length();
+- int pos = 0;
+- // Let's just say that each digit needs 4 bits.
++@@ -102,7 +102,10 @@
++ }
++
++
+ +#pragma GCC diagnostic push
+ +#pragma GCC diagnostic warning "-Wstrict-overflow"
+- while (length >= kMaxUint64DecimalDigits) {
++ void Bignum::AssignDecimalString(Vector value) {
+ +#pragma GCC diagnostic pop
+- uint64_t digits = ReadUInt64(value, pos, kMaxUint64DecimalDigits);
+- pos += kMaxUint64DecimalDigits;
+- length -= kMaxUint64DecimalDigits;
++ // 2^64 = 18446744073709551616 > 10^19
++ const int kMaxUint64DecimalDigits = 19;
++ Zero();
+ --
+ 1.8.4.5
+-
+
+
+diff --git a/ui/gfx/image/image_util.cc b/ui/gfx/image/image_util.cc
+ index 89a3f8c..d595da3 100644
+ --- a/ui/gfx/image/image_util.cc
+ +++ b/ui/gfx/image/image_util.cc
+-@@ -68,7 +68,10 @@ bool VisibleMargins(const ImageSkia& image, int* leading, int* trailing) {
+- int inner_min = bitmap.width();
+- for (int x = 0; x < bitmap.width(); ++x) {
+- for (int y = 0; y < bitmap.height(); ++y) {
++@@ -47,7 +47,10 @@
++ }
++ #endif // !defined(OS_IOS)
++
+ +#pragma GCC diagnostic push
+ +#pragma GCC diagnostic warning "-Wstrict-overflow"
+- if (SkColorGetA(bitmap.getColor(x, y)) > kMinimumVisibleOpacity) {
++ bool VisibleMargins(const ImageSkia& image, int* leading, int* trailing) {
+ +#pragma GCC diagnostic pop
+- inner_min = x;
+- break;
+- }
++ *leading = 0;
++ *trailing = std::max(1, image.width()) - 1;
++ if (!image.HasRepresentation(1.0))
+ --
+ 1.8.4.5
+-
+--
+2.7.1
diff --git a/network/web/chromium-browser_1/files/pisilinux/gfx_jpeg_codec.patch b/network/web/chromium-browser_1/files/pisilinux/gfx_jpeg_codec.patch
new file mode 100644
index 0000000000..c7107a2460
--- /dev/null
+++ b/network/web/chromium-browser_1/files/pisilinux/gfx_jpeg_codec.patch
@@ -0,0 +1,48 @@
+diff -Naur orig/ui/gfx/codec/jpeg_codec.cc patched/ui/gfx/codec/jpeg_codec.cc
+--- orig/ui/gfx/codec/jpeg_codec.cc 2016-04-24 21:31:31.000000000 +0200
++++ patched/ui/gfx/codec/jpeg_codec.cc 2016-06-13 23:43:36.809948082 +0200
+@@ -120,7 +120,7 @@
+ // tell libjpeg where to write the next data
+ cinfo->dest->next_output_byte = &(*state->out)[state->image_buffer_used];
+ cinfo->dest->free_in_buffer = state->out->size() - state->image_buffer_used;
+- return 1;
++ return TRUE;
+ }
+
+ // Cleans up the JpegEncoderState to prepare for returning in the final form.
+@@ -266,7 +266,7 @@
+ cinfo.data_precision = 8;
+
+ jpeg_set_defaults(&cinfo);
+- jpeg_set_quality(&cinfo, quality, 1); // quality here is 0-100
++ jpeg_set_quality(&cinfo, quality, TRUE); // quality here is 0-100
+
+ // set up the destination manager
+ jpeg_destination_mgr destmgr;
+@@ -278,7 +278,7 @@
+ JpegEncoderState state(output);
+ cinfo.client_data = &state;
+
+- jpeg_start_compress(&cinfo, 1);
++ jpeg_start_compress(&cinfo, TRUE);
+
+ // feed it the rows, doing necessary conversions for the color format
+ #ifdef JCS_EXTENSIONS
+@@ -364,7 +364,7 @@
+ // set to a positive value if TRUE is returned. A FALSE return should only
+ // be used when I/O suspension is desired."
+ boolean FillInputBuffer(j_decompress_ptr cinfo) {
+- return false;
++ return FALSE;
+ }
+
+ // Skip data in the buffer. Since we have all the data at once, this operation
+@@ -496,7 +496,7 @@
+ cinfo.client_data = &state;
+
+ // fill the file metadata into our buffer
+- if (jpeg_read_header(&cinfo, true) != JPEG_HEADER_OK)
++ if (jpeg_read_header(&cinfo, TRUE) != JPEG_HEADER_OK)
+ return false;
+
+ // we want to always get RGB data out
diff --git a/network/web/chromium-browser_1/files/pisilinux/last_commit_position.patch b/network/web/chromium-browser_1/files/pisilinux/last_commit_position.patch
new file mode 100644
index 0000000000..cb84290fc3
--- /dev/null
+++ b/network/web/chromium-browser_1/files/pisilinux/last_commit_position.patch
@@ -0,0 +1,27 @@
+--- chromium-55.0.2883.75/tools/gn/gn_main.cc.orig 2016-12-12 11:49:56.260549036 +0000
++++ chromium-55.0.2883.75/tools/gn/gn_main.cc 2016-12-12 11:50:14.780931485 +0000
+@@ -11,13 +11,7 @@
+ #include "tools/gn/standard_out.h"
+ #include "tools/gn/switches.h"
+
+-// Only the GN-generated build makes this header for now.
+-// TODO(brettw) consider adding this if we need it in GYP.
+-#if defined(GN_BUILD)
+-#include "tools/gn/last_commit_position.h"
+-#else
+ #define LAST_COMMIT_POSITION "UNKNOWN"
+-#endif
+
+ namespace {
+
+--- chromium-55.0.2883.75/tools/gn/BUILD.gn.orig 2016-12-12 11:50:43.513524769 +0000
++++ chromium-55.0.2883.75/tools/gn/BUILD.gn 2016-12-12 11:50:57.697817632 +0000
+@@ -227,7 +227,6 @@
+
+ deps = [
+ ":gn_lib",
+- ":last_commit_position",
+ "//base",
+ "//build/config/sanitizers:deps",
+ ]
+
diff --git a/network/web/chromium-browser_1/pspec.xml b/network/web/chromium-browser_1/pspec.xml
new file mode 100644
index 0000000000..74937650cb
--- /dev/null
+++ b/network/web/chromium-browser_1/pspec.xml
@@ -0,0 +1,282 @@
+
+
+
+
+ chromium-browser
+ https://www.chromium.org/Home
+
+ Admin PisiLinux
+ admin@pisilinux.org
+
+ GPLv2
+ chromium-browser
+ app:gui
+ A WebKit powered web browser
+ Chromium-browser is an open-source web browser, powered by WebKit.
+ https://commondatastorage.googleapis.com/chromium-browser-official/chromium-75.0.3770.100.tar.xz
+
+ alsa-lib-devel
+ at-spi2-atk-devel
+ atk-devel
+ cairo-devel
+ cups-devel
+ dbus-devel
+ desktop-file-utils
+ faac-devel
+ flac-devel
+ fontconfig-devel
+ gdk-pixbuf-devel
+ glib2-devel
+ glibc-devel
+ gperf
+ gsm-devel
+ gtk3-devel
+ harfbuzz-devel
+ hunspell-devel
+ icon-theme-hicolor
+ imlib2-devel
+ jack-audio-connection-kit-devel
+ lame-devel
+ libXScrnSaver-devel
+ libXcomposite-devel
+ libXcursor-devel
+ libXdamage-devel
+ libXext-devel
+ libXfixes-devel
+ libXi-devel
+ libXrandr-devel
+ libXrender-devel
+ libXtst-devel
+ libavc1394-devel
+ libdc1394-devel
+ libdrm-devel
+ libexif-devel
+ libffi-devel
+ libgnome-keyring
+ libjpeg-turbo-devel
+ libmtp-devel
+ libogg-devel
+ libopus-devel
+ libsecret-devel
+ libtheora-devel
+ libvdpau-devel
+ libvorbis-devel
+ libxcb-devel
+ libxslt-devel
+ llvm-clang-devel
+ minizip-devel
+ mit-kerberos
+ ninja
+ nodejs
+ nss-devel
+ opencore-amr-devel
+ pango-devel
+ pciutils-devel
+ pulseaudio-libs-devel
+ python-lxml
+ schroedinger-devel
+ snappy-devel
+ speech-dispatcher-devel
+ speex-devel
+ usbutils
+ valgrind
+ webp-devel
+ x264-devel
+ xdg-utils
+ xvid-devel
+ yasm-devel
+ python-devel
+ json-c-devel
+ openjpeg2-devel
+
+
+ chromium-compiler-r4.patch
+ chromium-skia-harmony.patch
+ chromium-widevine-r2.patch
+ fix-cfi-icall-failure-with-use_system_libjpeg-true.patch
+ mageia/001-chromium-59-gcc5.patch
+ mageia/002-chromium-61-gcc5.patch
+ mageia/003-chromium-62-gcc5.patch
+ mageia/004-chromium-62-gcc7.patch
+ mageia/005-chromium-64-gcc7.patch
+ mageia/006-chromium-65-gcc7.patch
+ mageia/007-chromium-66-gcc7.patch
+ mageia/008-chromium-67-gcc7.patch
+ mageia/009-chromium-68-gcc7.patch
+ mageia/011-chromium-69-gcc7.patch
+ mageia/chromium-45-no-external-components.patch
+ mageia/chromium-52-pdfium-system-libtiff-libpng.patch
+ mageia/chromium-53-gn-system-icu-jsoncpp.patch
+ mageia/chromium-53-gn-system-opus.patch
+ mageia/chromium-69-gn-bootstrap.patch
+ marcos.patch
+ only-disable-cfi-icall-when-use_system_libjpeg-true.patch
+
+
+
+ chromium-browser
+
+ alsa-lib
+ dbus
+ atk
+ cairo
+ cups
+ flac
+ fontconfig
+ gdk-pixbuf
+
+ gtk3
+
+
+
+ libXcomposite
+ libXcursor
+ libXdamage
+ libXext
+ libXfixes
+ libXi
+ libXrandr
+ libXrender
+ libXScrnSaver
+ libXtst
+ libxcb
+ libxslt
+
+
+ nss
+ pango
+ pepperflash
+ pulseaudio-libs
+
+
+ webp
+
+ nspr
+
+ expat
+ glib2
+ libX11
+ libgcc
+
+
+
+ harfbuzz
+
+
+
+ /etc
+ /usr/bin
+ /usr/lib
+ /usr/share/man
+ /usr/share/doc
+ /usr/share/icons
+ /usr/share/pixmaps
+ /usr/share/applications
+
+
+ master_preferences
+ chromium-browser.desktop
+
+
+
+
+
+ 2018-09-11
+ 69.0.3497.100
+ Version Bump.
+ Kamil Atlı
+ suvari@pisilinux.org
+
+
+ 2018-04-09
+ 62.0.3202.97
+ Version Bump.
+ Kamil Atlı
+ suvari@pisilinux.org
+
+
+ 2017-11-24
+ 62.0.3202.94
+ Version Bump.
+ Mustafa Cinasal
+ muscnsl@gmail.com
+
+
+ 2017-07-31
+ 60.0.3112.78
+ Version Bump
+ Mustafa Cinasal
+ muscnsl@gmail.com
+
+
+ 2017-05-11
+ 58.0.3029.81
+ Version Bump
+ Mustafa Cinasal
+ muscnsl@gmail.com
+
+
+ 2016-12-12
+ 55.0.2883.75
+ Version Bump.
+ Ergün Salman
+ poyraz76@pisilinux.org
+
+
+ 2016-09-23
+ 53.0.2785.116
+ Version Bump.
+ Ergün Salman
+ poyraz76@pisilinux.org
+
+
+ 2016-09-10
+ 53.0.2785.101
+ Version Bump.
+ Ergün Salman
+ poyraz76@pisilinux.org
+
+
+ 2016-09-06
+ 53.0.2785.92
+ Version Bump.
+ Ergün Salman
+ poyraz76@pisilinux.org
+
+
+ 2016-08-03
+ 52.0.2743.116
+ Version Bump.
+ Ergün Salman
+ poyraz76@pisilinux.org
+
+
+ 2016-07-22
+ 52.0.2743.82
+ Version Bump.
+ Ergün Salman
+ poyraz76@pisilinux.org
+
+
+ 2016-07-05
+ 51.0.2704.106
+ Version Bump.
+ Ergün Salman
+ poyraz76@pisilinux.org
+
+
+ 2016-06-30
+ 51.0.2704.84
+ Version Bump.
+ Ergün Salman
+ poyraz76@pisilinux.org
+
+
+ 2016-06-09
+ 48.0.2564.97
+ Release Bump
+ Pisi Linux Community
+ admin@pisilinux.org
+
+
+
diff --git a/network/web/chromium-browser_1/translations.xml b/network/web/chromium-browser_1/translations.xml
new file mode 100644
index 0000000000..6d122f4faf
--- /dev/null
+++ b/network/web/chromium-browser_1/translations.xml
@@ -0,0 +1,8 @@
+
+
+
+ chromium-browser
+ Webkit tabanlı ağ tarayıcı
+ Chromium, açık kaynak kodlu Webkit tabanlı bir ağ tarayıcıdır.
+
+