@@ -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",
|
||||
- ]
|
||||
}
|
||||
}
|
||||
+16
@@ -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,
|
||||
{
|
||||
}
|
||||
|
||||
+10
@@ -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",
|
||||
+27
@@ -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()))
|
||||
-17
@@ -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;
|
||||
}
|
||||
}
|
||||
-31
@@ -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.
|
||||
-13
@@ -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
|
||||
|
||||
-32
@@ -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;
|
||||
-44
@@ -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)
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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",
|
||||
-71
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user