summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorjk2020-02-15 21:33:42 -0500
committerjk2020-02-15 21:33:42 -0500
commit242407d2ad7a52fc584acd251d179a4e9fd94ff0 (patch)
treea7e0b377087ceab4027fe00ddea80fffe98e8f6b
parent8bef3b9e014b8326a549a035d8c3a38349745477 (diff)
downloadaur-242407d2ad7a52fc584acd251d179a4e9fd94ff0.tar.gz
Updated to version 80.0.3987.106
-rw-r--r--.SRCINFO37
-rw-r--r--PKGBUILD98
-rw-r--r--chromium.install16
-rw-r--r--fix-browser-frame-view-not-getting-a-relayout.patch38
-rw-r--r--vaapi-fix-wayland-init.patch82
5 files changed, 166 insertions, 105 deletions
diff --git a/.SRCINFO b/.SRCINFO
index b49333e9ab6d..181eb7437149 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,8 +1,9 @@
pkgbase = ungoogled-chromium-ozone
pkgdesc = A lightweight approach to removing Google web service dependency with patches for wayland support via Ozone
- pkgver = 80.0.3987.87
- pkgrel = 2
+ pkgver = 80.0.3987.106
+ pkgrel = 1
url = https://ungoogled-software.github.io/
+ install = chromium.install
arch = x86_64
license = BSD
makedepends = python
@@ -60,14 +61,8 @@ pkgbase = ungoogled-chromium-ozone
optdepends = libva-vdpau-driver: for hardware video acceleration with NVIDIA GPUs
provides = chromium
conflicts = chromium
- source = https://commondatastorage.googleapis.com/chromium-browser-official/chromium-80.0.3987.87.tar.xz
+ source = https://commondatastorage.googleapis.com/chromium-browser-official/chromium-80.0.3987.106.tar.xz
source = chromium-launcher-6.tar.gz::https://github.com/foutrelis/chromium-launcher/archive/v6.tar.gz
- source = ungoogled-chromium.zip::https://github.com/Eloston/ungoogled-chromium/archive/80.0.3987.87-2.zip
- source = 0001-Add-missing-algorithm-header-in-bitmap_cursor_factor.patch
- source = flags.archlinux.gn
- source = chromium-drirc-disable-10bpc-color-configs.conf
- source = vaapi-fix.patch
- source = fix-vaapi-ozone-build.patch
source = cros-search-service-Include-cmath-for-std-pow.patch
source = move-RemoteTreeNode-declaration.patch
source = sync-enable-USSPasswords-by-default.patch
@@ -75,19 +70,19 @@ pkgbase = ungoogled-chromium-ozone
source = fix-building-with-system-zlib.patch
source = remove-verbose-logging-in-local-unique-font-matching.patch
source = fix-building-with-unbundled-libxml.patch
- source = fix-browser-frame-view-not-getting-a-relayout.patch
source = rename-Relayout-in-DesktopWindowTreeHostPlatform.patch
source = rebuild-Linux-frame-button-cache-when-activation.patch
source = chromium-widevine.patch
source = chromium-skia-harmony.patch
- sha256sums = f51f6fca5d9abbef855aa6b5bf427410c6e96ae58b64a7d45f843868cfb0ac8e
+ source = ungoogled-chromium-80.0.3987.106-1.zip::https://github.com/Eloston/ungoogled-chromium/archive/80.0.3987.106-1.zip
+ source = flags.archlinux.gn
+ source = chromium-drirc-disable-10bpc-color-configs.conf
+ source = vaapi-fix.patch
+ source = vaapi-fix-wayland-init.patch
+ source = 0001-Add-missing-algorithm-header-in-bitmap_cursor_factor.patch
+ source = fix-vaapi-ozone-build.patch
+ sha256sums = 2ead924b4414a8a5f085fa0e0df56563ef41bd4290cc403c05d5beec238cbe82
sha256sums = 04917e3cd4307d8e31bfb0027a5dce6d086edb10ff8a716024fbb8bb0c7dccf1
- sha256sums = SKIP
- sha256sums = d8a57adf4b3106ab4d7ecdf5b050e02b87901b61c33cfa8810a7143c483e1fe4
- sha256sums = 53e8a314da1f33b99d4286cc3c2e4cb2d43132b75af8a282414fda950bd493e9
- sha256sums = babda4f5c1179825797496898d77334ac067149cac03d797ab27ac69671a7feb
- sha256sums = 0ec6ee49113cc8cc5036fa008519b94137df6987bf1f9fbffb2d42d298af868a
- sha256sums = 9aebd800e5fe191cd5f4bd82c33419eefdd80919e6c6f5a3a9346a224625f094
sha256sums = 0a8d1af2a3734b5f99ea8462940e332db4acee7130fe436ad3e4b7ad133e5ae5
sha256sums = 21f631851cdcb347f40793485b168cb5d0da65ae26ae39ba58d624c66197d0a5
sha256sums = 08ef82476780e0864b5bf7f20eb19db320e73b9a5d4f595351e12e97dda8746f
@@ -95,11 +90,17 @@ pkgbase = ungoogled-chromium-ozone
sha256sums = 18276e65c68a0c328601b12fefb7e8bfc632346f34b87e64944c9de8c95c5cfa
sha256sums = 5bc775c0ece84d67855f51b30eadcf96fa8163b416d2036e9f9ba19072f54dfe
sha256sums = e530d1b39504c2ab247e16f1602359c484e9e8be4ef6d4824d68b14d29a7f60b
- sha256sums = 5db225565336a3d9b9e9f341281680433c0b7bb343dff2698b2acffd86585cbe
sha256sums = ae3bf107834bd8eda9a3ec7899fe35fde62e6111062e5def7d24bf49b53db3db
sha256sums = 46f7fc9768730c460b27681ccf3dc2685c7e1fd22d70d3a82d9e57e3389bb014
sha256sums = 709e2fddba3c1f2ed4deb3a239fc0479bfa50c46e054e7f32db4fb1365fed070
sha256sums = 771292942c0901092a402cc60ee883877a99fb804cb54d568c8c6c94565a48e1
+ sha256sums = 27bc03aeabfed83f5d2009a8ac4a7576f4d60af648ef4472ef500040da2100d7
+ sha256sums = 53e8a314da1f33b99d4286cc3c2e4cb2d43132b75af8a282414fda950bd493e9
+ sha256sums = babda4f5c1179825797496898d77334ac067149cac03d797ab27ac69671a7feb
+ sha256sums = 0ec6ee49113cc8cc5036fa008519b94137df6987bf1f9fbffb2d42d298af868a
+ sha256sums = a4c022263b474ae14abd899b8e453f7d9ed9c0715b0b248b8a423aa2777095c4
+ sha256sums = d8a57adf4b3106ab4d7ecdf5b050e02b87901b61c33cfa8810a7143c483e1fe4
+ sha256sums = 9aebd800e5fe191cd5f4bd82c33419eefdd80919e6c6f5a3a9346a224625f094
pkgname = ungoogled-chromium-ozone
diff --git a/PKGBUILD b/PKGBUILD
index 28531037dd53..57a03801463f 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,12 +1,15 @@
# Maintainer: JustKidding <jk@vin.ovh>
-# Derived from PKGBUILD for chromium
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Evangelos Foutras <evangelos@foutrelis.com>
pkgname=ungoogled-chromium-ozone
+pkgver=80.0.3987.106
+pkgrel=1
_pkgname=ungoogled-chromium
-pkgver=80.0.3987.87
-pkgrel=2
_launcher_ver=6
-_ungoogled_ver=80.0.3987.87-2
+_ungoogled_ver=80.0.3987.106-1
pkgdesc="A lightweight approach to removing Google web service dependency with patches for wayland support via Ozone"
arch=('x86_64')
url="https://ungoogled-software.github.io/"
@@ -25,16 +28,9 @@ optdepends=('pepper-flash: support for Flash content'
'libva-intel-driver: for hardware video acceleration with Intel GPUs (<= Haswell)'
'libva-mesa-driver: for hardware video acceleration with AMD/ATI GPUs'
'libva-vdpau-driver: for hardware video acceleration with NVIDIA GPUs')
-provides=('chromium')
-conflicts=('chromium')
-source=(https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${pkgver}.tar.xz
+install=chromium.install
+source=(https://commondatastorage.googleapis.com/chromium-browser-official/chromium-$pkgver.tar.xz
chromium-launcher-$_launcher_ver.tar.gz::https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver.tar.gz
- 'ungoogled-chromium.zip::https://github.com/Eloston/ungoogled-chromium/archive/80.0.3987.87-2.zip'
- 0001-Add-missing-algorithm-header-in-bitmap_cursor_factor.patch
- flags.archlinux.gn
- chromium-drirc-disable-10bpc-color-configs.conf
- vaapi-fix.patch
- fix-vaapi-ozone-build.patch
cros-search-service-Include-cmath-for-std-pow.patch
move-RemoteTreeNode-declaration.patch
sync-enable-USSPasswords-by-default.patch
@@ -42,19 +38,20 @@ source=(https://commondatastorage.googleapis.com/chromium-browser-official/chrom
fix-building-with-system-zlib.patch
remove-verbose-logging-in-local-unique-font-matching.patch
fix-building-with-unbundled-libxml.patch
- fix-browser-frame-view-not-getting-a-relayout.patch
rename-Relayout-in-DesktopWindowTreeHostPlatform.patch
rebuild-Linux-frame-button-cache-when-activation.patch
chromium-widevine.patch
- chromium-skia-harmony.patch)
-sha256sums=('f51f6fca5d9abbef855aa6b5bf427410c6e96ae58b64a7d45f843868cfb0ac8e'
+ chromium-skia-harmony.patch
+ # -----------
+ $_pkgname-$_ungoogled_ver.zip::https://github.com/Eloston/ungoogled-chromium/archive/$_ungoogled_ver.zip
+ flags.archlinux.gn
+ chromium-drirc-disable-10bpc-color-configs.conf
+ vaapi-fix.patch
+ vaapi-fix-wayland-init.patch
+ 0001-Add-missing-algorithm-header-in-bitmap_cursor_factor.patch
+ fix-vaapi-ozone-build.patch)
+sha256sums=('2ead924b4414a8a5f085fa0e0df56563ef41bd4290cc403c05d5beec238cbe82'
'04917e3cd4307d8e31bfb0027a5dce6d086edb10ff8a716024fbb8bb0c7dccf1'
- 'SKIP'
- 'd8a57adf4b3106ab4d7ecdf5b050e02b87901b61c33cfa8810a7143c483e1fe4'
- '53e8a314da1f33b99d4286cc3c2e4cb2d43132b75af8a282414fda950bd493e9'
- 'babda4f5c1179825797496898d77334ac067149cac03d797ab27ac69671a7feb'
- '0ec6ee49113cc8cc5036fa008519b94137df6987bf1f9fbffb2d42d298af868a'
- '9aebd800e5fe191cd5f4bd82c33419eefdd80919e6c6f5a3a9346a224625f094'
'0a8d1af2a3734b5f99ea8462940e332db4acee7130fe436ad3e4b7ad133e5ae5'
'21f631851cdcb347f40793485b168cb5d0da65ae26ae39ba58d624c66197d0a5'
'08ef82476780e0864b5bf7f20eb19db320e73b9a5d4f595351e12e97dda8746f'
@@ -62,11 +59,21 @@ sha256sums=('f51f6fca5d9abbef855aa6b5bf427410c6e96ae58b64a7d45f843868cfb0ac8e'
'18276e65c68a0c328601b12fefb7e8bfc632346f34b87e64944c9de8c95c5cfa'
'5bc775c0ece84d67855f51b30eadcf96fa8163b416d2036e9f9ba19072f54dfe'
'e530d1b39504c2ab247e16f1602359c484e9e8be4ef6d4824d68b14d29a7f60b'
- '5db225565336a3d9b9e9f341281680433c0b7bb343dff2698b2acffd86585cbe'
'ae3bf107834bd8eda9a3ec7899fe35fde62e6111062e5def7d24bf49b53db3db'
'46f7fc9768730c460b27681ccf3dc2685c7e1fd22d70d3a82d9e57e3389bb014'
'709e2fddba3c1f2ed4deb3a239fc0479bfa50c46e054e7f32db4fb1365fed070'
- '771292942c0901092a402cc60ee883877a99fb804cb54d568c8c6c94565a48e1')
+ '771292942c0901092a402cc60ee883877a99fb804cb54d568c8c6c94565a48e1'
+ # -----------
+ '27bc03aeabfed83f5d2009a8ac4a7576f4d60af648ef4472ef500040da2100d7'
+ '53e8a314da1f33b99d4286cc3c2e4cb2d43132b75af8a282414fda950bd493e9'
+ 'babda4f5c1179825797496898d77334ac067149cac03d797ab27ac69671a7feb'
+ '0ec6ee49113cc8cc5036fa008519b94137df6987bf1f9fbffb2d42d298af868a'
+ 'a4c022263b474ae14abd899b8e453f7d9ed9c0715b0b248b8a423aa2777095c4'
+ 'd8a57adf4b3106ab4d7ecdf5b050e02b87901b61c33cfa8810a7143c483e1fe4'
+ '9aebd800e5fe191cd5f4bd82c33419eefdd80919e6c6f5a3a9346a224625f094')
+provides=('chromium')
+conflicts=('chromium')
+
# Possible replacements are listed in build/linux/unbundle/replace_gn_files.py
# Keys are the names in the above script; values are the dependencies in Arch
declare -gA _system_libs=(
@@ -96,7 +103,7 @@ _unwanted_bundled_libs=(
depends+=(${_system_libs[@]})
prepare() {
- cd "$srcdir/chromium-${pkgver}"
+ cd "$srcdir/chromium-$pkgver"
# Allow building against system libraries in official builds
sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
@@ -108,17 +115,6 @@ prepare() {
third_party/blink/renderer/core/xml/parser/xml_document_parser.cc \
third_party/libxml/chromium/*.cc
- msg2 'Applying archlinux patches'
-
- # Fix VA-API on Intel and Nvidia
- patch -Np1 -i ../vaapi-fix.patch
-
- # Fix vaapi linkage error
- patch -Np1 -i ../fix-vaapi-ozone-build.patch
-
- # build fixes
- patch -Np1 -i ../0001-Add-missing-algorithm-header-in-bitmap_cursor_factor.patch
-
# https://crbug.com/957519
patch -Np1 -i ../cros-search-service-Include-cmath-for-std-pow.patch
patch -Np1 -i ../move-RemoteTreeNode-declaration.patch
@@ -138,9 +134,6 @@ prepare() {
# https://crbug.com/1043042
patch -Np1 -i ../fix-building-with-unbundled-libxml.patch
- # https://crbug.com/1046122
- patch -Np1 -i ../fix-browser-frame-view-not-getting-a-relayout.patch
-
# https://crbug.com/1049258
patch -Np1 -i ../rename-Relayout-in-DesktopWindowTreeHostPlatform.patch
patch -Np1 -i ../rebuild-Linux-frame-button-cache-when-activation.patch
@@ -152,6 +145,15 @@ prepare() {
# https://crbug.com/skia/6663#c10
patch -Np0 -i ../chromium-skia-harmony.patch
+ # Fix VA-API on Intel and Nvidia
+ patch -Np1 -i ../vaapi-fix.patch
+
+ # Fix vaapi linkage error
+ patch -Np1 -i ../fix-vaapi-ozone-build.patch
+
+ # build fixes
+ patch -Np1 -i ../0001-Add-missing-algorithm-header-in-bitmap_cursor_factor.patch
+
# Ungoogled chromium stuff
_ungoogled_repo="$srcdir/$_pkgname-$_ungoogled_ver"
_utils="${_ungoogled_repo}/utils"
@@ -189,7 +191,7 @@ prepare() {
build() {
make -C chromium-launcher-$_launcher_ver
- cd "$srcdir/chromium-${pkgver}"
+ cd "$srcdir/chromium-$pkgver"
if check_buildoption ccache y; then
# Avoid falling back to preprocessor mode when sources contain time macros
@@ -201,19 +203,17 @@ build() {
export AR=ar
export NM=nm
- # Ungoogled Chromium stuff
- _ungoogled_repo="$srcdir/$_pkgname-$_ungoogled_ver"
- nproc=$(nproc)
+ _ungoogled_repo="$srcdir/ungoogled-chromium-$_ungoogled_ver"
mkdir -p out/Release
# Assemble GN flags
cp "$_ungoogled_repo/flags.gn" "out/Release/args.gn"
printf '\n' >> "out/Release/args.gn"
cat "$srcdir/flags.archlinux.gn" >> "out/Release/args.gn"
-
+
if [[ -n ${_system_libs[icu]+set} ]]; then
_flags+=('icu_use_data_file=false')
fi
-
+
if check_option strip y; then
_flags+=('symbol_level=0')
fi
@@ -237,14 +237,14 @@ package() {
install -Dm644 LICENSE \
"$pkgdir/usr/share/licenses/chromium/LICENSE.launcher"
- cd "$srcdir/chromium-${pkgver}"
+ cd "$srcdir/chromium-$pkgver"
+
+ install -Dm644 ../chromium-drirc-disable-10bpc-color-configs.conf \
+ "$pkgdir/usr/share/drirc.d/10-$pkgname.conf"
install -D out/Release/chrome "$pkgdir/usr/lib/chromium/chromium"
install -Dm4755 out/Release/chrome_sandbox "$pkgdir/usr/lib/chromium/chrome-sandbox"
ln -s /usr/lib/chromium/chromedriver "$pkgdir/usr/bin/chromedriver"
-
- install -Dm644 ../chromium-drirc-disable-10bpc-color-configs.conf \
- "$pkgdir/usr/share/drirc.d/10-$pkgname.conf"
install -Dm644 chrome/installer/linux/common/desktop.template \
"$pkgdir/usr/share/applications/chromium.desktop"
diff --git a/chromium.install b/chromium.install
new file mode 100644
index 000000000000..c2b5000d2d7b
--- /dev/null
+++ b/chromium.install
@@ -0,0 +1,16 @@
+post_upgrade() {
+ if (($(vercmp $2 42.0.2311.90-1) < 0)); then
+ echo ':: This Chromium package no longer supports custom flags passed via the'
+ echo ' /etc/chromium/default file (or any other files under /etc/chromium/).'
+ echo
+ echo ' The new /usr/bin/chromium launcher script will automatically detect'
+ echo ' Pepper Flash (if installed) and pass the correct flags to Chromium.'
+ echo
+ echo ' If you need to pass extra command-line arguments to Chromium, you'
+ echo ' can put them in a "chromium-flags.conf" file under $HOME/.config/'
+ echo ' (or $XDG_CONFIG_HOME). Arguments are split on whitespace and shell'
+ echo ' quoting rules apply but no further parsing is performed.'
+ fi
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/fix-browser-frame-view-not-getting-a-relayout.patch b/fix-browser-frame-view-not-getting-a-relayout.patch
deleted file mode 100644
index fbdd026ff10f..000000000000
--- a/fix-browser-frame-view-not-getting-a-relayout.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From c73968d63c456d4aaf55c5cd439b42403a3bbeb1 Mon Sep 17 00:00:00 2001
-From: Tom Anderson <thomasanderson@chromium.org>
-Date: Mon, 3 Feb 2020 19:53:50 +0000
-Subject: [PATCH] Fix browser frame view not getting a relayout after a state
- change
-
-views::NonClientView has 2 things: a views::NonClientFrameView and a
-views::ClientView. We were previously only invalidating the layout on
-the ClientView after a state change. This was causing the browser
-frame to paint as if it were still maximized after restoring from
-a maximized state on Linux. Invalidating the layout of the frame view
-fixes the issue.
-
-BUG=1046122
-R=sky
-
-Change-Id: I7da525efe1f436564ffffb410afe294e901e5d89
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2033759
-Reviewed-by: Scott Violet <sky@chromium.org>
-Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#737890}
----
- .../widget/desktop_aura/desktop_window_tree_host_platform.cc | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
-index 9abbce89586..6c00d49eb3f 100644
---- a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
-+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
-@@ -717,6 +717,8 @@ void DesktopWindowTreeHostPlatform::Relayout() {
- NonClientView* non_client_view = widget->non_client_view();
- // non_client_view may be NULL, especially during creation.
- if (non_client_view) {
-+ if (non_client_view->frame_view())
-+ non_client_view->frame_view()->InvalidateLayout();
- non_client_view->client_view()->InvalidateLayout();
- non_client_view->InvalidateLayout();
- }
diff --git a/vaapi-fix-wayland-init.patch b/vaapi-fix-wayland-init.patch
new file mode 100644
index 000000000000..a07814969f41
--- /dev/null
+++ b/vaapi-fix-wayland-init.patch
@@ -0,0 +1,82 @@
+From 4a04af6bbd5b1a55e2e1a7c22f13f8571c2dd7ed Mon Sep 17 00:00:00 2001
+From: Julien Isorce <julien.isorce@chromium.org>
+Date: Fri, 24 Jan 2020 00:30:33 +0000
+Subject: [PATCH] Reland "Call PreSandboxStartup after GL initialization in GpuInit"
+
+This is a reland of d17c53b341adcfc9e2626162536a08c9f3e24017
+
+Original change's description:
+> Call PreSandboxStartup after GL initialization in GpuInit
+>
+> Fixes "vaInitialize failed: unknown libva error"
+> on Wayland with LIBVA_DRIVER_NAME=i965
+>
+> VaapiWrapper relies on the GL implementation to decide
+> which display to use. If the GL implementation is none,
+> then VaapiWrapper is likely to do the wrong guess resulting
+> in the above error.
+>
+> Bug: 1041229
+> Change-Id: I1255a032a5e14b3aaffe3026a886de7e6d9ff0d7
+> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2011640
+> Reviewed-by: Maggie Chen <magchen@chromium.org>
+> Reviewed-by: Kenneth Russell <kbr@chromium.org>
+> Commit-Queue: Julien Isorce <julien.isorce@chromium.org>
+> Cr-Commit-Position: refs/heads/master@{#733847}
+
+Bug: 1041229
+Change-Id: I8e268596a1e2a1b3da7d7e75b8943accc85dd2d7
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2013806
+Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
+Reviewed-by: Maggie Chen <magchen@chromium.org>
+Reviewed-by: Kenneth Russell <kbr@chromium.org>
+Commit-Queue: Julien Isorce <julien.isorce@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#734746}
+---
+
+diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc
+index 04883fc..4e63f7a 100644
+--- a/gpu/ipc/service/gpu_init.cc
++++ b/gpu/ipc/service/gpu_init.cc
+@@ -221,10 +221,16 @@
+ delayed_watchdog_enable = true;
+ #endif
+
++#if defined(OS_LINUX)
+ // PreSandbox is mainly for resource handling and not related to the GPU
+ // driver, it doesn't need the GPU watchdog. The loadLibrary may take long
+ // time that killing and restarting the GPU process will not help.
+- sandbox_helper_->PreSandboxStartup();
++ if (gpu_preferences_.gpu_sandbox_start_early) {
++ // The sandbox will be started earlier than usual (i.e. before GL) so
++ // execute the pre-sandbox steps now.
++ sandbox_helper_->PreSandboxStartup();
++ }
++#endif
+
+ // Start the GPU watchdog only after anything that is expected to be time
+ // consuming has completed, otherwise the process is liable to be aborted.
+@@ -320,6 +326,23 @@
+ }
+ }
+
++ // The ContentSandboxHelper is currently the only one implementation of
++ // gpu::GpuSandboxHelper and it has no dependency. Except on Linux where
++ // VaapiWrapper checks the GL implementation to determine which display
++ // to use. So call PreSandboxStartup after GL initialization. But make
++ // sure the watchdog is paused as loadLibrary may take a long time and
++ // restarting the GPU process will not help.
++ if (!attempted_startsandbox) {
++ if (watchdog_thread_)
++ watchdog_thread_->PauseWatchdog();
++
++ // The sandbox is not started yet.
++ sandbox_helper_->PreSandboxStartup();
++
++ if (watchdog_thread_)
++ watchdog_thread_->ResumeWatchdog();
++ }
++
+ bool gl_disabled = gl::GetGLImplementation() == gl::kGLImplementationDisabled;
+
+ // Compute passthrough decoder status before ComputeGpuFeatureInfo below.