diff --git a/packages/addons/addon-depends/node/package.mk b/packages/addons/addon-depends/node/package.mk
new file mode 100644
index 0000000000..4e61840ff1
--- /dev/null
+++ b/packages/addons/addon-depends/node/package.mk
@@ -0,0 +1,38 @@
+################################################################################
+# This file is part of OpenELEC - http://www.openelec.tv
+# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
+#
+# OpenELEC is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# OpenELEC is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with OpenELEC. If not, see .
+################################################################################
+
+PKG_NAME="node"
+PKG_VERSION="8.9.3"
+PKG_SHA256="a5042d983f9815ee18a5c6fd75f8b3b2022ed96a2aaa8834300cd1ee81e8870c"
+PKG_ARCH="any"
+PKG_LICENSE="GPL"
+PKG_SITE="https://nodejs.org"
+PKG_URL="https://github.com/nodejs/node/archive/v$PKG_VERSION.tar.gz"
+PKG_DEPENDS_HOST="toolchain"
+PKG_SHORTDESC="Node.js JavaScript runtime"
+PKG_LONGDESC="Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. The Node.js package ecosystem, npm, is the largest ecosystem of open source libraries in the world."
+
+HOST_CONFIGURE_OPTS="--prefix=$TOOLCHAIN \
+ --fully-static \
+ --with-intl=none \
+ --without-npm \
+ --without-ssl"
+
+pre_configure_host() {
+ cd ..
+}
diff --git a/packages/addons/browser/chromium/package.mk b/packages/addons/browser/chromium/package.mk
index 6d3f9d8a04..9afccc7a4f 100644
--- a/packages/addons/browser/chromium/package.mk
+++ b/packages/addons/browser/chromium/package.mk
@@ -19,15 +19,15 @@
################################################################################
PKG_NAME="chromium"
-PKG_VERSION="62.0.3202.62"
-PKG_SHA256="e8df3150386729ddcb4971636627e54815ad447be5f122201e310f5bb0bcc362"
-PKG_REV="107.008"
+PKG_VERSION="63.0.3239.84"
+PKG_SHA256="6de2754dfc333675ae6a67ae13c95666009b35c84f847b058edbf312e42fa3af"
+PKG_REV="107.009"
PKG_ARCH="x86_64"
PKG_LICENSE="Mixed"
PKG_SITE="http://www.chromium.org/Home"
PKG_URL="https://commondatastorage.googleapis.com/chromium-browser-official/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_DEPENDS_HOST="toolchain ninja:host Python2:host"
-PKG_DEPENDS_TARGET="chromium:host pciutils dbus libXcomposite libXcursor libXtst alsa-lib bzip2 yasm nss libXScrnSaver libexif libpng harfbuzz atk gtk+ libva-vdpau-driver unclutter xdotool"
+PKG_DEPENDS_TARGET="chromium:host node:host pciutils dbus libXcomposite libXcursor libXtst alsa-lib bzip2 yasm nss libXScrnSaver libexif libpng atk gtk+ libva-vdpau-driver unclutter xdotool"
PKG_SECTION="browser"
PKG_SHORTDESC="Chromium Browser: the open-source web browser from Google"
PKG_LONGDESC="Chromium Browser ($PKG_VERSION): the open-source web browser from Google"
@@ -52,10 +52,6 @@ make_host() {
./tools/gn/bootstrap/bootstrap.py --no-rebuild --no-clean --verbose
}
-makeinstall_host() {
- :
-}
-
make_target() {
strip_lto
export LDFLAGS="$LDFLAGS -ludev"
@@ -65,9 +61,9 @@ make_target() {
# Note: These are for OpenELEC use ONLY. For your own distribution, please
# get your own set of keys.
- _google_api_key=AIzaSyAQ6L9vt9cnN4nM0weaa6Y38K4eyPvtKgI
- _google_default_client_id=740889307901-4bkm4e0udppnp1lradko85qsbnmkfq3b.apps.googleusercontent.com
- _google_default_client_secret=9TJlhL661hvShQub4cWhANXa
+ local _google_api_key=AIzaSyAQ6L9vt9cnN4nM0weaa6Y38K4eyPvtKgI
+ local _google_default_client_id=740889307901-4bkm4e0udppnp1lradko85qsbnmkfq3b.apps.googleusercontent.com
+ local _google_default_client_secret=9TJlhL661hvShQub4cWhANXa
local _flags=(
"host_toolchain=\"//build/toolchain/linux:x64_host\""
@@ -93,45 +89,27 @@ make_target() {
'use_kerberos=false'
'use_pulseaudio=false'
'use_sysroot=true'
- 'use_vulcanize=false'
'use_vaapi=true'
- 'exclude_unwind_tables=true'
+ 'use_v8_context_snapshot=false'
+ 'enable_vulkan=false'
"target_sysroot=\"${SYSROOT_PREFIX}\""
+ 'exclude_unwind_tables=true'
'enable_hangout_services_extension=true'
'enable_widevine=true'
'enable_nacl=false'
'enable_nacl_nonsfi=false'
'enable_swiftshader=false'
+ 'enable_vulkan=false'
"google_api_key=\"${_google_api_key}\""
"google_default_client_id=\"${_google_default_client_id}\""
"google_default_client_secret=\"${_google_default_client_secret}\""
)
- # Possible replacements are listed in build/linux/unbundle/replace_gn_files.py
- local _system_libs=(
- harfbuzz-ng
- libjpeg
- libpng
- libxslt
- yasm
- )
-
- # Remove bundled libraries for which we will use the system copies; this
- # *should* do what the remove_bundled_libraries.py script does, with the
- # added benefit of not having to list all the remaining libraries
- local _lib
- for _lib in ${_system_libs}; do
- find -type f -path "*third_party/$_lib/*" \
- \! -path "*third_party/$_lib/chromium/*" \
- \! -path "*third_party/$_lib/google/*" \
- \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \
- -delete
- done
-
- ./build/linux/unbundle/replace_gn_files.py --system-libraries "${_system_libs}"
./third_party/libaddressinput/chromium/tools/update-strings.py
./out/Release/gn gen out/Release --args="${_flags[*]}" --script-executable=$TOOLCHAIN/bin/python
+ mkdir -p $PKG_BUILD/third_party/node/linux/node-linux-x64/bin
+ ln -fs $TOOLCHAIN/bin/node $PKG_BUILD/third_party/node/linux/node-linux-x64/bin/node
ninja -j${CONCURRENCY_MAKE_LEVEL} -C out/Release chrome chrome_sandbox widevinecdmadapter
}
diff --git a/packages/addons/browser/chromium/patches/chromium-0004-vaapi-on-linux.patch b/packages/addons/browser/chromium/patches/chromium-0004-vaapi-on-linux.patch
index adc7ac1e49..b8dff361a7 100644
--- a/packages/addons/browser/chromium/patches/chromium-0004-vaapi-on-linux.patch
+++ b/packages/addons/browser/chromium/patches/chromium-0004-vaapi-on-linux.patch
@@ -1,8 +1,6 @@
-Source: https://aur.archlinux.org/packages/chromium-vaapi/
-
-From d60511c973e432b97d9929dcfbd77c9af25dbd51 Mon Sep 17 00:00:00 2001
+From 7f29b44224439377592be2b75da0b86d82d8ad6d Mon Sep 17 00:00:00 2001
From: Daniel Charles
-Date: Fri, 01 Sep 2017 15:57:43 -0700
+Date: Wed, 18 Oct 2017 17:27:42 -0700
Subject: [PATCH] Enable VAVDA, VAVEA and VAJDA on linux with VAAPI only
This patch contains all the changes necessary to use VA-API along with
@@ -38,23 +36,11 @@ Change-Id: Ifbbf5c9e5221a8b5733fc6d4d0cf984a1f103171
Signed-off-by: Daniel Charles
---
-diff --git a/AUTHORS b/AUTHORS
-index 9936ab9..db5e449 100644
---- a/AUTHORS
-+++ b/AUTHORS
-@@ -161,6 +161,7 @@
- Daniel Bevenius
- Daniel Bomar
- Daniel Carvalho Liedke
-+Daniel Charles
- Daniel Imms
- Daniel Johnson
- Daniel Lockyer
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
-index e4baad6..9e4a9f5 100644
+index 3555293..4c3115f 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
-@@ -1227,12 +1227,14 @@
+@@ -1246,12 +1246,14 @@
flag_descriptions::kUiPartialSwapDescription, kOsAll,
SINGLE_DISABLE_VALUE_TYPE(switches::kUIDisablePartialSwap)},
#if BUILDFLAG(ENABLE_WEBRTC)
@@ -69,9 +55,9 @@ index e4baad6..9e4a9f5 100644
{"enable-webrtc-hw-h264-encoding",
flag_descriptions::kWebrtcHwH264EncodingName,
flag_descriptions::kWebrtcHwH264EncodingDescription, kOsAndroid | kOsCrOS,
-@@ -1547,6 +1549,13 @@
- flag_descriptions::kMultideviceDescription, kOsCrOS,
- FEATURE_VALUE_TYPE(features::kMultidevice)},
+@@ -1557,6 +1559,13 @@
+ flag_descriptions::kSpuriousPowerButtonLidAngleChangeDescription, kOsCrOS,
+ MULTI_VALUE_TYPE(kSpuriousPowerButtonLidAngleChangeChoices)},
#endif // OS_CHROMEOS
+#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID)
+ {
@@ -83,7 +69,7 @@ index e4baad6..9e4a9f5 100644
{
"disable-accelerated-video-decode",
flag_descriptions::kAcceleratedVideoDecodeName,
-@@ -1554,6 +1563,7 @@
+@@ -1564,6 +1573,7 @@
kOsMac | kOsWin | kOsCrOS | kOsAndroid,
SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode),
},
@@ -91,7 +77,7 @@ index e4baad6..9e4a9f5 100644
{"mojo-video-encode-accelerator",
flag_descriptions::kMojoVideoEncodeAcceleratorName,
flag_descriptions::kMojoVideoEncodeAcceleratorDescription,
-@@ -2212,12 +2222,17 @@
+@@ -2229,12 +2239,17 @@
FEATURE_VALUE_TYPE(features::kWebVrVsyncAlign)},
#endif // OS_ANDROID
#endif // ENABLE_VR
@@ -112,10 +98,18 @@ index e4baad6..9e4a9f5 100644
flag_descriptions::kV8CacheOptionsDescription, kOsAll,
MULTI_VALUE_TYPE(kV8CacheOptionsChoices)},
diff --git a/chrome/browser/chromeos/login/chrome_restart_request.cc b/chrome/browser/chromeos/login/chrome_restart_request.cc
-index 761a240..c29be3d 100644
+index 3815e79..d5d3712 100644
--- a/chrome/browser/chromeos/login/chrome_restart_request.cc
+++ b/chrome/browser/chromeos/login/chrome_restart_request.cc
-@@ -80,8 +80,13 @@
+@@ -19,6 +19,7 @@
+ #include "base/sys_info.h"
+ #include "base/timer/timer.h"
+ #include "base/values.h"
++#include "build/build_config.h"
+ #include "cc/base/switches.h"
+ #include "chrome/browser/browser_process.h"
+ #include "chrome/browser/chromeos/boot_times_recorder.h"
+@@ -79,8 +80,13 @@
::switches::kDisable2dCanvasImageChromium,
::switches::kDisableAccelerated2dCanvas,
::switches::kDisableAcceleratedJpegDecoding,
@@ -129,7 +123,7 @@ index 761a240..c29be3d 100644
::switches::kDisableBlinkFeatures,
::switches::kDisableCastStreamingHWEncoding,
::switches::kDisableDistanceFieldText,
-@@ -168,7 +173,7 @@
+@@ -166,7 +172,7 @@
::switches::kDisableWebGLImageChromium,
::switches::kEnableWebGLImageChromium,
::switches::kEnableWebVR,
@@ -139,7 +133,7 @@ index 761a240..c29be3d 100644
::switches::kDisableWebRtcHWEncoding,
#endif
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
-index 42fc3a2..a0700fe 100644
+index 74e6bc7..ab184a5 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -14,6 +14,13 @@
@@ -156,7 +150,7 @@ index 42fc3a2..a0700fe 100644
const char kAcceleratedVideoDecodeName[] = "Hardware-accelerated video decode";
const char kAcceleratedVideoDecodeDescription[] =
"Hardware-accelerated video decode where available.";
-@@ -1412,6 +1419,7 @@
+@@ -1478,6 +1485,7 @@
const char kWebrtcEchoCanceller3Description[] =
"Experimental WebRTC echo canceller (AEC3).";
@@ -164,7 +158,7 @@ index 42fc3a2..a0700fe 100644
const char kWebrtcHwDecodingName[] = "WebRTC hardware video decoding";
const char kWebrtcHwDecodingDescription[] =
"Support in WebRTC for decoding video streams using platform hardware.";
-@@ -1419,6 +1427,7 @@
+@@ -1485,6 +1493,7 @@
const char kWebrtcHwEncodingName[] = "WebRTC hardware video encoding";
const char kWebrtcHwEncodingDescription[] =
"Support in WebRTC for encoding video streams using platform hardware.";
@@ -172,7 +166,7 @@ index 42fc3a2..a0700fe 100644
const char kWebrtcHwH264EncodingName[] = "WebRTC hardware h264 video encoding";
const char kWebrtcHwH264EncodingDescription[] =
-@@ -2205,14 +2214,16 @@
+@@ -2283,14 +2292,16 @@
// Chrome OS -------------------------------------------------------------------
@@ -191,10 +185,10 @@ index 42fc3a2..a0700fe 100644
const char kAllowTouchpadThreeFingerClickDescription[] =
"Enables touchpad three-finger-click as middle button.";
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
-index d6fcf7d..3cbc7ad 100644
+index 54a4950..5ace5e0 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
-@@ -36,6 +36,10 @@
+@@ -37,6 +37,10 @@
extern const char kAccelerated2dCanvasName[];
extern const char kAccelerated2dCanvasDescription[];
@@ -205,7 +199,7 @@ index d6fcf7d..3cbc7ad 100644
extern const char kAcceleratedVideoDecodeName[];
extern const char kAcceleratedVideoDecodeDescription[];
-@@ -1351,13 +1355,17 @@
+@@ -1401,13 +1405,17 @@
#endif // defined(OS_MACOSX)
@@ -227,10 +221,10 @@ index d6fcf7d..3cbc7ad 100644
extern const char kAllowTouchpadThreeFingerClickDescription[];
diff --git a/content/browser/gpu/compositor_util.cc b/content/browser/gpu/compositor_util.cc
-index 0461556..3dc14164 100644
+index 122282d..bc102a3 100644
--- a/content/browser/gpu/compositor_util.cc
+++ b/content/browser/gpu/compositor_util.cc
-@@ -104,7 +104,11 @@
+@@ -105,7 +105,11 @@
{"video_decode",
manager->IsFeatureBlacklisted(
gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE),
@@ -242,7 +236,7 @@ index 0461556..3dc14164 100644
"Accelerated video decode has been disabled, either via blacklist,"
" about:flags or the command line.",
true},
-@@ -112,7 +116,11 @@
+@@ -113,7 +117,11 @@
{"video_encode",
manager->IsFeatureBlacklisted(
gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE),
@@ -255,7 +249,7 @@ index 0461556..3dc14164 100644
" about:flags or the command line.",
true},
diff --git a/content/browser/gpu/gpu_data_manager_impl_private.cc b/content/browser/gpu/gpu_data_manager_impl_private.cc
-index 4388cef..f3aa640 100644
+index 51aa672..963da85 100644
--- a/content/browser/gpu/gpu_data_manager_impl_private.cc
+++ b/content/browser/gpu/gpu_data_manager_impl_private.cc
@@ -717,7 +717,11 @@
@@ -270,7 +264,7 @@ index 4388cef..f3aa640 100644
#if defined(USE_AURA)
if (!CanUseGpuBrowserCompositor())
-@@ -751,7 +755,11 @@
+@@ -748,7 +752,11 @@
}
if (ShouldDisableAcceleratedVideoDecode(command_line)) {
@@ -282,7 +276,7 @@ index 4388cef..f3aa640 100644
}
#if defined(USE_OZONE)
-@@ -844,7 +852,12 @@
+@@ -826,7 +834,12 @@
const base::CommandLine* command_line =
base::CommandLine::ForCurrentProcess();
if (!ShouldDisableAcceleratedVideoDecode(command_line) &&
@@ -296,7 +290,7 @@ index 4388cef..f3aa640 100644
prefs->pepper_accelerated_video_decode_enabled = true;
}
}
-@@ -1043,7 +1056,13 @@
+@@ -1016,7 +1029,13 @@
// to resolve crbug/442039 has been collected.
const std::string group_name = base::FieldTrialList::FindFullName(
"DisableAcceleratedVideoDecode");
@@ -312,10 +306,10 @@ index 4388cef..f3aa640 100644
return false;
}
diff --git a/content/browser/gpu/gpu_process_host.cc b/content/browser/gpu/gpu_process_host.cc
-index e1879c6..f29313f 100644
+index 95d4dff..9b26d3f 100644
--- a/content/browser/gpu/gpu_process_host.cc
+++ b/content/browser/gpu/gpu_process_host.cc
-@@ -112,7 +112,11 @@
+@@ -111,7 +111,11 @@
// Command-line switches to propagate to the GPU process.
static const char* const kSwitchNames[] = {
@@ -327,7 +321,7 @@ index e1879c6..f29313f 100644
switches::kDisableBreakpad,
switches::kDisableGpuRasterization,
switches::kDisableGpuSandbox,
-@@ -121,7 +125,7 @@
+@@ -120,7 +124,7 @@
switches::kDisableLogging,
switches::kDisableSeccompFilterSandbox,
switches::kDisableShaderNameHashing,
@@ -355,7 +349,7 @@ index 8ca0ad0..8c489d0 100644
if (params_.use_mojo_service) {
base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
diff --git a/content/browser/renderer_host/media/video_capture_gpu_jpeg_decoder.cc b/content/browser/renderer_host/media/video_capture_gpu_jpeg_decoder.cc
-index 22fbcb8..52b3337 100644
+index 34afec23..ad77490 100644
--- a/content/browser/renderer_host/media/video_capture_gpu_jpeg_decoder.cc
+++ b/content/browser/renderer_host/media/video_capture_gpu_jpeg_decoder.cc
@@ -56,15 +56,21 @@
@@ -385,12 +379,12 @@ index 22fbcb8..52b3337 100644
RecordInitDecodeUMA_Locked();
return;
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
-index 35cb294..c39c975 100644
+index fbe4d21..1be295e 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
-@@ -2488,7 +2488,11 @@
+@@ -2506,7 +2506,11 @@
+ switches::kDefaultTileHeight,
switches::kDisable2dCanvasImageChromium,
- switches::kDisable3DAPIs,
switches::kDisableAcceleratedJpegDecoding,
+#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
+ switches::kEnableAcceleratedVideo,
@@ -399,9 +393,9 @@ index 35cb294..c39c975 100644
+#endif
switches::kDisableBackgroundTimerThrottling,
switches::kDisableBreakpad,
- switches::kDisablePreferCompositingToLCDText,
-@@ -2641,8 +2645,10 @@
- switches::kEnablePepperTesting,
+ switches::kDisableBrowserSideNavigation,
+@@ -2660,8 +2664,10 @@
+ switches::kDisableMojoRenderer,
#endif
#if BUILDFLAG(ENABLE_WEBRTC)
+#if !defined(OS_LINUX) || defined(OS_CHROMEOS)
@@ -429,93 +423,6 @@ index 3d815a2..2c96048 100644
}
private:
-diff --git a/content/common/sandbox_linux/bpf_gpu_policy_linux.cc b/content/common/sandbox_linux/bpf_gpu_policy_linux.cc
-index ac5dc5a..ed6196c 100644
---- a/content/common/sandbox_linux/bpf_gpu_policy_linux.cc
-+++ b/content/common/sandbox_linux/bpf_gpu_policy_linux.cc
-@@ -57,22 +57,6 @@
- #endif
- }
-
--inline bool IsArchitectureX86_64() {
--#if defined(__x86_64__)
-- return true;
--#else
-- return false;
--#endif
--}
--
--inline bool IsArchitectureI386() {
--#if defined(__i386__)
-- return true;
--#else
-- return false;
--#endif
--}
--
- inline bool IsArchitectureArm() {
- #if defined(__arm__) || defined(__aarch64__)
- return true;
-@@ -97,21 +81,14 @@
- #endif
- }
-
--bool IsAcceleratedVaapiVideoEncodeEnabled() {
-- bool accelerated_encode_enabled = false;
--#if defined(OS_CHROMEOS)
-- const base::CommandLine& command_line =
-- *base::CommandLine::ForCurrentProcess();
-- accelerated_encode_enabled =
-- !command_line.HasSwitch(switches::kDisableVaapiAcceleratedVideoEncode);
--#endif
-- return accelerated_encode_enabled;
--}
--
- bool IsAcceleratedVideoDecodeEnabled() {
- const base::CommandLine& command_line =
- *base::CommandLine::ForCurrentProcess();
-+#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+ return command_line.HasSwitch(switches::kEnableAcceleratedVideo);
-+#else
- return !command_line.HasSwitch(switches::kDisableAcceleratedVideoDecode);
-+#endif
- }
-
- intptr_t GpuSIGSYS_Handler(const struct arch_seccomp_data& args,
-@@ -295,33 +272,6 @@
- GpuBrokerProcessPolicy::Create,
- std::vector()); // No extra files in whitelist.
-
-- if (IsArchitectureX86_64() || IsArchitectureI386()) {
-- // Accelerated video dlopen()'s some shared objects
-- // inside the sandbox, so preload them now.
-- if (IsAcceleratedVaapiVideoEncodeEnabled() ||
-- IsAcceleratedVideoDecodeEnabled()) {
-- const char* I965DrvVideoPath = NULL;
-- const char* I965HybridDrvVideoPath = NULL;
--
-- if (IsArchitectureX86_64()) {
-- I965DrvVideoPath = "/usr/lib64/va/drivers/i965_drv_video.so";
-- I965HybridDrvVideoPath = "/usr/lib64/va/drivers/hybrid_drv_video.so";
-- } else if (IsArchitectureI386()) {
-- I965DrvVideoPath = "/usr/lib/va/drivers/i965_drv_video.so";
-- }
--
-- dlopen(I965DrvVideoPath, RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE);
-- if (I965HybridDrvVideoPath)
-- dlopen(I965HybridDrvVideoPath, RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE);
-- dlopen("libva.so.1", RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE);
--#if defined(USE_OZONE)
-- dlopen("libva-drm.so.1", RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE);
--#elif defined(USE_X11)
-- dlopen("libva-x11.so.1", RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE);
--#endif
-- }
-- }
--
- return true;
- }
-
diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn
index a5424bb..b68b802 100644
--- a/content/gpu/BUILD.gn
@@ -538,10 +445,10 @@ index a5424bb..b68b802 100644
+ }
}
diff --git a/content/gpu/gpu_main.cc b/content/gpu/gpu_main.cc
-index 6a1de90..9a84e9e 100644
+index 556cf00..730f4ae 100644
--- a/content/gpu/gpu_main.cc
+++ b/content/gpu/gpu_main.cc
-@@ -245,7 +245,7 @@
+@@ -254,7 +254,7 @@
// Initializes StatisticsRecorder which tracks UMA histograms.
base::StatisticsRecorder::Initialize();
@@ -550,8 +457,8 @@ index 6a1de90..9a84e9e 100644
// Set thread priority before sandbox initialization.
base::PlatformThread::SetCurrentThreadPriority(base::ThreadPriority::DISPLAY);
#endif
-@@ -275,7 +275,7 @@
- GetContentClient()->SetGpuInfo(gpu_init.gpu_info());
+@@ -283,7 +283,7 @@
+ GetContentClient()->SetGpuInfo(gpu_init->gpu_info());
base::ThreadPriority io_thread_priority = base::ThreadPriority::NORMAL;
-#if defined(OS_ANDROID) || defined(OS_CHROMEOS)
@@ -560,10 +467,18 @@ index 6a1de90..9a84e9e 100644
#endif
diff --git a/content/public/browser/gpu_utils.cc b/content/public/browser/gpu_utils.cc
-index 7d926da..70afc33 100644
+index 6aafb06..d4ddd8d 100644
--- a/content/public/browser/gpu_utils.cc
+++ b/content/public/browser/gpu_utils.cc
-@@ -57,12 +57,19 @@
+@@ -7,6 +7,7 @@
+ #include "base/command_line.h"
+ #include "base/single_thread_task_runner.h"
+ #include "base/strings/string_number_conversions.h"
++#include "build/build_config.h"
+ #include "content/browser/gpu/gpu_process_host.h"
+ #include "content/public/common/content_features.h"
+ #include "content/public/common/content_switches.h"
+@@ -57,12 +58,19 @@
gpu_preferences.ui_prioritize_in_gpu_process =
command_line->HasSwitch(switches::kUIPrioritizeInGpuProcess);
gpu_preferences.disable_accelerated_video_decode =
@@ -586,10 +501,10 @@ index 7d926da..70afc33 100644
command_line->HasSwitch(switches::kDisableWebRtcHWEncoding);
#endif
diff --git a/content/public/common/content_switches.cc b/content/public/common/content_switches.cc
-index 78041e2..60f6597 100644
+index 4e699d1..3a7a2b7 100644
--- a/content/public/common/content_switches.cc
+++ b/content/public/common/content_switches.cc
-@@ -88,12 +88,21 @@
+@@ -89,12 +89,21 @@
// Disable gpu-accelerated 2d canvas.
const char kDisableAccelerated2dCanvas[] = "disable-accelerated-2d-canvas";
@@ -612,7 +527,7 @@ index 78041e2..60f6597 100644
// Disables hardware acceleration of video decode, where available.
const char kDisableAcceleratedVideoDecode[] =
"disable-accelerated-video-decode";
-@@ -933,11 +942,13 @@
+@@ -932,11 +941,13 @@
// ignores this switch on its stable and beta channels.
const char kDisableWebRtcEncryption[] = "disable-webrtc-encryption";
@@ -627,7 +542,7 @@ index 78041e2..60f6597 100644
// Enables negotiation of GCM cipher suites from RFC 7714 for SRTP in WebRTC.
// See https://tools.ietf.org/html/rfc7714 for further information.
diff --git a/content/public/common/content_switches.h b/content/public/common/content_switches.h
-index 9451a76..275b5ed 100644
+index 2704924..67d00bb 100644
--- a/content/public/common/content_switches.h
+++ b/content/public/common/content_switches.h
@@ -35,7 +35,11 @@
@@ -642,7 +557,7 @@ index 9451a76..275b5ed 100644
CONTENT_EXPORT extern const char kDisableAcceleratedVideoDecode[];
CONTENT_EXPORT extern const char kDisableAudioSupportForDesktopShare[];
extern const char kDisableBackingStoreLimit[];
-@@ -107,6 +111,9 @@
+@@ -109,6 +113,9 @@
CONTENT_EXPORT extern const char kDomAutomationController[];
extern const char kDisable2dCanvasClipAntialiasing[];
CONTENT_EXPORT extern const char kDumpBlinkRuntimeCallStats[];
@@ -650,9 +565,9 @@ index 9451a76..275b5ed 100644
+CONTENT_EXPORT extern const char kEnableAcceleratedVideo[];
+#endif
CONTENT_EXPORT extern const char kEnableAggressiveDOMStorageFlushing[];
+ CONTENT_EXPORT extern const char kEnableAutomation[];
CONTENT_EXPORT extern const char kEnablePreferCompositingToLCDText[];
- CONTENT_EXPORT extern const char kEnableBlinkFeatures[];
-@@ -261,8 +268,10 @@
+@@ -256,8 +263,10 @@
#if BUILDFLAG(ENABLE_WEBRTC)
CONTENT_EXPORT extern const char kDisableWebRtcEncryption[];
@@ -664,10 +579,10 @@ index 9451a76..275b5ed 100644
CONTENT_EXPORT extern const char kEnableWebRtcSrtpEncryptedHeaders[];
CONTENT_EXPORT extern const char kEnableWebRtcStunOrigin[];
diff --git a/content/renderer/media/webrtc/peer_connection_dependency_factory.cc b/content/renderer/media/webrtc/peer_connection_dependency_factory.cc
-index 9d05ac0..69555fa 100644
+index 017056c..825bdce 100644
--- a/content/renderer/media/webrtc/peer_connection_dependency_factory.cc
+++ b/content/renderer/media/webrtc/peer_connection_dependency_factory.cc
-@@ -240,10 +240,19 @@
+@@ -239,10 +239,19 @@
const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess();
if (gpu_factories && gpu_factories->IsGpuVideoAcceleratorEnabled()) {
@@ -689,10 +604,10 @@ index 9d05ac0..69555fa 100644
}
}
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
-index 4bbfbf6..e85b5c6 100644
+index dc01117..2f9ee03 100644
--- a/content/renderer/render_thread_impl.cc
+++ b/content/renderer/render_thread_impl.cc
-@@ -1457,7 +1457,11 @@
+@@ -1456,7 +1456,11 @@
scoped_refptr media_task_runner =
GetMediaThreadTaskRunner();
const bool enable_video_accelerator =
@@ -705,7 +620,7 @@ index 4bbfbf6..e85b5c6 100644
#if defined(OS_MACOSX) || defined(OS_LINUX)
!cmd_line->HasSwitch(switches::kDisableGpuMemoryBufferVideoFrames) &&
diff --git a/gpu/command_buffer/service/gpu_preferences.h b/gpu/command_buffer/service/gpu_preferences.h
-index 8dd0ff1..d6e5c59 100644
+index b37c2cc..a721eb7 100644
--- a/gpu/command_buffer/service/gpu_preferences.h
+++ b/gpu/command_buffer/service/gpu_preferences.h
@@ -50,7 +50,7 @@
@@ -718,10 +633,10 @@ index 8dd0ff1..d6e5c59 100644
bool disable_vaapi_accelerated_video_encode = false;
#endif
diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json
-index 5edb5636..069ae95 100644
+index 1289a55..22e11e5 100644
--- a/gpu/config/software_rendering_list.json
+++ b/gpu/config/software_rendering_list.json
-@@ -371,17 +371,6 @@
+@@ -374,17 +374,6 @@
]
},
{
@@ -740,10 +655,10 @@ index 5edb5636..069ae95 100644
"description": "Disable VMware software renderer on older Mesa",
"cr_bugs": [145531, 332596, 571899, 629434],
diff --git a/media/filters/BUILD.gn b/media/filters/BUILD.gn
-index 0362601..ebed982 100644
+index 490722c..1cda2fb 100644
--- a/media/filters/BUILD.gn
+++ b/media/filters/BUILD.gn
-@@ -182,7 +182,7 @@
+@@ -189,7 +189,7 @@
deps += [ "//media/base/android" ]
}
@@ -753,7 +668,7 @@ index 0362601..ebed982 100644
"h264_bitstream_buffer.cc",
"h264_bitstream_buffer.h",
diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn
-index 613e830..a886955 100644
+index 729c6fa..4878251 100644
--- a/media/gpu/BUILD.gn
+++ b/media/gpu/BUILD.gn
@@ -24,6 +24,14 @@
@@ -782,10 +697,10 @@ index 613e830..a886955 100644
if (is_win) {
diff --git a/media/gpu/gpu_video_decode_accelerator_factory.cc b/media/gpu/gpu_video_decode_accelerator_factory.cc
-index 22f8f4a..ec6615d 100644
+index 2cee490..de02414 100644
--- a/media/gpu/gpu_video_decode_accelerator_factory.cc
+++ b/media/gpu/gpu_video_decode_accelerator_factory.cc
-@@ -86,6 +86,7 @@
+@@ -87,6 +87,7 @@
// profile (instead of calculating a superset).
// TODO(posciak,henryhsu): improve this so that we choose a superset of
// resolutions and other supported profile parameters.
@@ -794,10 +709,10 @@ index 22f8f4a..ec6615d 100644
capabilities.supported_profiles =
DXVAVideoDecodeAccelerator::GetSupportedProfiles(gpu_preferences,
diff --git a/media/gpu/vaapi_wrapper.cc b/media/gpu/vaapi_wrapper.cc
-index 97ed997..14511cb 100644
+index 1e72893..6495642 100644
--- a/media/gpu/vaapi_wrapper.cc
+++ b/media/gpu/vaapi_wrapper.cc
-@@ -1116,6 +1116,7 @@
+@@ -1117,6 +1117,7 @@
if (drm_file.IsValid())
GetDisplayState()->SetDrmFd(drm_file.GetPlatformFile());
#endif
@@ -805,25 +720,3 @@ index 97ed997..14511cb 100644
}
// static
-diff --git a/services/ui/gpu/gpu_main.cc b/services/ui/gpu/gpu_main.cc
-index 0916374..cabf058 100644
---- a/services/ui/gpu/gpu_main.cc
-+++ b/services/ui/gpu/gpu_main.cc
-@@ -79,7 +79,7 @@
- thread_options.message_loop_type = base::MessageLoop::TYPE_IO;
- #endif
-
--#if defined(OS_ANDROID) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX)
- thread_options.priority = base::ThreadPriority::DISPLAY;
- #endif
- CHECK(gpu_thread_.StartWithOptions(thread_options));
-@@ -89,7 +89,7 @@
- // should be possible to use |main_task_runner_| for doing IO tasks.
- thread_options = base::Thread::Options(base::MessageLoop::TYPE_IO, 0);
- thread_options.priority = base::ThreadPriority::NORMAL;
--#if defined(OS_ANDROID) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX)
- // TODO(reveman): Remove this in favor of setting it explicitly for each type
- // of process.
- thread_options.priority = base::ThreadPriority::DISPLAY;
diff --git a/packages/addons/browser/chromium/patches/chromium-0006-exclude_unwind_tables.patch b/packages/addons/browser/chromium/patches/chromium-0006-exclude_unwind_tables.patch
new file mode 100644
index 0000000000..67232595dd
--- /dev/null
+++ b/packages/addons/browser/chromium/patches/chromium-0006-exclude_unwind_tables.patch
@@ -0,0 +1,44 @@
+From 1fc37227522ccd314f82ec893ed15c6129296604 Mon Sep 17 00:00:00 2001
+From: Paul Jensen
+Date: Wed, 11 Oct 2017 08:37:34 -0400
+Subject: [PATCH] Move exclude_unwind_tables back into declare_args
+
+There is desire to adjust this flag manually.
+
+BUG=762629
+R=thakis@chromium.org
+
+Change-Id: I3bd134c19270cd1f729b3ea078674e734493d4ab
+---
+
+diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler.gni
+index ad40fd9..50e19a4 100644
+--- a/build/config/compiler/compiler.gni
++++ b/build/config/compiler/compiler.gni
+@@ -68,18 +68,18 @@
+
+ # Whether or not we should use position independent code.
+ use_pic = true
++
++ # Exclude unwind tables for official builds as unwinding can be done from
++ # stack dumps produced by Crashpad at a later time "offline" in the crash
++ # server. For unofficial (e.g. development) builds and non-Chrome branded
++ # (e.g. Cronet which doesn't use Crashpad, crbug.com/479283) builds it's
++ # useful to be able to unwind at runtime.
++ exclude_unwind_tables = (is_chrome_branded && is_official_build) ||
++ (is_chromecast && !is_cast_desktop_build && !is_debug)
+ }
+
+ assert(!is_cfi || use_thin_lto, "CFI requires ThinLTO")
+
+-# Exclude unwind tables for official builds as unwinding can be done from stack
+-# dumps produced by Crashpad at a later time "offline" in the crash server.
+-# For unofficial (e.g. development) builds and non-Chrome branded (e.g. Cronet
+-# which doesn't use Crashpad, crbug.com/479283) builds it's useful to be able
+-# to unwind at runtime.
+-exclude_unwind_tables = (is_chrome_branded && is_official_build) ||
+- (is_chromecast && !is_cast_desktop_build && !is_debug)
+-
+ # If true, optimize for size. Does not affect windows builds.
+ # Linux & Mac favor speed over size.
+ # TODO(brettw) it's weird that Mac and desktop Linux are different. We should
diff --git a/packages/addons/browser/chromium/patches/chromium-0006-gn_fix.patch b/packages/addons/browser/chromium/patches/chromium-0006-gn_fix.patch
deleted file mode 100644
index fc3dec6037..0000000000
--- a/packages/addons/browser/chromium/patches/chromium-0006-gn_fix.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-Source: https://aur.archlinux.org/packages/chromium-vaapi/
-
---- a/tools/gn/bootstrap/bootstrap.py
-+++ b/tools/gn/bootstrap/bootstrap.py
-@@ -179,6 +179,7 @@ def build_gn_with_ninja_manually(tempdir, options):
-
- write_buildflag_header_manually(root_gen_dir, 'base/debug/debugging_flags.h',
- {
-+ 'ENABLE_LOCATION_SOURCE': 'false',
- 'ENABLE_PROFILING': 'false',
- 'CAN_UNWIND_WITH_FRAME_POINTERS': 'false'
- })
-@@ -204,7 +205,7 @@ def build_gn_with_ninja_manually(tempdir, options):
-
- write_gn_ninja(os.path.join(tempdir, 'build.ninja'),
- root_gen_dir, options)
-- cmd = ['ninja', '-C', tempdir]
-+ cmd = ['ninja', '-C', tempdir, '-w', 'dupbuild=err']
- if options.verbose:
- cmd.append('-v')
-
-@@ -458,6 +459,7 @@ def write_gn_ninja(path, root_gen_dir, options):
- 'base/metrics/bucket_ranges.cc',
- 'base/metrics/field_trial.cc',
- 'base/metrics/field_trial_param_associator.cc',
-+ 'base/metrics/field_trial_params.cc',
- 'base/metrics/histogram.cc',
- 'base/metrics/histogram_base.cc',
- 'base/metrics/histogram_functions.cc',
-@@ -507,6 +509,7 @@ def write_gn_ninja(path, root_gen_dir, options):
- 'base/task_scheduler/scheduler_lock_impl.cc',
- 'base/task_scheduler/scheduler_single_thread_task_runner_manager.cc',
- 'base/task_scheduler/scheduler_worker.cc',
-+ 'base/task_scheduler/scheduler_worker_pool.cc',
- 'base/task_scheduler/scheduler_worker_pool_impl.cc',
- 'base/task_scheduler/scheduler_worker_pool_params.cc',
- 'base/task_scheduler/scheduler_worker_stack.cc',
-@@ -523,6 +526,7 @@ def write_gn_ninja(path, root_gen_dir, options):
- 'base/third_party/icu/icu_utf.cc',
- 'base/third_party/nspr/prtime.cc',
- 'base/threading/post_task_and_reply_impl.cc',
-+ 'base/threading/scoped_blocking_call.cc',
- 'base/threading/sequence_local_storage_map.cc',
- 'base/threading/sequenced_task_runner_handle.cc',
- 'base/threading/sequenced_worker_pool.cc',
-@@ -579,7 +583,6 @@ def write_gn_ninja(path, root_gen_dir, options):
- 'base/unguessable_token.cc',
- 'base/value_iterators.cc',
- 'base/values.cc',
-- 'base/value_iterators.cc',
- 'base/vlog.cc',
- ])
-
-@@ -652,7 +655,6 @@ def write_gn_ninja(path, root_gen_dir, options):
- static_libraries['base']['sources'].extend([
- 'base/memory/shared_memory_handle_posix.cc',
- 'base/memory/shared_memory_posix.cc',
-- 'base/memory/shared_memory_tracker.cc',
- 'base/nix/xdg_util.cc',
- 'base/process/internal_linux.cc',
- 'base/process/memory_linux.cc',
-@@ -827,7 +829,7 @@ def build_gn_with_gn(temp_gn, build_dir, options):
- cmd = [temp_gn, 'gen', build_dir, '--args=%s' % gn_gen_args]
- check_call(cmd)
-
-- cmd = ['ninja', '-C', build_dir]
-+ cmd = ['ninja', '-C', build_dir, '-w', 'dupbuild=err']
- if options.verbose:
- cmd.append('-v')
- cmd.append('gn')
diff --git a/packages/addons/browser/chromium/patches/chromium-0008-fix-ucontext-from-glibc.patch b/packages/addons/browser/chromium/patches/chromium-0008-fix-ucontext-from-glibc.patch
deleted file mode 100644
index 83e057d82c..0000000000
--- a/packages/addons/browser/chromium/patches/chromium-0008-fix-ucontext-from-glibc.patch
+++ /dev/null
@@ -1,227 +0,0 @@
-Source: https://aur.archlinux.org/packages/chromium-vaapi/ breakpad-use-ucontext_t.patch
-
-From b6a312ed8e144a37da840ae50dbd39df5ffb7e9f Mon Sep 17 00:00:00 2001
-From: Khem Raj
-Date: Sun, 2 Jul 2017 16:34:54 -0700
-Subject: [PATCH 2/2] replace struct ucontext with ucontext_t
-
-glibc 2.26 does not expose struct ucontext any longer
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj
----
- .../linux/dump_writer_common/ucontext_reader.cc | 30 +++++++++++-----------
- .../linux/dump_writer_common/ucontext_reader.h | 10 ++++----
- .../src/client/linux/handler/exception_handler.cc | 8 +++---
- .../src/client/linux/handler/exception_handler.h | 2 +-
- .../linux/microdump_writer/microdump_writer.cc | 2 +-
- .../linux/minidump_writer/minidump_writer.cc | 2 +-
- 6 files changed, 27 insertions(+), 27 deletions(-)
-
-diff --git a/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc b/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
-index c80724dd8..93b4d9f85 100644
---- a/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
-+++ b/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
-@@ -40,15 +40,15 @@ namespace google_breakpad {
-
- #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
-diff --git a/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h b/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
-index b6e77b4b5..2369a9ad3 100644
---- a/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
-+++ b/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
-@@ -41,21 +41,21 @@ namespace google_breakpad {
-
- // Wraps platform-dependent implementations of accessors to ucontext 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
- // 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
- };
-
-diff --git a/breakpad/src/client/linux/handler/exception_handler.cc b/breakpad/src/client/linux/handler/exception_handler.cc
-index b63f973b8..f2688acaf 100644
---- a/breakpad/src/client/linux/handler/exception_handler.cc
-+++ b/breakpad/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) {
-@@ -452,7 +452,7 @@ bool ExceptionHandler::HandleSignal(int sig, siginfo_t* info, void* uc) {
- // FP state is not part of user ABI on ARM Linux.
- // In case of MIPS Linux FP state is already part of struct ucontext
- // 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);
- }
-diff --git a/breakpad/src/client/linux/handler/exception_handler.h b/breakpad/src/client/linux/handler/exception_handler.h
-index 591c31085..846df772f 100644
---- a/breakpad/src/client/linux/handler/exception_handler.h
-+++ b/breakpad/src/client/linux/handler/exception_handler.h
-@@ -191,7 +191,7 @@ 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
-diff --git a/breakpad/src/client/linux/microdump_writer/microdump_writer.cc b/breakpad/src/client/linux/microdump_writer/microdump_writer.cc
-index 6f5b43559..a508667a0 100644
---- a/breakpad/src/client/linux/microdump_writer/microdump_writer.cc
-+++ b/breakpad/src/client/linux/microdump_writer/microdump_writer.cc
-@@ -571,7 +571,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
-diff --git a/breakpad/src/client/linux/minidump_writer/minidump_writer.cc b/breakpad/src/client/linux/minidump_writer/minidump_writer.cc
-index 86009b9f6..f2aec73d7 100644
---- a/breakpad/src/client/linux/minidump_writer/minidump_writer.cc
-+++ b/breakpad/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
---
-2.13.2
-
diff --git a/packages/addons/browser/chromium/patches/chromium-0008-fix-webrtc.patch b/packages/addons/browser/chromium/patches/chromium-0008-fix-webrtc.patch
new file mode 100644
index 0000000000..7b70999719
--- /dev/null
+++ b/packages/addons/browser/chromium/patches/chromium-0008-fix-webrtc.patch
@@ -0,0 +1,10 @@
+--- chromium-63.0.3239.84//third_party/webrtc/p2p/base/port.cc.org 2017-12-09 01:53:55.490672425 +0100
++++ chromium-63.0.3239.84//third_party/webrtc/p2p/base/port.cc 2017-12-09 01:54:10.826751406 +0100
+@@ -12,6 +12,7 @@
+
+ #include
+ #include
++#include
+
+ #include "p2p/base/common.h"
+ #include "p2p/base/portallocator.h"
diff --git a/packages/addons/browser/chromium/patches/chromium-0012-crc32c-string-view-check.patch b/packages/addons/browser/chromium/patches/chromium-0012-crc32c-string-view-check.patch
deleted file mode 100644
index d0d91134df..0000000000
--- a/packages/addons/browser/chromium/patches/chromium-0012-crc32c-string-view-check.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From d0f929a5db87cb34d03afb0d8e8bfc95b8f786e3 Mon Sep 17 00:00:00 2001
-From: Victor Costan
-Date: Mon, 11 Sep 2017 13:18:27 -0700
-Subject: [PATCH] More conservative check for availability. (#4)
-
-has_include() does not imply that the header can be
-included and will work. The assumption fails on MSVC and libc++ [1, 2].
-Conversely, checking that __cplusplus > 201402L is not sufficient on its
-own either, as the toolchain on Mac OS 10.12 passes that check but does
-not contain a header.
-
-[1] https://crbug.com/759349
-[2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79433
----
- include/crc32c/crc32c.h | 10 +++-------
- src/crc32c_unittest.cc | 6 ++----
- 2 files changed, 5 insertions(+), 11 deletions(-)
-
-diff --git a/include/crc32c/crc32c.h b/include/crc32c/crc32c.h
-index 9f1973a..8ecab0d 100644
---- a/third_party/crc32c/src/include/crc32c/crc32c.h
-+++ b/third_party/crc32c/src/include/crc32c/crc32c.h
-@@ -33,22 +33,18 @@ inline uint32_t Crc32c(const std::string& string) {
- string.size());
- }
-
--#if defined(__has_include)
-+#if __cplusplus > 201402L
- #if __has_include()
--// Visual Studio provides a header even in C++11 mode. When
--// included, the header issues an #error. (C1189)
--#if !defined(_MSC_VER) || __cplusplus >= 201703L
- #include
-
--// Comptues the CRC32C of the bytes in the string_view.
-+// Computes the CRC32C of the bytes in the string_view.
- inline uint32_t Crc32c(const std::string_view& string_view) {
- return Crc32c(reinterpret_cast(string_view.data()),
- string_view.size());
- }
-
--#endif // !defined(_MSC_VER) || __cplusplus >= 201703L
- #endif // __has_include()
--#endif // defined(__has_include)
-+#endif // __cplusplus > 201402L
-
- } // namespace crc32c
-
-diff --git a/src/crc32c_unittest.cc b/src/crc32c_unittest.cc
-index 7a9c765..69babb3 100644
---- a/third_party/crc32c/src/src/crc32c_unittest.cc
-+++ b/third_party/crc32c/src/src/crc32c_unittest.cc
-@@ -95,9 +95,8 @@ TEST(CRC32CTest, Crc32cStdString) {
- EXPECT_EQ(static_cast(0x113fdb5c), crc32c::Crc32c(buf));
- }
-
--#if defined(__has_include)
-+#if __cplusplus > 201402L
- #if __has_include()
--#if !defined(_MSC_VER) || __cplusplus >= 201703L
-
- TEST(CRC32CTest, Crc32cStdStringView) {
- uint8_t buf[32];
-@@ -118,9 +117,8 @@ TEST(CRC32CTest, Crc32cStdStringView) {
- EXPECT_EQ(static_cast(0x113fdb5c), crc32c::Crc32c(view));
- }
-
--#endif // !defined(_MSC_VER) || __cplusplus >= 201703L
- #endif // __has_include()
--#endif // defined(__has_include)
-+#endif // __cplusplus > 201402L
-
- #define TESTED_EXTEND Extend
- #include "./crc32c_extend_unittests.h"