[arch-commits] Commit in electron/trunk (22 files)

Nicola Squartini tensor5 at archlinux.org
Tue Mar 19 07:00:17 UTC 2019


    Date: Tuesday, March 19, 2019 @ 07:00:17
  Author: tensor5
Revision: 442580

upgpkg: electron 4.1.0-1

Added:
  electron/trunk/chromium-skia-harmony.patch
  electron/trunk/chromium-system-icu.patch
  electron/trunk/fix-cfi-icall-failure-with-use_system_libjpeg-true.patch
  electron/trunk/only-disable-cfi-icall-when-use_system_libjpeg-true.patch
Modified:
  electron/trunk/PKGBUILD
  electron/trunk/default_app-icon.patch
  electron/trunk/use-system-libraries-in-node.patch
Deleted:
  electron/trunk/breakpad-glibc2.26.patch
  electron/trunk/chromium-use-system-ffmpeg.patch
  electron/trunk/chromium-use-system-re2.patch
  electron/trunk/dont-bootstrap-libchromiumcontent.patch
  electron/trunk/dont-update-submodules.patch
  electron/trunk/dont-use-sysroot.patch
  electron/trunk/gyp-no-rpath.patch
  electron/trunk/libchromiumcontent-remove-useless-patches.patch
  electron/trunk/libchromiumcontent-settings.patch
  electron/trunk/libchromiumcontent-sort-filenames.patch
  electron/trunk/libchromiumcontent-static-library-only.patch
  electron/trunk/libchromiumcontent-use-system-tools.patch
  electron/trunk/no-clang-plugins.patch
  electron/trunk/no-whole-archive.patch
  electron/trunk/use-system-ffmpeg.patch

-----------------------------------------------------------+
 PKGBUILD                                                  |  301 ++----
 breakpad-glibc2.26.patch                                  |  208 ----
 chromium-skia-harmony.patch                               |   77 +
 chromium-system-icu.patch                                 |   19 
 chromium-use-system-ffmpeg.patch                          |   22 
 chromium-use-system-re2.patch                             |   10 
 default_app-icon.patch                                    |   41 
 dont-bootstrap-libchromiumcontent.patch                   |   11 
 dont-update-submodules.patch                              |   11 
 dont-use-sysroot.patch                                    |   27 
 fix-cfi-icall-failure-with-use_system_libjpeg-true.patch  |   52 +
 gyp-no-rpath.patch                                        |   12 
 libchromiumcontent-remove-useless-patches.patch           |  518 ------------
 libchromiumcontent-settings.patch                         |   44 -
 libchromiumcontent-sort-filenames.patch                   |   32 
 libchromiumcontent-static-library-only.patch              |   43 
 libchromiumcontent-use-system-tools.patch                 |   34 
 no-clang-plugins.patch                                    |   38 
 no-whole-archive.patch                                    |   22 
 only-disable-cfi-icall-when-use_system_libjpeg-true.patch |   34 
 use-system-ffmpeg.patch                                   |   21 
 use-system-libraries-in-node.patch                        |   85 +
 22 files changed, 368 insertions(+), 1294 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2019-03-19 06:54:58 UTC (rev 442579)
+++ PKGBUILD	2019-03-19 07:00:17 UTC (rev 442580)
@@ -1,87 +1,51 @@
 # Maintainer: Nicola Squartini <tensor5 at gmail.com>
 
-_chromiumver=66.0.3359.181
+_commit=6c4ee661655ad75f315d21d307b641ee8a257cdc
+#_chromiumver=69.0.3497.128
+_chromiumver=69.0.3497.120
 pkgname=electron
-pkgver=3.1.6
+pkgver=4.1.0
 pkgrel=1
 pkgdesc='Build cross platform desktop apps with web technologies'
 arch=('x86_64')
 url='https://electronjs.org/'
 license=('MIT' 'custom')
-depends=('c-ares' 'ffmpeg' 'gtk3' 'http-parser' 'libevent' 'libxslt' 'libxss'
-         'minizip' 'nss' 'snappy')
+depends=('c-ares' 'ffmpeg' 'gtk3' 'http-parser' 'libevent' 'libnghttp2'
+         'libxslt' 'libxss' 'minizip' 'nss' 're2' 'snappy')
 makedepends=('clang' 'git' 'gn' 'gperf' 'harfbuzz-icu' 'jsoncpp' 'libnotify'
              'lld' 'llvm' 'ninja' 'npm' 'pciutils' 'python2' 'wget' 'yasm')
 optdepends=('kde-cli-tools: file deletion support (kioclient5)'
             'trash-cli: file deletion support (trash-put)'
             "xdg-utils: open URLs with desktop's default (xdg-email, xdg-open)")
-source=("git+https://github.com/electron/electron.git#tag=v${pkgver}"
-        'git+https://github.com/boto/boto.git'
-        'breakpad::git+https://github.com/electron/chromium-breakpad.git'
-        'git+https://chromium.googlesource.com/chromium/src/tools/grit.git'
-        'git+https://github.com/electron/gyp.git'
-        "git+https://github.com/electron/libchromiumcontent.git"
-        'git+https://github.com/electron/node.git'
-        'pdf_viewer::git+https://github.com/electron/pdf-viewer.git'
-        'git+https://github.com/yaml/pyyaml.git'
-        'git+https://github.com/kennethreitz/requests.git'
-        'google-breakpad::git+https://chromium.googlesource.com/breakpad/breakpad/src'
-        "electron-chromium-${_chromiumver}.tar.bz2::https://s3.amazonaws.com/github-janky-artifacts/libchromiumcontent/linux/src/${_chromiumver}/src.tar.bz2"
+source=('git+https://github.com/electron/electron.git'
+        "https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${_chromiumver}.tar.xz"
+        'git+https://chromium.googlesource.com/chromium/tools/depot_tools.git'
         'electron.desktop'
         'default_app-icon.patch'
-        'dont-bootstrap-libchromiumcontent.patch'
-        'dont-update-submodules.patch'
-        'dont-use-sysroot.patch'
-        'no-clang-plugins.patch'
-        'no-whole-archive.patch'
         'use-system-libraries-in-node.patch'
-        'use-system-ffmpeg.patch'
-        'breakpad-glibc2.26.patch'
-        'gyp-no-rpath.patch'
-        'libchromiumcontent-remove-useless-patches.patch'
-        'libchromiumcontent-settings.patch'
-        'libchromiumcontent-sort-filenames.patch'
-        'libchromiumcontent-static-library-only.patch'
-        'libchromiumcontent-use-system-tools.patch'
-        'chromium-use-system-ffmpeg.patch'
-        'chromium-use-system-re2.patch'
+        'chromium-skia-harmony.patch'
+        'chromium-system-icu.patch'
+        'fix-cfi-icall-failure-with-use_system_libjpeg-true.patch'
+        'only-disable-cfi-icall-when-use_system_libjpeg-true.patch'
        )
-noextract=("electron-chromium-${_chromiumver}.tar.bz2")
-sha512sums=('SKIP'
+sha256sums=('SKIP'
+            '26ee15090b7ce50b96218ead2b721ce703271f1eea947027147073f4533ba321'
             'SKIP'
-            'SKIP'
-            'SKIP'
-            'SKIP'
-            'SKIP'
-            'SKIP'
-            'SKIP'
-            'SKIP'
-            'SKIP'
-            'SKIP'
-            '64e3c617aba3af71213e8e36af38a39934f1f5c7eea53b2c09d9d9ac189397d8f3e95196f47552fbde83d9e062fb38f5ca48b6791caf5db42663b8a969cb7394'
-            '613317b8c63efb0ddfe9112b56aa9714b536082144c0903d5b97351c3396b3c9eedeb44b6da72b85cbfd1bdd16cba30c512ac93c8ca6ffb04cad283ef29958b2'
-            '7644e4cb173cb66d83cfc121b6eb9696d4b60ea119230e767aa17bb438c35a94b2d8fddd1369ebe052905c8c85765e927adb540a5c2310b4a2e9bb546597c4e6'
-            '144bc8f7ad1ec1c99d59f4a8db375d786f3e4d042d295e860397c76b80e0deaeb4a931fb0e19f30ee1fe192f597f046e7716af6f7795320d5573a7b30c461d3d'
-            'b660afcc9a61527e6f532d12905ed65175c226ff46b23bc3fdb79b37f73c6961722887042c01ccddebefb0ec249206979506e12e78bbe468fd648b9d34094db9'
-            'e18f210dc4c225038c8093685bc9eb5cb957f7c1fd38998bd475ed15a771595738d72183adecc6434896b410b0692e6cadda0dbd5e99b6123e92443341bcb042'
-            'b1884d78d37b4c2690546c681a1b485539b2b9af928e8177192c08bf5985c08481ca4d75a4f2f5e8f0a6b73776df851835e32913bd77a2dcc2586a9efb1f8d63'
-            '7f48da3c06155bd15bc938ce4ae8f95185dc8b51d924602d8b905db25083aba3fe1d095c087eeff11a274aa21874a0c986add52bcac7a5c0c40b62c91c60bdfa'
-            '9b2d16d51d092901db8738ad4a520a6a06b42326201866069dcd2ae5b7a393cc7097d0eef752866a11072c61ab7a1dc60c175e8c60aa600d88088dff6f8e29f1'
-            '4e77ccd0aefe8bb0885cea88ceb5ef362e7838677c622427510027cd9866180345b7aa55be7dcacf61a28ba5b609cccb5c5fc3ca407f6ebf7ac21f5d43027575'
-            '2dd594a07f8ce62a7706a0365d764ab3ee3cc2d050d6ae4460db3152269e84f43516438a4f48f47fc54fe758a70c462baed6b7defa8b2bd277e67cb1bae8da12'
-            'd77a2045f03c1327eb78517028c083e8965297a41d5a81df8c7dac5a8500aa242faa644a38be5d12914b68ba3a0b944c1bfe6dbfd7b88b1a0aeeec1d87a1619a'
-            '3941928af296d14e82232824aebb2a3eaddba4211c4d383f2c98d2394500ddd5847e2efd4044c1d4bdbb44d145d55aab5d5b111381305398bbf356bdfc9ee10c'
-            '9e1eea0ae01852a32ff3c391156da04fe8abba632890a3a5599471f415c84ac7d8ffdc5cf1317dcd7a17c043d4658267a9c9504dcd9f27168b1239a69c659995'
-            '5e14b4bff2746b7aaf6c6f53fb69949e51d999402c47b6f957cc87466b06867aef10471ad28e750401f1882c9225b8d42c61d57c71b536e215e9db69a52207d5'
-            'cde43f9479cbb572abf6214ed448b0074feb3b0f8ba69c12ab929d1ac81ccd192cb7b9878d14fa65cebdc2d63bceecd4369678dbd27ee3ca557f6b8c2b1f2af7'
-            '16418d54549e605cc55dbcc0efab4dbe01c62f85604c552a641dd83de961d42d7843c72831e29f98f3f5fb173c73a6feee5300dcb8a19388d71a481167d3f4a9'
-            'c186d1e76f68f412779b8ccac2a6ea84614b73e51d27cfdfcba6e0be04cb009a9f4e04e1dca03a0c5a5aa34656e52c980288f4985a4cacefc874ab27e55f62c3'
-            '5552e8918462f6c3a4e1baef3c22b57d70c732766945ea0b39f63df7d7b8fca9646f1f9b28b0528fa586799842c949298fc97e1041875da0ca1aacff046f6c9b')
+            '5270db01f3f8aaa5137dec275a02caa832b7f2e37942e068cba8d28b3a29df39'
+            '2a8944ec0be45c5cf3c86558a56b704613e95718b781477a89ff0d03c5b530cd'
+            '3a81953701ac976a311db4e17999e67ab7c6de97ff63388f287d6497ef9adb9b'
+            'feca54ab09ac0fc9d0626770a6b899a6ac5a12173c7d0c1005bc3964ec83e7b3'
+            'c4f2d1bed9034c02b8806f00c2e8165df24de467803855904bff709ceaf11af5'
+            '97b421bc60a4abdf37de2d88a51b973e9f68fb44d1eccd464adfb3d9f5d71478'
+            '9cae9ded6497afd15ad72d963897425ab6c7f28941bb3c3948e7996610a0d180')
 
 _system_libs=('ffmpeg'
               'flac'
+              'fontconfig'
+              'freetype'
               'harfbuzz-ng'
-#              'icu'
+              'icu'
+              'libdrm'
               'libevent'
               'libjpeg'
 #              'libpng'
@@ -89,7 +53,9 @@
               'libwebp'
               'libxml'
               'libxslt'
-#              're2'
+#              'openh264'
+              'opus'
+              're2'
               'snappy'
               'yasm'
               'zlib'
@@ -96,158 +62,115 @@
              )
 
 prepare() {
-  cd "${srcdir}"/electron
-
-  patch -Np1 -i "${srcdir}"/default_app-icon.patch  # Icon from .desktop file
-  patch -Np1 -i "${srcdir}"/use-system-libraries-in-node.patch
-  patch -Np1 -i "${srcdir}"/use-system-ffmpeg.patch
-  patch -Np1 -i "${srcdir}"/dont-update-submodules.patch
-  patch -Np1 -i "${srcdir}"/dont-use-sysroot.patch
-  patch -Np1 -i "${srcdir}"/dont-bootstrap-libchromiumcontent.patch
-  patch -Np1 -i "${srcdir}"/no-clang-plugins.patch
-  patch -Np1 -i "${srcdir}"/no-whole-archive.patch
-
-  # Add extra libraries for unbundling, remove unneeded libraries
-  sed -e "s/'-lexpat',/'-lexpat', '<\!@(pkg-config --libs-only-l libavcodec libavformat libavutil libevent flac harfbuzz-icu libjpeg jsoncpp minizip libpulse snappy libwebpdemux libwebpmux libxml-2.0 libxslt zlib)', '-latomic',/" \
-      -e 's/ gconf-2.0//' \
-      -i brightray/brightray.gyp
-
   mkdir -p "${srcdir}"/python2-path
   ln -sf /usr/bin/python2 "${srcdir}/python2-path/python"
+  export PATH="${srcdir}/python2-path:${PATH}:${srcdir}/depot_tools"
 
-  for m in boto breakpad gyp libchromiumcontent node pdf_viewer requests; do
-    git submodule init vendor/${m}
-    git config submodule.vendor/${m}.url "${srcdir}/${m}"
-  done
-  git submodule update
+  mv chromium-${_chromiumver} src
 
-  cd "${srcdir}"/electron/vendor/pdf_viewer
-  git submodule init vendor/grit
-  git config submodule.vendor/grit.url "${srcdir}/grit"
-  git submodule update
+  echo "solutions = [
+  {
+    \"name\": \"src/electron\",
+    \"url\": \"file://${srcdir}/electron@${_commit}\",
+    \"deps_file\": \"DEPS\",
+    \"managed\": False,
+    \"custom_deps\": {
+      \"src\": None,
+    },
+    \"custom_vars\": {},
+  },
+]" > .gclient
 
-  cd "${srcdir}"/electron/vendor/breakpad
-  git submodule init src
-  git config submodule.src.url "${srcdir}"/google-breakpad
-  git submodule update
-  patch -Np1 -i "${srcdir}"/breakpad-glibc2.26.patch
+  python2 "${srcdir}/depot_tools/gclient.py" sync \
+      --with_branch_heads \
+      --with_tags \
+      --nohooks
 
-  cd "${srcdir}"/electron/vendor/gyp
-  # Remove a useless $ORIGIN/lib/ rpath from the electron binary
-  patch -Np1 -i "${srcdir}"/gyp-no-rpath.patch
+  sed -e "s/'am'/'apply'/" -i src/electron/script/lib/git.py
 
-  cd "${srcdir}"/electron/vendor/libchromiumcontent
-  for m in pyyaml; do
-    git submodule init vendor/${m}
-    git config submodule.vendor/${m}.url "${srcdir}/${m}"
-  done
-  git submodule update
-  patch -Np1 -i "${srcdir}"/libchromiumcontent-remove-useless-patches.patch
-  patch -Np1 -i "${srcdir}"/libchromiumcontent-settings.patch
-  patch -Np1 -i "${srcdir}"/libchromiumcontent-sort-filenames.patch  # deterministic build
-  patch -Np1 -i "${srcdir}"/libchromiumcontent-use-system-tools.patch
-  patch -Np1 -i "${srcdir}"/libchromiumcontent-static-library-only.patch
-  rm -r patches/common/ffmpeg  # Use system FFmpeg
-  echo 'Extracting chromium source...'
-  tar -xf "${srcdir}"/electron-chromium-${_chromiumver}.tar.bz2
-  cd src
-  patch -Np1 -i "${srcdir}"/chromium-use-system-ffmpeg.patch
-  patch -Np1 -i "${srcdir}"/chromium-use-system-re2.patch
+  echo "Running hooks..."
+  # python2 "${srcdir}/depot_tools/gclient.py" runhooks
+  python2 src/electron/script/apply_all_patches.py \
+      src/electron/patches/common/config.json
+  cd src/electron
+  npm install
+  cd ..
+  # Create sysmlink to system Node.js
+  mkdir -p third_party/node/linux/node-linux-x64/bin
+  ln -sf /usr/bin/node third_party/node/linux/node-linux-x64/bin
 
+  echo "Patching Chromium for using system libraries..."
+  sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+      tools/generate_shim_headers/generate_shim_headers.py
   for lib in "${_system_libs[@]}" libjpeg_turbo; do
-      find -type f -path "*third_party/${lib}/*" \
-          \! -path "*third_party/${lib}/chromium/*" \
-          \! -path "*third_party/${lib}/google/*" \
-          \! -path "*base/third_party/icu/*" \
-          \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \
+      third_party_dir="third_party/${lib}"
+      if [ ! -d ${third_party_dir} ]; then
+        third_party_dir="base/${third_party_dir}"
+      fi
+      find ${third_party_dir} -type f \
+          \! -path "${third_party_dir}/chromium/*" \
+          \! -path "${third_party_dir}/google/*" \
+          \! -path 'third_party/yasm/run_yasm.py' \
+          \! -regex '.*\.\(gn\|gni\|isolate\)' \
           -delete
   done
-  python2 build/linux/unbundle/replace_gn_files.py --system-libraries "${_system_libs[@]}"
+  python2 build/linux/unbundle/replace_gn_files.py \
+      --system-libraries \
+      "${_system_libs[@]}"
 
-  # Create sysmlink to system Node.js
-  mkdir -p third_party/node/linux/node-linux-x64/bin
-  ln -sf /usr/bin/node third_party/node/linux/node-linux-x64/bin
+  echo "Applying local patches..."
+  patch -Np4 -i ../chromium-skia-harmony.patch
+  patch -Np1 -i ../chromium-system-icu.patch
+  patch -Np1 -i ../fix-cfi-icall-failure-with-use_system_libjpeg-true.patch
+  patch -Np1 -i ../only-disable-cfi-icall-when-use_system_libjpeg-true.patch
+  patch -Np1 -i ../use-system-libraries-in-node.patch
+  patch -Np1 -i ../default_app-icon.patch  # Icon from .desktop file
 }
 
 build() {
-  export PATH="${srcdir}/python2-path:${PATH}"
   export CC=clang
   export CXX=clang++
   export AR=ar
   export NM=nm
 
-  cd "${srcdir}/electron/vendor/libchromiumcontent"
-  script/update -t x64 --skip_gclient
-  script/build -t x64 -c static_library
-  script/create-dist -c static_library --no_zip -t x64
-
-  cd "${srcdir}"/electron
-  LDFLAGS="${LDFLAGS} -Wl,-z,noexecstack"
-  distdir="${srcdir}/electron/vendor/libchromiumcontent/dist/main"
-  script/bootstrap.py --verbose \
-                      --clang_dir=/usr \
-                      --libcc_source_path="${distdir}/src" \
-                      --libcc_shared_library_path="${distdir}/shared_library" \
-                      --libcc_static_library_path="${distdir}/static_library"
-  script/build.py -c Release --ninja-path=ninja
+  cd src
+  export CHROMIUM_BUILDTOOLS_PATH="${PWD}/buildtools"
+  GN_EXTRA_ARGS='
+    clang_use_chrome_plugins = false
+    custom_toolchain = "//build/toolchain/linux/unbundle:default"
+    host_toolchain = "//build/toolchain/linux/unbundle:default"
+    icu_use_data_file = false
+    is_component_ffmpeg = false
+    link_pulseaudio = true
+    linux_use_bundled_binutils = false
+    remove_webcore_debug_symbols = true
+    treat_warnings_as_errors = false
+    use_custom_libcxx = false
+    use_gnome_keyring = false
+    use_sysroot = false
+  '
+  gn gen out/Release \
+      --args="import(\"//electron/build/args/release.gn\") ${GN_EXTRA_ARGS}"
+  ninja -C out/Release electron_dist_zip
+  # ninja -C out/Release third_party/electron_node:headers
 }
 
 package() {
-  cd "${srcdir}"/electron
+  install -dm755 "${pkgdir}/usr/lib/electron"
+  bsdtar -xf src/out/Release/dist.zip -C "${pkgdir}/usr/lib/electron"
 
-  _cc="${srcdir}"/electron/vendor/libchromiumcontent/dist/main
+  install -dm755 "${pkgdir}/usr/share/licenses/${pkgname}"
+  for l in "${pkgdir}/usr/lib/electron"/{LICENSE,LICENSES.chromium.html}; do
+    ln -s  \
+      $(realpath --relative-to="${pkgdir}/usr/share/licenses/${pkgname}" ${l}) \
+      "${pkgdir}/usr/share/licenses/${pkgname}"
+  done
 
-  install -d -m755 "${pkgdir}"/usr/share/licenses/electron
-  install -m644 LICENSE "${pkgdir}"/usr/share/licenses/electron
-  install -m644 LICENSE "${_cc}"/LICENSES.chromium.html \
-          "${pkgdir}"/usr/share/licenses/electron
-  install -m644 native_mate/LICENSE.chromium \
-          "${pkgdir}"/usr/share/licenses/electron/LICENSE-native_mate
-  install -m644 vendor/node/LICENSE \
-          "${pkgdir}"/usr/share/licenses/electron/LICENSE-node
-  install -m644 vendor/libchromiumcontent/LICENSE.txt \
-          "${pkgdir}"/usr/share/licenses/electron/LICENSE-libchromiumcontent
-  install -m644 vendor/libchromiumcontent/src/LICENSE \
-          "${pkgdir}"/usr/share/licenses/electron/LICENSE-chromium
-
-  cd out/R
-  install -d -m755 "${pkgdir}"/usr/lib/electron
-  install -m644 blink_image_resources_200_percent.pak \
-          content_resources_200_percent.pak content_shell.pak icudtl.dat \
-          natives_blob.bin \
-          ui_resources_200_percent.pak \
-          v8_context_snapshot.bin \
-          views_resources_200_percent.pak \
-          "${pkgdir}"/usr/lib/electron
-  install -m755 electron "${pkgdir}"/usr/lib/electron
   install -dm755 "${pkgdir}"/usr/bin
   ln -s ../lib/electron/electron "${pkgdir}"/usr/bin
-  # namcap warning: Referenced library 'libnode.so' is an uninstalled dependency
-  # Fixable by moving libnode.so to /usr/lib
-  install -m644 libnode.so "${pkgdir}"/usr/lib/electron
-  cp -r locales resources "${pkgdir}"/usr/lib/electron
-  cd ../..
 
-  echo -n "v${pkgver}" > "${pkgdir}"/usr/lib/electron/version
-
-  # Install .desktop and icon file
-  install -Dm644 "${srcdir}"/electron.desktop \
-          "${pkgdir}"/usr/share/applications/electron.desktop
-  install -Dm644 default_app/icon.png \
-          "${pkgdir}"/usr/share/pixmaps/electron.png  # hicolor has no 1024x1024
-
-  # Install Node headers
-  _headers_dest="${pkgdir}/usr/lib/electron/node"
-  install -d -m755 "${_headers_dest}"
-  cd "${srcdir}"/electron/vendor/node
-  find src deps/http_parser deps/zlib deps/uv deps/npm \
-    -name "*.gypi" \
-      -exec install -D -m644 '{}' "${_headers_dest}/{}" \; \
-    -or -name "*.h" \
-      -exec install -D -m644 '{}' "${_headers_dest}/{}" \;
-  install -m644 {common,config}.gypi "${_headers_dest}"
-  cd "${_cc}"/src
-  find v8 -name "*.h" \
-    -exec install -D -m644 '{}' "${_headers_dest}/deps/{}" \;
-  # echo '9' > "${_headers_dest}/installVersion"
+  # Install .desktop and icon file (see default_app-icon.patch)
+  install -Dm644 -t "${pkgdir}/usr/share/applications" electron.desktop
+  install -Dm644 src/electron/default_app/icon.png \
+          "${pkgdir}/usr/share/pixmaps/electron.png"  # hicolor has no 1024x1024
 }

Deleted: breakpad-glibc2.26.patch
===================================================================
--- breakpad-glibc2.26.patch	2019-03-19 06:54:58 UTC (rev 442579)
+++ breakpad-glibc2.26.patch	2019-03-19 07:00:17 UTC (rev 442580)
@@ -1,208 +0,0 @@
---- a/src/client/linux/dump_writer_common/ucontext_reader.cc
-+++ b/src/client/linux/dump_writer_common/ucontext_reader.cc
-@@ -36,19 +36,19 @@ namespace google_breakpad {
- 
- // Minidump defines register structures which are different from the raw
- // structures which we get from the kernel. These are platform specific
--// functions to juggle the ucontext and user structures into minidump format.
-+// functions to juggle the ucontext_t and user structures into minidump format.
- 
- #if defined(__i386__)
- 
--uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
-   return uc->uc_mcontext.gregs[REG_ESP];
- }
- 
--uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
-   return uc->uc_mcontext.gregs[REG_EIP];
- }
- 
--void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
-+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
-                                     const struct _libc_fpstate* fp) {
-   const greg_t* regs = uc->uc_mcontext.gregs;
- 
-@@ -88,15 +88,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
- 
- #elif defined(__x86_64)
- 
--uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
-   return uc->uc_mcontext.gregs[REG_RSP];
- }
- 
--uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
-   return uc->uc_mcontext.gregs[REG_RIP];
- }
- 
--void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
-+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
-                                     const struct _libc_fpstate* fpregs) {
-   const greg_t* regs = uc->uc_mcontext.gregs;
- 
-@@ -145,15 +145,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
- 
- #elif defined(__ARM_EABI__)
- 
--uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
-   return uc->uc_mcontext.arm_sp;
- }
- 
--uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
-   return uc->uc_mcontext.arm_pc;
- }
- 
--void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
-+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) {
-   out->context_flags = MD_CONTEXT_ARM_FULL;
- 
-   out->iregs[0] = uc->uc_mcontext.arm_r0;
-@@ -184,15 +184,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
- 
- #elif defined(__aarch64__)
- 
--uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
-   return uc->uc_mcontext.sp;
- }
- 
--uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
-   return uc->uc_mcontext.pc;
- }
- 
--void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
-+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
-                                     const struct fpsimd_context* fpregs) {
-   out->context_flags = MD_CONTEXT_ARM64_FULL;
- 
-@@ -210,15 +210,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
- 
- #elif defined(__mips__)
- 
--uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
-   return uc->uc_mcontext.gregs[MD_CONTEXT_MIPS_REG_SP];
- }
- 
--uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
-   return uc->uc_mcontext.pc;
- }
- 
--void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
-+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) {
- #if _MIPS_SIM == _ABI64
-   out->context_flags = MD_CONTEXT_MIPS64_FULL;
- #elif _MIPS_SIM == _ABIO32
---- a/src/client/linux/dump_writer_common/ucontext_reader.h
-+++ b/src/client/linux/dump_writer_common/ucontext_reader.h
-@@ -39,23 +39,23 @@
- 
- namespace google_breakpad {
- 
--// Wraps platform-dependent implementations of accessors to ucontext structs.
-+// Wraps platform-dependent implementations of accessors to ucontext_t structs.
- struct UContextReader {
--  static uintptr_t GetStackPointer(const struct ucontext* uc);
-+  static uintptr_t GetStackPointer(const ucontext_t* uc);
- 
--  static uintptr_t GetInstructionPointer(const struct ucontext* uc);
-+  static uintptr_t GetInstructionPointer(const ucontext_t* uc);
- 
--  // Juggle a arch-specific ucontext into a minidump format
-+  // Juggle a arch-specific ucontext_t into a minidump format
-   //   out: the minidump structure
-   //   info: the collection of register structures.
- #if defined(__i386__) || defined(__x86_64)
--  static void FillCPUContext(RawContextCPU *out, const ucontext *uc,
-+  static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
-                              const struct _libc_fpstate* fp);
- #elif defined(__aarch64__)
--  static void FillCPUContext(RawContextCPU *out, const ucontext *uc,
-+  static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
-                              const struct fpsimd_context* fpregs);
- #else
--  static void FillCPUContext(RawContextCPU *out, const ucontext *uc);
-+  static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc);
- #endif
- };
- 
---- a/src/client/linux/handler/exception_handler.cc
-+++ b/src/client/linux/handler/exception_handler.cc
-@@ -439,9 +439,9 @@ bool ExceptionHandler::HandleSignal(int /*sig*/, siginfo_t* info, void* uc) {
-   // Fill in all the holes in the struct to make Valgrind happy.
-   memset(&g_crash_context_, 0, sizeof(g_crash_context_));
-   memcpy(&g_crash_context_.siginfo, info, sizeof(siginfo_t));
--  memcpy(&g_crash_context_.context, uc, sizeof(struct ucontext));
-+  memcpy(&g_crash_context_.context, uc, sizeof(ucontext_t));
- #if defined(__aarch64__)
--  struct ucontext* uc_ptr = (struct ucontext*)uc;
-+  ucontext_t* uc_ptr = (ucontext_t*)uc;
-   struct fpsimd_context* fp_ptr =
-       (struct fpsimd_context*)&uc_ptr->uc_mcontext.__reserved;
-   if (fp_ptr->head.magic == FPSIMD_MAGIC) {
-@@ -450,9 +450,9 @@ bool ExceptionHandler::HandleSignal(int /*sig*/, siginfo_t* info, void* uc) {
-   }
- #elif !defined(__ARM_EABI__) && !defined(__mips__)
-   // FP state is not part of user ABI on ARM Linux.
--  // In case of MIPS Linux FP state is already part of struct ucontext
-+  // In case of MIPS Linux FP state is already part of ucontext_t
-   // and 'float_state' is not a member of CrashContext.
--  struct ucontext* uc_ptr = (struct ucontext*)uc;
-+  ucontext_t* uc_ptr = (ucontext_t*)uc;
-   if (uc_ptr->uc_mcontext.fpregs) {
-     memcpy(&g_crash_context_.float_state, uc_ptr->uc_mcontext.fpregs,
-            sizeof(g_crash_context_.float_state));
-@@ -476,7 +476,7 @@ bool ExceptionHandler::SimulateSignalDelivery(int sig) {
-   // ExceptionHandler::HandleSignal().
-   siginfo.si_code = SI_USER;
-   siginfo.si_pid = getpid();
--  struct ucontext context;
-+  ucontext_t context;
-   getcontext(&context);
-   return HandleSignal(sig, &siginfo, &context);
- }
---- a/src/client/linux/handler/exception_handler.h
-+++ b/src/client/linux/handler/exception_handler.h
-@@ -191,11 +191,11 @@ class ExceptionHandler {
-   struct CrashContext {
-     siginfo_t siginfo;
-     pid_t tid;  // the crashing thread.
--    struct ucontext context;
-+    ucontext_t context;
- #if !defined(__ARM_EABI__) && !defined(__mips__)
-     // #ifdef this out because FP state is not part of user ABI for Linux ARM.
-     // In case of MIPS Linux FP state is already part of struct
--    // ucontext so 'float_state' is not required.
-+    // ucontext_t so 'float_state' is not required.
-     fpstate_t float_state;
- #endif
-   };
---- a/src/client/linux/microdump_writer/microdump_writer.cc
-+++ b/src/client/linux/microdump_writer/microdump_writer.cc
-@@ -560,7 +560,7 @@ class MicrodumpWriter {
- 
-   void* Alloc(unsigned bytes) { return dumper_->allocator()->Alloc(bytes); }
- 
--  const struct ucontext* const ucontext_;
-+  const ucontext_t* const ucontext_;
- #if !defined(__ARM_EABI__) && !defined(__mips__)
-   const google_breakpad::fpstate_t* const float_state_;
- #endif
---- a/src/client/linux/minidump_writer/minidump_writer.cc
-+++ b/src/client/linux/minidump_writer/minidump_writer.cc
-@@ -1248,7 +1248,7 @@ class MinidumpWriter {
-   const int fd_;  // File descriptor where the minidum should be written.
-   const char* path_;  // Path to the file where the minidum should be written.
- 
--  const struct ucontext* const ucontext_;  // also from the signal handler
-+  const ucontext_t* const ucontext_;  // also from the signal handler
- #if !defined(__ARM_EABI__) && !defined(__mips__)
-   const google_breakpad::fpstate_t* const float_state_;  // ditto
- #endif

Added: chromium-skia-harmony.patch
===================================================================
--- chromium-skia-harmony.patch	                        (rev 0)
+++ chromium-skia-harmony.patch	2019-03-19 07:00:17 UTC (rev 442580)
@@ -0,0 +1,77 @@
+--- qtwebengine-opensource-src-5.9.1/src/3rdparty/chromium/third_party/skia/src/ports/SkFontHost_FreeType.cpp.orig	2017-10-10 17:42:06.956950985 +0200
++++ qtwebengine-opensource-src-5.9.1/src/3rdparty/chromium/third_party/skia/src/ports/SkFontHost_FreeType.cpp	2017-10-10 17:46:05.824187787 +0200
+@@ -99,8 +99,6 @@
+     FreeTypeLibrary()
+         : fGetVarDesignCoordinates(nullptr)
+         , fLibrary(nullptr)
+-        , fIsLCDSupported(false)
+-        , fLCDExtra(0)
+     {
+         if (FT_New_Library(&gFTMemory, &fLibrary)) {
+             return;
+@@ -147,12 +145,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) {
+@@ -161,8 +153,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.
+@@ -173,8 +163,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 +692,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
+@@ -1115,11 +1092,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;
+         }
+     }
+ }

Added: chromium-system-icu.patch
===================================================================
--- chromium-system-icu.patch	                        (rev 0)
+++ chromium-system-icu.patch	2019-03-19 07:00:17 UTC (rev 442580)
@@ -0,0 +1,19 @@
+diff --git a/third_party/blink/renderer/platform/text/character_property_data_generator.h b/third_party/blink/renderer/platform/text/character_property_data_generator.h
+index 28fb6a9..bb4dbd7 100644
+--- a/third_party/blink/renderer/platform/text/character_property_data_generator.h
++++ b/third_party/blink/renderer/platform/text/character_property_data_generator.h
+@@ -244,10 +244,12 @@ static const UChar32 kIsHangulRanges[] = {
+     0xD7B0, 0xD7FF,
+     // Halfwidth Hangul Jamo
+     // https://www.unicode.org/charts/nameslist/c_FF00.html
+-    0xFFA0, 0xFFDC,
++    0xFFA0, 0xFFDB,
+ };
+ 
+-static const UChar32 kIsHangulArray[] = {};
++static const UChar32 kIsHangulArray[] = {
++  0xFFDC,
++};
+ 
+ }  // namespace blink
+ 

Deleted: chromium-use-system-ffmpeg.patch
===================================================================
--- chromium-use-system-ffmpeg.patch	2019-03-19 06:54:58 UTC (rev 442579)
+++ chromium-use-system-ffmpeg.patch	2019-03-19 07:00:17 UTC (rev 442580)
@@ -1,22 +0,0 @@
---- a/build/linux/unbundle/ffmpeg.gn
-+++ b/build/linux/unbundle/ffmpeg.gn
-@@ -14,8 +14,8 @@
-   ]
- }
- 
--buildflag_header("ffmpeg_buildflags") {
--  header = "ffmpeg_buildflags.h"
-+buildflag_header("ffmpeg_features") {
-+  header = "ffmpeg_features.h"
-   flags = [ "USE_SYSTEM_FFMPEG=true" ]
- }
- 
-@@ -30,7 +30,7 @@
- 
- source_set("ffmpeg") {
-   deps = [
--    ":ffmpeg_buildflags",
-+    ":ffmpeg_features",
-     ":ffmpeg_shim",
-   ]
-   public_configs = [ ":system_ffmpeg" ]

Deleted: chromium-use-system-re2.patch
===================================================================
--- chromium-use-system-re2.patch	2019-03-19 06:54:58 UTC (rev 442579)
+++ chromium-use-system-re2.patch	2019-03-19 07:00:17 UTC (rev 442580)
@@ -1,10 +0,0 @@
---- a/build/linux/unbundle/re2.gn
-+++ b/build/linux/unbundle/re2.gn
-@@ -11,7 +11,6 @@
-     "re2/re2.h",
-     "re2/set.h",
-     "re2/stringpiece.h",
--    "re2/variadic_function.h",
-   ]
- }
- 

Modified: default_app-icon.patch
===================================================================
--- default_app-icon.patch	2019-03-19 06:54:58 UTC (rev 442579)
+++ default_app-icon.patch	2019-03-19 07:00:17 UTC (rev 442580)
@@ -1,22 +1,21 @@
---- a/default_app/default_app.js
-+++ b/default_app/default_app.js
-@@ -20,9 +20,6 @@ exports.load = (appUrl) => {
-       },
-       useContentSize: true
-     }
--    if (process.platform === 'linux') {
--      options.icon = path.join(__dirname, 'icon.png')
--    }
+--- a/electron/default_app/default_app.js
++++ b/electron/default_app/default_app.js
+@@ -27,7 +27,7 @@
+   }
  
-     mainWindow = new BrowserWindow(options)
-     mainWindow.loadURL(appUrl)
---- a/filenames.gypi
-+++ b/filenames.gypi
-@@ -93,7 +93,6 @@
-     ],
-     'default_app_sources': [
-       'default_app/default_app.js',
--      'default_app/icon.png',
-       'default_app/index.html',
-       'default_app/main.js',
-       'default_app/package.json',
+   if (process.platform === 'linux') {
+-    options.icon = path.join(__dirname, 'icon.png')
++    options.icon = '/usr/share/pixmaps/electron.png'
+   }
+ 
+   mainWindow = new BrowserWindow(options)
+--- a/electron/filenames.gni
++++ b/electron/filenames.gni
+@@ -94,7 +94,6 @@
+ 
+   default_app_sources = [
+     "default_app/default_app.js",
+-    "default_app/icon.png",
+     "default_app/index.html",
+     "default_app/main.js",
+     "default_app/menu.js",

Deleted: dont-bootstrap-libchromiumcontent.patch
===================================================================
--- dont-bootstrap-libchromiumcontent.patch	2019-03-19 06:54:58 UTC (rev 442579)
+++ dont-bootstrap-libchromiumcontent.patch	2019-03-19 07:00:17 UTC (rev 442580)
@@ -1,11 +0,0 @@
---- a/script/build-libchromiumcontent.py
-+++ b/script/build-libchromiumcontent.py
-@@ -44,7 +44,7 @@ def main():
-   build = os.path.join(script_dir, 'build')
-   create_dist = os.path.join(script_dir, 'create-dist')
-   if args.force_update or libchromiumcontent_outdated():
--    execute_stdout([sys.executable, bootstrap])
-+    # execute_stdout([sys.executable, bootstrap])
-     execute_stdout([sys.executable, update, '-t', args.target_arch])
-     update_gclient_done_marker()
-   if args.debug:

Deleted: dont-update-submodules.patch
===================================================================
--- dont-update-submodules.patch	2019-03-19 06:54:58 UTC (rev 442579)
+++ dont-update-submodules.patch	2019-03-19 07:00:17 UTC (rev 442580)
@@ -1,11 +0,0 @@
---- a/script/bootstrap.py
-+++ b/script/bootstrap.py
-@@ -33,7 +33,7 @@ def main():
- 
-   check_tls(args.verbose)
- 
--  update_submodules()
-+  # update_submodules()
- 
-   libcc_source_path = args.libcc_source_path
-   libcc_shared_library_path = args.libcc_shared_library_path

Deleted: dont-use-sysroot.patch
===================================================================
--- dont-use-sysroot.patch	2019-03-19 06:54:58 UTC (rev 442579)
+++ dont-use-sysroot.patch	2019-03-19 07:00:17 UTC (rev 442580)
@@ -1,27 +0,0 @@
---- a/script/bootstrap.py
-+++ b/script/bootstrap.py
-@@ -65,9 +65,6 @@ def main():
-                            libcc_source_path, libcc_shared_library_path,
-                            libcc_static_library_path)
- 
--  if PLATFORM == 'linux' and args.target_arch != 'mips64el':
--    download_sysroot(args.target_arch)
--
-   create_chrome_version_h()
-   touch_config_gypi()
-   run_update(defines, args.msvs)
---- a/toolchain.gypi
-+++ b/toolchain.gypi
-@@ -62,10 +62,10 @@
-               'sysroot%': '<(source_root)/vendor/debian_stretch_arm64-sysroot',
-             }],
-             ['target_arch=="ia32"', {
--              'sysroot%': '<(source_root)/vendor/debian_stretch_i386-sysroot',
-+              'sysroot%': '/',
-             }],
-             ['target_arch=="x64"', {
--              'sysroot%': '<(source_root)/vendor/debian_stretch_amd64-sysroot',
-+              'sysroot%': '/',
-             }],
-             ['target_arch=="mips64el"', {
-               'sysroot%': '<(source_root)/vendor/debian_jessie_mips64-sysroot',

Added: fix-cfi-icall-failure-with-use_system_libjpeg-true.patch
===================================================================
--- fix-cfi-icall-failure-with-use_system_libjpeg-true.patch	                        (rev 0)
+++ fix-cfi-icall-failure-with-use_system_libjpeg-true.patch	2019-03-19 07:00:17 UTC (rev 442580)
@@ -0,0 +1,52 @@
+From db82db1b609f30d144d45477f55697818bcd363c Mon Sep 17 00:00:00 2001
+From: Vlad Tsyrklevich <vtsyrklevich at chromium.org>
+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 <haraken at chromium.org>
+Commit-Queue: Vlad Tsyrklevich <vtsyrklevich at chromium.org>
+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
+

Deleted: gyp-no-rpath.patch
===================================================================
--- gyp-no-rpath.patch	2019-03-19 06:54:58 UTC (rev 442579)
+++ gyp-no-rpath.patch	2019-03-19 07:00:17 UTC (rev 442580)
@@ -1,12 +0,0 @@
---- a/pylib/gyp/generator/ninja.py
-+++ b/pylib/gyp/generator/ninja.py
-@@ -1231,9 +1231,6 @@
-         rpath = 'lib/'
-         if self.toolset != 'target':
-           rpath += self.toolset
--          ldflags.append(r'-Wl,-rpath=\$$ORIGIN/%s' % rpath)
--        else:
--          ldflags.append('-Wl,-rpath=%s' % self.target_rpath)
-         ldflags.append('-Wl,-rpath-link=%s' % rpath)
-     self.WriteVariableList(ninja_file, 'ldflags',
-                            map(self.ExpandSpecial, ldflags))

Deleted: libchromiumcontent-remove-useless-patches.patch
===================================================================
--- libchromiumcontent-remove-useless-patches.patch	2019-03-19 06:54:58 UTC (rev 442579)
+++ libchromiumcontent-remove-useless-patches.patch	2019-03-19 07:00:17 UTC (rev 442580)
@@ -1,518 +0,0 @@
---- a/patches/common/v8/.patches.yaml
-+++ b/patches/common/v8/.patches.yaml
-@@ -22,11 +22,6 @@
-   file: dcheck.patch
-   description: null
- -
--  owners: nitsakh
--  file: disable-warning-win.patch
--  description:
--    Disable unit test windows build warning
---
-   owners: alexeykuzmin
-   file: backport_b767cde1e7.patch
-   description: Node 10.0.0 needs it.
---- a/patches/common/v8/backport_23652c5f.patch
-+++ b/patches/common/v8/backport_23652c5f.patch
-@@ -55,107 +55,3 @@
-    ~JSONTraceWriter();
-    void AppendTraceEvent(TraceObject* trace_event) override;
-    void Flush() override;
--diff --git a/test/cctest/libplatform/test-tracing.cc b/test/cctest/libplatform/test-tracing.cc
--index da202057de..b949785bcf 100644
----- a/test/cctest/libplatform/test-tracing.cc
--+++ b/test/cctest/libplatform/test-tracing.cc
--@@ -128,44 +128,42 @@ TEST(TestTraceBufferRingBuffer) {
--   delete ring_buffer;
-- }
-- 
---TEST(TestJSONTraceWriter) {
---  std::ostringstream stream;
---  // Create a scope for the tracing controller to terminate the trace writer.
---  {
---    v8::Platform* old_platform = i::V8::GetCurrentPlatform();
---    std::unique_ptr<v8::Platform> default_platform(
---        v8::platform::NewDefaultPlatform());
---    i::V8::SetPlatformForTesting(default_platform.get());
---    auto tracing =
---        base::make_unique<v8::platform::tracing::TracingController>();
---    v8::platform::tracing::TracingController* tracing_controller =
---        tracing.get();
---    static_cast<v8::platform::DefaultPlatform*>(default_platform.get())
---        ->SetTracingController(std::move(tracing));
---    TraceWriter* writer = TraceWriter::CreateJSONTraceWriter(stream);
--+void PopulateJSONWriter(TraceWriter* writer) {
--+  v8::Platform* old_platform = i::V8::GetCurrentPlatform();
--+  std::unique_ptr<v8::Platform> default_platform(
--+      v8::platform::NewDefaultPlatform());
--+  i::V8::SetPlatformForTesting(default_platform.get());
--+  auto tracing = base::make_unique<v8::platform::tracing::TracingController>();
--+  v8::platform::tracing::TracingController* tracing_controller = tracing.get();
--+  static_cast<v8::platform::DefaultPlatform*>(default_platform.get())
--+      ->SetTracingController(std::move(tracing));
-- 
---    TraceBuffer* ring_buffer =
---        TraceBuffer::CreateTraceBufferRingBuffer(1, writer);
---    tracing_controller->Initialize(ring_buffer);
---    TraceConfig* trace_config = new TraceConfig();
---    trace_config->AddIncludedCategory("v8-cat");
---    tracing_controller->StartTracing(trace_config);
--+  TraceBuffer* ring_buffer =
--+      TraceBuffer::CreateTraceBufferRingBuffer(1, writer);
--+  tracing_controller->Initialize(ring_buffer);
--+  TraceConfig* trace_config = new TraceConfig();
--+  trace_config->AddIncludedCategory("v8-cat");
--+  tracing_controller->StartTracing(trace_config);
-- 
---    TraceObject trace_object;
---    trace_object.InitializeForTesting(
---        'X', tracing_controller->GetCategoryGroupEnabled("v8-cat"), "Test0",
---        v8::internal::tracing::kGlobalScope, 42, 123, 0, nullptr, nullptr,
---        nullptr, nullptr, TRACE_EVENT_FLAG_HAS_ID, 11, 22, 100, 50, 33, 44);
---    writer->AppendTraceEvent(&trace_object);
---    trace_object.InitializeForTesting(
---        'Y', tracing_controller->GetCategoryGroupEnabled("v8-cat"), "Test1",
---        v8::internal::tracing::kGlobalScope, 43, 456, 0, nullptr, nullptr,
---        nullptr, nullptr, 0, 55, 66, 110, 55, 77, 88);
---    writer->AppendTraceEvent(&trace_object);
---    tracing_controller->StopTracing();
---    i::V8::SetPlatformForTesting(old_platform);
---  }
--+  TraceObject trace_object;
--+  trace_object.InitializeForTesting(
--+      'X', tracing_controller->GetCategoryGroupEnabled("v8-cat"), "Test0",
--+      v8::internal::tracing::kGlobalScope, 42, 123, 0, nullptr, nullptr,
--+      nullptr, nullptr, TRACE_EVENT_FLAG_HAS_ID, 11, 22, 100, 50, 33, 44);
--+  writer->AppendTraceEvent(&trace_object);
--+  trace_object.InitializeForTesting(
--+      'Y', tracing_controller->GetCategoryGroupEnabled("v8-cat"), "Test1",
--+      v8::internal::tracing::kGlobalScope, 43, 456, 0, nullptr, nullptr,
--+      nullptr, nullptr, 0, 55, 66, 110, 55, 77, 88);
--+  writer->AppendTraceEvent(&trace_object);
--+  tracing_controller->StopTracing();
--+  i::V8::SetPlatformForTesting(old_platform);
--+}
-- 
--+TEST(TestJSONTraceWriter) {
--+  std::ostringstream stream;
--+  TraceWriter* writer = TraceWriter::CreateJSONTraceWriter(stream);
--+  PopulateJSONWriter(writer);
--   std::string trace_str = stream.str();
--   std::string expected_trace_str =
--       "{\"traceEvents\":[{\"pid\":11,\"tid\":22,\"ts\":100,\"tts\":50,"
--@@ -177,6 +175,21 @@ TEST(TestJSONTraceWriter) {
--   CHECK_EQ(expected_trace_str, trace_str);
-- }
-- 
--+TEST(TestJSONTraceWriterWithCustomtag) {
--+  std::ostringstream stream;
--+  TraceWriter* writer = TraceWriter::CreateJSONTraceWriter(stream, "customTag");
--+  PopulateJSONWriter(writer);
--+  std::string trace_str = stream.str();
--+  std::string expected_trace_str =
--+      "{\"customTag\":[{\"pid\":11,\"tid\":22,\"ts\":100,\"tts\":50,"
--+      "\"ph\":\"X\",\"cat\":\"v8-cat\",\"name\":\"Test0\",\"dur\":33,"
--+      "\"tdur\":44,\"id\":\"0x2a\",\"args\":{}},{\"pid\":55,\"tid\":66,"
--+      "\"ts\":110,\"tts\":55,\"ph\":\"Y\",\"cat\":\"v8-cat\",\"name\":"
--+      "\"Test1\",\"dur\":77,\"tdur\":88,\"args\":{}}]}";
--+
--+  CHECK_EQ(expected_trace_str, trace_str);
--+}
--+
-- TEST(TestTracingController) {
--   v8::Platform* old_platform = i::V8::GetCurrentPlatform();
--   std::unique_ptr<v8::Platform> default_platform(
---- a/patches/common/v8/backport_2eb23a17.patch
-+++ b/patches/common/v8/backport_2eb23a17.patch
-@@ -709,300 +709,3 @@
-    F(SystemBreak, 0, 1)                        \
-    F(TraceEnter, 0, 1)                         \
-    F(TraceExit, 1, 1)                          \
--diff --git a/test/cctest/test-typedarrays.cc b/test/cctest/test-typedarrays.cc
--index 7ec9197b65..bab6e0f2f6 100644
----- a/test/cctest/test-typedarrays.cc
--+++ b/test/cctest/test-typedarrays.cc
--@@ -117,12 +117,12 @@ void TestSpeciesProtector(char* code,
-- 
--       v8::internal::Isolate* i_isolate =
--           reinterpret_cast<v8::internal::Isolate*>(isolate);
---      CHECK(i_isolate->IsSpeciesLookupChainIntact());
--+      CHECK(i_isolate->IsTypedArraySpeciesLookupChainIntact());
--       CompileRun(code);
--       if (invalidates_species_protector) {
---        CHECK(!i_isolate->IsSpeciesLookupChainIntact());
--+        CHECK(!i_isolate->IsTypedArraySpeciesLookupChainIntact());
--       } else {
---        CHECK(i_isolate->IsSpeciesLookupChainIntact());
--+        CHECK(i_isolate->IsTypedArraySpeciesLookupChainIntact());
--       }
-- 
--       v8::Local<v8::Value> my_typed_array = CompileRun("MyTypedArray");
--diff --git a/test/mjsunit/es6/array-species-constructor-accessor.js b/test/mjsunit/es6/array-species-constructor-accessor.js
--index 7ebf328a8a..7185d98b58 100644
----- a/test/mjsunit/es6/array-species-constructor-accessor.js
--+++ b/test/mjsunit/es6/array-species-constructor-accessor.js
--@@ -18,7 +18,7 @@ assertEquals(1, x.concat([1])[0]);
-- class MyArray extends Array { }
-- 
-- Object.defineProperty(x, 'constructor', {get() { return MyArray; }});
---assertFalse(%SpeciesProtector());
--+assertFalse(%ArraySpeciesProtector());
-- 
-- assertEquals(MyArray, x.map(()=>{}).constructor);
-- assertEquals(MyArray, x.filter(()=>{}).constructor);
--diff --git a/test/mjsunit/es6/array-species-constructor-delete.js b/test/mjsunit/es6/array-species-constructor-delete.js
--index fff22a2a8c..3b85d52565 100644
----- a/test/mjsunit/es6/array-species-constructor-delete.js
--+++ b/test/mjsunit/es6/array-species-constructor-delete.js
--@@ -19,7 +19,7 @@ class MyArray extends Array { }
-- 
-- Object.prototype.constructor = MyArray;
-- delete Array.prototype.constructor;
---assertFalse(%SpeciesProtector());
--+assertFalse(%ArraySpeciesProtector());
-- 
-- assertEquals(MyArray, x.map(()=>{}).constructor);
-- assertEquals(MyArray, x.filter(()=>{}).constructor);
--diff --git a/test/mjsunit/es6/array-species-constructor.js b/test/mjsunit/es6/array-species-constructor.js
--index 0d888f46ee..07e897d458 100644
----- a/test/mjsunit/es6/array-species-constructor.js
--+++ b/test/mjsunit/es6/array-species-constructor.js
--@@ -18,7 +18,7 @@ assertEquals(1, x.concat([1])[0]);
-- class MyArray extends Array { }
-- 
-- x.constructor = MyArray;
---assertFalse(%SpeciesProtector());
--+assertFalse(%ArraySpeciesProtector());
-- 
-- assertEquals(MyArray, x.map(()=>{}).constructor);
-- assertEquals(MyArray, x.filter(()=>{}).constructor);
--diff --git a/test/mjsunit/es6/array-species-delete.js b/test/mjsunit/es6/array-species-delete.js
--index 16a2fa26f9..2f0f50a1b2 100644
----- a/test/mjsunit/es6/array-species-delete.js
--+++ b/test/mjsunit/es6/array-species-delete.js
--@@ -19,7 +19,7 @@ class MyArray extends Array { }
-- 
-- Object.prototype[Symbol.species] = MyArray;
-- delete Array[Symbol.species];
---assertFalse(%SpeciesProtector());
--+assertFalse(%ArraySpeciesProtector());
-- 
-- assertEquals(MyArray, x.map(()=>{}).constructor);
-- assertEquals(MyArray, x.filter(()=>{}).constructor);
--diff --git a/test/mjsunit/es6/array-species-modified.js b/test/mjsunit/es6/array-species-modified.js
--index 58feb31669..d5a707997a 100644
----- a/test/mjsunit/es6/array-species-modified.js
--+++ b/test/mjsunit/es6/array-species-modified.js
--@@ -18,7 +18,7 @@ assertEquals(1, x.concat([1])[0]);
-- class MyArray extends Array { }
-- 
-- Object.defineProperty(Array, Symbol.species, {value: MyArray});
---assertFalse(%SpeciesProtector());
--+assertFalse(%ArraySpeciesProtector());
-- 
-- assertEquals(MyArray, x.map(()=>{}).constructor);
-- assertEquals(MyArray, x.filter(()=>{}).constructor);
--diff --git a/test/mjsunit/es6/array-species-parent-constructor.js b/test/mjsunit/es6/array-species-parent-constructor.js
--index b4fb1d56e3..8a861fb05d 100644
----- a/test/mjsunit/es6/array-species-parent-constructor.js
--+++ b/test/mjsunit/es6/array-species-parent-constructor.js
--@@ -18,7 +18,7 @@ assertEquals(1, x.concat([1])[0]);
-- class MyArray extends Array { }
-- 
-- Array.prototype.constructor = MyArray;
---assertFalse(%SpeciesProtector());
--+assertFalse(%ArraySpeciesProtector());
-- 
-- assertEquals(MyArray, x.map(()=>{}).constructor);
-- assertEquals(MyArray, x.filter(()=>{}).constructor);
--diff --git a/test/mjsunit/es6/array-species-proto.js b/test/mjsunit/es6/array-species-proto.js
--index 6b55881cd6..d8e2ae5ddd 100644
----- a/test/mjsunit/es6/array-species-proto.js
--+++ b/test/mjsunit/es6/array-species-proto.js
--@@ -18,7 +18,7 @@ assertEquals(1, x.concat([1])[0]);
-- class MyArray extends Array { }
-- 
-- x.__proto__ = MyArray.prototype;
---assertTrue(%SpeciesProtector());
--+assertTrue(%ArraySpeciesProtector());
-- 
-- assertEquals(MyArray, x.map(()=>{}).constructor);
-- assertEquals(MyArray, x.filter(()=>{}).constructor);
--diff --git a/test/mjsunit/harmony/regexp-named-captures.js b/test/mjsunit/harmony/regexp-named-captures.js
--index 72041b99bf..aab8393392 100644
----- a/test/mjsunit/harmony/regexp-named-captures.js
--+++ b/test/mjsunit/harmony/regexp-named-captures.js
--@@ -425,7 +425,7 @@ function toSlowMode(re) {
-- {
--   const re = /./;
--   const result = re.exec("a");
---  assertTrue(%SpeciesProtector());
--+  assertTrue(%ArraySpeciesProtector());
--   assertEquals(result.__proto__, Array.prototype);
--   assertTrue(result.hasOwnProperty('groups'));
--   assertArrayEquals(["a"], result);
--@@ -433,7 +433,7 @@ function toSlowMode(re) {
--   assertEquals(undefined, result.groups);
-- 
--   Array.prototype.groups = { a: "b" };
---  assertTrue(%SpeciesProtector());
--+  assertTrue(%ArraySpeciesProtector());
--   assertEquals("$<a>", "a".replace(re, "$<a>"));
--   Array.prototype.groups = undefined;
-- }
--@@ -441,7 +441,7 @@ function toSlowMode(re) {
-- {
--   const re = toSlowMode(/./);
--   const result = re.exec("a");
---  assertTrue(%SpeciesProtector());
--+  assertTrue(%ArraySpeciesProtector());
--   assertEquals(result.__proto__, Array.prototype);
--   assertTrue(result.hasOwnProperty('groups'));
--   assertArrayEquals(["a"], result);
--@@ -449,7 +449,7 @@ function toSlowMode(re) {
--   assertEquals(undefined, result.groups);
-- 
--   Array.prototype.groups = { a: "b" };
---  assertTrue(%SpeciesProtector());
--+  assertTrue(%ArraySpeciesProtector());
--   assertEquals("$<a>", "a".replace(re, "$<a>"));
--   Array.prototype.groups = undefined;
-- }
--@@ -457,7 +457,7 @@ function toSlowMode(re) {
-- {
--   const re = /(?<a>a).|(?<x>x)/;
--   const result = re.exec("ab");
---  assertTrue(%SpeciesProtector());
--+  assertTrue(%ArraySpeciesProtector());
--   assertEquals(result.__proto__, Array.prototype);
--   assertTrue(result.hasOwnProperty('groups'));
--   assertArrayEquals(["ab", "a", undefined], result);
--@@ -467,7 +467,7 @@ function toSlowMode(re) {
--   // a is a matched named capture, b is an unmatched named capture, and z
--   // is not a named capture.
--   Array.prototype.groups = { a: "b", x: "y", z: "z" };
---  assertTrue(%SpeciesProtector());
--+  assertTrue(%ArraySpeciesProtector());
--   assertEquals("a", "ab".replace(re, "$<a>"));
--   assertEquals("", "ab".replace(re, "$<x>"));
--   assertEquals("", "ab".replace(re, "$<z>"));
--@@ -477,7 +477,7 @@ function toSlowMode(re) {
-- {
--   const re = toSlowMode(/(?<a>a).|(?<x>x)/);
--   const result = re.exec("ab");
---  assertTrue(%SpeciesProtector());
--+  assertTrue(%ArraySpeciesProtector());
--   assertEquals(result.__proto__, Array.prototype);
--   assertTrue(result.hasOwnProperty('groups'));
--   assertArrayEquals(["ab", "a", undefined], result);
--@@ -487,7 +487,7 @@ function toSlowMode(re) {
--   // a is a matched named capture, b is an unmatched named capture, and z
--   // is not a named capture.
--   Array.prototype.groups = { a: "b", x: "y", z: "z" };
---  assertTrue(%SpeciesProtector());
--+  assertTrue(%ArraySpeciesProtector());
--   assertEquals("a", "ab".replace(re, "$<a>"));
--   assertEquals("", "ab".replace(re, "$<x>"));
--   assertEquals("", "ab".replace(re, "$<z>"));
--@@ -506,13 +506,13 @@ function toSlowMode(re) {
-- 
--   const re = new FakeRegExp();
--   const result = re.exec("ab");
---  assertTrue(%SpeciesProtector());
--+  assertTrue(%ArraySpeciesProtector());
--   assertEquals(result.__proto__, Array.prototype);
--   assertFalse(result.hasOwnProperty('groups'));
-- 
--   Array.prototype.groups = { a: "b" };
--   Array.prototype.groups.__proto__.b = "c";
---  assertTrue(%SpeciesProtector());
--+  assertTrue(%ArraySpeciesProtector());
--   assertEquals("b", "ab".replace(re, "$<a>"));
--   assertEquals("c", "ab".replace(re, "$<b>"));
--   Array.prototype.groups = undefined;
--@@ -531,7 +531,7 @@ function toSlowMode(re) {
-- 
--   const re = new FakeRegExp();
--   const result = re.exec("ab");
---  assertTrue(%SpeciesProtector());
--+  assertTrue(%ArraySpeciesProtector());
--   assertEquals(result.__proto__, Array.prototype);
--   assertTrue(result.hasOwnProperty('groups'));
--   assertEquals({ a: "b" }, result.groups);
--diff --git a/test/mjsunit/keyed-store-generic.js b/test/mjsunit/keyed-store-generic.js
--index c2c48dd96d..e5d6ab41f2 100644
----- a/test/mjsunit/keyed-store-generic.js
--+++ b/test/mjsunit/keyed-store-generic.js
--@@ -16,7 +16,7 @@ f("make it generic", 0, 0);
-- 
-- (function TestSpeciesProtector() {
--   function MyArray() {}
---  assertTrue(%SpeciesProtector());
--+  assertTrue(%ArraySpeciesProtector());
--   f(Array.prototype, "constructor", MyArray);
---  assertFalse(%SpeciesProtector());
--+  assertFalse(%ArraySpeciesProtector());
-- })();
--diff --git a/tools/v8heapconst.py b/tools/v8heapconst.py
--index 5659cdd03c..b4a98dcc11 100644
----- a/tools/v8heapconst.py
--+++ b/tools/v8heapconst.py
--@@ -322,34 +322,35 @@ KNOWN_OBJECTS = {
--   ("OLD_SPACE", 0x02519): "TerminationException",
--   ("OLD_SPACE", 0x02579): "OptimizedOut",
--   ("OLD_SPACE", 0x025d1): "StaleRegister",
---  ("OLD_SPACE", 0x02651): "EmptyByteArray",
---  ("OLD_SPACE", 0x02661): "EmptyFixedUint8Array",
---  ("OLD_SPACE", 0x02681): "EmptyFixedInt8Array",
---  ("OLD_SPACE", 0x026a1): "EmptyFixedUint16Array",
---  ("OLD_SPACE", 0x026c1): "EmptyFixedInt16Array",
---  ("OLD_SPACE", 0x026e1): "EmptyFixedUint32Array",
---  ("OLD_SPACE", 0x02701): "EmptyFixedInt32Array",
---  ("OLD_SPACE", 0x02721): "EmptyFixedFloat32Array",
---  ("OLD_SPACE", 0x02741): "EmptyFixedFloat64Array",
---  ("OLD_SPACE", 0x02761): "EmptyFixedUint8ClampedArray",
---  ("OLD_SPACE", 0x027c1): "EmptyScript",
---  ("OLD_SPACE", 0x02849): "ManyClosuresCell",
---  ("OLD_SPACE", 0x02859): "EmptySloppyArgumentsElements",
---  ("OLD_SPACE", 0x02879): "EmptySlowElementDictionary",
---  ("OLD_SPACE", 0x028c1): "EmptyOrderedHashMap",
---  ("OLD_SPACE", 0x028e9): "EmptyOrderedHashSet",
---  ("OLD_SPACE", 0x02911): "EmptyPropertyCell",
---  ("OLD_SPACE", 0x02939): "EmptyWeakCell",
---  ("OLD_SPACE", 0x029a9): "NoElementsProtector",
---  ("OLD_SPACE", 0x029d1): "IsConcatSpreadableProtector",
---  ("OLD_SPACE", 0x029e1): "SpeciesProtector",
---  ("OLD_SPACE", 0x02a09): "StringLengthProtector",
---  ("OLD_SPACE", 0x02a19): "FastArrayIterationProtector",
---  ("OLD_SPACE", 0x02a29): "ArrayIteratorProtector",
---  ("OLD_SPACE", 0x02a51): "ArrayBufferNeuteringProtector",
---  ("OLD_SPACE", 0x02ac9): "InfinityValue",
---  ("OLD_SPACE", 0x02ad9): "MinusZeroValue",
---  ("OLD_SPACE", 0x02ae9): "MinusInfinityValue",
--+  ("OLD_SPACE", 0x02661): "EmptyByteArray",
--+  ("OLD_SPACE", 0x02681): "EmptyFixedUint8Array",
--+  ("OLD_SPACE", 0x026a1): "EmptyFixedInt8Array",
--+  ("OLD_SPACE", 0x026c1): "EmptyFixedUint16Array",
--+  ("OLD_SPACE", 0x026e1): "EmptyFixedInt16Array",
--+  ("OLD_SPACE", 0x02701): "EmptyFixedUint32Array",
--+  ("OLD_SPACE", 0x02721): "EmptyFixedInt32Array",
--+  ("OLD_SPACE", 0x02741): "EmptyFixedFloat32Array",
--+  ("OLD_SPACE", 0x02761): "EmptyFixedFloat64Array",
--+  ("OLD_SPACE", 0x02781): "EmptyFixedUint8ClampedArray",
--+  ("OLD_SPACE", 0x027e1): "EmptyScript",
--+  ("OLD_SPACE", 0x02879): "ManyClosuresCell",
--+  ("OLD_SPACE", 0x02889): "EmptySloppyArgumentsElements",
--+  ("OLD_SPACE", 0x028a9): "EmptySlowElementDictionary",
--+  ("OLD_SPACE", 0x028f1): "EmptyOrderedHashMap",
--+  ("OLD_SPACE", 0x02919): "EmptyOrderedHashSet",
--+  ("OLD_SPACE", 0x02951): "EmptyPropertyCell",
--+  ("OLD_SPACE", 0x02979): "EmptyWeakCell",
--+  ("OLD_SPACE", 0x029e9): "NoElementsProtector",
--+  ("OLD_SPACE", 0x02a11): "IsConcatSpreadableProtector",
--+  ("OLD_SPACE", 0x02a21): "ArraySpeciesProtector",
--+  ("OLD_SPACE", 0x02a49): "TypedArraySpeciesProtector",
--+  ("OLD_SPACE", 0x02a71): "PromiseSpeciesProtector",
--+  ("OLD_SPACE", 0x02a99): "StringLengthProtector",
--+  ("OLD_SPACE", 0x02aa9): "ArrayIteratorProtector",
--+  ("OLD_SPACE", 0x02ad1): "ArrayBufferNeuteringProtector",
--+  ("OLD_SPACE", 0x02b59): "InfinityValue",
--+  ("OLD_SPACE", 0x02b69): "MinusZeroValue",
--+  ("OLD_SPACE", 0x02b79): "MinusInfinityValue",
-- }
-- 
-- # List of known V8 Frame Markers.
---- 
--2.11.0 (Apple Git-81)
--
---- a/patches/common/v8/backport_39d546a.patch
-+++ b/patches/common/v8/backport_39d546a.patch
-@@ -42,43 +42,3 @@
-  MaybeLocal<String> Value::ToString(Local<Context> context) const {
-    auto obj = Utils::OpenHandle(this);
-    if (obj->IsString()) return ToApiHandle<String>(obj);
--diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc
--index 54afc61f4c..b7483a7c5e 100644
----- a/test/cctest/test-api.cc
--+++ b/test/cctest/test-api.cc
--@@ -27239,6 +27239,35 @@ TEST(ImportMeta) {
--   CHECK(result->StrictEquals(Local<v8::Value>::Cast(v8::Utils::ToLocal(meta))));
-- }
-- 
--+TEST(GetModuleNamespace) {
--+  LocalContext context;
--+  v8::Isolate* isolate = context->GetIsolate();
--+  v8::HandleScope scope(isolate);
--+
--+  Local<String> url = v8_str("www.google.com");
--+  Local<String> source_text = v8_str("export default 5; export const a = 10;");
--+  v8::ScriptOrigin origin(url, Local<v8::Integer>(), Local<v8::Integer>(),
--+                          Local<v8::Boolean>(), Local<v8::Integer>(),
--+                          Local<v8::Value>(), Local<v8::Boolean>(),
--+                          Local<v8::Boolean>(), True(isolate));
--+  v8::ScriptCompiler::Source source(source_text, origin);
--+  Local<Module> module =
--+      v8::ScriptCompiler::CompileModule(isolate, &source).ToLocalChecked();
--+  module->InstantiateModule(context.local(), UnexpectedModuleResolveCallback)
--+      .ToChecked();
--+  module->Evaluate(context.local()).ToLocalChecked();
--+
--+  Local<Value> ns_val = module->GetModuleNamespace();
--+  CHECK(ns_val->IsModuleNamespaceObject());
--+  Local<Object> ns = ns_val.As<Object>();
--+  CHECK(ns->Get(context.local(), v8_str("default"))
--+            .ToLocalChecked()
--+            ->StrictEquals(v8::Number::New(isolate, 5)));
--+  CHECK(ns->Get(context.local(), v8_str("a"))
--+            .ToLocalChecked()
--+            ->StrictEquals(v8::Number::New(isolate, 10)));
--+}
--+
-- TEST(GlobalTemplateWithDoubleProperty) {
--   v8::Isolate* isolate = CcTest::isolate();
--   v8::HandleScope handle_scope(isolate);
---- a/patches/common/v8/backport_9fb02b526.patch
-+++ b/patches/common/v8/backport_9fb02b526.patch
-@@ -73,42 +73,3 @@
-      }
-  
-      raw_holder = GetCompatibleReceiver(isolate, *fun_data, *js_receiver);
--diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc
--index 7887cbfa75..0605f439e5 100644
----- a/test/cctest/test-api.cc
--+++ b/test/cctest/test-api.cc
--@@ -1088,6 +1088,34 @@ THREADED_PROFILED_TEST(FunctionTemplate) {
--   TestFunctionTemplateAccessor(construct_callback, Return239Callback);
-- }
-- 
--+static void FunctionCallbackForProxyTest(
--+    const v8::FunctionCallbackInfo<Value>& info) {
--+  info.GetReturnValue().Set(info.This());
--+}
--+
--+THREADED_TEST(FunctionTemplateWithProxy) {
--+  LocalContext env;
--+  v8::Isolate* isolate = env->GetIsolate();
--+  v8::HandleScope scope(isolate);
--+
--+  v8::Local<v8::FunctionTemplate> function_template =
--+      v8::FunctionTemplate::New(isolate, FunctionCallbackForProxyTest);
--+  v8::Local<v8::Function> function =
--+      function_template->GetFunction(env.local()).ToLocalChecked();
--+  CHECK((*env)->Global()->Set(env.local(), v8_str("f"), function).FromJust());
--+  v8::Local<v8::Value> proxy =
--+      CompileRun("var proxy = new Proxy({}, {}); proxy");
--+  CHECK(proxy->IsProxy());
--+
--+  v8::Local<v8::Value> result = CompileRun("f(proxy)");
--+  CHECK(result->Equals(env.local(), (*env)->Global()).FromJust());
--+
--+  result = CompileRun("f.call(proxy)");
--+  CHECK(result->Equals(env.local(), proxy).FromJust());
--+
--+  result = CompileRun("Reflect.apply(f, proxy, [1])");
--+  CHECK(result->Equals(env.local(), proxy).FromJust());
--+}
-- 
-- static void SimpleCallback(const v8::FunctionCallbackInfo<v8::Value>& info) {
--   ApiTestFuzzer::Fuzz();

Deleted: libchromiumcontent-settings.patch
===================================================================
--- libchromiumcontent-settings.patch	2019-03-19 06:54:58 UTC (rev 442579)
+++ libchromiumcontent-settings.patch	2019-03-19 07:00:17 UTC (rev 442580)
@@ -1,44 +0,0 @@
---- a/chromiumcontent/args/native_mksnapshot.gn
-+++ b/chromiumcontent/args/native_mksnapshot.gn
-@@ -11,3 +11,10 @@
- if (target_cpu == "arm64") {
-   v8_snapshot_toolchain="//build/toolchain/linux:clang_arm64"
- }
-+clang_base_path = "/usr"
-+clang_use_chrome_plugins = false
-+treat_warnings_as_errors = false
-+use_custom_libcxx = false
-+use_sysroot = false
-+use_gconf = false
-+use_gnome_keyring = false
---- a/chromiumcontent/args/static_library.gn
-+++ b/chromiumcontent/args/static_library.gn
-@@ -1,13 +1,26 @@
- root_extra_deps = [ "//libchromiumcontent/chromiumcontent" ]
- is_electron_build = true
- is_component_build = false
--is_official_build = true
--symbol_level = 2
-+is_debug = false
-+symbol_level = 0
- enable_nacl = false
- enable_widevine = true
- proprietary_codecs = true
- is_component_ffmpeg = true
- ffmpeg_branding = "Chrome"
-+custom_toolchain="//build/toolchain/linux/unbundle:default"
-+host_toolchain="//build/toolchain/linux/unbundle:default"
-+clang_base_path = "/usr"
-+clang_use_chrome_plugins = false
-+fatal_linker_warnings = false
-+treat_warnings_as_errors = false
-+fieldtrial_testing_like_official_build = true
-+remove_webcore_debug_symbols = true
-+link_pulseaudio = true
-+linux_use_bundled_binutils = false
-+use_cups = true
-+use_sysroot = false
-+use_gnome_keyring = false
- 
- # This may be guarded behind is_chrome_branded alongside
- # proprietary_codecs https://webrtc-review.googlesource.com/c/src/+/36321,

Deleted: libchromiumcontent-sort-filenames.patch
===================================================================
--- libchromiumcontent-sort-filenames.patch	2019-03-19 06:54:58 UTC (rev 442579)
+++ libchromiumcontent-sort-filenames.patch	2019-03-19 07:00:17 UTC (rev 442580)
@@ -1,32 +0,0 @@
---- a/chromiumcontent/build_libs.py
-+++ b/chromiumcontent/build_libs.py
-@@ -22,7 +22,8 @@ def gen_list(out, name, obj_dirs):
-     for base_dir in obj_dirs:
-         base_path = os.path.join('obj', base_dir)
-         for dir, subdirs, files in walk_dir(base_path, exclude_dirs):
--            for f in files:
-+            subdirs.sort()
-+            for f in sorted(files):
-                 if f.endswith('.obj') or f.endswith('.o'):
-                     out.write('"' + os.path.abspath(os.path.join(dir, f)) + '",\n')
-     out.write("]\n")
---- a/tools/generate_filenames_gypi.py
-+++ b/tools/generate_filenames_gypi.py
-@@ -99,7 +99,7 @@ def main(target_file, code_dir, shared_dir, static_dir):
- 
- 
- def find_libraries(dirpath, library_suffix, list_of_excludes):
--  libraries = glob.glob(os.path.join(dirpath, '*.' + library_suffix))
-+  libraries = sorted(glob.glob(os.path.join(dirpath, '*.' + library_suffix)))
-   if (library_suffix == 'so'):
-     # Handle "libname.so.123"
-     libraries += find_files_by_regex(dirpath, re.compile('.*\.so\.[0-9]+'))
-@@ -132,7 +132,7 @@ def find_files_by_regex(dirpath, regex):
-       if regex.match(file):
-         files_found.append(os.path.join(root, file))
- 
--  return files_found
-+  return sorted(files_found)
- 
- 
- def is_v8_library(p):

Deleted: libchromiumcontent-static-library-only.patch
===================================================================
--- libchromiumcontent-static-library-only.patch	2019-03-19 06:54:58 UTC (rev 442579)
+++ libchromiumcontent-static-library-only.patch	2019-03-19 07:00:17 UTC (rev 442580)
@@ -1,43 +0,0 @@
---- a/script/create-dist
-+++ b/script/create-dist
-@@ -69,7 +69,7 @@ BINARIES = {
-     'libffmpeg.dylib',
-   ],
-   'linux': [
--    'libffmpeg.so',
-+    # 'libffmpeg.so',
-   ],
-   'win32': [
-     'd3dcompiler_47.dll',
-@@ -448,7 +448,7 @@ def generate_ninja(args, ninja):
-       copy_locales(target_arch, component, ninja)
- 
-   if args.component != 'native_mksnapshot':
--    copy_ffmpeg(target_arch, ninja)
-+    # copy_ffmpeg(target_arch, ninja)
-     copy_sources(ninja)
-   generate_licenses(ninja)
- 
-@@ -576,9 +576,9 @@ def copy_binaries(target_arch, component, create_debug_archive,
-   elif target_arch == 'mips64el':
-     binaries = [ 'chromedriver', 'clang_x64_v8_mips64el/mksnapshot' ]
-   else:
--    binaries = [ 'chromedriver', 'mksnapshot' ]
-+    binaries = [ 'mksnapshot' ]
- 
--  ffmpeg_output_dir = get_output_dir(SOURCE_ROOT, target_arch, 'ffmpeg')
-+  ffmpeg_output_dir = get_output_dir(SOURCE_ROOT, target_arch, 'static_library')
-   for binary in binaries:
-     ninja.copy(os.path.join(ffmpeg_output_dir, binary), target_dir)
- 
---- a/script/lib/config.py
-+++ b/script/lib/config.py
-@@ -10,7 +10,7 @@
- VENDOR_DIR = os.path.join(SOURCE_ROOT, 'vendor')
- DEPOT_TOOLS_DIR = os.path.join(VENDOR_DIR, 'depot_tools')
- 
--COMPONENTS = ['static_library', 'shared_library', 'ffmpeg', 'tests', 'native_mksnapshot']
-+COMPONENTS = ['static_library', 'native_mksnapshot']
- 
- # URL to the mips64el sysroot image.
- MIPS64EL_SYSROOT = 'https://github.com/electron/debian-sysroot-image-creator/releases/download/v0.5.0/debian_jessie_mips64-sysroot.tar.bz2'

Deleted: libchromiumcontent-use-system-tools.patch
===================================================================
--- libchromiumcontent-use-system-tools.patch	2019-03-19 06:54:58 UTC (rev 442579)
+++ libchromiumcontent-use-system-tools.patch	2019-03-19 07:00:17 UTC (rev 442580)
@@ -1,34 +0,0 @@
---- a/script/lib/ninja.py
-+++ b/script/lib/ninja.py
-@@ -15,7 +15,7 @@
- 
- 
- def run(directory, target=None, env=None):
--  ninja_binary = __get_binary_path()
-+  ninja_binary = 'ninja'
- 
-   args = [ninja_binary,
-           '-C', directory
---- a/script/run-gn
-+++ b/script/run-gn
-@@ -56,7 +56,7 @@
-   if sys.platform in ['win32', 'cygwin']:
-     env['DEPOT_TOOLS_WIN_TOOLCHAIN'] = '0'
- 
--  gn.generate(build_dir, chromium_root_dir=SRC_DIR, depot_tools_dir=DEPOT_TOOLS_DIR, env=env)
-+  gn.generate(build_dir, chromium_root_dir=SRC_DIR, depot_tools_dir=os.path.join('/usr', 'bin'), env=env)
- 
- 
- def create_gn_config(component, build_dir, **gnargs):
---- a/script/update
-+++ b/script/update
-@@ -89,9 +89,7 @@
-     install_aarch64_bintools()
- 
-   return ((apply_patches(target_arch) if args.apply_patches else 0) or
--          install_sysroot_if_needed(target_arch) or
-           copy_chromiumcontent_files() or
--          update_clang() or
-           setup_mips64el_toolchain(target_arch) or
-           run_gn(target_arch, args.cc_wrapper))
- 

Deleted: no-clang-plugins.patch
===================================================================
--- no-clang-plugins.patch	2019-03-19 06:54:58 UTC (rev 442579)
+++ no-clang-plugins.patch	2019-03-19 07:00:17 UTC (rev 442580)
@@ -1,38 +0,0 @@
---- a/toolchain.gypi
-+++ b/toolchain.gypi
-@@ -134,35 +134,6 @@
-           'CLANG_CXX_LANGUAGE_STANDARD': 'c++14',  # -std=c++14
-         },
-         'target_conditions': [
--          ['_target_name in ["electron", "brightray"]', {
--            'conditions': [
--              ['OS=="mac"', {
--                'xcode_settings': {
--                  'OTHER_CFLAGS': [
--                    "-Xclang",
--                    "-load",
--                    "-Xclang",
--                    "<(source_root)/<(make_clang_dir)/lib/libFindBadConstructs.dylib",
--                    "-Xclang",
--                    "-add-plugin",
--                    "-Xclang",
--                    "find-bad-constructs",
--                  ],
--                },
--              }, {  # OS=="mac"
--                'cflags_cc': [
--                  "-Xclang",
--                  "-load",
--                  "-Xclang",
--                  "<(source_root)/<(make_clang_dir)/lib/libFindBadConstructs.so",
--                  "-Xclang",
--                  "-add-plugin",
--                  "-Xclang",
--                  "find-bad-constructs",
--                ],
--              }],
--            ],
--          }],
-           ['OS=="mac" and _type in ["executable", "shared_library"]', {
-             'xcode_settings': {
-               # On some machines setting CLANG_CXX_LIBRARY doesn't work for

Deleted: no-whole-archive.patch
===================================================================
--- no-whole-archive.patch	2019-03-19 06:54:58 UTC (rev 442579)
+++ no-whole-archive.patch	2019-03-19 07:00:17 UTC (rev 442580)
@@ -1,22 +0,0 @@
---- a/brightray/brightray.gyp
-+++ b/brightray/brightray.gyp
-@@ -55,14 +55,13 @@
-       'conditions': [
-         # Link with libraries of libchromiumcontent.
-         ['OS=="linux" and libchromiumcontent_component==0', {
--          # On Linux we have to use "--whole-archive" to force executable
--          # to include all symbols, otherwise we will have plenty of
-+          # On Linux we have to use "--start-group" or we will have plenty of
-           # unresolved symbols errors.
--          'direct_dependent_settings': {
--            'ldflags': [
--              '-Wl,--whole-archive',
-+          'link_settings': {
-+            'libraries': [
-+              '-Wl,--start-group',
-               '<@(libchromiumcontent_libraries)',
--              '-Wl,--no-whole-archive',
-+              '-Wl,--end-group'
-             ],
-           }
-         }, {  # (Release build on Linux)

Added: only-disable-cfi-icall-when-use_system_libjpeg-true.patch
===================================================================
--- only-disable-cfi-icall-when-use_system_libjpeg-true.patch	                        (rev 0)
+++ only-disable-cfi-icall-when-use_system_libjpeg-true.patch	2019-03-19 07:00:17 UTC (rev 442580)
@@ -0,0 +1,34 @@
+From 20f81a066ffdf6bd30fb4b696b8b3e101368e2f6 Mon Sep 17 00:00:00 2001
+From: Vlad Tsyrklevich <vtsyrklevich at chromium.org>
+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 <haraken at chromium.org>
+Commit-Queue: Vlad Tsyrklevich <vtsyrklevich at chromium.org>
+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
+

Deleted: use-system-ffmpeg.patch
===================================================================
--- use-system-ffmpeg.patch	2019-03-19 06:54:58 UTC (rev 442579)
+++ use-system-ffmpeg.patch	2019-03-19 07:00:17 UTC (rev 442580)
@@ -1,21 +0,0 @@
---- a/brightray/brightray.gyp
-+++ b/brightray/brightray.gyp
-@@ -157,8 +157,6 @@
-             }, {
-               'link_settings': {
-                 'libraries': [
--                  # Link with ffmpeg.
--                  '<(libchromiumcontent_dir)/libffmpeg.so',
-                   # Following libraries are required by libchromiumcontent:
-                   '-lasound',
-                   '-lcap',
---- a/electron.gyp
-+++ b/electron.gyp
-@@ -233,7 +233,6 @@
-                   }, {
-                     'copied_libraries': [
-                       '<(PRODUCT_DIR)/lib/libnode.so',
--                      '<(libchromiumcontent_dir)/libffmpeg.so',
-                     ],
-                   }],
-                 ],

Modified: use-system-libraries-in-node.patch
===================================================================
--- use-system-libraries-in-node.patch	2019-03-19 06:54:58 UTC (rev 442579)
+++ use-system-libraries-in-node.patch	2019-03-19 07:00:17 UTC (rev 442580)
@@ -1,31 +1,54 @@
---- a/common.gypi
-+++ b/common.gypi
-@@ -27,12 +27,12 @@
-     'node_install_npm': 'false',
-     'node_prefix': '',
-     'node_shared': 'true',
--    'node_shared_cares': 'false',
--    'node_shared_http_parser': 'false',
-+    'node_shared_cares': 'true',
-+    'node_shared_http_parser': 'true',
-     'node_shared_libuv': 'false',
-     'node_shared_openssl': 'false',
-     'node_shared_v8': 'true',
--    'node_shared_zlib': 'false',
-+    'node_shared_zlib': 'true',
-     'node_tag': '',
-     'node_use_dtrace': 'false',
-     'node_use_etw': 'false',
-@@ -198,6 +198,12 @@
-             },
-           }],
-           ['OS=="linux" and libchromiumcontent_component==0', {
-+            'libraries': [
-+              '-lcares',
-+              '-lcrypto',
-+              '-lhttp_parser',
-+              '-lz',
-+            ],
-             # Prevent the linker from stripping symbols.
-             'ldflags': [
-               '-Wl,--whole-archive',
+--- a/third_party/electron_node/BUILD.gn
++++ b/third_party/electron_node/BUILD.gn
+@@ -42,6 +42,18 @@
+   node_release_urlbase = ""
+ }
+ 
++if (is_linux) {
++  import("//build/config/linux/pkg_config.gni")
++
++  pkg_config("cares") {
++    packages = [ "libcares" ]
++  }
++
++  pkg_config("nghttp2") {
++    packages = [ "libnghttp2" ]
++  }
++}
++
+ assert(!node_use_dtrace, "node_use_dtrace not supported in GN")
+ assert(!node_use_etw, "node_use_etw not supported in GN")
+ assert(!node_use_perfctr, "node_use_perfctr not supported in GN")
+@@ -128,10 +140,6 @@
+ component("node_lib") {
+   deps = [
+     ":node_js2c",
+-    "deps/cares",
+-    "deps/http_parser",
+-    "deps/nghttp2",
+-    "deps/zlib",
+     "//v8:v8_libplatform",
+   ]
+   public_deps = [
+@@ -141,6 +149,21 @@
+   public_configs = [ ":node_lib_config" ]
+   include_dirs = [ "src" ]
+   libs = []
++  if (is_linux) {
++    configs += [
++      ":cares",
++      ":nghttp2",
++    ]
++    deps += [ "//third_party/zlib" ]
++    libs += [ "http_parser" ]
++  } else {
++    deps += [
++      "deps/cares",
++      "deps/http_parser",
++      "deps/nghttp2",
++      "deps/zlib",
++    ]
++  }
+   cflags_cc = [
+     "-Wno-deprecated-declarations",
+     "-Wno-implicit-fallthrough",



More information about the arch-commits mailing list