extra/chromium to 72.0.3626.96-2

This commit is contained in:
Kevin Mihelich 2019-02-08 00:59:29 +00:00
parent e664687474
commit e431ee14e4
4 changed files with 322 additions and 2 deletions

View file

@ -16,14 +16,14 @@ highmem=1
pkgname=chromium
pkgver=72.0.3626.96
pkgrel=1
pkgrel=2
_launcher_ver=6
pkgdesc="A web browser built for speed, simplicity, and security"
arch=('x86_64')
url="https://www.chromium.org/Home"
license=('BSD')
depends=('gtk3' 'nss' 'alsa-lib' 'xdg-utils' 'libxss' 'libcups' 'libgcrypt'
'ttf-font' 'systemd' 'dbus' 'libpulse' 'pciutils' 'json-glib'
'ttf-font' 'systemd' 'dbus' 'libpulse' 'pciutils' 'json-glib' 'libva'
'desktop-file-utils' 'hicolor-icon-theme')
makedepends=('python' 'python2' 'gperf' 'yasm' 'mesa' 'ninja' 'nodejs' 'git'
'clang' 'lld' 'gn' 'java-runtime-headless' 'distcc-clang')
@ -35,6 +35,9 @@ source=(https://commondatastorage.googleapis.com/chromium-browser-official/$pkgn
chromium-launcher-$_launcher_ver.tar.gz::https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver.tar.gz
chromium-system-icu.patch
chromium-webrtc-missing-header.patch
chromium-vaapi.patch
chromium-vaapi-relax-the-version-check-for-VA-API.patch
chromium-vaapi-fix-the-VA_CHECK_VERSION.patch
chromium-widevine.patch
chromium-skia-harmony.patch
0001-crashpad-include-limits.patch)
@ -42,6 +45,9 @@ sha256sums=('b2daf52aac4d9eba0ab9f034db6f2411ad6930dd02544c4b583e3a6e49dcaa3b'
'04917e3cd4307d8e31bfb0027a5dce6d086edb10ff8a716024fbb8bb0c7dccf1'
'e2d284311f49c529ea45083438a768db390bde52949995534034d2a814beab89'
'63cbed7d7af327c17878a2066c303f106ff08636372721845131f7ff13d87b44'
'561151f381db44908ab5649f3579049e4cbce04cbed76e32d767b156bf83944d'
'07fcf5d25114c7335582f117090b5e0bd148aca69044d4fe25c66b4c52dcd2a6'
'0bd750255163bfb1bedaf97c1cdb313f42bd9e6e52243c6e68494b6e0ffb84bf'
'd081f2ef8793544685aad35dea75a7e6264a2cb987ff3541e6377f4a3650a28b'
'5887f78b55c4ecbbcba5930f3f0bb7bc0117c2a41c2f761805fcf7f46f1ca2b3'
'df99f49ad58b70c9a3e1827d7e80b62e4363419334ed83373cf55b79c17b6f10')
@ -104,6 +110,11 @@ prepare() {
third_party/blink/renderer/core/xml/parser/xml_document_parser.cc \
third_party/libxml/chromium/libxml_utils.cc
# Enable VAAPI on Linux
patch -Np1 -i ../chromium-vaapi.patch
patch -Np1 -i ../chromium-vaapi-relax-the-version-check-for-VA-API.patch
patch -Np1 -i ../chromium-vaapi-fix-the-VA_CHECK_VERSION.patch
# Load Widevine CDM if available
patch -Np1 -i ../chromium-widevine.patch
@ -179,6 +190,7 @@ build() {
'use_custom_libcxx=false'
'enable_hangout_services_extension=true'
'enable_widevine=true'
'use_vaapi=true'
'enable_nacl=false'
'enable_swiftshader=false'
"google_api_key=\"${_google_api_key}\""

View file

@ -0,0 +1,74 @@
From 674fb0486a1b525cb850530c4cdc79506338bd37 Mon Sep 17 00:00:00 2001
From: Azhar Shaikh <azhar.shaikh@intel.com>
Date: Fri, 11 Jan 2019 07:44:38 +0000
Subject: [PATCH] media/gpu/vaapi: Fix the VA_CHECK_VERSION
commit 6f1309ef8fe109 ("media/gpu/vaapi: Relax the version
check for VA-API") added the VA_CHECK_VERSION to relax the
VA-API version check. But it still does the same thing as
the previous check. VA_CHECK_VERSION will return 'true', only
when the VA-API version is greater than or equal to the
parameters passed to it. So in this case when the major and
minor version were passed from vaInitialize() output, it did
the same strict check as earlier. When trying to update libva
to a newer version, there will still be a mismatch, since
vaInitialize() would return the updated/newer libva version
installed on the system, but the chromium would still be built
with older version (libva-2.1.0 as of now).
To fix this and actually relax the check, make sure the system
version of libva is greater than the libva version with which
the browser is built, since libva is backward compatible. This
will allow any future libva updates without breaking existing code.
Fixes: 6f1309ef8fe109 ("media/gpu/vaapi: Relax the version check for VA-API")
Bug: 905814
TEST=Below scenarios were tested and h/w acceleration is working successfully.
TEST=Build chromium with libva-2.3.0 and system version 2.3.0
TEST=Build chromium with libva-2.1.0 and system version 2.3.0
TEST=Build chromium with libva 2.1.0 and system version 2.1.0
Signed-off-by: Azhar Shaikh <azhar.shaikh@intel.com>
Change-Id: I1ec14aabed21b7d6b6fc55080bbac17233c40ec0
Reviewed-on: https://chromium-review.googlesource.com/c/1376716
Commit-Queue: Alexandre Courbot <acourbot@chromium.org>
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
Reviewed-by: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#621940}
---
media/gpu/vaapi/vaapi_wrapper.cc | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/media/gpu/vaapi/vaapi_wrapper.cc b/media/gpu/vaapi/vaapi_wrapper.cc
index 4921aabf64..93d7c98b80 100644
--- a/media/gpu/vaapi/vaapi_wrapper.cc
+++ b/media/gpu/vaapi/vaapi_wrapper.cc
@@ -337,15 +337,16 @@ bool VADisplayState::InitializeOnce() {
<< va_vendor_string_;
// The VAAPI version is determined from what is loaded on the system by
- // calling vaInitialize(). We want a runtime evaluation of libva version,
- // of what is loaded on the system, with, what browser is compiled with.
- // Also since the libva is now ABI-compatible, relax the version check
- // which helps in upgrading the libva, without breaking any existing
- // functionality.
- if (!VA_CHECK_VERSION(major_version, minor_version, 0)) {
- LOG(ERROR) << "This build of Chromium requires VA-API version "
- << VA_MAJOR_VERSION << "." << VA_MINOR_VERSION
- << ", system version: " << major_version << "." << minor_version;
+ // calling vaInitialize(). Since the libva is now ABI-compatible, relax the
+ // version check which helps in upgrading the libva, without breaking any
+ // existing functionality. Make sure the system version is not older than
+ // the version with which the chromium is built since libva is only
+ // guaranteed to be backward (and not forward) compatible.
+ if (VA_MAJOR_VERSION > major_version ||
+ (VA_MAJOR_VERSION == major_version && VA_MINOR_VERSION > minor_version)) {
+ LOG(ERROR) << "The system version " << major_version << "." << minor_version
+ << " should be greater than or equal to "
+ << VA_MAJOR_VERSION << "." << VA_MINOR_VERSION;
return false;
}
return true;
--
2.20.1

View file

@ -0,0 +1,62 @@
From 6f1309ef8fe10965e4d0018b4f1b80ac6deccdaa Mon Sep 17 00:00:00 2001
From: Azhar Shaikh <azhar.shaikh@intel.com>
Date: Fri, 30 Nov 2018 23:11:57 +0000
Subject: [PATCH] media/gpu/vaapi: Relax the version check for VA-API
Since the newer versions of VA-API are ABI compatible, relax the
version checks for VA-API, by using VA_CHECK_VERSION().
This will help in updating the libva to the latest releases,
while still supporting the old versions, till the new version of
libva is merged and picked by the builds. Thus ensuring that
hardware accleration is not broken while updating the libva.
Bug: 905814
TEST=libva-2.3.0 and libva-2.1.0 are able to do hardware acceleration.
Suggested-by: Alexandre Courbot <acourbot@chromium.org>
Signed-off-by: Azhar Shaikh <azhar.shaikh@intel.com>
Change-Id: I510549f72290d20676927eeeeb89a87199c062af
Reviewed-on: https://chromium-review.googlesource.com/c/1352519
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
Reviewed-by: Hirokazu Honda <hiroh@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#612832}
---
AUTHORS | 1 +
media/gpu/vaapi/vaapi_wrapper.cc | 8 +++++++-
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/AUTHORS b/AUTHORS
index 567fe15a60..ff42fc5df0 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -103,6 +103,7 @@ Asish Singh <asish.singh@samsung.com>
Attila Dusnoki <dati91@gmail.com>
Avinaash Doreswamy <avi.nitk@samsung.com>
Ayush Khandelwal <k.ayush@samsung.com>
+Azhar Shaikh <azhar.shaikh@intel.com>
Balazs Kelemen <b.kelemen@samsung.com>
Baul Eun <baul.eun@samsung.com>
Behara Mani Shyam Patro <behara.ms@samsung.com>
diff --git a/media/gpu/vaapi/vaapi_wrapper.cc b/media/gpu/vaapi/vaapi_wrapper.cc
index b4156423f7..053384d378 100644
--- a/media/gpu/vaapi/vaapi_wrapper.cc
+++ b/media/gpu/vaapi/vaapi_wrapper.cc
@@ -333,7 +333,13 @@ bool VADisplayState::InitializeOnce() {
DVLOG(1) << "VAAPI version: " << major_version << "." << minor_version << " "
<< va_vendor_string_;
- if (major_version != VA_MAJOR_VERSION || minor_version != VA_MINOR_VERSION) {
+ // The VAAPI version is determined from what is loaded on the system by
+ // calling vaInitialize(). We want a runtime evaluation of libva version,
+ // of what is loaded on the system, with, what browser is compiled with.
+ // Also since the libva is now ABI-compatible, relax the version check
+ // which helps in upgrading the libva, without breaking any existing
+ // functionality.
+ if (!VA_CHECK_VERSION(major_version, minor_version, 0)) {
LOG(ERROR) << "This build of Chromium requires VA-API version "
<< VA_MAJOR_VERSION << "." << VA_MINOR_VERSION
<< ", system version: " << major_version << "." << minor_version;
--
2.20.1

View file

@ -0,0 +1,172 @@
From abc7295ca1653c85472916909f0eb76e28e79a58 Mon Sep 17 00:00:00 2001
From: Akarshan Biswas <akarshan.biswas@gmail.com>
Date: Thu, 24 Jan 2019 12:45:29 +0530
Subject: [PATCH] Enable mojo with VDA2 on Linux
---
chrome/browser/about_flags.cc | 8 ++++----
chrome/browser/flag_descriptions.cc | 9 +++++++--
chrome/browser/flag_descriptions.h | 10 ++++++++--
gpu/config/software_rendering_list.json | 3 ++-
media/media_options.gni | 9 ++++++---
media/mojo/services/gpu_mojo_media_client.cc | 4 ++--
6 files changed, 29 insertions(+), 14 deletions(-)
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 0a84c6ac1..be2aa1d8b 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -1714,7 +1714,7 @@ const FeatureEntry kFeatureEntries[] = {
"disable-accelerated-video-decode",
flag_descriptions::kAcceleratedVideoDecodeName,
flag_descriptions::kAcceleratedVideoDecodeDescription,
- kOsMac | kOsWin | kOsCrOS | kOsAndroid,
+ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux,
SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode),
},
#if defined(OS_WIN)
@@ -2345,12 +2345,12 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)},
#endif // ENABLE_ISOLATED_XR_SERVICE
#endif // ENABLE_VR
-#if defined(OS_CHROMEOS)
+#if defined(OS_CHROMEOS) || defined(OS_LINUX)
{"disable-accelerated-mjpeg-decode",
flag_descriptions::kAcceleratedMjpegDecodeName,
- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS,
+ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux,
SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)},
-#endif // OS_CHROMEOS
+#endif // OS_CHROMEOS // OS_LINUX
{"v8-cache-options", flag_descriptions::kV8CacheOptionsName,
flag_descriptions::kV8CacheOptionsDescription, kOsAll,
MULTI_VALUE_TYPE(kV8CacheOptionsChoices)},
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index 62637e092..86f89fc6e 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -3085,15 +3085,20 @@ const char kTextSuggestionsTouchBarDescription[] =
#endif
-// Chrome OS -------------------------------------------------------------------
+// Chrome OS Linux-------------------------------------------------------------------
-#if defined(OS_CHROMEOS)
+#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
const char kAcceleratedMjpegDecodeName[] =
"Hardware-accelerated mjpeg decode for captured frame";
const char kAcceleratedMjpegDecodeDescription[] =
"Enable hardware-accelerated mjpeg decode for captured frame where "
"available.";
+#endif
+
+// Chrome OS --------------------------------------------------
+
+#if defined(OS_CHROMEOS)
const char kAllowTouchpadThreeFingerClickName[] = "Touchpad three-finger-click";
const char kAllowTouchpadThreeFingerClickDescription[] =
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index 5dac660bb..6cc4115da 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -1846,13 +1846,19 @@ extern const char kPermissionPromptPersistenceToggleDescription[];
#endif // defined(OS_MACOSX)
-// Chrome OS ------------------------------------------------------------------
+// Chrome OS and Linux ------------------------------------------------------------------
-#if defined(OS_CHROMEOS)
+#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
extern const char kAcceleratedMjpegDecodeName[];
extern const char kAcceleratedMjpegDecodeDescription[];
+#endif // defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+
+// Chrome OS ------------------------------------------------------------------------
+
+#if defined(OS_CHROMEOS)
+
extern const char kAllowTouchpadThreeFingerClickName[];
extern const char kAllowTouchpadThreeFingerClickDescription[];
diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json
index 65f37b3f1..ae8a1718f 100644
--- a/gpu/config/software_rendering_list.json
+++ b/gpu/config/software_rendering_list.json
@@ -371,11 +371,12 @@
},
{
"id": 48,
- "description": "Accelerated video decode is unavailable on Linux",
+ "description": "Accelerated VA-API video decode is not supported on NVIDIA platforms",
"cr_bugs": [137247],
"os": {
"type": "linux"
},
+ "vendor_id": "0x10de",
"features": [
"accelerated_video_decode"
]
diff --git a/media/media_options.gni b/media/media_options.gni
index 46eaa5818..6e338f651 100644
--- a/media/media_options.gni
+++ b/media/media_options.gni
@@ -5,6 +5,7 @@
import("//build/config/chrome_build.gni")
import("//build/config/chromecast_build.gni")
import("//build/config/features.gni")
+import("//media/gpu/args.gni")
import("//testing/libfuzzer/fuzzer_test.gni")
# Do not expand this list without double-checking with OWNERS, this is a list of
@@ -129,8 +130,9 @@ declare_args() {
# |mojo_media_services|). When enabled, selected mojo paths will be enabled in
# the media pipeline and corresponding services will hosted in the selected
# remote process (e.g. "utility" process, see |mojo_media_host|).
- enable_mojo_media = is_android || is_chromecast || is_chromeos || is_mac ||
- is_win || enable_library_cdms
+ enable_mojo_media =
+ is_android || is_chromecast || is_chromeos || is_mac || is_win ||
+ enable_library_cdms || (is_desktop_linux && use_vaapi)
# Enable the TestMojoMediaClient to be used in mojo MediaService. This is for
# testing only and will override the default platform MojoMediaClient, if any.
@@ -200,7 +202,8 @@ if (enable_mojo_media) {
]
_default_mojo_media_host = "gpu"
}
- } else if (is_chromeos || is_mac || is_win) {
+ } else if (is_chromeos || is_mac || is_win ||
+ (is_desktop_linux && use_vaapi)) {
_default_mojo_media_services = [ "video_decoder" ]
_default_mojo_media_host = "gpu"
}
diff --git a/media/mojo/services/gpu_mojo_media_client.cc b/media/mojo/services/gpu_mojo_media_client.cc
index 75f5e611c..09a8fef92 100644
--- a/media/mojo/services/gpu_mojo_media_client.cc
+++ b/media/mojo/services/gpu_mojo_media_client.cc
@@ -54,7 +54,7 @@ namespace media {
namespace {
#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(OS_MACOSX) || \
- defined(OS_WIN)
+ defined(OS_WIN) || defined(OS_LINUX)
gpu::CommandBufferStub* GetCommandBufferStub(
base::WeakPtr<MediaGpuChannelManager> media_gpu_channel_manager,
base::UnguessableToken channel_token,
@@ -148,7 +148,7 @@ std::unique_ptr<VideoDecoder> GpuMojoMediaClient::CreateVideoDecoder(
android_overlay_factory_cb_, std::move(request_overlay_info_cb),
std::make_unique<VideoFrameFactoryImpl>(gpu_task_runner_,
std::move(get_stub_cb)));
-#elif defined(OS_CHROMEOS) || defined(OS_MACOSX) || defined(OS_WIN)
+#elif defined(OS_CHROMEOS) || defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX)
std::unique_ptr<VideoDecoder> vda_video_decoder = VdaVideoDecoder::Create(
task_runner, gpu_task_runner_, media_log->Clone(), target_color_space,
gpu_preferences_, gpu_workarounds_,
--
2.20.1