Merge pull request #18751 from Rmys/master

chromium-browser ver. bump
This commit is contained in:
Rmys
2026-06-02 21:56:58 +03:00
committed by GitHub
48 changed files with 562 additions and 2440 deletions
+29 -20
View File
@@ -19,7 +19,16 @@ def setup():
shelltools.export("LC_ALL", "C")
#shelltools.export("JAVA_CMD", "/usr/bin/java_8")
shelltools.system("mkdir -p third_party/node/linux/node-linux-x64/bin")
shelltools.system("mkdir -p third_party/rust-toolchain/bin")
shelltools.system("mkdir -p third_party/jdk/current/bin")
# shelltools.system('echo "1.95.0" > third_party/rust-toolchain/VERSION')
shelltools.system("ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/")
shelltools.system("ln -s /usr/bin/java third_party/jdk/current/bin/")
shelltools.system("rm -f third_party/gperf/cipd/bin/gperf")
shelltools.system("ln -s /usr/bin/gperf third_party/gperf/cipd/bin/")
shelltools.system("sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' tools/generate_shim_headers/generate_shim_headers.py")
@@ -37,24 +46,19 @@ def setup():
opt = 'custom_toolchain="//build/toolchain/linux/unbundle:default" \
host_toolchain="//build/toolchain/linux/unbundle:default" \
use_sysroot=false \
enable_nacl=false \
enable_nacl_nonsfi=false \
rtc_use_pipewire=true \
use_custom_libcxx=true \
clang_use_chrome_plugins=true \
is_official_build=true \
fieldtrial_testing_like_official_build=true \
disable_fieldtrial_testing_config=true \
blink_enable_generated_code_formatting=false \
fatal_linker_warnings=false \
treat_warnings_as_errors=false \
use_gnome_keyring=false\
use_gold=false \
enable_hangout_services_extension=true \
enable_widevine=true \
linux_use_bundled_binutils=false \
is_debug=false \
ffmpeg_branding="Chrome" \
google_api_key="AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM" \
remove_webcore_debug_symbols=true \
proprietary_codecs=true \
link_pulseaudio=true \
enable_swiftshader=false \
@@ -62,21 +66,20 @@ def setup():
closure_compile=false \
symbol_level=0 \
use_lld=true \
thin_lto_enable_optimizations = true \
chrome_pgo_phase=2 \
enable_mse_mpeg2ts_stream_parser=true \
enable_platform_dolby_vision=true \
enable_platform_mpeg_h_audio=true \
enable_platform_ac3_eac3_audio=true \
enable_platform_hevc=true \
use_aura=true \
use_ozone=true \
is_cfi=false \
use_thin_lto=false \
chrome_pgo_phase=0 \
use_clang_modules=false \
use_system_libffi=true \
use_dbus=true'
# remove_webcore_debug_symbols=true \
# use_clang_modules=false \
# fieldtrial_testing_like_official_build=true \
shelltools.system("/usr/bin/python3 tools/rust/update_rust.py")
shelltools.system("/usr/bin/python3 tools/clang/scripts/update.py")
clangpath = "%s/chromium-%s/third_party/llvm-build/Release+Asserts/bin/" %(get.workDIR(), get.srcVERSION())
clangpath = "%s/chromium-%s/third_party/llvm-build/Release+Asserts/bin" %(get.workDIR(), get.srcVERSION())
#clangpath = "/usr/bin"
shelltools.export("CC", "%s/clang" %clangpath)
@@ -96,6 +99,12 @@ def setup():
shelltools.system("out/Release/gn gen out/Release --args='%s'"% opt)
# import os
# os.makedirs("out/Release/gen/third_party/devtools-frontend/src/front_end/ui/components/code_highlighter/", exist_ok=True)
# # with open("out/Release/gen/third_party/devtools-frontend/src/front_end/ui/components/code_highlighter/css_files-tsconfig.json", "w") as f:
# f.write('{"extends": "../../../../../../tsconfig.json"}')
def build():
#Sandbox for error must remain separate
shelltools.system("ninja -C out/Release chrome")
@@ -120,8 +129,8 @@ def install():
-e '/<update_contact>/d' \
-e '/<p>/N;/<p>\n.*\(We invite\|Chromium supports Vorbis\)/,/<\/p>/d' \
-e '/^<?xml/,$p' \
'../../chrome/installer/linux/common/chromium-browser/chromium-browser.appdata.xml'")
pisitools.insinto("/usr/share/metainfo", "../../chrome/installer/linux/common/chromium-browser/chromium-browser.appdata.xml")
'../../chrome/installer/linux/common/appdata.xml.template'")
pisitools.insinto("/usr/share/metainfo", "../../chrome/installer/linux/common/appdata.xml.template", "chromium-browser.appdata.xml")
pisitools.insinto("/usr/share/man/man1", "../../chrome/app/resources/manpage.1.in", "chromium-browser.1")
#pisitools.newman("chrome.1", "chromium-browser.1")
@@ -0,0 +1,135 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt
from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import shelltools
from pisi.actionsapi import get
WorkDir = "chromium-%s" % get.srcVERSION()
shelltools.export("HOME", get.workDIR())
ARCH = "x64"
def setup():
shelltools.export("LC_ALL", "C")
#shelltools.export("JAVA_CMD", "/usr/bin/java_8")
shelltools.system("mkdir -p third_party/node/linux/node-linux-x64/bin")
shelltools.system("ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/")
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))
#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/\<xmlMalloc\>/malloc/' -e 's/\<xmlFree\>/free/' \
third_party/blink/renderer/core/xml/*.cc \
third_party/blink/renderer/core/xml/parser/xml_document_parser.cc \
third_party/libxml/chromium/libxml_utils.cc")
opt = 'custom_toolchain="//build/toolchain/linux/unbundle:default" \
host_toolchain="//build/toolchain/linux/unbundle:default" \
use_sysroot=false \
enable_nacl=false \
enable_nacl_nonsfi=false \
rtc_use_pipewire=true \
use_custom_libcxx=true \
clang_use_chrome_plugins=true \
is_official_build=true \
fieldtrial_testing_like_official_build=true \
fatal_linker_warnings=false \
treat_warnings_as_errors=false \
use_gnome_keyring=false\
use_gold=false \
enable_hangout_services_extension=true \
enable_widevine=true \
linux_use_bundled_binutils=false \
is_debug=false \
ffmpeg_branding="Chrome" \
google_api_key="AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM" \
remove_webcore_debug_symbols=true \
proprietary_codecs=true \
link_pulseaudio=true \
enable_swiftshader=false \
use_vaapi=true \
closure_compile=false \
symbol_level=0 \
use_lld=true \
thin_lto_enable_optimizations = true \
chrome_pgo_phase=2 \
enable_mse_mpeg2ts_stream_parser=true \
enable_platform_dolby_vision=true \
enable_platform_mpeg_h_audio=true \
enable_platform_ac3_eac3_audio=true \
enable_platform_hevc=true \
use_aura=true \
use_ozone=true \
use_dbus=true'
shelltools.system("/usr/bin/python3 tools/clang/scripts/update.py")
clangpath = "%s/chromium-%s/third_party/llvm-build/Release+Asserts/bin/" %(get.workDIR(), get.srcVERSION())
#clangpath = "/usr/bin"
shelltools.export("CC", "%s/clang" %clangpath)
shelltools.export("CXX", "%s/clang++" %clangpath)
shelltools.export("AR", "%s/llvm-ar" %clangpath)
shelltools.export("NM", "nm" )
shelltools.export("RANLIB", "ranlib" )
pisitools.cflags.add("-Wno-builtin-macro-redefined -Wno-unknown-warning-option -fdebug-types-section")
pisitools.cxxflags.add("-Wno-builtin-macro-redefined -Wno-unknown-warning-option -fdebug-types-section")
pisitools.ldflags.add(" -fuse-ld=lld")
shelltools.export("CPPFLAGS", "-D__DATE__= -D__TIME__= -D__TIMESTAMP__=")
#shelltools.system("/usr/bin/python3 build/download_nacl_toolchains.py --packages nacl_x86_newlib,pnacl_newlib,pnacl_translator sync --extract")
shelltools.system("/usr/bin/python3 tools/update_pgo_profiles.py --target=linux update --gs-url-base=chromium-optimization-profiles/pgo_profiles")
shelltools.system("/usr/bin/python3 tools/gn/bootstrap/bootstrap.py --gn-gen-args '%s'"% opt)
shelltools.system("out/Release/gn gen out/Release --args='%s'"% opt)
def build():
#Sandbox for error must remain separate
shelltools.system("ninja -C out/Release chrome")
shelltools.system("ninja -C out/Release chrome_sandbox")
shelltools.system("ninja -C out/Release chromedriver")
#shelltools.system("ninja -C out/Release widevinecdmadapter")
def install():
shelltools.cd("out/Release")
#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", "chrome_crashpad_handler"]:
pisitools.insinto("/usr/lib/chromium-browser", "%s" % vla)
pisitools.insinto("/usr/lib/chromium-browser", "chrome_sandbox", "chrome-sandbox")
pisitools.dosym("/usr/lib/chromium-browser/chrome", "/usr/bin/chromium-browser")
shelltools.system("chmod -v 4755 %s/usr/lib/chromium-browser/chrome-sandbox" %get.installDIR())
shelltools.system("sed -ni \
-e '/<update_contact>/d' \
-e '/<p>/N;/<p>\n.*\(We invite\|Chromium supports Vorbis\)/,/<\/p>/d' \
-e '/^<?xml/,$p' \
'../../chrome/installer/linux/common/chromium-browser/chromium-browser.appdata.xml'")
pisitools.insinto("/usr/share/metainfo", "../../chrome/installer/linux/common/chromium-browser/chromium-browser.appdata.xml")
pisitools.insinto("/usr/share/man/man1", "../../chrome/app/resources/manpage.1.in", "chromium-browser.1")
#pisitools.newman("chrome.1", "chromium-browser.1")
shelltools.cd("../..")
for size in ["24", "48", "64", "128", "256"]:
pisitools.insinto("/usr/share/icons/hicolor/%sx%s/apps" %(size, size), "chrome/app/theme/chromium/product_logo_%s.png" % size, "chromium-browser.png")
pisitools.dosym("/usr/share/icons/hicolor/256x256/apps/chromium-browser.png", "/usr/share/pixmaps/chromium-browser.png")
pisitools.dodoc("LICENSE")
@@ -1,28 +0,0 @@
From 7a23987acb698c2934958cb42a5e7b1cd73fe142 Mon Sep 17 00:00:00 2001
From: Nico Weber <thakis@chromium.org>
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 <thakis@chromium.org>
Commit-Queue: Hans Wennborg <hans@chromium.org>
Auto-Submit: Nico Weber <thakis@chromium.org>
Reviewed-by: Hans Wennborg <hans@chromium.org>
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",
@@ -1,44 +0,0 @@
From 9909f146b28d56c9c0411329a056ed959b33f76a Mon Sep 17 00:00:00 2001
From: Zequan Wu <zequanwu@google.com>
Date: Wed, 10 Feb 2021 03:26:00 +0000
Subject: [PATCH] Reland "Add [[clang::nomerge]] attribute to ~CheckError()."
This is a reland of 8860253376c38c090d585bda4b20b801e3aa3ce3
Original change's description:
> Add [[clang::nomerge]] attribute to ~CheckError().
>
> To disable merging multiple ~CheckError() destructor for accurate crash logs.
>
> Bug: 1153188
> Change-Id: If6d153661667a63f13b645f6d284eb3d5ea3a300
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2611331
> Commit-Queue: Nico Weber <thakis@chromium.org>
> Auto-Submit: Zequan Wu <zequanwu@google.com>
> Reviewed-by: Nico Weber <thakis@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#844989}
Bug: 1153188
Change-Id: I303c5ff9fb88f7a30663400622b327a910d0b108
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2686331
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Commit-Queue: Zequan Wu <zequanwu@google.com>
Cr-Commit-Position: refs/heads/master@{#852453}
---
base/check.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/base/check.h b/base/check.h
index c94ab68db90..17048e45539 100644
--- a/base/check.h
+++ b/base/check.h
@@ -85,7 +85,7 @@ class BASE_EXPORT CheckError {
// Stream for adding optional details to the error message.
std::ostream& stream();
- ~CheckError();
+ NOMERGE ~CheckError();
CheckError(const CheckError& other) = delete;
CheckError& operator=(const CheckError& other) = delete;
@@ -1,43 +0,0 @@
From b5b80df7dafba8cafa4c6c0ba2153dfda467dfc9 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Wed, 27 Jan 2021 20:31:51 +0000
Subject: [PATCH] add dependency on opus in webcodecs
webcodecs uses opus, but dependency is missing. With unbundled
opus library build fails, because include path is incomplete.
Bug: 1169758
Change-Id: I01369364327461196a81002479636cf45017669a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2644623
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#847754}
---
third_party/blink/renderer/modules/webcodecs/BUILD.gn | 1 +
third_party/blink/renderer/modules/webcodecs/DEPS | 1 +
2 files changed, 2 insertions(+)
diff --git a/third_party/blink/renderer/modules/webcodecs/BUILD.gn b/third_party/blink/renderer/modules/webcodecs/BUILD.gn
index fdf4ca0fafc72..01a7bf809ffca 100644
--- a/third_party/blink/renderer/modules/webcodecs/BUILD.gn
+++ b/third_party/blink/renderer/modules/webcodecs/BUILD.gn
@@ -65,6 +65,7 @@ blink_modules_sources("webcodecs") {
"//media/mojo/clients",
"//media/mojo/mojom",
"//third_party/libyuv:libyuv",
+ "//third_party/opus",
]
if (media_use_openh264) {
deps += [ "//third_party/openh264:encoder" ]
diff --git a/third_party/blink/renderer/modules/webcodecs/DEPS b/third_party/blink/renderer/modules/webcodecs/DEPS
index b8dd596da8caf..ea1919d12205a 100644
--- a/third_party/blink/renderer/modules/webcodecs/DEPS
+++ b/third_party/blink/renderer/modules/webcodecs/DEPS
@@ -19,6 +19,7 @@ include_rules = [
"+third_party/libyuv",
"+third_party/openh264",
+ "+third_party/opus",
"+ui/gfx/color_space.h",
"+ui/gfx/geometry/rect.h",
@@ -0,0 +1,49 @@
https://issues.chromium.org/issues/418397211
From: Matt Jolly <kangie@gentoo.org>
Date: Tue, 25 Mar 2025 13:33:48 +1000
Subject: [PATCH] Remove nodejs version check
Added in https://github.com/chromium/chromium/commit/0ff8528999941d7182be6fc77aeb12a110a3cd86,
this change is only really useful for gclient checkouts and breaks the
ability for downstreams to provide their own, compatible, nodejs
version via the system package manager (or for use on arches other than
those that Google provides binaries for):
[ERR_ASSERTION]: Failed NodeJS version check: Expected version 'v22.11.0', but found 'v22.13.1'. Did you run 'gclient sync'
This is google development footgun protection, working around
poor development practices and gclient's inability to ensure
that the source tree is in a consistent state. We don't need it
here.
Signed-off-by: Matt Jolly <kangie@gentoo.org>
--- a/third_party/node/node.gni
+++ b/third_party/node/node.gni
@@ -36,15 +36,5 @@ template("node") {
}
}
- # Automatically add a dependency to ":check_version" to ensure NodeJS is
- # always running the expected version, except when the ':check_version'
- # target itself is running in which case it shouldn't depend on itself.
- if (get_label_info(":" + target_name, "label_no_toolchain") !=
- "//third_party/node:check_version") {
- if (!defined(deps)) {
- deps = []
- }
- deps += [ "//third_party/node:check_version" ]
- }
}
}
--- a/third_party/protobuf/proto_library.gni
+++ b/third_party/protobuf/proto_library.gni
@@ -562,7 +562,6 @@ template("proto_library") {
_protoc_gen_ts_path,
"//tools/protoc_wrapper/protoc-gen-ts_proto.py",
] + _protoc_gen_ts_runtime_deps
- deps += [ "//third_party/node:check_version" ]
}
if (_generate_with_plugin) {
--
2.49.0
@@ -0,0 +1,11 @@
https://bugs.gentoo.org/969846
https://bugs.gentoo.org/969495
https://crbug.com/456218403
--- a/sandbox/linux/system_headers/linux_seccomp.h
+++ b/sandbox/linux/system_headers/linux_seccomp.h
@@ -7,4 +7,5 @@
#include <stdint.h>
+#include <signal.h>
#include <sys/ioctl.h>
@@ -0,0 +1,117 @@
--- a/third_party/devtools-frontend/src/front_end/Images/BUILD.gn
+++ b/third_party/devtools-frontend/src/front_end/Images/BUILD.gn
@@ -28,7 +28,7 @@ node_action("generate_css_vars") {
}
node_action("optimize_images") {
- script = "node_modules/rollup/dist/bin/rollup"
+ script = "../../node/node_modules/@rollup/wasm-node/dist/bin/rollup"
_bundled_entrypoint = target_gen_dir + "/Images.prebundle.js"
_output_file_location = target_gen_dir + "/Images.js"
--- a/third_party/devtools-frontend/src/front_end/models/live-metrics/web-vitals-injected/BUILD.gn
+++ b/third_party/devtools-frontend/src/front_end/models/live-metrics/web-vitals-injected/BUILD.gn
@@ -26,7 +26,7 @@ devtools_module("web-vitals-injected") {
}
node_action("bundled_library") {
- script = "node_modules/rollup/dist/bin/rollup"
+ script = "../../node/node_modules/@rollup/wasm-node/dist/bin/rollup"
_bundled_entrypoint = target_gen_dir + "/web-vitals-injected.js"
_output_file_location = target_gen_dir + "/web-vitals-injected.generated.js"
--- a/third_party/devtools-frontend/src/front_end/panels/recorder/injected/BUILD.gn
+++ b/third_party/devtools-frontend/src/front_end/panels/recorder/injected/BUILD.gn
@@ -55,7 +55,7 @@ devtools_entrypoint("bundle") {
}
node_action("bundled_library") {
- script = "node_modules/rollup/dist/bin/rollup"
+ script = "../../node/node_modules/@rollup/wasm-node/dist/bin/rollup"
_bundled_entrypoint = target_gen_dir + "/injected.js"
_output_file_location = target_gen_dir + "/injected.generated.js"
--- a/third_party/devtools-frontend/src/inspector_overlay/BUILD.gn
+++ b/third_party/devtools-frontend/src/inspector_overlay/BUILD.gn
@@ -36,7 +36,7 @@ action("build_inspector_overlay") {
"$target_gen_dir/tool_window_controls.css",
"$target_gen_dir/main.js",
devtools_location_prepend + "inspector_overlay/loadCSS.rollup.js",
- devtools_location_prepend + "node_modules/rollup/dist/bin/rollup",
+ devtools_location_prepend + "../../node/node_modules/@rollup/wasm-node/dist/bin/rollup",
]
outputs = [ "$resources_out_dir/main.js" ]
--- a/third_party/devtools-frontend/src/scripts/build/build_inspector_overlay.py
+++ b/third_party/devtools-frontend/src/scripts/build/build_inspector_overlay.py
@@ -56,7 +56,7 @@ def rollup(input_path, output_path, file
[devtools_paths.node_path(),
devtools_paths.rollup_path()] +
['--format', 'iife', '-n', 'InspectorOverlay'] + ['--input', target] +
- ['--plugin', rollup_plugin, '--plugin', 'terser'],
+ ['--plugin', rollup_plugin, '--plugin', path.join(devtools_paths.node_modules_path(), '@rollup', 'plugin-terser', 'dist', 'cjs', 'index.js')],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
universal_newlines=True,
--- a/third_party/devtools-frontend/src/scripts/build/ninja/bundle.gni
+++ b/third_party/devtools-frontend/src/scripts/build/ninja/bundle.gni
@@ -11,7 +11,7 @@ template("bundle") {
"You must define the 'entrypoint' for a bundle target")
node_action(target_name) {
- script = "scripts/build/esbuild.js"
+ script = "../../node/node_modules/@rollup/wasm-node/dist/bin/rollup"
forward_variables_from(invoker,
[
"visibility",
@@ -21,27 +21,23 @@ template("bundle") {
inputs = [
invoker.entrypoint,
+ devtools_location_prepend + "scripts/build/rollup.config.mjs",
devtools_location_prepend + "scripts/build/devtools_plugin.js",
devtools_location_prepend + "scripts/devtools_paths.js",
]
- _esbuild = devtools_location_prepend + "third_party/esbuild/esbuild"
- if (host_os == "win") {
- inputs += [ _esbuild + ".exe" ]
- } else {
- inputs += [ _esbuild ]
- }
-
args = [
+ "--config",
+ rebase_path(
+ devtools_location_prepend + "scripts/build/rollup.config.mjs",
+ root_build_dir),
+ "--input",
rebase_path(invoker.entrypoint, root_build_dir),
+ "--file",
rebase_path(invoker.output_file_location, root_build_dir),
"--configSourcemaps",
]
- if (!is_debug) {
- args += [ "--minify" ]
- }
-
outputs = [ invoker.output_file_location ]
}
}
--- a/third_party/devtools-frontend/src/scripts/devtools_paths.py
+++ b/third_party/devtools-frontend/src/scripts/devtools_paths.py
@@ -64,8 +64,11 @@ def license_checker_path():
def rollup_path():
return path.join(
- node_modules_path(),
- 'rollup',
+ third_party_path(),
+ 'node',
+ 'node_modules',
+ '@rollup',
+ 'wasm-node',
'dist',
'bin',
'rollup',
@@ -0,0 +1,23 @@
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -1903,20 +1903,4 @@ config("sanitize_c_array_bounds") {
config("sanitize_c_array_bounds") {
if (!is_ubsan && is_clang && !(is_asan && target_cpu == "x86")) {
- cflags = [
- "-fsanitize=array-bounds",
- "-fsanitize-trap=array-bounds",
-
- # Some code users feature detection to determine if UBSAN (or any
- # sanitizer) is enabled, they then do expensive debug like operations. We
- # want to suppress this behaviour since we want to keep performance costs
- # as low as possible while having these checks.
- "-fsanitize-ignore-for-ubsan-feature=array-bounds",
-
- # Because we've enabled array-bounds sanitizing we also want to suppress
- # the related warning about "unsafe-buffer-usage-in-static-sized-array",
- # since we know that the array bounds sanitizing will catch any out-of-
- # bounds accesses.
- "-Wno-unsafe-buffer-usage-in-static-sized-array",
- ]
}
}
@@ -0,0 +1,16 @@
--- a/build/config/compiler/BUILD.gn.orig 2026-04-08 10:52:06.044206796 +0000
+++ b/build/config/compiler/BUILD.gn 2026-04-08 10:54:23.302307784 +0000
@@ -613,13 +613,6 @@ config("compiler") {
]
}
- # The performance improvement does not seem worth the risk. See
- # https://crbug.com/484082200 for background and https://crrev.com/c/7593035
- # for discussion.
- if (!is_wasm) {
- cflags += [ "-fno-lifetime-dse" ]
- }
-
# TODO(hans): Remove this once Clang generates better optimized debug info
# by default. https://crbug.com/765793
cflags += [
@@ -0,0 +1,21 @@
The original patch got reverted upstream, but LaneCount and SupportedLaneCount no longer work in Rust 1.95.0
--- a/third_party/rust/chromium_crates_io/vendor/bytemuck-v1/src/pod.rs
+++ b/third_party/rust/chromium_crates_io/vendor/bytemuck-v1/src/pod.rs
@@ -152,7 +152,6 @@ impl_unsafe_marker_for_simd!(
unsafe impl<T, const N: usize> Pod for core::simd::Simd<T, N>
where
T: core::simd::SimdElement + Pod,
- core::simd::LaneCount<N>: core::simd::SupportedLaneCount,
{
}
--- a/third_party/rust/chromium_crates_io/vendor/bytemuck-v1/src/zeroable.rs
+++ b/third_party/rust/chromium_crates_io/vendor/bytemuck-v1/src/zeroable.rs
@@ -231,7 +231,6 @@ impl_unsafe_marker_for_simd!(
unsafe impl<T, const N: usize> Zeroable for core::simd::Simd<T, N>
where
T: core::simd::SimdElement + Zeroable,
- core::simd::LaneCount<N>: core::simd::SupportedLaneCount,
{
}
@@ -0,0 +1,10 @@
--- b/build/config/BUILDCONFIG.gn
+++ a/build/config/BUILDCONFIG.gn
@@ -362,7 +362,6 @@
"//build/config/compiler:no_unresolved_symbols",
"//build/config/compiler:runtime_library",
"//build/config/compiler:sanitize_c_array_bounds",
- "//build/config/compiler:sanitize_return",
"//build/config/compiler:thin_archive",
"//build/config/compiler:thinlto_optimize_default",
"//build/config/compiler:tot_warnings",
@@ -0,0 +1,27 @@
--- b/build/config/compiler/BUILD.gn
+++ a/build/config/compiler/BUILD.gn
@@ -1920,24 +1920,6 @@
}
}
-# Enable UBSan subset to ensure we always hit `return` statement in non-void
-# functions (https://crbug.com/489565636). This is equivalent to inserting
-# `NOTREACHED()` at the end of such functions.
-config("sanitize_return") {
- if (!is_ubsan && is_clang) {
- cflags = [
- "-fsanitize=return",
- "-fsanitize-trap=return",
-
- # Some code users feature detection to determine if UBSAN (or any
- # sanitizer) is enabled, they then do expensive debug like operations. We
- # want to suppress this behaviour since we want to keep performance costs
- # as low as possible while having these checks.
- "-fsanitize-ignore-for-ubsan-feature=return",
- ]
- }
-}
-
config("rustc_revision") {
if (rustc_revision != "") {
# Similar to the `clang_revision` config, this is here so that all `.rs`
@@ -0,0 +1,34 @@
diff --git a/build/config/clang/BUILD.gn b/build/config/clang/BUILD.gn
index b171ee13ce7ed..d5b4e4fdcd0c8 100644
--- a/build/config/clang/BUILD.gn
+++ b/build/config/clang/BUILD.gn
@@ -171,16 +171,21 @@ template("clang_lib") {
} else if (is_linux || is_chromeos) {
if (current_cpu == "x64") {
_dir = "x86_64-unknown-linux-gnu"
+ _suffix = "-x86_64"
} else if (current_cpu == "x86") {
_dir = "i386-unknown-linux-gnu"
+ _suffix = "-i386"
} else if (current_cpu == "arm") {
_dir = "armv7-unknown-linux-gnueabihf"
} else if (current_cpu == "arm64") {
_dir = "aarch64-unknown-linux-gnu"
+ _suffix = "-aarch64"
} else if (current_cpu == "loong64") {
_dir = "loongarch64-unknown-linux-gnu"
+ _suffix = "-loongarch64"
} else if (current_cpu == "riscv64") {
_dir = "riscv64-unknown-linux-gnu"
+ _suffix = "-riscv64"
} else if (current_cpu == "ppc64") {
_dir = "ppc64le-unknown-linux-gnu"
} else if (current_cpu == "s390x") {
@@ -188,6 +193,7 @@ template("clang_lib") {
} else {
assert(false) # Unhandled cpu type
}
+ _dir = "linux"
} else if (is_fuchsia) {
if (current_cpu == "x64") {
_dir = "x86_64-unknown-fuchsia"
@@ -0,0 +1,11 @@
--- a/third_party/widevine/cdm/widevine.gni 2026-02-15 16:29:15.620518832 +0800
+++ b/third_party/widevine/cdm/widevine.gni 2026-02-15 16:29:43.721371706 +0800
@@ -27,7 +27,7 @@
library_widevine_cdm_available =
(is_chromeos &&
(target_cpu == "x64" || target_cpu == "arm" || target_cpu == "arm64")) ||
- (target_os == "linux" && target_cpu == "x64") ||
+ (target_os == "linux" && (target_cpu == "x64" || target_cpu == "arm" || target_cpu == "arm64")) ||
(target_os == "mac" && (target_cpu == "x64" || target_cpu == "arm64")) ||
(target_os == "win" &&
(target_cpu == "x86" || target_cpu == "x64" || target_cpu == "arm64"))
@@ -0,0 +1,11 @@
--- a/services/device/serial/serial_io_handler_posix.cc 2025-11-09 13:57:16.132379788 +0100
+++ b/services/device/serial/serial_io_handler_posix.cc 2025-11-09 14:07:13.488376598 +0100
@@ -51,7 +51,7 @@
bool BitrateToSpeedConstant(int bitrate, speed_t* speed) {
#define BITRATE_TO_SPEED_CASE(x) \
case x: \
- *speed = B##x; \
+ *speed = __B##x; \
return true;
switch (bitrate) {
BITRATE_TO_SPEED_CASE(0)
@@ -0,0 +1,13 @@
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
index eb329bc88fec..7c98dfddcf8a 100644
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -2054,7 +2054,7 @@ config("chromium_code") {
# Non-chromium code is not guaranteed to compile cleanly with
# _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
# disabled, so only do that for Release build.
- fortify_level = "2"
+ fortify_level = "3"
# ChromeOS's toolchain supports a high-quality _FORTIFY_SOURCE=3
# implementation with a few custom glibc patches. Use that if it's
@@ -0,0 +1,21 @@
diff --git a/google_apis/api_key_cache.cc b/google_apis/api_key_cache.cc
index bbb9420f40..690445534b 100644
--- a/google_apis/api_key_cache.cc
+++ b/google_apis/api_key_cache.cc
@@ -235,14 +235,14 @@ ApiKeyCache::ApiKeyCache(const DefaultApiKeys& default_api_keys) {
std::string default_client_id = CalculateKeyValue(
default_api_keys.google_default_client_id,
- STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), std::string(), nullptr,
+ STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), std::string(), ::switches::kOAuth2ClientID,
std::string(), environment.get(), command_line, gaia_config,
default_api_keys.allow_override_via_environment,
default_api_keys.allow_unset_values);
std::string default_client_secret = CalculateKeyValue(
default_api_keys.google_default_client_secret,
STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), std::string(),
- nullptr, std::string(), environment.get(), command_line, gaia_config,
+ ::switches::kOAuth2ClientSecret, std::string(), environment.get(), command_line, gaia_config,
default_api_keys.allow_override_via_environment,
default_api_keys.allow_unset_values);
@@ -1,71 +0,0 @@
diff --git a/components/cast_channel/enum_table.h b/components/cast_channel/enum_table.h
index e3130c7..2ad16ea 100644
--- a/components/cast_channel/enum_table.h
+++ b/components/cast_channel/enum_table.h
@@ -212,7 +212,7 @@ class
template <typename E>
friend class EnumTable;
- DISALLOW_COPY_AND_ASSIGN(GenericEnumTableEntry);
+ DISALLOW_ASSIGN(GenericEnumTableEntry);
};
// Yes, these constructors really needs to be inlined. Even though they look
@@ -250,8 +250,7 @@ class EnumTable {
// Constructor for regular entries.
constexpr Entry(E value, base::StringPiece str)
: GenericEnumTableEntry(static_cast<int32_t>(value), str) {}
-
- DISALLOW_COPY_AND_ASSIGN(Entry);
+ DISALLOW_ASSIGN(Entry);
};
static_assert(sizeof(E) <= sizeof(int32_t),
@@ -306,15 +305,14 @@ class EnumTable {
if (is_sorted_) {
const std::size_t index = static_cast<std::size_t>(value);
if (ANALYZER_ASSUME_TRUE(index < data_.size())) {
- const auto& entry = data_.begin()[index];
+ const auto& entry = data_[index];
if (ANALYZER_ASSUME_TRUE(entry.has_str()))
return entry.str();
}
return base::nullopt;
}
return GenericEnumTableEntry::FindByValue(
- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
- data_.size(), static_cast<int32_t>(value));
+ &data_[0], data_.size(), static_cast<int32_t>(value));
}
// This overload of GetString is designed for cases where the argument is a
@@ -342,8 +340,7 @@ class EnumTable {
// enum value directly.
base::Optional<E> GetEnum(base::StringPiece str) const {
auto* entry = GenericEnumTableEntry::FindByString(
- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
- data_.size(), str);
+ &data_[0], data_.size(), str);
return entry ? static_cast<E>(entry->value) : base::Optional<E>();
}
@@ -358,7 +355,7 @@ class EnumTable {
// Align the data on a cache line boundary.
alignas(64)
#endif
- std::initializer_list<Entry> data_;
+ const std::vector<Entry> data_;
bool is_sorted_;
constexpr EnumTable(std::initializer_list<Entry> data, bool is_sorted)
@@ -370,8 +367,8 @@ class EnumTable {
for (std::size_t i = 0; i < data.size(); i++) {
for (std::size_t j = i + 1; j < data.size(); j++) {
- const Entry& ei = data.begin()[i];
- const Entry& ej = data.begin()[j];
+ const Entry& ei = data[i];
+ const Entry& ej = data[j];
DCHECK(ei.value != ej.value)
<< "Found duplicate enum values at indices " << i << " and " << j;
DCHECK(!(ei.has_str() && ej.has_str() && ei.str() == ej.str()))
@@ -1,17 +0,0 @@
References: https://bugs.chromium.org/p/chromium/issues/detail?id=1192875
Index: chromium-91.0.4472.57/third_party/closure_compiler/compiler.py
===================================================================
--- chromium-91.0.4472.57.orig/third_party/closure_compiler/compiler.py
+++ chromium-91.0.4472.57/third_party/closure_compiler/compiler.py
@@ -13,8 +13,7 @@ import subprocess
_CURRENT_DIR = os.path.join(os.path.dirname(__file__))
-_JAVA_PATH = os.path.join(_CURRENT_DIR, "..", "jdk", "current", "bin", "java")
-assert os.path.isfile(_JAVA_PATH), "java only allowed in android builds"
+_JAVA_PATH = "java"
class Compiler(object):
"""Runs the Closure compiler on given source files to typecheck them
@@ -1,71 +0,0 @@
diff --git a/components/cast_channel/enum_table.h b/components/cast_channel/enum_table.h
index e3130c7..2ad16ea 100644
--- a/components/cast_channel/enum_table.h
+++ b/components/cast_channel/enum_table.h
@@ -212,7 +212,7 @@ class
template <typename E>
friend class EnumTable;
- DISALLOW_COPY_AND_ASSIGN(GenericEnumTableEntry);
+ DISALLOW_ASSIGN(GenericEnumTableEntry);
};
// Yes, these constructors really needs to be inlined. Even though they look
@@ -250,8 +250,7 @@ class EnumTable {
// Constructor for regular entries.
constexpr Entry(E value, base::StringPiece str)
: GenericEnumTableEntry(static_cast<int32_t>(value), str) {}
-
- DISALLOW_COPY_AND_ASSIGN(Entry);
+ DISALLOW_ASSIGN(Entry);
};
static_assert(sizeof(E) <= sizeof(int32_t),
@@ -306,15 +305,14 @@ class EnumTable {
if (is_sorted_) {
const std::size_t index = static_cast<std::size_t>(value);
if (ANALYZER_ASSUME_TRUE(index < data_.size())) {
- const auto& entry = data_.begin()[index];
+ const auto& entry = data_[index];
if (ANALYZER_ASSUME_TRUE(entry.has_str()))
return entry.str();
}
return absl::nullopt;
}
return GenericEnumTableEntry::FindByValue(
- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
- data_.size(), static_cast<int32_t>(value));
+ &data_[0], data_.size(), static_cast<int32_t>(value));
}
// This overload of GetString is designed for cases where the argument is a
@@ -342,8 +340,7 @@ class EnumTable {
// enum value directly.
absl::optional<E> GetEnum(base::StringPiece str) const {
auto* entry = GenericEnumTableEntry::FindByString(
- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
- data_.size(), str);
+ &data_[0], data_.size(), str);
return entry ? static_cast<E>(entry->value) : absl::optional<E>();
}
@@ -358,7 +355,7 @@ class EnumTable {
// Align the data on a cache line boundary.
alignas(64)
#endif
- std::initializer_list<Entry> data_;
+ const std::vector<Entry> data_;
bool is_sorted_;
constexpr EnumTable(std::initializer_list<Entry> data, bool is_sorted)
@@ -370,8 +367,8 @@ class EnumTable {
for (std::size_t i = 0; i < data.size(); i++) {
for (std::size_t j = i + 1; j < data.size(); j++) {
- const Entry& ei = data.begin()[i];
- const Entry& ej = data.begin()[j];
+ const Entry& ei = data[i];
+ const Entry& ej = data[j];
DCHECK(ei.value != ej.value)
<< "Found duplicate enum values at indices " << i << " and " << j;
DCHECK(!(ei.has_str() && ej.has_str() && ei.str() == ej.str()))
@@ -1,13 +0,0 @@
Index: chromium-73.0.3683.27/components/version_ui_strings.grdp
===================================================================
--- chromium-73.0.3683.27.orig/components/version_ui_strings.grdp
+++ chromium-73.0.3683.27/components/version_ui_strings.grdp
@@ -4,7 +4,7 @@
About Version
</message>
<message name="IDS_VERSION_UI_OFFICIAL" desc="official build on the about:version page">
- Official Build
+ PisiLinux Build
</message>
<message name="IDS_VERSION_UI_UNOFFICIAL" desc="unofficial build on the about:version page">
Developer Build
@@ -1,54 +0,0 @@
--- chromium-89.0.4389.90/base/third_party/libevent/evutil.h.orig 2021-03-13 02:57:15.000000000 +0300
+++ chromium-89.0.4389.90/base/third_party/libevent/evutil.h 2021-03-18 22:45:10.144899935 +0300
@@ -52,10 +52,10 @@
#endif
#include <stdarg.h>
-#ifdef _EVENT_HAVE_UINT64_T
+/* #ifdef _EVENT_HAVE_UINT64_T */
#define ev_uint64_t uint64_t
#define ev_int64_t int64_t
-#elif defined(WIN32)
+#if defined(WIN32)
#define ev_uint64_t unsigned __int64
#define ev_int64_t signed __int64
#elif _EVENT_SIZEOF_LONG_LONG == 8
@@ -68,9 +68,9 @@
#error "No way to define ev_uint64_t"
#endif
-#ifdef _EVENT_HAVE_UINT32_T
+/* #ifdef _EVENT_HAVE_UINT32_T */
#define ev_uint32_t uint32_t
-#elif defined(WIN32)
+#if defined(WIN32)
#define ev_uint32_t unsigned int
#elif _EVENT_SIZEOF_LONG == 4
#define ev_uint32_t unsigned long
@@ -80,9 +80,9 @@
#error "No way to define ev_uint32_t"
#endif
-#ifdef _EVENT_HAVE_UINT16_T
+/* #ifdef _EVENT_HAVE_UINT16_T */
#define ev_uint16_t uint16_t
-#elif defined(WIN32)
+#if defined(WIN32)
#define ev_uint16_t unsigned short
#elif _EVENT_SIZEOF_INT == 2
#define ev_uint16_t unsigned int
@@ -92,11 +92,12 @@
#error "No way to define ev_uint16_t"
#endif
-#ifdef _EVENT_HAVE_UINT8_T
+/* #ifdef _EVENT_HAVE_UINT8_T */
#define ev_uint8_t uint8_t
+/*
#else
#define ev_uint8_t unsigned char
-#endif
+#endif */
int evutil_socketpair(int d, int type, int protocol, int sv[2]);
int evutil_make_socket_nonblocking(int sock);
@@ -1,33 +0,0 @@
From 00604ca8ed6d669fb6cb3ae8bacd6028d5ef10ac Mon Sep 17 00:00:00 2001
From: Stephen Roettger <sroettger@google.com>
Date: Thu, 20 Jan 2022 10:04:04 +0000
Subject: [PATCH] Downgrade duplicate peer error to dvlog
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Downgrading since this case can happen in non-error situations. There can be
duplicate introductions in flight in which case we simply drop the second one.
Change-Id: I2c51b177913ccd9634e9bb6343d468101d9735ed
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3398794
Reviewed-by: Ken Rockot <rockot@google.com>
Commit-Queue: Stephen Röttger <sroettger@google.com>
Cr-Commit-Position: refs/heads/main@{#961389}
---
mojo/core/node_controller.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mojo/core/node_controller.cc b/mojo/core/node_controller.cc
index 7cde7719687..81712676733 100644
--- a/mojo/core/node_controller.cc
+++ b/mojo/core/node_controller.cc
@@ -594,7 +594,7 @@ void NodeController::AddPeer(const ports::NodeName& name,
}
if (dropped_peers_.Contains(name)) {
- LOG(ERROR) << "Trying to re-add dropped peer " << name;
+ DVLOG(1) << "Trying to re-add dropped peer " << name;
return;
}
@@ -1,35 +0,0 @@
From e48f18eba0eae199ba7bc8a6a09ebf39799447c1 Mon Sep 17 00:00:00 2001
From: Ted Meyer <tmathmeyer@chromium.org>
Date: Wed, 2 Jun 2021 05:35:22 +0000
Subject: [PATCH] Extend enable-accelerated-video-decode flag for linux to m93
It appears that there is insistence that the flag be totally removed or
have its end-milestone increased, I can't just let it wait until the
feature is working again and then re-enable it. So i've moved it to 93.
R=dalecurtis
Fixed: 1207478
Change-Id: I26a5e790cd390825516b4a4b6af88e89b2d4f4eb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2918478
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Ted Meyer <tmathmeyer@chromium.org>
Commit-Queue: Ted Meyer <tmathmeyer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#888312}
---
chrome/browser/flag-metadata.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index 67e0330436..34542671f2 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -1193,7 +1193,7 @@
{
"name": "enable-accelerated-video-decode",
"owners": [ "media-dev@chromium.org" ],
- "expiry_milestone": 90
+ "expiry_milestone": 93
},
{
"name": "enable-accessibility-live-caption",
@@ -1,62 +0,0 @@
From 5b287e0be8d8d8475ec6ef81b16eaa61e19db078 Mon Sep 17 00:00:00 2001
From: "Steinar H. Gunderson" <sesse@chromium.org>
Date: Tue, 25 Jan 2022 19:14:53 +0000
Subject: [PATCH] Fix build break with system libdrm.
This patch is submitted on behalf of Andres Salomon
<dilinger@queued.net> (on Cc). Also adding him to src/AUTHORS
per policy, as he has signed the CLA.
Original patch:
https://salsa.debian.org/dilinger/chromium/-/commit/2333c2fb985ac1ef3d7331776a7833d965c63302
Change-Id: I18bd60e2e80f2b9181e74ee7972c3f457ab33b10
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3401704
Reviewed-by: Andres Calderon Jaramillo <andrescj@chromium.org>
Commit-Queue: Steinar H Gunderson <sesse@chromium.org>
Auto-Submit: Steinar H Gunderson <sesse@chromium.org>
Cr-Commit-Position: refs/heads/main@{#963119}
---
AUTHORS | 1 +
media/gpu/chromeos/BUILD.gn | 1 +
media/gpu/chromeos/video_decoder_pipeline.cc | 2 +-
3 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/AUTHORS b/AUTHORS
index 0eba3de5065..50edd3f6b38 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -93,6 +93,7 @@ Andreas Papacharalampous <andreas@apap04.com>
Andrei Borza <andrei.borza@gmail.com>
Andrei Parvu <andrei.prv@gmail.com>
Andrei Parvu <parvu@adobe.com>
+Andres Salomon <dilinger@queued.net>
Andreu Botella <andreu@andreubotella.com>
Andrew Boyarshin <andrew.boyarshin@gmail.com>
Andrew Brampton <me@bramp.net>
diff --git a/media/gpu/chromeos/BUILD.gn b/media/gpu/chromeos/BUILD.gn
index 7cb4c3ea39a..6fe21c15ecc 100644
--- a/media/gpu/chromeos/BUILD.gn
+++ b/media/gpu/chromeos/BUILD.gn
@@ -25,6 +25,7 @@ source_set("chromeos") {
deps = [
"//base",
+ "//build/config/linux/libdrm",
"//media",
"//media/gpu:buildflags",
"//media/gpu:command_buffer_helper",
diff --git a/media/gpu/chromeos/video_decoder_pipeline.cc b/media/gpu/chromeos/video_decoder_pipeline.cc
index d2f154ea0d8..416b9434a8d 100644
--- a/media/gpu/chromeos/video_decoder_pipeline.cc
+++ b/media/gpu/chromeos/video_decoder_pipeline.cc
@@ -28,8 +28,8 @@
#include "third_party/abseil-cpp/absl/types/optional.h"
#if BUILDFLAG(USE_VAAPI)
+#include <drm_fourcc.h>
#include "media/gpu/vaapi/vaapi_video_decoder.h"
-#include "third_party/libdrm/src/include/drm/drm_fourcc.h"
#elif BUILDFLAG(USE_V4L2_CODEC)
#include "media/gpu/v4l2/v4l2_video_decoder.h"
#else
@@ -1,45 +0,0 @@
From c2d0133f47afb59b4ce64e42215d1d053f15250a Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Tue, 13 Apr 2021 23:21:42 +0000
Subject: [PATCH] fix crash in ThemeService
ThemeSyncableService and ThemeService are owned by each other. On
destruction of ThemeService, ThemeSyncableService gets destructed as
well, but calls RemoveObserver of partly destructed ThemeService object.
To avoid already destructed |observers_| list, move it before
|theme_syncable_service_| definition.
Bug: 1190561
Change-Id: I4dc2c990d589071d97b7fa737afef54463c84751
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2821311
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Peter Kasting <pkasting@chromium.org>
Cr-Commit-Position: refs/heads/master@{#872164}
---
chrome/browser/themes/theme_service.h | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/chrome/browser/themes/theme_service.h b/chrome/browser/themes/theme_service.h
index 592d40ae9de0f..337dfac9a040f 100644
--- a/chrome/browser/themes/theme_service.h
+++ b/chrome/browser/themes/theme_service.h
@@ -299,6 +299,10 @@ class ThemeService : public KeyedService,
// The number of infobars currently displayed.
int number_of_reinstallers_ = 0;
+ // Declared before |theme_syncable_service_|, because ThemeSyncableService
+ // removes itself from the |observers_| list on destruction.
+ base::ObserverList<ThemeServiceObserver> observers_;
+
std::unique_ptr<ThemeSyncableService> theme_syncable_service_;
#if BUILDFLAG(ENABLE_EXTENSIONS)
@@ -320,8 +324,6 @@ class ThemeService : public KeyedService,
ScopedObserver<ui::NativeTheme, ui::NativeThemeObserver>
native_theme_observer_{this};
- base::ObserverList<ThemeServiceObserver> observers_;
-
base::WeakPtrFactory<ThemeService> weak_ptr_factory_{this};
DISALLOW_COPY_AND_ASSIGN(ThemeService);
@@ -1,35 +0,0 @@
From 52d0ad25ea695da44195e49f36e69fa81b55e670 Mon Sep 17 00:00:00 2001
From: Tom Anderson <thomasanderson@chromium.org>
Date: Wed, 5 Jan 2022 21:11:03 +0000
Subject: [PATCH] [X11] Fix tag dragging in KWin
R=sky
Bug: 1279532
Change-Id: Iac166803e2149eef234045d922b630f0019c8073
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3355376
Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/main@{#955869}
---
ui/platform_window/x11/x11_topmost_window_finder.cc | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/ui/platform_window/x11/x11_topmost_window_finder.cc b/ui/platform_window/x11/x11_topmost_window_finder.cc
index 50e75e17f0a..2e16393487b 100644
--- a/ui/platform_window/x11/x11_topmost_window_finder.cc
+++ b/ui/platform_window/x11/x11_topmost_window_finder.cc
@@ -68,9 +68,9 @@ bool EnumerateAllWindows(ShouldStopIteratingCallback should_stop_iterating,
void EnumerateTopLevelWindows(
ui::ShouldStopIteratingCallback should_stop_iterating) {
- // Some WMs parent 'top-level' windows in unnamed actual top-level windows
- // (ion WM), so extend the search depth to all children of top-level windows.
- const int kMaxSearchDepth = 1;
+ // WMs may reparent toplevel windows inside their own containers, so extend
+ // the search to all grandchildren of all toplevel windows.
+ const int kMaxSearchDepth = 2;
ui::EnumerateAllWindows(should_stop_iterating, kMaxSearchDepth);
}
@@ -1,46 +0,0 @@
From 3806f28918ea23291749ff4775339075a5f394e8 Mon Sep 17 00:00:00 2001
From: Tom Anderson <thomasanderson@chromium.org>
Date: Thu, 6 Jan 2022 00:59:40 +0000
Subject: [PATCH] [X11] Fix tag dragging in Mutter
We used to use a BFS to find the target window for tag dragging, but
this causes windows underneath (like the window for the desktop
wallpaper) to take precedence over nested windows.
This CL switches to a DFS.
R=sky
Bug: 1279532
Change-Id: Ib569e9270be60bcb4fff088517dfe295697608b0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3355470
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/main@{#955976}
---
ui/platform_window/x11/x11_topmost_window_finder.cc | 11 ++---------
1 file changed, 2 insertions(+), 9 deletions(-)
diff --git a/ui/platform_window/x11/x11_topmost_window_finder.cc b/ui/platform_window/x11/x11_topmost_window_finder.cc
index 2e16393487b..e20bf0abf0e 100644
--- a/ui/platform_window/x11/x11_topmost_window_finder.cc
+++ b/ui/platform_window/x11/x11_topmost_window_finder.cc
@@ -44,15 +44,8 @@ bool EnumerateChildren(ShouldStopIteratingCallback should_stop_iterating,
for (iter = windows.rbegin(); iter != windows.rend(); iter++) {
if (IsWindowNamed(*iter) && should_stop_iterating.Run(*iter))
return true;
- }
-
- // If we're at this point, we didn't find the window we're looking for at the
- // current level, so we need to recurse to the next level. We use a second
- // loop because the recursion and call to XQueryTree are expensive and is only
- // needed for a small number of cases.
- if (++depth <= max_depth) {
- for (iter = windows.rbegin(); iter != windows.rend(); iter++) {
- if (EnumerateChildren(should_stop_iterating, *iter, max_depth, depth))
+ if (depth < max_depth) {
+ if (EnumerateChildren(should_stop_iterating, *iter, max_depth, depth + 1))
return true;
}
}
@@ -1,31 +0,0 @@
From 0aa878b7839141077071db97ba1cd30edf486827 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
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 <drubery@chromium.org>
Commit-Queue: Stephan Hartmann <stha09@googlemail.com>
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",
]
@@ -1,671 +0,0 @@
From a4de986102a45e29c3ef596f22704bdca244c26c Mon Sep 17 00:00:00 2001
From: Maksim Sisov <msisov@igalia.com>
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 <msisov@igalia.com>
Reviewed-by: Andres Calderon Jaramillo <andrescj@chromium.org>
Reviewed-by: Robert Kroeger <rjkroege@chromium.org>
Reviewed-by: Xiaohan Wang <xhwang@chromium.org>
Reviewed-by: Alexander Dunaev <adunaev@igalia.com>
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 <va/va_drm.h>
#include <va/va.h>
-#if defined(USE_X11)
+#if BUILDFLAG(USE_VAAPI_X11)
#include <va/va_x11.h>
-#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<VaapiPictureNativePixmapOzone>);
- 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<VaapiPictureNativePixmapOzone>);
+ 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<VaapiTFPPicture>);
// Neither VaapiTFPPicture or VaapiPictureNativePixmapAngle needs the VPP.
needs_vpp_for_downloading_ = false;
break;
case kVaapiImplementationAngle:
- DCHECK(!features::IsUsingOzonePlatform());
create_picture_cb_ = base::BindRepeating(
&CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapAngle>);
// 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<VaapiPictureNativePixmapOzone>);
- needs_vpp_for_downloading_ = true;
- break;
- }
-#endif // defined(USE_OZONE)
-#if defined(USE_EGL)
+ create_picture_cb_ = base::BindRepeating(
+ &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
+ needs_vpp_for_downloading_ = true;
+ break;
+#elif defined(USE_EGL)
create_picture_cb_ = base::BindRepeating(
&CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapEgl>);
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<gl::GLImageEGLPixmap>(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<VaapiPictureFactory>();
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<VADisplay> 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<VADisplay> 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<VADisplay> GetVADisplayState(const base::ScopedFD& drm_fd) {
}
}
-#endif // defined(USE_X11)
+#endif // BUILDFLAG(USE_VAAPI_X11)
bool VADisplayState::InitializeVaDisplay_Locked() {
absl::optional<VADisplay> 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<ScopedVAImage> 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<std::pair<VABufferID, VABufferDescriptor>>& 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.
@@ -1,13 +0,0 @@
diff --git a/third_party/protobuf/src/google/protobuf/repeated_field.h b/third_party/protobuf/src/google/protobuf/repeated_field.h
index b5b193c..4434854 100644
--- a/third_party/protobuf/src/google/protobuf/repeated_field.h
+++ b/third_party/protobuf/src/google/protobuf/repeated_field.h
@@ -804,7 +804,7 @@ class StringTypeHandler {
// RepeatedPtrField is like RepeatedField, but used for repeated strings or
// Messages.
template <typename Element>
-class RepeatedPtrField final : private internal::RepeatedPtrFieldBase {
+class PROTOBUF_EXPORT RepeatedPtrField final : private internal::RepeatedPtrFieldBase {
public:
RepeatedPtrField();
explicit RepeatedPtrField(Arena* arena);
@@ -1,220 +0,0 @@
From 307a0f63dd9b118f4b8470ed3d7567e81fdb7a6d Mon Sep 17 00:00:00 2001
From: Mike Gilbert <floppym@gentoo.org>
Date: Fri, 3 Dec 2021 09:50:31 +0000
Subject: [PATCH] Disable various compiler configs
---
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 5365544..e6d9b56 100644
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -291,9 +291,7 @@ config("compiler") {
configs += [
# See the definitions below.
- ":clang_revision",
":rustc_revision",
- ":compiler_cpu_abi",
":compiler_codegen",
":compiler_deterministic",
]
@@ -534,31 +532,6 @@ config("compiler") {
ldflags += [ "-Wl,-z,keep-text-section-prefix" ]
}
- if (is_clang && !is_nacl && current_os != "zos") {
- cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ]
-
- # TODO(hans): Remove this once Clang generates better optimized debug info
- # by default. https://crbug.com/765793
- cflags += [
- "-mllvm",
- "-instcombine-lower-dbg-declare=0",
- ]
- if (!is_debug && use_thin_lto && is_a_target_toolchain) {
- if (is_win) {
- ldflags += [ "-mllvm:-instcombine-lower-dbg-declare=0" ]
- } else {
- 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) ||
@@ -1231,45 +1204,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.
@@ -1556,7 +1490,7 @@ config("chromium_code") {
defines = [ "_HAS_NODISCARD" ]
}
} else {
- cflags = [ "-Wall" ]
+ cflags = []
if (treat_warnings_as_errors) {
cflags += [ "-Werror" ]
@@ -1565,10 +1499,6 @@ config("chromium_code") {
# well.
ldflags = [ "-Werror" ]
}
- if (is_clang) {
- # Enable extra warnings for chromium_code when we control the compiler.
- cflags += [ "-Wextra" ]
- }
# In Chromium code, we define __STDC_foo_MACROS in order to get the
# C99 macros on Mac and Linux.
@@ -1577,15 +1507,6 @@ config("chromium_code") {
"__STDC_FORMAT_MACROS",
]
- if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
- current_cpu != "s390" && current_cpu != "ppc64" &&
- current_cpu != "mips" && current_cpu != "mips64") {
- # Non-chromium code is not guaranteed to compile cleanly with
- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
- # disabled, so only do that for Release build.
- defines += [ "_FORTIFY_SOURCE=2" ]
- }
-
if (is_mac) {
cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
@@ -1988,7 +1909,8 @@ config("default_stack_frames") {
}
# Default "optimization on" config.
-config("optimize") {
+config("optimize") { }
+config("xoptimize") {
if (is_win) {
if (chrome_pgo_phase != 2) {
# Favor size over speed, /O1 must be before the common flags.
@@ -2026,7 +1948,8 @@ config("optimize") {
}
# Turn off optimizations.
-config("no_optimize") {
+config("no_optimize") { }
+config("xno_optimize") {
if (is_win) {
cflags = [
"/Od", # Disable optimization.
@@ -2066,7 +1989,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.
-config("optimize_max") {
+config("optimize_max") { }
+config("xoptimize_max") {
if (is_nacl && is_nacl_irt) {
# The NaCl IRT is a special case and always wants its own config.
# Various components do:
@@ -2099,7 +2023,8 @@ config("optimize_max") {
#
# TODO(crbug.com/621335) - rework how all of these configs are related
# so that we don't need this disclaimer.
-config("optimize_speed") {
+config("optimize_speed") { }
+config("xoptimize_speed") {
if (is_nacl && is_nacl_irt) {
# The NaCl IRT is a special case and always wants its own config.
# Various components do:
@@ -2125,7 +2050,8 @@ config("optimize_speed") {
}
}
-config("optimize_fuzzing") {
+config("optimize_fuzzing") { }
+config("xoptimize_fuzzing") {
cflags = [ "-O1" ] + common_optimize_on_cflags
rustflags = [ "-Copt-level=1" ]
ldflags = common_optimize_on_ldflags
@@ -2245,7 +2171,8 @@ config("win_pdbaltpath") {
}
# Full symbols.
-config("symbols") {
+config("symbols") { }
+config("xsymbols") {
if (is_win) {
if (is_clang) {
cflags = [ "/Z7" ] # Debug information in the .obj files.
@@ -2369,7 +2296,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.
-config("minimal_symbols") {
+config("minimal_symbols") { }
+config("xminimal_symbols") {
if (is_win) {
# Functions, files, and line tables only.
cflags = []
@@ -2438,7 +2366,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.
-config("no_symbols") {
+config("no_symbols") { }
+config("xno_symbols") {
if (is_win) {
ldflags = [ "/DEBUG" ]
--
2.32.0
@@ -1,32 +0,0 @@
From f1befebb6cea78950b5a8133bf3e65d56889d353 Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jdapena@igalia.com>
Date: Thu, 20 Jan 2022 09:38:13 +0100
Subject: [PATCH] GCC: use braces initialization for NoDestructor in AutofillAssistantModelExecutor
Fix build with GCC failing to resolve initialization of NoDestructor
with initializer list.
Bug: 819294
Change-Id: I5fe8d30b4aefdddd71ff7b220eeffcd838308f5a
---
diff --git a/components/autofill_assistant/content/renderer/autofill_assistant_model_executor.cc b/components/autofill_assistant/content/renderer/autofill_assistant_model_executor.cc
index 033205b..670376e 100644
--- a/components/autofill_assistant/content/renderer/autofill_assistant_model_executor.cc
+++ b/components/autofill_assistant/content/renderer/autofill_assistant_model_executor.cc
@@ -156,13 +156,13 @@
// TODO(b/204841212): Implement this with use of ModelMetadata.
absl::optional<std::string> AutofillAssistantModelExecutor::Postprocess(
const std::vector<const TfLiteTensor*>& output_tensors) {
- static const base::NoDestructor<std::vector<std::string>> output_roles(
+ static const base::NoDestructor<std::vector<std::string>> output_roles{
{"UNKNOWN_ROLE", "NAME_FIRST", "NAME_LAST", "NAME_FULL", "ADDRESS_LINE1",
"ADDRESS_LINE2", "CITY", "STATE", "COUNTRY", "POSTAL_CODE",
"CREDIT_CARD_NUMBER", "CREDIT_CARD_EXP_MONTH",
"CREDIT_CARD_VERIFICATION_CODE", "ORGANIZATION",
"CREDIT_CARD_EXPIRATION", "PHONE_NUMBER", "USERNAME_OR_EMAIL",
- "CREDIT_CARD_EXP_YEAR"});
+ "CREDIT_CARD_EXP_YEAR"}};
DCHECK_GE(output_tensors.size(), 1u);
std::vector<float> data;
@@ -1,44 +0,0 @@
From 408e4da26f1b782005ab10307c83892055d7ef45 Mon Sep 17 00:00:00 2001
From: Robert Mader <robert.mader@posteo.de>
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 <sprang@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
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<GVariant> 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<GVariant> 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)
@@ -1,196 +0,0 @@
From 9d080c0934b848ee4a05013c78641e612fcc1e03 Mon Sep 17 00:00:00 2001
From: Dylan Cutler <dylancutler@google.com>
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 <dylancutler@google.com>
> Reviewed-by: Nico Weber <thakis@chromium.org>
> Reviewed-by: Jonathan Metzman <metzman@chromium.org>
> 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 <dylancutler@google.com>
Reviewed-by: Nico Weber <thakis@chromium.org>
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
@@ -1,238 +0,0 @@
From 144479ad7b4287bee4067f95e4218f614798a865 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Sun, 16 Jan 2022 19:15:26 +0000
Subject: [PATCH] sql: make VirtualCursor standard layout type
sql::recover::VirtualCursor needs to be a standard layout type, but
has members of type std::unique_ptr. However, std::unique_ptr is not
guaranteed to be standard layout. Compiling with clang combined with
gcc-11 libstdc++ fails because of this.
Bug: 1189788
Change-Id: Ia6dc388cc5ef1c0f2afc75f8ca45b9f12687ca9c
---
sql/recover_module/btree.cc | 18 ++++++++++++------
sql/recover_module/btree.h | 21 +++++++++++++++------
sql/recover_module/cursor.cc | 24 ++++++++++++------------
sql/recover_module/cursor.h | 2 +-
sql/recover_module/pager.cc | 5 ++---
sql/recover_module/pager.h | 6 +++---
6 files changed, 45 insertions(+), 31 deletions(-)
diff --git a/sql/recover_module/btree.cc b/sql/recover_module/btree.cc
index cc9420e5c05..f12d8fa32a2 100644
--- a/sql/recover_module/btree.cc
+++ b/sql/recover_module/btree.cc
@@ -136,16 +136,22 @@ static_assert(std::is_trivially_destructible<LeafPageDecoder>::value,
"Move the destructor to the .cc file if it's non-trival");
#endif // !DCHECK_IS_ON()
-LeafPageDecoder::LeafPageDecoder(DatabasePageReader* db_reader) noexcept
- : page_id_(db_reader->page_id()),
- db_reader_(db_reader),
- cell_count_(ComputeCellCount(db_reader)),
- next_read_index_(0),
- last_record_size_(0) {
+LeafPageDecoder::LeafPageDecoder() noexcept = default;
+
+void LeafPageDecoder::Initialize(DatabasePageReader* db_reader) {
+ page_id_ = db_reader->page_id();
+ db_reader_ = db_reader;
+ cell_count_ = ComputeCellCount(db_reader);
+ next_read_index_ = 0;
+ last_record_size_ = 0;
DCHECK(IsOnValidPage(db_reader));
DCHECK(DatabasePageReader::IsValidPageId(page_id_));
}
+void LeafPageDecoder::Reset() {
+ db_reader_ = nullptr;
+}
+
bool LeafPageDecoder::TryAdvance() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
DCHECK(CanAdvance());
diff --git a/sql/recover_module/btree.h b/sql/recover_module/btree.h
index eaa087a5c52..df0e0c937c0 100644
--- a/sql/recover_module/btree.h
+++ b/sql/recover_module/btree.h
@@ -101,9 +101,7 @@ class LeafPageDecoder {
public:
// Creates a decoder for a DatabasePageReader's last read page.
//
- // |db_reader| must have been used to read an inner page of a table B-tree.
- // |db_reader| must outlive this instance.
- explicit LeafPageDecoder(DatabasePageReader* db_reader) noexcept;
+ LeafPageDecoder() noexcept;
~LeafPageDecoder() noexcept = default;
LeafPageDecoder(const LeafPageDecoder&) = delete;
@@ -151,6 +149,17 @@ class LeafPageDecoder {
// read as long as CanAdvance() returns true.
bool TryAdvance();
+ // Initialize with DatabasePageReader
+ // |db_reader| must have been used to read an inner page of a table B-tree.
+ // |db_reader| must outlive this instance.
+ void Initialize(DatabasePageReader* db_reader);
+
+ // Reset internal DatabasePageReader
+ void Reset();
+
+ // True if DatabasePageReader is valid
+ bool IsValid() { return (db_reader_ != nullptr); }
+
// True if the given reader may point to an inner page in a table B-tree.
//
// The last ReadPage() call on |db_reader| must have succeeded.
@@ -164,14 +173,14 @@ class LeafPageDecoder {
static int ComputeCellCount(DatabasePageReader* db_reader);
// The number of the B-tree page this reader is reading.
- const int64_t page_id_;
+ int64_t page_id_;
// Used to read the tree page.
//
// Raw pointer usage is acceptable because this instance's owner is expected
// to ensure that the DatabasePageReader outlives this.
- DatabasePageReader* const db_reader_;
+ DatabasePageReader* db_reader_;
// Caches the ComputeCellCount() value for this reader's page.
- const int cell_count_ = ComputeCellCount(db_reader_);
+ int cell_count_;
// The reader's cursor state.
//
diff --git a/sql/recover_module/cursor.cc b/sql/recover_module/cursor.cc
index 4f827edf1b4..240de4999fe 100644
--- a/sql/recover_module/cursor.cc
+++ b/sql/recover_module/cursor.cc
@@ -28,7 +28,7 @@ VirtualCursor::~VirtualCursor() {
int VirtualCursor::First() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
inner_decoders_.clear();
- leaf_decoder_ = nullptr;
+ leaf_decoder_.Reset();
AppendPageDecoder(table_->root_page_id());
return Next();
@@ -38,18 +38,18 @@ int VirtualCursor::Next() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
record_reader_.Reset();
- while (!inner_decoders_.empty() || leaf_decoder_.get()) {
- if (leaf_decoder_.get()) {
- if (!leaf_decoder_->CanAdvance()) {
+ while (!inner_decoders_.empty() || leaf_decoder_.IsValid()) {
+ if (leaf_decoder_.IsValid()) {
+ if (!leaf_decoder_.CanAdvance()) {
// The leaf has been exhausted. Remove it from the DFS stack.
- leaf_decoder_ = nullptr;
+ leaf_decoder_.Reset();
continue;
}
- if (!leaf_decoder_->TryAdvance())
+ if (!leaf_decoder_.TryAdvance())
continue;
- if (!payload_reader_.Initialize(leaf_decoder_->last_record_size(),
- leaf_decoder_->last_record_offset())) {
+ if (!payload_reader_.Initialize(leaf_decoder_.last_record_size(),
+ leaf_decoder_.last_record_offset())) {
continue;
}
if (!record_reader_.Initialize())
@@ -101,13 +101,13 @@ int VirtualCursor::ReadColumn(int column_index,
int64_t VirtualCursor::RowId() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
DCHECK(record_reader_.IsInitialized());
- DCHECK(leaf_decoder_.get());
- return leaf_decoder_->last_record_rowid();
+ DCHECK(leaf_decoder_.IsValid());
+ return leaf_decoder_.last_record_rowid();
}
void VirtualCursor::AppendPageDecoder(int page_id) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
- DCHECK(leaf_decoder_.get() == nullptr)
+ DCHECK(!leaf_decoder_.IsValid())
<< __func__
<< " must only be called when the current path has no leaf decoder";
@@ -115,7 +115,7 @@ void VirtualCursor::AppendPageDecoder(int page_id) {
return;
if (LeafPageDecoder::IsOnValidPage(&db_reader_)) {
- leaf_decoder_ = std::make_unique<LeafPageDecoder>(&db_reader_);
+ leaf_decoder_.Initialize(&db_reader_);
return;
}
diff --git a/sql/recover_module/cursor.h b/sql/recover_module/cursor.h
index 845b7852648..cc4e85f83f9 100644
--- a/sql/recover_module/cursor.h
+++ b/sql/recover_module/cursor.h
@@ -130,7 +130,7 @@ class VirtualCursor {
std::vector<std::unique_ptr<InnerPageDecoder>> inner_decoders_;
// Decodes the leaf page containing records.
- std::unique_ptr<LeafPageDecoder> leaf_decoder_;
+ LeafPageDecoder leaf_decoder_;
SEQUENCE_CHECKER(sequence_checker_);
};
diff --git a/sql/recover_module/pager.cc b/sql/recover_module/pager.cc
index 58e75de2704..69d98cef98d 100644
--- a/sql/recover_module/pager.cc
+++ b/sql/recover_module/pager.cc
@@ -23,8 +23,7 @@ static_assert(DatabasePageReader::kMaxPageId <= std::numeric_limits<int>::max(),
"ints are not appropriate for representing page IDs");
DatabasePageReader::DatabasePageReader(VirtualTable* table)
- : page_data_(std::make_unique<uint8_t[]>(table->page_size())),
- table_(table) {
+ : page_data_(table->page_size()), table_(table) {
DCHECK(table != nullptr);
DCHECK(IsValidPageSize(table->page_size()));
}
@@ -58,7 +57,7 @@ int DatabasePageReader::ReadPage(int page_id) {
"The |read_offset| computation above may overflow");
int sqlite_status =
- RawRead(sqlite_file, read_size, read_offset, page_data_.get());
+ RawRead(sqlite_file, read_size, read_offset, page_data_.data());
// |page_id_| needs to be set to kInvalidPageId if the read failed.
// Otherwise, future ReadPage() calls with the previous |page_id_| value
diff --git a/sql/recover_module/pager.h b/sql/recover_module/pager.h
index 07cac3cb989..d08f0932fab 100644
--- a/sql/recover_module/pager.h
+++ b/sql/recover_module/pager.h
@@ -6,8 +6,8 @@
#define SQL_RECOVER_MODULE_PAGER_H_
#include <cstdint>
-#include <memory>
#include <ostream>
+#include <vector>
#include "base/check_op.h"
#include "base/memory/raw_ptr.h"
@@ -72,7 +72,7 @@ class DatabasePageReader {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
DCHECK_NE(page_id_, kInvalidPageId)
<< "Successful ReadPage() required before accessing pager state";
- return page_data_.get();
+ return page_data_.data();
}
// The number of bytes in the page read by the last ReadPage() call.
@@ -139,7 +139,7 @@ class DatabasePageReader {
int page_id_ = kInvalidPageId;
// Stores the bytes of the last page successfully read by ReadPage().
// The content is undefined if the last call to ReadPage() did not succeed.
- const std::unique_ptr<uint8_t[]> page_data_;
+ std::vector<uint8_t> page_data_;
// Raw pointer usage is acceptable because this instance's owner is expected
// to ensure that the VirtualTable outlives this.
const raw_ptr<VirtualTable> table_;
@@ -1,11 +0,0 @@
--- 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",
@@ -1,71 +0,0 @@
From ffeb67faf715475f6e463d65c368f556780adf19 Mon Sep 17 00:00:00 2001
From: Lei Zhang <thestig@chromium.org>
Date: Mon, 31 Jan 2022 22:42:35 +0000
Subject: [PATCH] Use FT_Done_MM_Var() in CFX_Font::AdjustMMParams() when
possible.
When FreeType has FT_Done_MM_Var(), use that to free memory in
CFX_Font::AdjustMMParams() to avoid mismatched alloc/free functions.
Bug: pdfium:1400
Change-Id: I044540893103921fc64cdd53fcd628cfebf2c9db
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/90130
Reviewed-by: Nigi <nigi@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
---
core/fxge/cfx_font.cpp | 28 ++++++++++++++++++++++++++--
1 file changed, 26 insertions(+), 2 deletions(-)
diff --git a/core/fxge/cfx_font.cpp b/core/fxge/cfx_font.cpp
index c08fe9608..8b3a72700 100644
--- a/core/fxge/cfx_font.cpp
+++ b/core/fxge/cfx_font.cpp
@@ -44,6 +44,30 @@ struct OUTLINE_PARAMS {
float m_CoordUnit;
};
+// TODO(crbug.com/pdfium/1400): When FT_Done_MM_Var() is more likely to be
+// available to all users in the future, remove FreeMMVar() and use
+// FT_Done_MM_Var() directly.
+//
+// Use weak symbols to check if FT_Done_MM_Var() is available at runtime.
+#if !BUILDFLAG(IS_WIN)
+extern "C" __attribute__((weak)) decltype(FT_Done_MM_Var) FT_Done_MM_Var;
+#endif
+
+void FreeMMVar(FXFT_FaceRec* rec, FXFT_MM_VarPtr variation_desc) {
+#if BUILDFLAG(IS_WIN)
+ // Assume `use_system_freetype` GN var is never set on Windows.
+ constexpr bool has_ft_done_mm_var_func = true;
+#else
+ static const bool has_ft_done_mm_var_func = !!FT_Done_MM_Var;
+#endif
+ if (has_ft_done_mm_var_func) {
+ FT_Done_MM_Var(CFX_GEModule::Get()->GetFontMgr()->GetFTLibrary(),
+ variation_desc);
+ } else {
+ FXFT_Free(rec, variation_desc);
+ }
+}
+
FX_RECT FXRectFromFTPos(FT_Pos left, FT_Pos top, FT_Pos right, FT_Pos bottom) {
return FX_RECT(pdfium::base::checked_cast<int32_t>(left),
pdfium::base::checked_cast<int32_t>(top),
@@ -645,7 +669,7 @@ void CFX_Font::AdjustMMParams(int glyph_index,
FT_Pos max_width = FXFT_Get_Glyph_HoriAdvance(m_Face->GetRec()) * 1000 /
FXFT_Get_Face_UnitsPerEM(m_Face->GetRec());
if (max_width == min_width) {
- FXFT_Free(m_Face->GetRec(), pMasters);
+ FreeMMVar(m_Face->GetRec(), pMasters);
return;
}
FT_Pos param = min_param + (max_param - min_param) *
@@ -653,7 +677,7 @@ void CFX_Font::AdjustMMParams(int glyph_index,
(max_width - min_width);
coords[1] = param;
}
- FXFT_Free(m_Face->GetRec(), pMasters);
+ FreeMMVar(m_Face->GetRec(), pMasters);
FT_Set_MM_Design_Coordinates(m_Face->GetRec(), 2, coords);
}
@@ -1,65 +0,0 @@
From 34a955823630096f5b01c2b01d51c1ea59d22763 Mon Sep 17 00:00:00 2001
From: Zequan Wu <zequanwu@google.com>
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 <zequanwu@google.com>
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
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.
@@ -1,17 +0,0 @@
diff -upr chromium-89.0.4389.58.orig/google_apis/google_api_keys.cc chromium-89.0.4389.58/google_apis/google_api_keys.cc
--- chromium-89.0.4389.58.orig/google_apis/google_api_keys.cc 2021-02-24 22:37:18.494007649 +0000
+++ chromium-89.0.4389.58/google_apis/google_api_keys.cc 2021-02-24 22:35:00.865777600 +0000
@@ -154,11 +154,11 @@ class APIKeyCache {
std::string default_client_id = CalculateKeyValue(
GOOGLE_DEFAULT_CLIENT_ID,
- STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), nullptr,
+ STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), ::switches::kOAuth2ClientID,
std::string(), environment.get(), command_line, gaia_config);
std::string default_client_secret = CalculateKeyValue(
GOOGLE_DEFAULT_CLIENT_SECRET,
- STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), nullptr,
+ STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), ::switches::kOAuth2ClientSecret,
std::string(), environment.get(), command_line, gaia_config);
// We currently only allow overriding the baked-in values for the
@@ -1,22 +0,0 @@
--- a/ui/gl/gl_image_native_pixmap.cc 2020-05-18 11:40:06.000000000 -0700
+++ b/ui/gl/gl_image_native_pixmap.cc 2020-05-22 02:07:16.007770442 -0700
@@ -288,6 +288,8 @@
std::move(scoped_fd));
}
+ handle.planes[0].size = size_.GetArea();
+
return handle;
#endif // !defined(OS_FUCHSIA)
}
--- a/gpu/command_buffer/service/error_state.cc 2020-05-18 11:39:22.000000000 -0700
+++ b/gpu/command_buffer/service/error_state.cc 2020-05-22 13:43:09.181180388 -0700
@@ -115,6 +115,8 @@
// buffer.
error = GL_NO_ERROR;
}
+ if (error == GL_INVALID_ENUM)
+ error = GL_NO_ERROR;
return error;
}
@@ -1,49 +0,0 @@
From 3bd46cb9a51773f103ef52b39d6407740eb0d60a Mon Sep 17 00:00:00 2001
From: Eugene Zemtsov <eugene@chromium.org>
Date: Thu, 24 Feb 2022 23:17:20 +0000
Subject: [PATCH] webcodecs: Stop using AudioOpusEncoder as backed for mojo
audio encoder
AudioOpusEncoder was only used here for testing. Let's not let it get
comfortable. We'll use MF AAC encoder here when we have it. (Soon...)
Bug: 1259883
Change-Id: Ia1819395c8c8fd6d403d4b8558c12f9a1bf7e761
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3489449
Commit-Queue: Eugene Zemtsov <eugene@chromium.org>
Auto-Submit: Eugene Zemtsov <eugene@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
Cr-Commit-Position: refs/heads/main@{#974895}
---
media/mojo/services/gpu_mojo_media_client.cc | 10 +---------
1 file changed, 1 insertion(+), 9 deletions(-)
diff --git a/media/mojo/services/gpu_mojo_media_client.cc b/media/mojo/services/gpu_mojo_media_client.cc
index 8f83a4d6cf6..40cdaff8d3a 100644
--- a/media/mojo/services/gpu_mojo_media_client.cc
+++ b/media/mojo/services/gpu_mojo_media_client.cc
@@ -13,7 +13,6 @@
#include "build/chromeos_buildflags.h"
#include "gpu/ipc/service/gpu_channel.h"
#include "media/audio/audio_features.h"
-#include "media/audio/audio_opus_encoder.h"
#include "media/base/audio_decoder.h"
#include "media/base/cdm_factory.h"
#include "media/base/media_switches.h"
@@ -119,14 +118,7 @@ std::unique_ptr<AudioEncoder> GpuMojoMediaClient::CreateAudioEncoder(
scoped_refptr<base::SequencedTaskRunner> task_runner) {
if (!base::FeatureList::IsEnabled(features::kPlatformAudioEncoder))
return nullptr;
- // TODO(crbug.com/1259883) Right now Opus encoder is all we have, later on
- // we'll create a real platform encoder here.
- auto opus_encoder = std::make_unique<AudioOpusEncoder>();
- auto encoding_runner = base::ThreadPool::CreateSequencedTaskRunner(
- {base::TaskPriority::USER_BLOCKING});
- return std::make_unique<OffloadingAudioEncoder>(std::move(opus_encoder),
- std::move(encoding_runner),
- std::move(task_runner));
+ return nullptr;
}
VideoDecoderType GpuMojoMediaClient::GetDecoderImplementationType() {
@@ -1,135 +0,0 @@
From 5e3a738b1204941aab9f15c0eb3d06e20fefd96e Mon Sep 17 00:00:00 2001
From: Scott Violet <sky@chromium.org>
Date: Mon, 8 Mar 2021 21:07:39 +0000
Subject: [PATCH] x11/ozone: fix two edge cases
WindowTreeHost::OnHostMovedInPixels() may trigger a nested message
loop (tab dragging), which when the stack unravels means this may
be deleted. This adds an early out if this happens.
X11WholeScreenMoveLoop has a similar issue, in so far as notifying
the delegate may delete this.
BUG=1185482
TEST=WindowTreeHostPlatform.DeleteHostFromOnHostMovedInPixels
Change-Id: Ieca1c90b3e4358da50b332abe2941fdbb50c5c25
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2743555
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#860852}
---
ui/aura/window_tree_host_platform.cc | 10 ++++-
ui/aura/window_tree_host_platform_unittest.cc | 40 ++++++++++++++++++-
ui/base/x/x11_whole_screen_move_loop.cc | 4 ++
3 files changed, 51 insertions(+), 3 deletions(-)
diff --git a/ui/aura/window_tree_host_platform.cc b/ui/aura/window_tree_host_platform.cc
index ce8395fe07..7589542026 100644
--- a/ui/aura/window_tree_host_platform.cc
+++ b/ui/aura/window_tree_host_platform.cc
@@ -214,13 +214,21 @@ void WindowTreeHostPlatform::OnBoundsChanged(const gfx::Rect& new_bounds) {
float current_scale = compositor()->device_scale_factor();
float new_scale = ui::GetScaleFactorForNativeView(window());
gfx::Rect old_bounds = bounds_in_pixels_;
+ auto weak_ref = GetWeakPtr();
bounds_in_pixels_ = new_bounds;
- if (bounds_in_pixels_.origin() != old_bounds.origin())
+ if (bounds_in_pixels_.origin() != old_bounds.origin()) {
OnHostMovedInPixels(bounds_in_pixels_.origin());
+ // Changing the bounds may destroy this.
+ if (!weak_ref)
+ return;
+ }
if (bounds_in_pixels_.size() != old_bounds.size() ||
current_scale != new_scale) {
pending_size_ = gfx::Size();
OnHostResizedInPixels(bounds_in_pixels_.size());
+ // Changing the size may destroy this.
+ if (!weak_ref)
+ return;
}
DCHECK_GT(on_bounds_changed_recursion_depth_, 0);
if (--on_bounds_changed_recursion_depth_ == 0) {
diff --git a/ui/aura/window_tree_host_platform_unittest.cc b/ui/aura/window_tree_host_platform_unittest.cc
index eda14e2f0c..4de039c88a 100644
--- a/ui/aura/window_tree_host_platform_unittest.cc
+++ b/ui/aura/window_tree_host_platform_unittest.cc
@@ -34,7 +34,7 @@ class TestWindowTreeHost : public WindowTreeHostPlatform {
// OnHostWill/DidProcessBoundsChange. Additionally, this triggers a bounds
// change from within OnHostResized(). Such a scenario happens in production
// code.
-class TestWindowTreeHostObserver : public aura::WindowTreeHostObserver {
+class TestWindowTreeHostObserver : public WindowTreeHostObserver {
public:
TestWindowTreeHostObserver(WindowTreeHostPlatform* host,
ui::PlatformWindow* platform_window)
@@ -51,7 +51,7 @@ class TestWindowTreeHostObserver : public aura::WindowTreeHostObserver {
return on_host_will_process_bounds_change_count_;
}
- // aura::WindowTreeHostObserver:
+ // WindowTreeHostObserver:
void OnHostResized(WindowTreeHost* host) override {
if (!should_change_bounds_in_on_resized_)
return;
@@ -92,5 +92,41 @@ TEST_F(WindowTreeHostPlatformTest, HostWillProcessBoundsChangeRecursion) {
EXPECT_EQ(1, observer.on_host_will_process_bounds_change_count());
}
+// Deletes WindowTreeHostPlatform from OnHostMovedInPixels().
+class DeleteHostWindowTreeHostObserver : public WindowTreeHostObserver {
+ public:
+ explicit DeleteHostWindowTreeHostObserver(
+ std::unique_ptr<TestWindowTreeHost> host)
+ : host_(std::move(host)) {
+ host_->AddObserver(this);
+ }
+ ~DeleteHostWindowTreeHostObserver() override = default;
+
+ TestWindowTreeHost* host() { return host_.get(); }
+
+ // WindowTreeHostObserver:
+ void OnHostMovedInPixels(WindowTreeHost* host,
+ const gfx::Point& new_origin_in_pixels) override {
+ host_->RemoveObserver(this);
+ host_.reset();
+ }
+
+ private:
+ std::unique_ptr<TestWindowTreeHost> host_;
+
+ DISALLOW_COPY_AND_ASSIGN(DeleteHostWindowTreeHostObserver);
+};
+
+// Verifies WindowTreeHostPlatform can be safely deleted when calling
+// OnHostMovedInPixels().
+// Regression test for https://crbug.com/1185482
+TEST_F(WindowTreeHostPlatformTest, DeleteHostFromOnHostMovedInPixels) {
+ std::unique_ptr<TestWindowTreeHost> host =
+ std::make_unique<TestWindowTreeHost>();
+ DeleteHostWindowTreeHostObserver observer(std::move(host));
+ observer.host()->SetBoundsInPixels(gfx::Rect(1, 2, 3, 4));
+ EXPECT_EQ(nullptr, observer.host());
+}
+
} // namespace
} // namespace aura
diff --git a/ui/base/x/x11_whole_screen_move_loop.cc b/ui/base/x/x11_whole_screen_move_loop.cc
index 5ed215db66..db678799db 100644
--- a/ui/base/x/x11_whole_screen_move_loop.cc
+++ b/ui/base/x/x11_whole_screen_move_loop.cc
@@ -78,9 +78,13 @@ X11WholeScreenMoveLoop::~X11WholeScreenMoveLoop() {
void X11WholeScreenMoveLoop::DispatchMouseMovement() {
if (!last_motion_in_screen_)
return;
+ auto weak_ref = weak_factory_.GetWeakPtr();
delegate_->OnMouseMovement(last_motion_in_screen_->root_location(),
last_motion_in_screen_->flags(),
last_motion_in_screen_->time_stamp());
+ // The delegate may delete this during dispatch.
+ if (!weak_ref)
+ return;
last_motion_in_screen_.reset();
}
+34 -8
View File
@@ -13,8 +13,9 @@
<IsA>app:gui</IsA>
<Summary>A WebKit powered web browser</Summary>
<Description>Chromium-browser is an open-source web browser, powered by WebKit.</Description>
<Archive type="tarxz" sha1sum="0c12a835e842171175635134d7ed2f5426c56282">https://gsdview.appspot.com/chromium-browser-official/chromium-130.0.6723.70.tar.xz</Archive>
<Archive type="tarxz" sha1sum="87aa3e743edf67ac930fca308d5bfa4864e16ddf">https://commondatastorage.googleapis.com/chromium-browser-official/chromium-148.0.7778.178-lite.tar.xz</Archive>
<BuildDependencies>
<Dependency>rust</Dependency>
<Dependency>alsa-lib-devel</Dependency>
<Dependency>at-spi2-atk-devel</Dependency>
<Dependency>atk-devel</Dependency>
@@ -100,23 +101,41 @@
<Dependency>jre8-openjdk-headless</Dependency>
<Dependency>pipewire-devel</Dependency>
<Dependency>libevent-devel</Dependency>
<Dependency>python3-httplib2</Dependency>
<Dependency>python3-pyparsing</Dependency>
<Dependency>python3-six</Dependency>
</BuildDependencies>
<Patches>
<!-- Arch Patches -->
<Patch level="1">arch/chromium-138-nodejs-version-check.patch</Patch>
<Patch level="1">arch/chromium-145-fix-SYS_SECCOMP.patch</Patch>
<Patch level="1">arch/chromium-146-build-with-wasm-rollup.patch</Patch>
<Patch level="1">arch/chromium-146-drop-unknown-clang-flag.patch</Patch>
<Patch level="1">arch/chromium-147-revert-clang-no-lifetime-dse-flag.patch</Patch>
<Patch level="1">arch/chromium-147-rust-1.95-bytemuck.patch</Patch>
<Patch level="1">arch/chromium-148-revert-clang-fsanitize-return-flag-1.patch</Patch>
<Patch level="1">arch/chromium-148-revert-clang-fsanitize-return-flag-2.patch</Patch>
<!-- <Patch level="1">arch/compiler-rt-adjust-paths.patch</Patch> -->
<Patch level="1">arch/increase-fortify-level.patch</Patch>
<!-- <Patch level="1">arch/enable-widevine-arm64.patch</Patch> -->
<Patch level="1">arch/use-oauth2-client-switches-as-default.patch</Patch>
<Patch level="1">arch/glibc-2.42-baud-rate-fix.patch</Patch>
<!-- <Patch level="1">downgrade-duplicate-peer-error-to-dvlog.patch</Patch> -->
<!-- <Patch level="1">webcodecs-stop-using-AudioOpusEncoder.patch</Patch> -->
<!-- <Patch level="1">fix-build-break-with-system-libdrm.patch</Patch> -->
<!-- <Patch level="1">use-FT_Done_MM_Var-in-CFX_Font-AdjustMMParams.patch</Patch> -->
<Patch level="1">sql-make-VirtualCursor-standard-layout-type.patch</Patch>
<Patch level="1">use-oauth2-client-switches-as-default.patch</Patch>
<!-- <Patch level="1">sql-make-VirtualCursor-standard-layout-type.patch</Patch> -->
<!-- <Patch level="1">use-oauth2-client-switches-as-default.patch</Patch> -->
<!-- Other Patches -->
<Patch level="1">chromium-91-java-only-allowed-in-android-builds.patch</Patch>
<Patch level="1">chromium-buildname.patch</Patch>
<Patch level="1">wayland-egl.patch</Patch>
<!-- <Patch level="1">chromium-91-java-only-allowed-in-android-builds.patch</Patch> -->
<!-- <Patch level="1">chromium-buildname.patch</Patch> -->
<!-- <Patch level="1">wayland-egl.patch</Patch> -->
<!-- <Patch level="1">chromium-92-EnumTable-crash.patch</Patch> -->
<!-- Chromium Patchset -->
<!-- Source: https://github.com/stha09/chromium-patches -->
<Patch level="1">patches/chromium-78-protobuf-RepeatedPtrField-export.patch</Patch>
<!-- <Patch level="1">patches/chromium-78-protobuf-RepeatedPtrField-export.patch</Patch> -->
<!-- <Patch level="1">patches/chromium-98-compiler.patch</Patch> -->
<!-- <Patch level="1">patches/chromium-99-AutofillAssistantModelExecutor-NoDestructor.patch</Patch> -->
</Patches>
@@ -201,7 +220,14 @@
</Package>
<History>
<Update release="30">
<Update release="31">
<Date>2026-05-22</Date>
<Version>148.0.7778.178</Version>
<Comment>Version bump.</Comment>
<Name>Pisi Linux Community</Name>
<Email>admin@pisilinux.org</Email>
</Update>
<Update release="30">
<Date>2024-12-11</Date>
<Version>130.0.6723.70</Version>
<Comment>Version Bump</Comment>