diff --git a/network/web/chromium-browser/actions.py b/network/web/chromium-browser/actions.py index fb7e1f543c..39282dda76 100644 --- a/network/web/chromium-browser/actions.py +++ b/network/web/chromium-browser/actions.py @@ -23,11 +23,11 @@ def setup(): shelltools.system("sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' tools/generate_shim_headers/generate_shim_headers.py") - for LIB in ["ffmpeg", "freetype", "flac", "fontconfig", "harfbuzz-ng", "libdrm", "libjpeg_turbo", "libpng", "libwebp", "libxml", "libxslt", "opus", "snappy", "zlib"]: - shelltools.system('find "third_party/%s" -type f \! -path "third_party/%s/chromium/*" \! -path "*third_party/%s/google/*" \! -path "third_party/harfbuzz-ng/utils/hb_scoped.h" \! -regex ".*\.\(gn\|gni\|isolate\)" -delete' %(LIB, LIB, LIB)) + #for LIB in ["ffmpeg", "freetype", "flac", "fontconfig", "harfbuzz-ng", "libdrm", "libjpeg_turbo", "libpng", "libwebp", "libxml", "libxslt", "opus", "snappy", "zlib"]: + #shelltools.system('find "third_party/%s" -type f \! -path "third_party/%s/chromium/*" \! -path "*third_party/%s/google/*" \! -path "third_party/harfbuzz-ng/utils/hb_scoped.h" \! -regex ".*\.\(gn\|gni\|isolate\)" -delete' %(LIB, LIB, LIB)) - shelltools.system("build/linux/unbundle/replace_gn_files.py --system-libraries ffmpeg freetype flac fontconfig harfbuzz-ng libdrm libjpeg libpng libwebp libxml libxslt opus snappy zlib") + #shelltools.system("build/linux/unbundle/replace_gn_files.py --system-libraries ffmpeg freetype flac fontconfig harfbuzz-ng libdrm libjpeg libpng libwebp libxml libxslt opus snappy zlib") shelltools.system("sed -i -e 's/\/malloc/' -e 's/\/free/' \ third_party/blink/renderer/core/xml/*.cc \ @@ -41,7 +41,7 @@ def setup(): enable_nacl_nonsfi=false \ rtc_use_pipewire=true \ use_custom_libcxx=true \ - clang_use_chrome_plugins=false \ + clang_use_chrome_plugins=true \ is_official_build=true \ fieldtrial_testing_like_official_build=true \ clang_use_chrome_plugins=false \ @@ -65,9 +65,8 @@ def setup(): closure_compile=false \ symbol_level=0 \ use_lld=true \ + thin_lto_enable_optimizations = true \ chrome_pgo_phase=2 \ - use_thin_lto=false \ - is_cfi=false \ enable_mse_mpeg2ts_stream_parser=true \ enable_platform_dolby_vision=true \ enable_platform_mpeg_h_audio=true \ @@ -75,9 +74,7 @@ def setup(): enable_platform_hevc=true \ use_aura=true \ use_ozone=true \ - use_dbus=true \ - ozone_auto_platforms=false \ - ozone_platform_headless=true' + use_dbus=true' @@ -114,7 +111,7 @@ def install(): #should be checked should for the missing folder "out/Release" for vla in ["*.pak", "*.json", "chrome", "locales", "resources", "icudtl.dat", "mksnapshot", "chromedriver", "snapshot_blob.bin", "character_data_generator", \ - "libEGL.so", "libGLESv2.so", "libVk*.so", "v8_context_snapshot.bin", "MEIPreload", "nacl_helper", "nacl_helper_bootstrap", "nacl_irt_x86_64.nexe"]: + "libEGL.so", "libGLESv2.so", "libVk*.so", "v8_context_snapshot.bin", "MEIPreload", "nacl_helper", "nacl_helper_bootstrap", "nacl_irt_x86_64.nexe", "chrome_crashpad_handler"]: pisitools.insinto("/usr/lib/chromium-browser", "%s" % vla) pisitools.insinto("/usr/lib/chromium-browser", "chrome_sandbox", "chrome-sandbox") diff --git a/network/web/chromium-browser/files/add-a-TODO-about-a-missing-pnacl-flag.patch b/network/web/chromium-browser/files/add-a-TODO-about-a-missing-pnacl-flag.patch new file mode 100644 index 0000000000..bfeafeef83 --- /dev/null +++ b/network/web/chromium-browser/files/add-a-TODO-about-a-missing-pnacl-flag.patch @@ -0,0 +1,28 @@ +From 7a23987acb698c2934958cb42a5e7b1cd73fe142 Mon Sep 17 00:00:00 2001 +From: Nico Weber +Date: Tue, 20 Jul 2021 21:54:09 +0000 +Subject: [PATCH] build: Add a TODO about a missing pnacl flag + +Change-Id: I1700d185a23afe4120e14c755782450b1bf89289 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3041785 +Commit-Queue: Nico Weber +Commit-Queue: Hans Wennborg +Auto-Submit: Nico Weber +Reviewed-by: Hans Wennborg +Cr-Commit-Position: refs/heads/master@{#903659} +--- + build/config/compiler/BUILD.gn | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index b6e095b705..ef6d1dfc12 100644 +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -1217,6 +1217,7 @@ config("compiler_deterministic") { + # we build same files with same compile flag. + # Other paths are already given in relative, no need to normalize them. + if (is_nacl) { ++ # TODO(https://crbug.com/1231236): Use -ffile-compilation-dir= here. + cflags += [ + "-Xclang", + "-fdebug-compilation-dir", diff --git a/network/web/chromium-browser/files/maldoca-depend-on-zlib-instead-of-headers-only.patch b/network/web/chromium-browser/files/maldoca-depend-on-zlib-instead-of-headers-only.patch new file mode 100644 index 0000000000..e1b438cdd7 --- /dev/null +++ b/network/web/chromium-browser/files/maldoca-depend-on-zlib-instead-of-headers-only.patch @@ -0,0 +1,31 @@ +From 0aa878b7839141077071db97ba1cd30edf486827 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Wed, 15 Sep 2021 17:14:14 +0000 +Subject: [PATCH] maldoca: depend on zlib instead of headers only + +There is no zlib_common_headers target for unbundled zlib +and in the end code links against zlib static library anyways. + +Bug: None +Change-Id: I50b8bb5b480770b637904de00aecc3a629f09471 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3162976 +Reviewed-by: Daniel Rubery +Commit-Queue: Stephan Hartmann +Cr-Commit-Position: refs/heads/main@{#921717} +--- + third_party/maldoca/BUILD.gn | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/third_party/maldoca/BUILD.gn b/third_party/maldoca/BUILD.gn +index eeab2056b5..29a0a2ca49 100644 +--- a/third_party/maldoca/BUILD.gn ++++ b/third_party/maldoca/BUILD.gn +@@ -224,7 +224,7 @@ source_set("maldoca-ole") { + "//third_party/libxml", + "//third_party/protobuf:protobuf_lite", + "//third_party/re2", +- "//third_party/zlib:zlib_common_headers", ++ "//third_party/zlib:zlib", + "//third_party/zlib/google:zip", + ] + diff --git a/network/web/chromium-browser/files/ozone-x11-fix-VA-API.patch b/network/web/chromium-browser/files/ozone-x11-fix-VA-API.patch new file mode 100644 index 0000000000..61d72bfb01 --- /dev/null +++ b/network/web/chromium-browser/files/ozone-x11-fix-VA-API.patch @@ -0,0 +1,671 @@ +From a4de986102a45e29c3ef596f22704bdca244c26c Mon Sep 17 00:00:00 2001 +From: Maksim Sisov +Date: Fri, 17 Sep 2021 08:45:55 +0000 +Subject: [PATCH] ozone/x11: fix VA-API. + +This patch fixes VA-API usage with Ozone/X11 backend (which +is our default backend now as X11 has been deprecated - +crrev.com/c/3114071)). + +non-Ozone X11 is disabled now and Ozone is always used +on Linux. However, VA-API implementation is not Ozone friendly +yet and requires major refactoring. But given that VA-API +implementation on Linux worked only with X11, it's fine for +now to change USE_X11 and !IsUsingOzonePlatform to +BUILDFLAG(OZONE_PLATFORM_X11) and fail VA-API initialization +in VADisplayState::Initialize for Ozone/Linux other than +non-X11 backends. + +Bug: 1121948 +Change-Id: If85d289235e6d358103d9fa2bbe0f741fb599a26 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3141878 +Commit-Queue: Maksim Sisov +Reviewed-by: Andres Calderon Jaramillo +Reviewed-by: Robert Kroeger +Reviewed-by: Xiaohan Wang +Reviewed-by: Alexander Dunaev +Cr-Commit-Position: refs/heads/main@{#922466} +--- + media/BUILD.gn | 3 - + media/gpu/BUILD.gn | 5 +- + media/gpu/args.gni | 13 +++- + media/gpu/vaapi/BUILD.gn | 8 +- + media/gpu/vaapi/va_stub_header.fragment | 6 +- + media/gpu/vaapi/vaapi_picture_factory.cc | 72 ++++++++---------- + .../vaapi_picture_native_pixmap_angle.cc | 2 - + media/gpu/vaapi/vaapi_picture_tfp.cc | 2 - + .../vaapi/vaapi_video_decode_accelerator.cc | 9 +-- + ...vaapi_video_decode_accelerator_unittest.cc | 11 +-- + media/gpu/vaapi/vaapi_wrapper.cc | 76 +++++++++---------- + media/gpu/vaapi/vaapi_wrapper.h | 8 +- + ui/ozone/platform/x11/ozone_platform_x11.cc | 3 + + ui/ozone/public/ozone_platform.h | 10 +++ + 14 files changed, 108 insertions(+), 120 deletions(-) + +diff --git a/media/BUILD.gn b/media/BUILD.gn +index dbee1d4338..d5c158c08f 100644 +--- a/media/BUILD.gn ++++ b/media/BUILD.gn +@@ -130,9 +130,6 @@ component("media") { + public_deps += [ "//media/base/mac" ] + } + +- if (use_x11) { +- deps += [ "//ui/base/x" ] +- } + if (use_ozone) { + deps += [ "//ui/ozone" ] + } +diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn +index c7499485ac..3fedc78948 100644 +--- a/media/gpu/BUILD.gn ++++ b/media/gpu/BUILD.gn +@@ -20,6 +20,7 @@ buildflag_header("buildflags") { + "USE_VAAPI_IMAGE_CODECS=$use_vaapi_image_codecs", + "USE_V4L2_CODEC=$use_v4l2_codec", + "USE_LIBV4L2=$use_v4lplugin", ++ "USE_VAAPI_X11=$use_vaapi_x11", + ] + } + +@@ -215,9 +216,7 @@ component("gpu") { + "windows/supported_profile_helpers.cc", + "windows/supported_profile_helpers.h", + ] +- configs += [ +- "//third_party/khronos:khronos_headers", +- ] ++ configs += [ "//third_party/khronos:khronos_headers" ] + public_deps += [ "//media/base/win:media_foundation_util" ] + deps += [ + "//gpu/ipc/common:common", +diff --git a/media/gpu/args.gni b/media/gpu/args.gni +index 4004937949..2f53843918 100644 +--- a/media/gpu/args.gni ++++ b/media/gpu/args.gni +@@ -3,7 +3,15 @@ + # found in the LICENSE file. + + import("//build/config/chromeos/ui_mode.gni") +-import("//build/config/ui.gni") ++import("//build/config/ozone.gni") ++ ++declare_args() { ++ # Indicates if X11 VA-API-based hardware acceleration is to be used. ++ # See also the comment near the |use_vaapi| arg. ++ use_vaapi_x11 = ++ is_linux && ozone_platform_x11 && !is_chromecast && !is_chromeos_lacros && ++ (target_cpu == "x86" || target_cpu == "x64") ++} + + declare_args() { + # Indicates if V4L plugin is used. +@@ -21,8 +29,7 @@ declare_args() { + # is typically the case on x86-based ChromeOS devices. + # VA-API should also be compiled by default on x11-using linux devices + # using x86/x64. +- use_vaapi = +- is_linux && use_x11 && (target_cpu == "x86" || target_cpu == "x64") ++ use_vaapi = use_vaapi_x11 + + # Indicates if ChromeOS protected media support exists. This is used + # to enable the CDM daemon in Chrome OS as well as support for +diff --git a/media/gpu/vaapi/BUILD.gn b/media/gpu/vaapi/BUILD.gn +index b11d2c60fa..0c2520dd6b 100644 +--- a/media/gpu/vaapi/BUILD.gn ++++ b/media/gpu/vaapi/BUILD.gn +@@ -17,7 +17,7 @@ assert(use_vaapi) + generate_stubs("libva_stubs") { + extra_header = "va_stub_header.fragment" + sigs = [ "va.sigs" ] +- if (use_x11) { ++ if (use_vaapi_x11) { + sigs += [ "va_x11.sigs" ] + } + if (is_chromeos_ash) { +@@ -131,14 +131,14 @@ source_set("vaapi") { + ] + } + +- if (use_x11 || use_ozone || use_egl) { ++ if (use_ozone || use_egl) { + sources += [ + "vaapi_picture_native_pixmap.cc", + "vaapi_picture_native_pixmap.h", + ] + } + +- if (use_x11) { ++ if (use_vaapi_x11) { + deps += [ "//ui/gfx/x" ] + sources += [ + "vaapi_picture_native_pixmap_angle.cc", +@@ -197,7 +197,7 @@ source_set("common") { + deps += [ "//ui/ozone" ] + } + +- if (use_x11) { ++ if (use_vaapi_x11) { + deps += [ "//ui/gfx/x" ] + } + +diff --git a/media/gpu/vaapi/va_stub_header.fragment b/media/gpu/vaapi/va_stub_header.fragment +index bed198484d..e8c46c5e81 100644 +--- a/media/gpu/vaapi/va_stub_header.fragment ++++ b/media/gpu/vaapi/va_stub_header.fragment +@@ -1,12 +1,14 @@ + // The extra include header needed in the generated stub file for defining + // various libva types. + ++#include "media/gpu/buildflags.h" ++ + extern "C" { + + #include + #include +-#if defined(USE_X11) ++#if BUILDFLAG(USE_VAAPI_X11) + #include +-#endif ++#endif // BUILDFLAG(USE_VAAPI_X11) + + } +diff --git a/media/gpu/vaapi/vaapi_picture_factory.cc b/media/gpu/vaapi/vaapi_picture_factory.cc +index 719035b87c..9c7d7387d2 100644 +--- a/media/gpu/vaapi/vaapi_picture_factory.cc ++++ b/media/gpu/vaapi/vaapi_picture_factory.cc +@@ -10,13 +10,13 @@ + #include "ui/base/ui_base_features.h" + #include "ui/gl/gl_bindings.h" + +-#if defined(USE_X11) +-#include "media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h" +-#include "media/gpu/vaapi/vaapi_picture_tfp.h" +-#endif + #if defined(USE_OZONE) + #include "media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.h" +-#endif ++#endif // defined(USE_OZONE) ++#if BUILDFLAG(USE_VAAPI_X11) ++#include "media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h" ++#include "media/gpu/vaapi/vaapi_picture_tfp.h" ++#endif // BUILDFLAG(USE_VAAPI_X11) + #if defined(USE_EGL) + #include "media/gpu/vaapi/vaapi_picture_native_pixmap_egl.h" + #endif +@@ -46,15 +46,13 @@ VaapiPictureFactory::VaapiPictureFactory() { + vaapi_impl_pairs_.insert( + std::make_pair(gl::kGLImplementationEGLGLES2, + VaapiPictureFactory::kVaapiImplementationDrm)); +-#if defined(USE_X11) ++#if BUILDFLAG(USE_VAAPI_X11) + vaapi_impl_pairs_.insert( + std::make_pair(gl::kGLImplementationEGLANGLE, + VaapiPictureFactory::kVaapiImplementationAngle)); +- if (!features::IsUsingOzonePlatform()) { +- vaapi_impl_pairs_.insert( +- std::make_pair(gl::kGLImplementationDesktopGL, +- VaapiPictureFactory::kVaapiImplementationX11)); +- } ++ vaapi_impl_pairs_.insert( ++ std::make_pair(gl::kGLImplementationDesktopGL, ++ VaapiPictureFactory::kVaapiImplementationX11)); + #endif + + DeterminePictureCreationAndDownloadingMechanism(); +@@ -96,19 +94,19 @@ VaapiPictureFactory::GetVaapiImplementation(gl::GLImplementation gl_impl) { + } + + uint32_t VaapiPictureFactory::GetGLTextureTarget() { +-#if defined(USE_OZONE) +- if (features::IsUsingOzonePlatform()) +- return GL_TEXTURE_EXTERNAL_OES; +-#endif ++#if BUILDFLAG(USE_VAAPI_X11) + return GL_TEXTURE_2D; ++#else ++ return GL_TEXTURE_EXTERNAL_OES; ++#endif + } + + gfx::BufferFormat VaapiPictureFactory::GetBufferFormat() { +-#if defined(USE_OZONE) +- if (features::IsUsingOzonePlatform()) +- return gfx::BufferFormat::YUV_420_BIPLANAR; +-#endif ++#if BUILDFLAG(USE_VAAPI_X11) + return gfx::BufferFormat::RGBX_8888; ++#else ++ return gfx::BufferFormat::YUV_420_BIPLANAR; ++#endif + } + + void VaapiPictureFactory::DeterminePictureCreationAndDownloadingMechanism() { +@@ -116,51 +114,43 @@ void VaapiPictureFactory::DeterminePictureCreationAndDownloadingMechanism() { + #if defined(USE_OZONE) + // We can be called without GL initialized, which is valid if we use Ozone. + case kVaapiImplementationNone: +- if (features::IsUsingOzonePlatform()) { +- create_picture_cb_ = base::BindRepeating( +- &CreateVaapiPictureNativeImpl); +- needs_vpp_for_downloading_ = true; +- } +- +- // This is reached by unit tests which don't require create_picture_cb_ +- // to be initialized or called. ++ create_picture_cb_ = base::BindRepeating( ++ &CreateVaapiPictureNativeImpl); ++ needs_vpp_for_downloading_ = true; + break; + #endif // defined(USE_OZONE) +-#if defined(USE_X11) ++#if BUILDFLAG(USE_VAAPI_X11) + case kVaapiImplementationX11: +- DCHECK(!features::IsUsingOzonePlatform()); + create_picture_cb_ = + base::BindRepeating(&CreateVaapiPictureNativeImpl); + // Neither VaapiTFPPicture or VaapiPictureNativePixmapAngle needs the VPP. + needs_vpp_for_downloading_ = false; + break; + case kVaapiImplementationAngle: +- DCHECK(!features::IsUsingOzonePlatform()); + create_picture_cb_ = base::BindRepeating( + &CreateVaapiPictureNativeImpl); + // Neither VaapiTFPPicture or VaapiPictureNativePixmapAngle needs the VPP. + needs_vpp_for_downloading_ = false; + break; +-#endif // defined(USE_X11) ++#endif // BUILDFLAG(USE_VAAPI_X11) + case kVaapiImplementationDrm: + #if defined(USE_OZONE) +- if (features::IsUsingOzonePlatform()) { +- create_picture_cb_ = base::BindRepeating( +- &CreateVaapiPictureNativeImpl); +- needs_vpp_for_downloading_ = true; +- break; +- } +-#endif // defined(USE_OZONE) +-#if defined(USE_EGL) ++ create_picture_cb_ = base::BindRepeating( ++ &CreateVaapiPictureNativeImpl); ++ needs_vpp_for_downloading_ = true; ++ break; ++#elif defined(USE_EGL) + create_picture_cb_ = base::BindRepeating( + &CreateVaapiPictureNativeImpl); + needs_vpp_for_downloading_ = true; + break; +-#endif // defined(USE_EGL) ++#else + // ozone or egl must be used to use the DRM implementation. +- NOTREACHED(); ++ FALLTHROUGH; ++#endif + default: + NOTREACHED(); ++ break; + } + } + +diff --git a/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc b/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc +index 9de0c93b44..e5b9908490 100644 +--- a/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc ++++ b/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc +@@ -6,7 +6,6 @@ + + #include "media/gpu/vaapi/va_surface.h" + #include "media/gpu/vaapi/vaapi_wrapper.h" +-#include "ui/base/ui_base_features.h" + #include "ui/gfx/x/connection.h" + #include "ui/gfx/x/future.h" + #include "ui/gfx/x/xproto.h" +@@ -92,7 +91,6 @@ Status VaapiPictureNativePixmapAngle::Allocate(gfx::BufferFormat format) { + if (!make_context_current_cb_ || !make_context_current_cb_.Run()) + return StatusCode::kVaapiBadContext; + +- DCHECK(!features::IsUsingOzonePlatform()); + auto image = + base::MakeRefCounted(visible_size_, format); + if (!image) +diff --git a/media/gpu/vaapi/vaapi_picture_tfp.cc b/media/gpu/vaapi/vaapi_picture_tfp.cc +index 3f7e221d8a..11914e3640 100644 +--- a/media/gpu/vaapi/vaapi_picture_tfp.cc ++++ b/media/gpu/vaapi/vaapi_picture_tfp.cc +@@ -6,7 +6,6 @@ + + #include "media/gpu/vaapi/va_surface.h" + #include "media/gpu/vaapi/vaapi_wrapper.h" +-#include "ui/base/ui_base_features.h" + #include "ui/gfx/x/connection.h" + #include "ui/gfx/x/future.h" + #include "ui/gl/gl_bindings.h" +@@ -37,7 +36,6 @@ VaapiTFPPicture::VaapiTFPPicture( + connection_(x11::Connection::Get()), + x_pixmap_(x11::Pixmap::None) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); +- DCHECK(!features::IsUsingOzonePlatform()); + DCHECK(texture_id); + DCHECK(client_texture_id); + } +diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc +index 7514fe4fdd..e4cd7c8d89 100644 +--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc ++++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc +@@ -184,12 +184,6 @@ bool VaapiVideoDecodeAccelerator::Initialize(const Config& config, + Client* client) { + DCHECK(task_runner_->BelongsToCurrentThread()); + +-#if defined(USE_X11) +- // TODO(crbug/1116701): implement decode acceleration when running with Ozone. +- if (features::IsUsingOzonePlatform()) +- return false; +-#endif +- + vaapi_picture_factory_ = std::make_unique(); + + if (config.is_encrypted()) { +@@ -1213,12 +1207,11 @@ VaapiVideoDecodeAccelerator::GetSupportedProfiles() { + + VaapiVideoDecodeAccelerator::BufferAllocationMode + VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() { +-#if defined(USE_X11) ++#if BUILDFLAG(USE_VAAPI_X11) + // The IMPORT mode is used for Android on Chrome OS, so this doesn't apply + // here. + DCHECK_NE(output_mode_, VideoDecodeAccelerator::Config::OutputMode::IMPORT); + // TODO(crbug/1116701): get video decode acceleration working with ozone. +- DCHECK(!features::IsUsingOzonePlatform()); + // For H.264 on older devices, another +1 is experimentally needed for + // high-to-high resolution changes. + // TODO(mcasas): Figure out why and why only H264, see crbug.com/912295 and +diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc b/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc +index 5b9a543386..826bb103b1 100644 +--- a/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc ++++ b/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc +@@ -17,7 +17,6 @@ + #include "media/gpu/vaapi/vaapi_wrapper.h" + #include "testing/gmock/include/gmock/gmock.h" + #include "testing/gtest/include/gtest/gtest.h" +-#include "ui/base/ui_base_features.h" + + using base::test::RunClosure; + using ::testing::_; +@@ -416,12 +415,10 @@ TEST_P(VaapiVideoDecodeAcceleratorTest, SupportedPlatforms) { + mock_vaapi_picture_factory_->GetVaapiImplementation( + gl::kGLImplementationEGLGLES2)); + +-#if defined(USE_X11) +- if (!features::IsUsingOzonePlatform()) { +- EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationX11, +- mock_vaapi_picture_factory_->GetVaapiImplementation( +- gl::kGLImplementationDesktopGL)); +- } ++#if BUILDFLAG(USE_VAAPI_X11) ++ EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationX11, ++ mock_vaapi_picture_factory_->GetVaapiImplementation( ++ gl::kGLImplementationDesktopGL)); + #endif + } + +diff --git a/media/gpu/vaapi/vaapi_wrapper.cc b/media/gpu/vaapi/vaapi_wrapper.cc +index 754d258848..e528b0f84d 100644 +--- a/media/gpu/vaapi/vaapi_wrapper.cc ++++ b/media/gpu/vaapi/vaapi_wrapper.cc +@@ -65,7 +65,7 @@ + #include "ui/gl/gl_bindings.h" + #include "ui/gl/gl_implementation.h" + +-#if defined(USE_X11) ++#if BUILDFLAG(USE_VAAPI_X11) + typedef XID Drawable; + + extern "C" { +@@ -73,7 +73,7 @@ extern "C" { + } + + #include "ui/gfx/x/connection.h" // nogncheck +-#endif ++#endif // BUILDFLAG(USE_VAAPI_X11) + + #if defined(USE_OZONE) + #include "ui/ozone/public/ozone_platform.h" +@@ -87,14 +87,14 @@ using media_gpu_vaapi::kModuleVa_prot; + + using media_gpu_vaapi::kModuleVa; + using media_gpu_vaapi::kModuleVa_drm; +-#if defined(USE_X11) ++#if BUILDFLAG(USE_VAAPI_X11) + using media_gpu_vaapi::kModuleVa_x11; +-#endif ++#endif // BUILDFLAG(USE_VAAPI_X11) + using media_gpu_vaapi::InitializeStubs; + using media_gpu_vaapi::IsVaInitialized; +-#if defined(USE_X11) ++#if BUILDFLAG(USE_VAAPI_X11) + using media_gpu_vaapi::IsVa_x11Initialized; +-#endif ++#endif // BUILDFLAG(USE_VAAPI_X11) + using media_gpu_vaapi::IsVa_drmInitialized; + using media_gpu_vaapi::StubPathMap; + +@@ -559,10 +559,20 @@ VADisplayState::VADisplayState() + bool VADisplayState::Initialize() { + base::AutoLock auto_lock(va_lock_); + ++#if defined(USE_OZONE) && defined(OS_LINUX) ++ // TODO(crbug.com/1116701): add vaapi support for other Ozone platforms on ++ // Linux. See comment in OzonePlatform::PlatformProperties::supports_vaapi ++ // for more details. This will also require revisiting everything that's ++ // guarded by USE_VAAPI_X11. For example, if USE_VAAPI_X11 is true, but the ++ // user chooses the Wayland backend for Ozone at runtime, then many things (if ++ // not all) that we do for X11 won't apply. ++ if (!ui::OzonePlatform::GetInstance()->GetPlatformProperties().supports_vaapi) ++ return false; ++#endif ++ + bool libraries_initialized = IsVaInitialized() && IsVa_drmInitialized(); +-#if defined(USE_X11) +- if (!features::IsUsingOzonePlatform()) +- libraries_initialized = libraries_initialized && IsVa_x11Initialized(); ++#if BUILDFLAG(USE_VAAPI_X11) ++ libraries_initialized = libraries_initialized && IsVa_x11Initialized(); + #endif + if (!libraries_initialized) + return false; +@@ -577,34 +587,25 @@ bool VADisplayState::Initialize() { + return success; + } + +-#if defined(USE_X11) ++#if BUILDFLAG(USE_VAAPI_X11) + + absl::optional GetVADisplayStateX11(const base::ScopedFD& drm_fd) { +- bool use_drm_as_fallback = false; + switch (gl::GetGLImplementation()) { + case gl::kGLImplementationEGLGLES2: + return vaGetDisplayDRM(drm_fd.get()); + + case gl::kGLImplementationNone: +- use_drm_as_fallback = true; +- FALLTHROUGH; + + case gl::kGLImplementationDesktopGL: { +- if (!features::IsUsingOzonePlatform()) { +- VADisplay display = +- vaGetDisplay(x11::Connection::Get()->GetXlibDisplay()); +- if (vaDisplayIsValid(display)) +- return display; +- return vaGetDisplayDRM(drm_fd.get()); +- } +- break; ++ VADisplay display = ++ vaGetDisplay(x11::Connection::Get()->GetXlibDisplay()); ++ if (vaDisplayIsValid(display)) ++ return display; ++ return vaGetDisplayDRM(drm_fd.get()); + } + +- case gl::kGLImplementationEGLANGLE: { +- if (!features::IsUsingOzonePlatform()) +- return vaGetDisplay(x11::Connection::Get()->GetXlibDisplay()); +- break; +- } ++ case gl::kGLImplementationEGLANGLE: ++ return vaGetDisplay(x11::Connection::Get()->GetXlibDisplay()); + + default: + LOG(WARNING) << "VAAPI video acceleration not available for " +@@ -612,10 +613,6 @@ absl::optional GetVADisplayStateX11(const base::ScopedFD& drm_fd) { + gl::GetGLImplementationParts()); + return absl::nullopt; + } +- +- if (use_drm_as_fallback) +- return vaGetDisplayDRM(drm_fd.get()); +- return absl::nullopt; + } + + #else +@@ -633,11 +630,11 @@ absl::optional GetVADisplayState(const base::ScopedFD& drm_fd) { + } + } + +-#endif // defined(USE_X11) ++#endif // BUILDFLAG(USE_VAAPI_X11) + + bool VADisplayState::InitializeVaDisplay_Locked() { + absl::optional display = +-#if defined(USE_X11) ++#if BUILDFLAG(USE_VAAPI_X11) + GetVADisplayStateX11(drm_fd_); + #else + GetVADisplayState(drm_fd_); +@@ -702,10 +699,9 @@ bool VADisplayState::InitializeOnce() { + if (!InitializeVaDisplay_Locked() || !InitializeVaDriver_Locked()) + return false; + +-#if defined(USE_X11) ++#if BUILDFLAG(USE_VAAPI_X11) + if (gl::GetGLImplementation() == gl::kGLImplementationEGLANGLE && + implementation_type_ == VAImplementation::kIntelIHD) { +- DCHECK(!features::IsUsingOzonePlatform()); + constexpr char libva_driver_impl_env[] = "LIBVA_DRIVER_NAME"; + // TODO(crbug/1116703) The libva intel-media driver has a known segfault in + // vaPutSurface, so until this is fixed, fall back to the i965 driver. There +@@ -722,7 +718,7 @@ bool VADisplayState::InitializeOnce() { + if (!InitializeVaDisplay_Locked() || !InitializeVaDriver_Locked()) + return false; + } +-#endif // USE_X11 ++#endif // BUILDFLAG(USE_VAAPI_X11) + + return true; + } +@@ -2452,11 +2448,10 @@ bool VaapiWrapper::MapAndCopyAndExecute( + return Execute_Locked(va_surface_id, va_buffer_ids); + } + +-#if defined(USE_X11) ++#if BUILDFLAG(USE_VAAPI_X11) + bool VaapiWrapper::PutSurfaceIntoPixmap(VASurfaceID va_surface_id, + x11::Pixmap x_pixmap, + gfx::Size dest_size) { +- DCHECK(!features::IsUsingOzonePlatform()); + base::AutoLock auto_lock(*va_lock_); + + VAStatus va_res = vaSyncSurface(va_display_, va_surface_id); +@@ -2470,7 +2465,7 @@ bool VaapiWrapper::PutSurfaceIntoPixmap(VASurfaceID va_surface_id, + VA_SUCCESS_OR_RETURN(va_res, VaapiFunctions::kVAPutSurface, false); + return true; + } +-#endif // USE_X11 ++#endif // BUILDFLAG(USE_VAAPI_X11) + + std::unique_ptr VaapiWrapper::CreateVaImage( + VASurfaceID va_surface_id, +@@ -2844,9 +2839,8 @@ void VaapiWrapper::PreSandboxInitialization() { + + paths[kModuleVa].push_back(std::string("libva.so.") + va_suffix); + paths[kModuleVa_drm].push_back(std::string("libva-drm.so.") + va_suffix); +-#if defined(USE_X11) +- if (!features::IsUsingOzonePlatform()) +- paths[kModuleVa_x11].push_back(std::string("libva-x11.so.") + va_suffix); ++#if BUILDFLAG(USE_VAAPI_X11) ++ paths[kModuleVa_x11].push_back(std::string("libva-x11.so.") + va_suffix); + #endif + #if BUILDFLAG(IS_CHROMEOS_ASH) + paths[kModuleVa_prot].push_back(std::string("libva.so.") + va_suffix); +diff --git a/media/gpu/vaapi/vaapi_wrapper.h b/media/gpu/vaapi/vaapi_wrapper.h +index 0e3da53624..88ffcd0799 100644 +--- a/media/gpu/vaapi/vaapi_wrapper.h ++++ b/media/gpu/vaapi/vaapi_wrapper.h +@@ -36,9 +36,9 @@ + #include "third_party/abseil-cpp/absl/types/optional.h" + #include "ui/gfx/geometry/size.h" + +-#if defined(USE_X11) ++#if BUILDFLAG(USE_VAAPI_X11) + #include "ui/gfx/x/xproto.h" // nogncheck +-#endif // USE_X11 ++#endif // BUILDFLAG(USE_VAAPI_X11) + + namespace gfx { + enum class BufferFormat; +@@ -426,13 +426,13 @@ class MEDIA_GPU_EXPORT VaapiWrapper + const std::vector>& va_buffers) + WARN_UNUSED_RESULT; + +-#if defined(USE_X11) ++#if BUILDFLAG(USE_VAAPI_X11) + // Put data from |va_surface_id| into |x_pixmap| of size + // |dest_size|, converting/scaling to it. + bool PutSurfaceIntoPixmap(VASurfaceID va_surface_id, + x11::Pixmap x_pixmap, + gfx::Size dest_size) WARN_UNUSED_RESULT; +-#endif // USE_X11 ++#endif // BUILDFLAG(USE_VAAPI_X11) + + // Creates a ScopedVAImage from a VASurface |va_surface_id| and map it into + // memory with the given |format| and |size|. If |format| is not equal to the +diff --git a/ui/ozone/platform/x11/ozone_platform_x11.cc b/ui/ozone/platform/x11/ozone_platform_x11.cc +index 8889828e0f..963dc7a0cd 100644 +--- a/ui/ozone/platform/x11/ozone_platform_x11.cc ++++ b/ui/ozone/platform/x11/ozone_platform_x11.cc +@@ -208,6 +208,9 @@ class OzonePlatformX11 : public OzonePlatform, + properties->supports_global_application_menus = true; + properties->app_modal_dialogs_use_event_blocker = true; + properties->fetch_buffer_formats_for_gmb_on_gpu = true; ++#if defined(OS_LINUX) ++ properties->supports_vaapi = true; ++#endif + + initialised = true; + } +diff --git a/ui/ozone/public/ozone_platform.h b/ui/ozone/public/ozone_platform.h +index df95f07486..2d7f44bbfa 100644 +--- a/ui/ozone/public/ozone_platform.h ++++ b/ui/ozone/public/ozone_platform.h +@@ -15,6 +15,7 @@ + #include "base/macros.h" + #include "base/message_loop/message_pump_type.h" + #include "base/single_thread_task_runner.h" ++#include "build/build_config.h" + #include "mojo/public/cpp/bindings/binder_map.h" + #include "ui/gfx/buffer_types.h" + #include "ui/gfx/native_widget_types.h" +@@ -154,6 +155,15 @@ class COMPONENT_EXPORT(OZONE) OzonePlatform { + // Determines whether buffer formats should be fetched on GPU and passed + // back via gpu extra info. + bool fetch_buffer_formats_for_gmb_on_gpu = false; ++ ++#if defined(OS_LINUX) ++ // TODO(crbug.com/1116701): add vaapi support for other Ozone platforms on ++ // Linux. At the moment, VA-API Linux implementation supports only X11 ++ // backend. This implementation must be refactored to support Ozone ++ // properly. As a temporary solution, VA-API on Linux checks if vaapi is ++ // supported (which implicitly means that it is Ozone/X11). ++ bool supports_vaapi = false; ++#endif + }; + + // Groups platform properties that can only be known at run time. diff --git a/network/web/chromium-browser/files/patches/chromium-90-ruy-include.patch b/network/web/chromium-browser/files/patches/chromium-90-ruy-include.patch deleted file mode 100644 index 81d5367807..0000000000 --- a/network/web/chromium-browser/files/patches/chromium-90-ruy-include.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 714092f336bb14d2fcc27396ec323b3d843bb962 Mon Sep 17 00:00:00 2001 -From: Stephan Hartmann -Date: Thu, 4 Mar 2021 15:05:46 +0000 -Subject: [PATCH] IWYU: include limits for std::numeric_limits - ---- - third_party/ruy/src/ruy/block_map.cc | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/third_party/ruy/src/ruy/block_map.cc b/third_party/ruy/src/ruy/block_map.cc -index 44e5039..a7a7559 100644 ---- a/third_party/ruy/src/ruy/block_map.cc -+++ b/third_party/ruy/src/ruy/block_map.cc -@@ -17,6 +17,7 @@ limitations under the License. - - #include - #include -+#include - - #ifdef RUY_MAKEBLOCKMAP_DEBUG - #include --- -2.26.2 - diff --git a/network/web/chromium-browser/files/patches/chromium-91-libyuv-aarch64.patch b/network/web/chromium-browser/files/patches/chromium-91-libyuv-aarch64.patch deleted file mode 100644 index 77b8f4cc9b..0000000000 --- a/network/web/chromium-browser/files/patches/chromium-91-libyuv-aarch64.patch +++ /dev/null @@ -1,91 +0,0 @@ -diff --git a/third_party/libyuv/source/row_neon64.cc b/third_party/libyuv/source/row_neon64.cc -index 350c964..2aab413 100644 ---- a/third_party/libyuv/source/row_neon64.cc -+++ b/third_party/libyuv/source/row_neon64.cc -@@ -1835,7 +1835,7 @@ void ARGBToAB64Row_NEON(const uint8_t* src_argb, - : "+r"(src_argb), // %0 - "+r"(dst_ab64), // %1 - "+r"(width) // %2 -- : "m"(kShuffleARGBToABGR) // %3 -+ : "Q"(kShuffleARGBToABGR) // %3 - : "cc", "memory", "v0", "v1", "v2", "v3", "v4"); - } - -@@ -1859,7 +1859,7 @@ void AR64ToARGBRow_NEON(const uint16_t* src_ar64, - : "+r"(src_ar64), // %0 - "+r"(dst_argb), // %1 - "+r"(width) // %2 -- : "m"(kShuffleAR64ToARGB) // %3 -+ : "Q"(kShuffleAR64ToARGB) // %3 - : "cc", "memory", "v0", "v1", "v2", "v3", "v4"); - } - -@@ -1883,7 +1883,7 @@ void AB64ToARGBRow_NEON(const uint16_t* src_ab64, - : "+r"(src_ab64), // %0 - "+r"(dst_argb), // %1 - "+r"(width) // %2 -- : "m"(kShuffleAB64ToARGB) // %3 -+ : "Q"(kShuffleAB64ToARGB) // %3 - : "cc", "memory", "v0", "v1", "v2", "v3", "v4"); - } - -diff --git a/third_party/libyuv/source/scale_neon64.cc b/third_party/libyuv/source/scale_neon64.cc -index 8656fec..9f9636e 100644 ---- a/third_party/libyuv/source/scale_neon64.cc -+++ b/third_party/libyuv/source/scale_neon64.cc -@@ -601,8 +601,8 @@ void ScaleRowUp2_Bilinear_NEON(const uint8_t* src_ptr, - "umlal v4.8h, v1.8b, v31.8b \n" // 3*near+far (2, odd) - "umlal v5.8h, v0.8b, v31.8b \n" // 3*near+far (2, even) - -- "mov v0.8h, v4.8h \n" -- "mov v1.8h, v5.8h \n" -+ "mov v0.16b, v4.16b \n" -+ "mov v1.16b, v5.16b \n" - "mla v4.8h, v2.8h, v30.8h \n" // 9 3 3 1 (1, odd) - "mla v5.8h, v3.8h, v30.8h \n" // 9 3 3 1 (1, even) - "mla v2.8h, v0.8h, v30.8h \n" // 9 3 3 1 (2, odd) -@@ -642,7 +642,7 @@ void ScaleRowUp2_Linear_12_NEON(const uint16_t* src_ptr, - "ld1 {v1.8h}, [%1], #16 \n" // 12345678 (16b) - "prfm pldl1keep, [%0, 448] \n" // prefetch 7 lines ahead - -- "mov v2.8h, v0.8h \n" -+ "mov v2.16b, v0.16b \n" - "mla v0.8h, v1.8h, v31.8h \n" // 3*near+far (odd) - "mla v1.8h, v2.8h, v31.8h \n" // 3*near+far (even) - -@@ -679,7 +679,7 @@ void ScaleRowUp2_Bilinear_12_NEON(const uint16_t* src_ptr, - "ld1 {v3.8h}, [%2], #16 \n" // 12345678 (16b) - "prfm pldl1keep, [%0, 448] \n" // prefetch 7 lines ahead - -- "mov v0.8h, v2.8h \n" -+ "mov v0.16b, v2.16b \n" - "mla v2.8h, v3.8h, v31.8h \n" // 3*near+far (odd) - "mla v3.8h, v0.8h, v31.8h \n" // 3*near+far (even) - -@@ -687,12 +687,12 @@ void ScaleRowUp2_Bilinear_12_NEON(const uint16_t* src_ptr, - "ld1 {v5.8h}, [%3], #16 \n" // 12345678 (16b) - "prfm pldl1keep, [%1, 448] \n" // prefetch 7 lines ahead - -- "mov v0.8h, v4.8h \n" -+ "mov v0.16b, v4.16b \n" - "mla v4.8h, v5.8h, v31.8h \n" // 3*near+far (odd) - "mla v5.8h, v0.8h, v31.8h \n" // 3*near+far (even) - -- "mov v0.8h, v4.8h \n" -- "mov v1.8h, v5.8h \n" -+ "mov v0.16b, v4.16b \n" -+ "mov v1.16b, v5.16b \n" - "mla v4.8h, v2.8h, v31.8h \n" // 9 3 3 1 (1, odd) - "mla v5.8h, v3.8h, v31.8h \n" // 9 3 3 1 (1, even) - "mla v2.8h, v0.8h, v31.8h \n" // 9 3 3 1 (2, odd) -@@ -887,8 +887,8 @@ void ScaleUVRowUp2_Bilinear_NEON(const uint8_t* src_ptr, - "umlal v4.8h, v1.8b, v31.8b \n" // 3*near+far (2, odd) - "umlal v5.8h, v0.8b, v31.8b \n" // 3*near+far (2, even) - -- "mov v0.8h, v4.8h \n" -- "mov v1.8h, v5.8h \n" -+ "mov v0.16b, v4.16b \n" -+ "mov v1.16b, v5.16b \n" - "mla v4.8h, v2.8h, v30.8h \n" // 9 3 3 1 (1, odd) - "mla v5.8h, v3.8h, v30.8h \n" // 9 3 3 1 (1, even) - "mla v2.8h, v0.8h, v30.8h \n" // 9 3 3 1 (2, odd) diff --git a/network/web/chromium-browser/files/patches/chromium-92-v8-constexpr.patch b/network/web/chromium-browser/files/patches/chromium-92-v8-constexpr.patch deleted file mode 100644 index cbe134773a..0000000000 --- a/network/web/chromium-browser/files/patches/chromium-92-v8-constexpr.patch +++ /dev/null @@ -1,17 +0,0 @@ -GCC: make VRegister::from_code() constexpr on aarch64 - -LiftoffRegister::gp() and LiftoffRegister::fp() are constexpr. -Therefore, VRegister::from_code() needs to be constexpr as well. -diff --git a/v8/src/codegen/arm64/register-arm64.h b/v8/src/codegen/arm64/register-arm64.h -index 1150daf..21007a5 100644 ---- a/v8/src/codegen/arm64/register-arm64.h -+++ b/v8/src/codegen/arm64/register-arm64.h -@@ -413,7 +413,7 @@ class VRegister : public CPURegister { - static constexpr int kMaxNumRegisters = kNumberOfVRegisters; - STATIC_ASSERT(kMaxNumRegisters == kDoubleAfterLast); - -- static VRegister from_code(int code) { -+ static constexpr VRegister from_code(int code) { - // Always return a D register. - return VRegister::Create(code, kDRegSizeInBits); - } diff --git a/network/web/chromium-browser/files/patches/chromium-95-BitstreamReader-namespace.patch b/network/web/chromium-browser/files/patches/chromium-95-BitstreamReader-namespace.patch new file mode 100644 index 0000000000..5a42614b13 --- /dev/null +++ b/network/web/chromium-browser/files/patches/chromium-95-BitstreamReader-namespace.patch @@ -0,0 +1,41 @@ +From c23f09d436b566934d02c26a19e3cf5d31545855 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Sat, 4 Sep 2021 17:02:00 +0000 +Subject: [PATCH] GCC: fix template specialization in webrtc::BitstreamReader + +GCC complains that explicit specialization in non-namespace scope +is happening for webrtc::BitstreamReader::Read(). However, specialization +for bool isn't used because std::is_unsigned::value returns true. +Add std::is_same for bool check and enable second specialization only +for bool types. + +--- + third_party/webrtc/rtc_base/bitstream_reader.h | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/third_party/webrtc/rtc_base/bitstream_reader.h b/third_party/webrtc/rtc_base/bitstream_reader.h +index 8c0f66f..cd8537f 100644 +--- a/third_party/webrtc/rtc_base/bitstream_reader.h ++++ b/third_party/webrtc/rtc_base/bitstream_reader.h +@@ -61,14 +61,16 @@ class BitstreamReader { + // Reads unsigned integer of fixed width. + template ::value && ++ !std::is_same::value && + sizeof(T) <= 8>::type* = nullptr> + ABSL_MUST_USE_RESULT T Read() { + return rtc::dchecked_cast(ReadBits(sizeof(T) * 8)); + } + + // Reads single bit as boolean. +- template <> +- ABSL_MUST_USE_RESULT bool Read() { ++ template ::value>::type* = nullptr> ++ ABSL_MUST_USE_RESULT bool Read() { + return ReadBit() != 0; + } + +-- +2.32.0 + diff --git a/network/web/chromium-browser/files/patches/chromium-91-compiler.patch b/network/web/chromium-browser/files/patches/chromium-95-compiler.patch similarity index 60% rename from network/web/chromium-browser/files/patches/chromium-91-compiler.patch rename to network/web/chromium-browser/files/patches/chromium-95-compiler.patch index 8724c6b8c7..59a83ac592 100644 --- a/network/web/chromium-browser/files/patches/chromium-91-compiler.patch +++ b/network/web/chromium-browser/files/patches/chromium-95-compiler.patch @@ -1,17 +1,17 @@ From f4d0b0eb899005b4b8b6388e1d8bb82cc0018fc8 Mon Sep 17 00:00:00 2001 From: Mike Gilbert -Date: Wed, 7 Apr 2021 08:50:04 +0000 +Date: Sat, 4 Sep 2021 15:13:20 +0000 Subject: [PATCH] Disable various compiler configs --- - build/config/compiler/BUILD.gn | 59 ++++++++++------------------------ - 1 file changed, 17 insertions(+), 42 deletions(-) + build/config/compiler/BUILD.gn | 105 ++++++--------------------------- + 1 file changed, 17 insertions(+), 88 deletions(-) diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn -index 72ea590..539672d 100644 +index 219a2be..7565c83 100644 --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -273,8 +273,6 @@ config("compiler") { +@@ -292,8 +292,6 @@ config("compiler") { configs += [ # See the definitions below. @@ -20,7 +20,7 @@ index 72ea590..539672d 100644 ":compiler_codegen", ":compiler_deterministic", ] -@@ -518,24 +516,6 @@ config("compiler") { +@@ -531,31 +529,6 @@ config("compiler") { ldflags += [ "-Wl,-z,keep-text-section-prefix" ] } @@ -40,12 +40,65 @@ index 72ea590..539672d 100644 - ldflags += [ "-Wl,-mllvm,-instcombine-lower-dbg-declare=0" ] - } - } +- +- # TODO(crbug.com/1235145): Investigate why/if this should be needed. +- if (is_win) { +- cflags += [ "/clang:-ffp-contract=off" ] +- } else { +- cflags += [ "-ffp-contract=off" ] +- } - } - # C11/C++11 compiler flags setup. # --------------------------- if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) || -@@ -1643,7 +1623,7 @@ config("chromium_code") { +@@ -1246,45 +1219,6 @@ config("compiler_deterministic") { + } + } + +- # Makes builds independent of absolute file path. +- if (is_clang && strip_absolute_paths_from_debug_symbols) { +- # If debug option is given, clang includes $cwd in debug info by default. +- # For such build, this flag generates reproducible obj files even we use +- # different build directory like "out/feature_a" and "out/feature_b" if +- # we build same files with same compile flag. +- # Other paths are already given in relative, no need to normalize them. +- if (is_nacl) { +- # TODO(https://crbug.com/1231236): Use -ffile-compilation-dir= here. +- cflags += [ +- "-Xclang", +- "-fdebug-compilation-dir", +- "-Xclang", +- ".", +- ] +- } else { +- # -ffile-compilation-dir is an alias for both -fdebug-compilation-dir= +- # and -fcoverage-compilation-dir=. +- cflags += [ "-ffile-compilation-dir=." ] +- } +- if (!is_win) { +- # We don't use clang -cc1as on Windows (yet? https://crbug.com/762167) +- asmflags = [ "-Wa,-fdebug-compilation-dir,." ] +- } +- +- if (is_win && use_lld) { +- if (symbol_level == 2 || (is_clang && using_sanitizer)) { +- # Absolutize source file paths for PDB. Pass the real build directory +- # if the pdb contains source-level debug information and if linker +- # reproducibility is not critical. +- ldflags += [ "/PDBSourcePath:" + rebase_path(root_build_dir) ] +- } else { +- # Use a fake fixed base directory for paths in the pdb to make the pdb +- # output fully deterministic and independent of the build directory. +- ldflags += [ "/PDBSourcePath:o:\fake\prefix" ] +- } +- } +- } +- + # Tells the compiler not to use absolute paths when passing the default + # paths to the tools it invokes. We don't want this because we don't + # really need it and it can mess up the goma cache entries. +@@ -1704,7 +1638,7 @@ config("chromium_code") { defines = [ "_HAS_NODISCARD" ] } } else { @@ -54,7 +107,7 @@ index 72ea590..539672d 100644 if (treat_warnings_as_errors) { cflags += [ "-Werror" ] -@@ -1652,10 +1632,6 @@ config("chromium_code") { +@@ -1713,10 +1647,6 @@ config("chromium_code") { # well. ldflags = [ "-Werror" ] } @@ -65,7 +118,7 @@ index 72ea590..539672d 100644 # In Chromium code, we define __STDC_foo_MACROS in order to get the # C99 macros on Mac and Linux. -@@ -1664,15 +1640,6 @@ config("chromium_code") { +@@ -1725,15 +1655,6 @@ config("chromium_code") { "__STDC_FORMAT_MACROS", ] @@ -81,7 +134,7 @@ index 72ea590..539672d 100644 if (is_mac) { cflags_objc = [ "-Wobjc-missing-property-synthesis" ] cflags_objcc = [ "-Wobjc-missing-property-synthesis" ] -@@ -2068,7 +2035,8 @@ config("default_stack_frames") { +@@ -2101,7 +2022,8 @@ config("default_stack_frames") { } # Default "optimization on" config. @@ -91,7 +144,7 @@ index 72ea590..539672d 100644 if (is_win) { if (chrome_pgo_phase != 2) { # Favor size over speed, /O1 must be before the common flags. -@@ -2103,7 +2071,8 @@ config("optimize") { +@@ -2141,7 +2063,8 @@ config("optimize") { } # Turn off optimizations. @@ -101,7 +154,7 @@ index 72ea590..539672d 100644 if (is_win) { cflags = [ "/Od", # Disable optimization. -@@ -2143,7 +2112,8 @@ config("no_optimize") { +@@ -2181,7 +2104,8 @@ config("no_optimize") { # Turns up the optimization level. On Windows, this implies whole program # optimization and link-time code generation which is very expensive and should # be used sparingly. @@ -111,7 +164,7 @@ index 72ea590..539672d 100644 if (is_nacl && is_nacl_irt) { # The NaCl IRT is a special case and always wants its own config. # Various components do: -@@ -2175,7 +2145,8 @@ config("optimize_max") { +@@ -2214,7 +2138,8 @@ config("optimize_max") { # # TODO(crbug.com/621335) - rework how all of these configs are related # so that we don't need this disclaimer. @@ -121,7 +174,7 @@ index 72ea590..539672d 100644 if (is_nacl && is_nacl_irt) { # The NaCl IRT is a special case and always wants its own config. # Various components do: -@@ -2200,7 +2171,8 @@ config("optimize_speed") { +@@ -2240,7 +2165,8 @@ config("optimize_speed") { } } @@ -129,9 +182,9 @@ index 72ea590..539672d 100644 +config("optimize_fuzzing") { } +config("xoptimize_fuzzing") { cflags = [ "-O1" ] + common_optimize_on_cflags + rustflags = [ "-Copt-level=1" ] ldflags = common_optimize_on_ldflags - visibility = [ ":default_optimization" ] -@@ -2319,7 +2291,8 @@ config("win_pdbaltpath") { +@@ -2360,7 +2286,8 @@ config("win_pdbaltpath") { } # Full symbols. @@ -141,7 +194,7 @@ index 72ea590..539672d 100644 if (is_win) { if (is_clang) { cflags = [ "/Z7" ] # Debug information in the .obj files. -@@ -2422,7 +2395,8 @@ config("symbols") { +@@ -2474,7 +2401,8 @@ config("symbols") { # Minimal symbols. # This config guarantees to hold symbol for stack trace which are shown to user # when crash happens in unittests running on buildbot. @@ -151,7 +204,7 @@ index 72ea590..539672d 100644 if (is_win) { # Functions, files, and line tables only. cflags = [] -@@ -2481,7 +2455,8 @@ config("minimal_symbols") { +@@ -2546,7 +2474,8 @@ config("minimal_symbols") { # This configuration contains function names only. That is, the compiler is # told to not generate debug information and the linker then just puts function # names in the final debug information. @@ -162,4 +215,5 @@ index 72ea590..539672d 100644 ldflags = [ "/DEBUG" ] -- -2.26.3 +2.32.0 + diff --git a/network/web/chromium-browser/files/patches/chromium-95-libyuv-aarch64.patch b/network/web/chromium-browser/files/patches/chromium-95-libyuv-aarch64.patch new file mode 100644 index 0000000000..b214356062 --- /dev/null +++ b/network/web/chromium-browser/files/patches/chromium-95-libyuv-aarch64.patch @@ -0,0 +1,30 @@ +diff --git a/third_party/libyuv/source/row_neon64.cc b/third_party/libyuv/source/row_neon64.cc +index 350c964..2aab413 100644 +--- a/third_party/libyuv/source/row_neon64.cc ++++ b/third_party/libyuv/source/row_neon64.cc +@@ -1835,7 +1835,7 @@ void ARGBToAB64Row_NEON(const uint8_t* src_argb, + : "+r"(src_argb), // %0 + "+r"(dst_ab64), // %1 + "+r"(width) // %2 +- : "m"(kShuffleARGBToABGR) // %3 ++ : "Q"(kShuffleARGBToABGR) // %3 + : "cc", "memory", "v0", "v1", "v2", "v3", "v4"); + } + +@@ -1859,7 +1859,7 @@ void AR64ToARGBRow_NEON(const uint16_t* src_ar64, + : "+r"(src_ar64), // %0 + "+r"(dst_argb), // %1 + "+r"(width) // %2 +- : "m"(kShuffleAR64ToARGB) // %3 ++ : "Q"(kShuffleAR64ToARGB) // %3 + : "cc", "memory", "v0", "v1", "v2", "v3", "v4"); + } + +@@ -1883,7 +1883,7 @@ void AB64ToARGBRow_NEON(const uint16_t* src_ab64, + : "+r"(src_ab64), // %0 + "+r"(dst_argb), // %1 + "+r"(width) // %2 +- : "m"(kShuffleAB64ToARGB) // %3 ++ : "Q"(kShuffleAB64ToARGB) // %3 + : "cc", "memory", "v0", "v1", "v2", "v3", "v4"); + } diff --git a/network/web/chromium-browser/files/patches/chromium-95-quiche-include.patch b/network/web/chromium-browser/files/patches/chromium-95-quiche-include.patch new file mode 100644 index 0000000000..4bbd45cfc0 --- /dev/null +++ b/network/web/chromium-browser/files/patches/chromium-95-quiche-include.patch @@ -0,0 +1,25 @@ +From a9d986203bcfbaab84f270c1dc6c3abb4c450ee1 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Fri, 17 Sep 2021 14:57:33 +0000 +Subject: [PATCH] IWYU: add stddef.h for size_t in WindowManager + +--- + net/third_party/quiche/src/http2/adapter/window_manager.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/net/third_party/quiche/src/http2/adapter/window_manager.h b/net/third_party/quiche/src/http2/adapter/window_manager.h +index f15982d..5a7701e 100644 +--- a/net/third_party/quiche/src/http2/adapter/window_manager.h ++++ b/net/third_party/quiche/src/http2/adapter/window_manager.h +@@ -1,6 +1,8 @@ + #ifndef QUICHE_HTTP2_ADAPTER_WINDOW_MANAGER_H_ + #define QUICHE_HTTP2_ADAPTER_WINDOW_MANAGER_H_ + ++#include ++ + #include + + #include "common/platform/api/quiche_export.h" +-- +2.32.0 + diff --git a/network/web/chromium-browser/files/patches/chromium-swiftshader-export.patch b/network/web/chromium-browser/files/patches/chromium-swiftshader-export.patch deleted file mode 100644 index ced2fc15b8..0000000000 --- a/network/web/chromium-browser/files/patches/chromium-swiftshader-export.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/third_party/swiftshader/src/OpenGL/libEGL/BUILD.gn b/third_party/swiftshader/src/OpenGL/libEGL/BUILD.gn -index 1421911..cf86974 100644 ---- a/third_party/swiftshader/src/OpenGL/libEGL/BUILD.gn -+++ b/third_party/swiftshader/src/OpenGL/libEGL/BUILD.gn -@@ -42,7 +42,7 @@ config("swiftshader_libEGL_private_config") { - } else if (is_clang) { - defines += [ "EGLAPI=__attribute__((visibility(\"protected\"))) __attribute__((no_sanitize(\"function\")))" ] - } else { -- defines += [ "EGLAPI= " ] -+ defines += [ "EGLAPI=__attribute__((visibility(\"protected\")))" ] - } - } - } -diff --git a/third_party/swiftshader/src/OpenGL/libGLESv2/BUILD.gn b/third_party/swiftshader/src/OpenGL/libGLESv2/BUILD.gn -index f71dc68..fc3ba3a 100644 ---- a/third_party/swiftshader/src/OpenGL/libGLESv2/BUILD.gn -+++ b/third_party/swiftshader/src/OpenGL/libGLESv2/BUILD.gn -@@ -57,7 +57,7 @@ config("swiftshader_libGLESv2_private_config") { - } else if (is_clang) { - defines += [ "GL_APICALL=__attribute__((visibility(\"protected\"))) __attribute__((no_sanitize(\"function\")))" ] - } else { -- defines += [ "GL_APICALL= " ] -+ defines += [ "GL_APICALL=__attribute__((visibility(\"protected\")))" ] - } - } - } diff --git a/network/web/chromium-browser/files/pipewire-do-not-typecheck-the-portal-session_handle.patch b/network/web/chromium-browser/files/pipewire-do-not-typecheck-the-portal-session_handle.patch new file mode 100644 index 0000000000..e1f15b4ab3 --- /dev/null +++ b/network/web/chromium-browser/files/pipewire-do-not-typecheck-the-portal-session_handle.patch @@ -0,0 +1,44 @@ +From 408e4da26f1b782005ab10307c83892055d7ef45 Mon Sep 17 00:00:00 2001 +From: Robert Mader +Date: Mon, 20 Sep 2021 15:15:31 +0200 +Subject: [PATCH] Pipewire: Do not typecheck the portal session_handle +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Desktop sharing via Pipewire will break for clients updating to +xdg-desktop-portal 1.10 due to a bug fix in the API implementation[1]. + +This ports over a fix from OBS Studio[2] that also is used in the +downstream Firefox WebRTC copy[3]. + +1: https://github.com/flatpak/xdg-desktop-portal/pull/609 +2: https://github.com/obsproject/obs-studio/pull/5294 +3: https://phabricator.services.mozilla.com/D126053 +Bug: webrtc:13192 +Change-Id: I497dd1bb53cc39dee3732c2e0014e2e36a7afb6c +Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/232329 +Reviewed-by: Erik Språng +Reviewed-by: Tommi +Commit-Queue: Tommi +Cr-Commit-Position: refs/heads/main@{#35153} +--- + modules/desktop_capture/linux/base_capturer_pipewire.cc | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/modules/desktop_capture/linux/base_capturer_pipewire.cc b/modules/desktop_capture/linux/base_capturer_pipewire.cc +index 2d5e973..45229b2 100644 +--- a/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc ++++ b/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc +@@ -801,8 +801,9 @@ void BaseCapturerPipeWire::OnSessionRequestResponseSignal( + Scoped response_data; + g_variant_get(parameters, "(u@a{sv})", &portal_response, + response_data.receive()); +- g_variant_lookup(response_data.get(), "session_handle", "s", +- &that->session_handle_); ++ Scoped session_handle( ++ g_variant_lookup_value(response_data.get(), "session_handle", nullptr)); ++ that->session_handle_ = g_variant_dup_string(session_handle.get(), nullptr); + + if (!that->session_handle_ || portal_response) { + RTC_LOG(LS_ERROR) diff --git a/network/web/chromium-browser/files/replace-blacklist-with-ignorelist.patch b/network/web/chromium-browser/files/replace-blacklist-with-ignorelist.patch new file mode 100644 index 0000000000..1cc3a501f1 --- /dev/null +++ b/network/web/chromium-browser/files/replace-blacklist-with-ignorelist.patch @@ -0,0 +1,196 @@ +From 9d080c0934b848ee4a05013c78641e612fcc1e03 Mon Sep 17 00:00:00 2001 +From: Dylan Cutler +Date: Wed, 26 May 2021 16:39:52 +0000 +Subject: [PATCH] Reland "Replace 'blacklist' with 'ignorelist' in + ./tools/msan/." + +This is a reland of 3b6263f2eece1264b052dfdcbc03b851d5abfb48 + +Relanding now that https://chromium-review.googlesource.com/c/chromiumos/overlays/chromiumos-overlay/+/2897974 is merged + +Original change's description: +> Replace 'blacklist' with 'ignorelist' in ./tools/msan/. +> +> Bug: 1097272, 1097268 +> Change-Id: Id5c8227a5bfb1ffaec82d3168b609085b10c8297 +> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2867730 +> Commit-Queue: Dylan Cutler +> Reviewed-by: Nico Weber +> Reviewed-by: Jonathan Metzman +> Cr-Commit-Position: refs/heads/master@{#883035} + +Bug: 1097272 +Bug: 1097268 +Change-Id: I11a5bc8972680c95fb1dab95ed3b707ed76f4667 +Cq-Include-Trybots: luci.chromium.try:chromeos-amd64-generic-cfi-thin-lto-rel +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2911096 +Commit-Queue: Dylan Cutler +Reviewed-by: Nico Weber +Cr-Commit-Position: refs/heads/master@{#886773} +--- + build/config/sanitizers/BUILD.gn | 44 ++++++++++---------- + build_overrides/build.gni | 14 +++---- + tools/msan/{blacklist.txt => ignorelist.txt} | 0 + 3 files changed, 29 insertions(+), 29 deletions(-) + rename tools/msan/{blacklist.txt => ignorelist.txt} (100%) + +diff --git a/build/config/sanitizers/BUILD.gn b/build/config/sanitizers/BUILD.gn +index aaaad023474d..55b388a43743 100644 +--- a/build/config/sanitizers/BUILD.gn ++++ b/build/config/sanitizers/BUILD.gn +@@ -272,11 +272,11 @@ config("asan_flags") { + if (is_asan) { + cflags += [ "-fsanitize=address" ] + if (is_win) { +- if (!defined(asan_win_blacklist_path)) { +- asan_win_blacklist_path = ++ if (!defined(asan_win_blocklist_path)) { ++ asan_win_blocklist_path = + rebase_path("//tools/memory/asan/blocklist_win.txt", root_build_dir) + } +- cflags += [ "-fsanitize-blacklist=$asan_win_blacklist_path" ] ++ cflags += [ "-fsanitize-ignorelist=$asan_win_blocklist_path" ] + } + } + } +@@ -306,13 +306,13 @@ config("link_shared_library") { + config("cfi_flags") { + cflags = [] + if (is_cfi && current_toolchain == default_toolchain) { +- if (!defined(cfi_blacklist_path)) { +- cfi_blacklist_path = ++ if (!defined(cfi_ignorelist_path)) { ++ cfi_ignorelist_path = + rebase_path("//tools/cfi/ignores.txt", root_build_dir) + } + cflags += [ + "-fsanitize=cfi-vcall", +- "-fsanitize-blacklist=$cfi_blacklist_path", ++ "-fsanitize-ignorelist=$cfi_ignorelist_path", + ] + + if (use_cfi_cast) { +@@ -409,14 +409,14 @@ config("msan_flags") { + if (is_msan) { + assert(is_linux || is_chromeos, + "msan only supported on linux x86_64/ChromeOS") +- if (!defined(msan_blacklist_path)) { +- msan_blacklist_path = +- rebase_path("//tools/msan/blacklist.txt", root_build_dir) ++ if (!defined(msan_ignorelist_path)) { ++ msan_ignorelist_path = ++ rebase_path("//tools/msan/ignorelist.txt", root_build_dir) + } + cflags = [ + "-fsanitize=memory", + "-fsanitize-memory-track-origins=$msan_track_origins", +- "-fsanitize-blacklist=$msan_blacklist_path", ++ "-fsanitize-ignorelist=$msan_ignorelist_path", + ] + } + } +@@ -424,13 +424,13 @@ config("msan_flags") { + config("tsan_flags") { + if (is_tsan) { + assert(is_linux || is_chromeos, "tsan only supported on linux x86_64") +- if (!defined(tsan_blacklist_path)) { +- tsan_blacklist_path = ++ if (!defined(tsan_ignorelist_path)) { ++ tsan_ignorelist_path = + rebase_path("//tools/memory/tsan_v2/ignores.txt", root_build_dir) + } + cflags = [ + "-fsanitize=thread", +- "-fsanitize-blacklist=$tsan_blacklist_path", ++ "-fsanitize-ignorelist=$tsan_ignorelist_path", + ] + } + } +@@ -438,8 +438,8 @@ config("tsan_flags") { + config("ubsan_flags") { + cflags = [] + if (is_ubsan) { +- if (!defined(ubsan_blacklist_path)) { +- ubsan_blacklist_path = ++ if (!defined(ubsan_ignorelist_path)) { ++ ubsan_ignorelist_path = + rebase_path("//tools/ubsan/ignorelist.txt", root_build_dir) + } + cflags += [ +@@ -456,7 +456,7 @@ config("ubsan_flags") { + "-fsanitize=signed-integer-overflow", + "-fsanitize=unreachable", + "-fsanitize=vla-bound", +- "-fsanitize-blacklist=$ubsan_blacklist_path", ++ "-fsanitize-ignorelist=$ubsan_ignorelist_path", + ] + + # Chromecast ubsan builds fail to compile with these +@@ -486,8 +486,8 @@ config("ubsan_no_recover") { + + config("ubsan_security_flags") { + if (is_ubsan_security) { +- if (!defined(ubsan_security_blacklist_path)) { +- ubsan_security_blacklist_path = ++ if (!defined(ubsan_security_ignorelist_path)) { ++ ubsan_security_ignorelist_path = + rebase_path("//tools/ubsan/security_ignorelist.txt", root_build_dir) + } + cflags = [ +@@ -495,7 +495,7 @@ config("ubsan_security_flags") { + "-fsanitize=shift", + "-fsanitize=signed-integer-overflow", + "-fsanitize=vla-bound", +- "-fsanitize-blacklist=$ubsan_security_blacklist_path", ++ "-fsanitize-ignorelist=$ubsan_security_ignorelist_path", + ] + } + } +@@ -508,13 +508,13 @@ config("ubsan_null_flags") { + + config("ubsan_vptr_flags") { + if (is_ubsan_vptr) { +- if (!defined(ubsan_vptr_blacklist_path)) { +- ubsan_vptr_blacklist_path = ++ if (!defined(ubsan_vptr_ignorelist_path)) { ++ ubsan_vptr_ignorelist_path = + rebase_path("//tools/ubsan/vptr_ignorelist.txt", root_build_dir) + } + cflags = [ + "-fsanitize=vptr", +- "-fsanitize-blacklist=$ubsan_vptr_blacklist_path", ++ "-fsanitize-ignorelist=$ubsan_vptr_ignorelist_path", + ] + } + } +diff --git a/build_overrides/build.gni b/build_overrides/build.gni +index 82627b03653f..f3e563ab701b 100644 +--- a/build_overrides/build.gni ++++ b/build_overrides/build.gni +@@ -42,15 +42,15 @@ declare_args() { + # Allows different projects to specify their own suppression/ignore lists for + # sanitizer tools. + # asan_suppressions_file = "path/to/asan_suppressions.cc" +-# asan_win_blacklist_path = "path/to/asan/blocklist_win.txt" ++# asan_win_ignorelist_path = "path/to/asan/blocklist_win.txt" + # lsan_suppressions_file = "path/to/lsan_suppressions.cc" + # tsan_suppressions_file = "path/to/tsan_suppressions.cc" +-# tsan_blacklist_path = "path/to/tsan/ignores.txt" +-# msan_blacklist_path = "path/to/msan/blacklist.txt" +-# ubsan_blacklist_path = "path/to/ubsan/blacklist.txt" +-# ubsan_vptr_blacklist_path = "path/to/ubsan/vptr_blacklist.txt" +-# ubsan_security_blacklist_path = "path/to/ubsan/security_blacklist.txt" +-# cfi_blacklist_path = "path/to/cfi/ignores.txt" ++# tsan_ignorelist_path = "path/to/tsan/ignores.txt" ++# msan_ignorelist_path = "path/to/msan/ignorelist.txt" ++# ubsan_ignorelist_path = "path/to/ubsan/ignorelist.txt" ++# ubsan_vptr_ignorelist_path = "path/to/ubsan/vptr_ignorelist.txt" ++# ubsan_security_ignorelist_path = "path/to/ubsan/security_ignorelist.txt" ++# cfi_ignorelist_path = "path/to/cfi/ignores.txt" + + declare_args() { + # Android 32-bit non-component, non-clang builds cannot have symbol_level=2 +diff --git a/tools/msan/blacklist.txt b/tools/msan/ignorelist.txt +similarity index 100% +rename from tools/msan/blacklist.txt +rename to tools/msan/ignorelist.txt diff --git a/network/web/chromium-browser/files/unexpire-accelerated-video-decode-flag.patch b/network/web/chromium-browser/files/unexpire-accelerated-video-decode-flag.patch new file mode 100644 index 0000000000..da3a4a5e91 --- /dev/null +++ b/network/web/chromium-browser/files/unexpire-accelerated-video-decode-flag.patch @@ -0,0 +1,11 @@ +--- chrome/browser/flag-metadata.json.orig 2021-09-21 18:34:38.740426608 +0000 ++++ chrome/browser/flag-metadata.json 2021-09-21 18:35:09.392000797 +0000 +@@ -1285,7 +1285,7 @@ + { + "name": "enable-accelerated-video-decode", + "owners": [ "media-dev@chromium.org" ], +- "expiry_milestone": 93 ++ "expiry_milestone": 99 + }, + { + "name": "enable-accessibility-live-caption", diff --git a/network/web/chromium-browser/files/use-ffile-compilation-dir.patch b/network/web/chromium-browser/files/use-ffile-compilation-dir.patch new file mode 100644 index 0000000000..eb14513c99 --- /dev/null +++ b/network/web/chromium-browser/files/use-ffile-compilation-dir.patch @@ -0,0 +1,65 @@ +From 34a955823630096f5b01c2b01d51c1ea59d22763 Mon Sep 17 00:00:00 2001 +From: Zequan Wu +Date: Tue, 20 Jul 2021 14:13:50 +0000 +Subject: [PATCH] Use -ffile-compilation-dir= instead of + -fdebug-compilation-dir= + +Bug: 1010267 +Change-Id: If2b4ead8535a76490eb466a38e3d8fed6ea91079 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2770738 +Auto-Submit: Zequan Wu +Commit-Queue: Nico Weber +Reviewed-by: Nico Weber +Cr-Commit-Position: refs/heads/master@{#903456} +--- + build/config/compiler/BUILD.gn | 18 ++++++++++++------ + build/config/compiler/compiler.gni | 7 ++----- + 2 files changed, 14 insertions(+), 11 deletions(-) + +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index ede07d111c..6db16c1cdd 100644 +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -1216,12 +1216,18 @@ config("compiler_deterministic") { + # different build directory like "out/feature_a" and "out/feature_b" if + # we build same files with same compile flag. + # Other paths are already given in relative, no need to normalize them. +- cflags += [ +- "-Xclang", +- "-fdebug-compilation-dir", +- "-Xclang", +- ".", +- ] ++ if (is_nacl) { ++ cflags += [ ++ "-Xclang", ++ "-fdebug-compilation-dir", ++ "-Xclang", ++ ".", ++ ] ++ } else { ++ # -ffile-compilation-dir is an alias for both -fdebug-compilation-dir= ++ # and -fcoverage-compilation-dir=. ++ cflags += [ "-ffile-compilation-dir=." ] ++ } + if (!is_win) { + # We don't use clang -cc1as on Windows (yet? https://crbug.com/762167) + asmflags = [ "-Wa,-fdebug-compilation-dir,." ] +diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler.gni +index 8c259c360a..642319b4f4 100644 +--- a/build/config/compiler/compiler.gni ++++ b/build/config/compiler/compiler.gni +@@ -225,11 +225,8 @@ declare_args() { + # deterministic builds to reduce compile times, so this is less relevant for + # official builders. + strip_absolute_paths_from_debug_symbols_default = +- # TODO(crbug.com/1010267): remove '!use_clang_coverage', coverage build has +- # dependency to absolute path of source files. +- !use_clang_coverage && +- (is_android || is_fuchsia || is_nacl || (is_win && use_lld) || is_linux || +- is_chromeos || (is_apple && !enable_dsyms)) ++ is_android || is_fuchsia || is_nacl || (is_win && use_lld) || is_linux || ++ is_chromeos || (is_apple && !enable_dsyms) + + # If the platform uses stripped absolute paths by default, then we don't expose + # it as a configuration option. If this is causing problems, please file a bug. diff --git a/network/web/chromium-browser/pspec.xml b/network/web/chromium-browser/pspec.xml index 69426aadb3..e270efef4c 100644 --- a/network/web/chromium-browser/pspec.xml +++ b/network/web/chromium-browser/pspec.xml @@ -13,7 +13,7 @@ app:gui A WebKit powered web browser Chromium-browser is an open-source web browser, powered by WebKit. - http://gsdview.appspot.com/chromium-browser-official/chromium-92.0.4515.131.tar.xz + http://gsdview.appspot.com/chromium-browser-official/chromium-95.0.4638.54.tar.xz alsa-lib-devel at-spi2-atk-devel @@ -103,7 +103,13 @@ - extend-enable-accelerated-video-decode-flag.patch + unexpire-accelerated-video-decode-flag.patch + maldoca-depend-on-zlib-instead-of-headers-only.patch + ozone-x11-fix-VA-API.patch + + + + pipewire-do-not-typecheck-the-portal-session_handle.patch sql-make-VirtualCursor-standard-layout-type.patch use-oauth2-client-switches-as-default.patch @@ -114,11 +120,10 @@ patches/chromium-78-protobuf-RepeatedPtrField-export.patch - patches/chromium-90-ruy-include.patch - patches/chromium-91-compiler.patch - patches/chromium-91-libyuv-aarch64.patch - patches/chromium-92-v8-constexpr.patch - patches/chromium-swiftshader-export.patch + patches/chromium-95-BitstreamReader-namespace.patch + patches/chromium-95-compiler.patch + patches/chromium-95-libyuv-aarch64.patch + patches/chromium-95-quiche-include.patch @@ -200,6 +205,13 @@ + + 2021-10-21 + 95.0.4638.54 + Version Bump + İdris Kalp + idriskalp@gmail.com + 2021-08-16 92.0.4515.131