mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2025-03-09 00:17:31 +00:00
extra/chromium to 105.0.5195.52-1
This commit is contained in:
parent
891d25364e
commit
88b7566ec2
12 changed files with 357 additions and 714 deletions
|
@ -1,4 +1,4 @@
|
|||
From bdd6fbee97e8370a74063edc46be3978747bf867 Mon Sep 17 00:00:00 2001
|
||||
From cf677b5c83f06a2c43e414c730396bb9b948fa9e Mon Sep 17 00:00:00 2001
|
||||
From: Kevin Mihelich <kevin@archlinuxarm.org>
|
||||
Date: Thu, 18 Feb 2021 19:35:58 -0700
|
||||
Subject: [PATCH 1/3] widevine support for arm
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
From d067f01ffbea91b2714e91a59109813e05befbf7 Mon Sep 17 00:00:00 2001
|
||||
From 3fe56be59d35a8394d00431b0ea8cc46b193ffcd Mon Sep 17 00:00:00 2001
|
||||
From: Kevin Mihelich <kevin@archlinuxarm.org>
|
||||
Date: Tue, 2 Feb 2021 13:58:59 -0700
|
||||
Subject: [PATCH 2/3] Run blink bindings generation single threaded
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
From 4eb22fd6526566d7e51fd9070e2a58060cd02fa8 Mon Sep 17 00:00:00 2001
|
||||
From 94e4009ec6278f0cd9f926d9b9c012ecb9d7c2c9 Mon Sep 17 00:00:00 2001
|
||||
From: Kevin Mihelich <kevin@archlinuxarm.org>
|
||||
Date: Wed, 21 Jul 2021 21:37:31 -0600
|
||||
Subject: [PATCH 3/3] Fix eu-strip build for newer GCC
|
||||
|
|
|
@ -15,10 +15,10 @@
|
|||
highmem=1
|
||||
|
||||
pkgname=chromium
|
||||
pkgver=104.0.5112.101
|
||||
pkgver=105.0.5195.52
|
||||
pkgrel=1
|
||||
_launcher_ver=8
|
||||
_gcc_patchset=2
|
||||
_gcc_patchset=1
|
||||
pkgdesc="A web browser built for speed, simplicity, and security"
|
||||
arch=('x86_64')
|
||||
url="https://www.chromium.org/Home"
|
||||
|
@ -36,40 +36,43 @@ options=('!lto') # Chromium adds its own flags for ThinLTO
|
|||
source=(https://commondatastorage.googleapis.com/chromium-browser-official/chromium-$pkgver.tar.xz
|
||||
https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver/chromium-launcher-$_launcher_ver.tar.gz
|
||||
https://github.com/stha09/chromium-patches/releases/download/chromium-${pkgver%%.*}-patchset-$_gcc_patchset/chromium-${pkgver%%.*}-patchset-$_gcc_patchset.tar.xz
|
||||
x11-ozone-fix-X11-screensaver-suspension.patch
|
||||
fix-TFLite-build-on-linux-with-system-zlib.patch
|
||||
enable-GlobalMediaControlsCastStartStop.patch
|
||||
roll-src-third_party-ffmpeg.patch
|
||||
chromium-tflite-system-zlib.patch
|
||||
remove-no-opaque-pointers-flag.patch
|
||||
angle-wayland-include-protocol.patch
|
||||
use-oauth2-client-switches-as-default.patch
|
||||
0001-widevine-support-for-arm.patch
|
||||
0002-Run-blink-bindings-generation-single-threaded.patch
|
||||
0003-Fix-eu-strip-build-for-newer-GCC.patch)
|
||||
sha256sums=('60f015e1559de4044cdfa3bdc1f8fde535927c8ab15b0959ccc9b6feec832f5b'
|
||||
sha256sums=('dc71b2be9c30c2a7a250b3dbfb26f9b0d1aa2df7335b53ed44a203ff69947c42'
|
||||
'213e50f48b67feb4441078d50b0fd431df34323be15be97c55302d3fdac4483a'
|
||||
'ce702099849465927cf47f7bc3a4a27045d0e35e16b17481ebf35e14506bafa7'
|
||||
'9956a843bc8a765c130080616ccd3ebc46ea95c3a2324c4b403bc293a8705eb2'
|
||||
'f0c437c02cab7a6efc958f82fbb4ea35d5440f73d65731bad7c0dcaecb932121'
|
||||
'5db1fae8a452774b5b177e493a2d1a435b980137b16ed74616d1fb86fe342ec7'
|
||||
'779fb13f2494209d3a7f1f23a823e59b9dded601866d3ab095937a1a04e19ac6'
|
||||
'30df59a9e2d95dcb720357ec4a83d9be51e59cc5551365da4c0073e68ccdec44'
|
||||
'588c166bf748793758a7df438cfa665b32e09ca8fbd6380be28bc5984a33523c'
|
||||
'ab46b2c26a4dfe86486fd7e31bfc7211c515994a61a8c0cbd742f9c9e3c91873'
|
||||
'cd0d9d2a1d6a522d47c3c0891dabe4ad72eabbebc0fe5642b9e22efa3d5ee572'
|
||||
'e393174d7695d0bafed69e868c5fbfecf07aa6969f3b64596d0bae8b067e1711'
|
||||
'7fc0eb593ccb82ce2003ad32662e925f300a9042ef8d560ba437691c4fba12cf'
|
||||
'a2df732e49f7395fceda3acb781b1b3fc4d2826461b772a6cc9ce9dfe9c1e33a'
|
||||
'601c57358026bd4dd31f075b445698ccb9b730b73a50ff2b46d64b1812ebb141')
|
||||
'f2c5e08e05ab6a63aba6f6ba408a5ed7b692876bb85adffeea1ac9037b8cf756'
|
||||
'bfd9793c43ead48068c1f1021e9b43aec0105827100ed62a16424e49e9d49b70'
|
||||
'34e038012db6e4d2bd1c5352c916e003db71e5830fe6c349449e9b4832df68f9')
|
||||
|
||||
# Possible replacements are listed in build/linux/unbundle/replace_gn_files.py
|
||||
# Keys are the names in the above script; values are the dependencies in Arch
|
||||
declare -gA _system_libs=(
|
||||
[brotli]=brotli
|
||||
[dav1d]=dav1d
|
||||
[ffmpeg]=ffmpeg
|
||||
[flac]=flac
|
||||
[fontconfig]=fontconfig
|
||||
[freetype]=freetype2
|
||||
[harfbuzz-ng]=harfbuzz
|
||||
[icu]=icu
|
||||
[jsoncpp]=jsoncpp
|
||||
[libaom]=aom
|
||||
[libavif]=libavif
|
||||
[libdrm]=
|
||||
[libjpeg]=libjpeg
|
||||
[libpng]=libpng # https://crbug.com/752403#c10
|
||||
[libpng]=libpng
|
||||
#[libvpx]=libvpx
|
||||
[libwebp]=libwebp
|
||||
[libxml]=libxml2
|
||||
|
@ -77,6 +80,7 @@ declare -gA _system_libs=(
|
|||
[opus]=opus
|
||||
[re2]=re2
|
||||
[snappy]=snappy
|
||||
[woff2]=woff2
|
||||
[zlib]=minizip
|
||||
)
|
||||
_unwanted_bundled_libs=(
|
||||
|
@ -125,14 +129,8 @@ prepare() {
|
|||
# runtime -- this allows signing into Chromium without baked-in values
|
||||
patch -Np1 -i ../use-oauth2-client-switches-as-default.patch
|
||||
|
||||
# Remove '-Xclang -no-opaque-pointers' flag not supported by our clang
|
||||
patch -Np1 -i ../remove-no-opaque-pointers-flag.patch
|
||||
|
||||
# Fix build with unbundled zlip (patch from Gentoo)
|
||||
patch -Np1 -i ../chromium-tflite-system-zlib.patch
|
||||
|
||||
# Upstream fixes
|
||||
patch -Np1 -i ../x11-ozone-fix-X11-screensaver-suspension.patch
|
||||
patch -Np1 -i ../fix-TFLite-build-on-linux-with-system-zlib.patch
|
||||
|
||||
# Revert kGlobalMediaControlsCastStartStop enabled by default
|
||||
# https://crbug.com/1314342
|
||||
|
@ -142,8 +140,14 @@ prepare() {
|
|||
# https://crbug.com/1325301
|
||||
patch -Rp1 -i ../roll-src-third_party-ffmpeg.patch
|
||||
|
||||
# https://crbug.com/angleproject/7582
|
||||
patch -Np0 -i ../angle-wayland-include-protocol.patch
|
||||
|
||||
# Fixes for building with libstdc++ instead of libc++
|
||||
patch -Np1 -i ../patches/chromium-103-VirtualCursor-std-layout.patch
|
||||
patch -Np1 -i ../patches/chromium-105-Bitmap-include.patch
|
||||
patch -Np1 -i ../patches/chromium-105-browser_finder-include.patch
|
||||
patch -Np1 -i ../patches/chromium-105-AdjustMaskLayerGeometry-ceilf.patch
|
||||
|
||||
# Link to system tools required by the build
|
||||
mkdir -p third_party/node/linux/node-linux-x64/bin
|
||||
|
|
38
extra/chromium/angle-wayland-include-protocol.patch
Normal file
38
extra/chromium/angle-wayland-include-protocol.patch
Normal file
|
@ -0,0 +1,38 @@
|
|||
diff -upr third_party/angle.orig/BUILD.gn third_party/angle/BUILD.gn
|
||||
--- third_party/angle.orig/BUILD.gn 2022-08-17 19:38:11.000000000 +0000
|
||||
+++ third_party/angle/BUILD.gn 2022-08-18 11:04:09.061751111 +0000
|
||||
@@ -489,6 +489,12 @@ config("angle_vulkan_wayland_config") {
|
||||
if (angle_enable_vulkan && angle_use_wayland &&
|
||||
defined(vulkan_wayland_include_dirs)) {
|
||||
include_dirs = vulkan_wayland_include_dirs
|
||||
+ } else if (angle_enable_vulkan && angle_use_wayland) {
|
||||
+ include_dirs = [
|
||||
+ "$wayland_gn_dir/src/src",
|
||||
+ "$wayland_gn_dir/include/src",
|
||||
+ "$wayland_gn_dir/include/protocol",
|
||||
+ ]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1073,6 +1079,7 @@ if (angle_use_wayland) {
|
||||
include_dirs = [
|
||||
"$wayland_dir/egl",
|
||||
"$wayland_dir/src",
|
||||
+ "$wayland_gn_dir/include/protocol",
|
||||
]
|
||||
}
|
||||
|
||||
diff -upr third_party/angle.orig/src/third_party/volk/BUILD.gn third_party/angle/src/third_party/volk/BUILD.gn
|
||||
--- third_party/angle.orig/src/third_party/volk/BUILD.gn 2022-08-17 19:38:12.000000000 +0000
|
||||
+++ third_party/angle/src/third_party/volk/BUILD.gn 2022-08-18 11:04:36.499828006 +0000
|
||||
@@ -21,6 +21,9 @@ source_set("volk") {
|
||||
configs += [ "$angle_root:angle_no_cfi_icall" ]
|
||||
public_deps = [ "$angle_vulkan_headers_dir:vulkan_headers" ]
|
||||
if (angle_use_wayland) {
|
||||
- include_dirs = [ "$wayland_dir/src" ]
|
||||
+ include_dirs = [
|
||||
+ "$wayland_dir/src",
|
||||
+ "$wayland_gn_dir/include/protocol",
|
||||
+ ]
|
||||
}
|
||||
}
|
|
@ -1,70 +0,0 @@
|
|||
--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc
|
||||
+++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc
|
||||
@@ -21,8 +21,8 @@ limitations under the License.
|
||||
#include "absl/status/status.h" // from @com_google_absl
|
||||
#include "absl/strings/str_format.h" // from @com_google_absl
|
||||
#include "absl/strings/string_view.h" // from @com_google_absl
|
||||
-#include "contrib/minizip/ioapi.h"
|
||||
-#include "contrib/minizip/unzip.h"
|
||||
+#include "third_party/zlib/contrib/minizip/ioapi.h"
|
||||
+#include "third_party/zlib/contrib/minizip/unzip.h"
|
||||
#include "flatbuffers/flatbuffers.h" // from @flatbuffers
|
||||
#include "tensorflow/lite/schema/schema_generated.h"
|
||||
#include "tensorflow_lite_support/cc/common.h"
|
||||
--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc
|
||||
+++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc
|
||||
@@ -19,8 +19,8 @@ limitations under the License.
|
||||
#include <cstring>
|
||||
#include <functional>
|
||||
|
||||
-#include "contrib/minizip/ioapi.h"
|
||||
-#include "contrib/minizip/zip.h"
|
||||
+#include "third_party/zlib/contrib/minizip/ioapi.h"
|
||||
+#include "third_party/zlib/contrib/minizip/zip.h"
|
||||
#include "flatbuffers/flatbuffers.h" // from @flatbuffers
|
||||
#include "tensorflow/lite/schema/schema_generated.h"
|
||||
#include "tensorflow_lite_support/cc/common.h"
|
||||
--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc
|
||||
+++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc
|
||||
@@ -19,7 +19,7 @@ limitations under the License.
|
||||
#include <cstdio>
|
||||
|
||||
#include "absl/strings/string_view.h" // from @com_google_absl
|
||||
-#include "contrib/minizip/ioapi.h"
|
||||
+#include "third_party/zlib/contrib/minizip/ioapi.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace metadata {
|
||||
--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h
|
||||
+++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h
|
||||
@@ -19,7 +19,7 @@ limitations under the License.
|
||||
#include <cstdlib>
|
||||
|
||||
#include "absl/strings/string_view.h" // from @com_google_absl
|
||||
-#include "contrib/minizip/ioapi.h"
|
||||
+#include "third_party/zlib/contrib/minizip/ioapi.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace metadata {
|
||||
--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc
|
||||
+++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc
|
||||
@@ -19,7 +19,7 @@ limitations under the License.
|
||||
#include <cstdio>
|
||||
|
||||
#include "absl/strings/string_view.h" // from @com_google_absl
|
||||
-#include "contrib/minizip/ioapi.h"
|
||||
+#include "third_party/zlib/contrib/minizip/ioapi.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace metadata {
|
||||
--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h
|
||||
+++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h
|
||||
@@ -19,7 +19,7 @@ limitations under the License.
|
||||
#include <cstdlib>
|
||||
|
||||
#include "absl/strings/string_view.h" // from @com_google_absl
|
||||
-#include "contrib/minizip/ioapi.h"
|
||||
+#include "third_party/zlib/contrib/minizip/ioapi.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace metadata {
|
291
extra/chromium/fix-TFLite-build-on-linux-with-system-zlib.patch
Normal file
291
extra/chromium/fix-TFLite-build-on-linux-with-system-zlib.patch
Normal file
|
@ -0,0 +1,291 @@
|
|||
From ae0f9adb7e14c0d19ca695ef6ad40b321a8cb64c Mon Sep 17 00:00:00 2001
|
||||
From: Andres Salomon <dilinger@queued.net>
|
||||
Date: Mon, 8 Aug 2022 23:01:53 +0000
|
||||
Subject: [PATCH] Fix TFLite build errors on linux when using the system zlib
|
||||
|
||||
The commit a3be9805c1601d3fabe1e5adb6b9199c033aa2c5 updated TFLite,
|
||||
which included the new zip_*_mem_file.* files that include minizip's
|
||||
ioapi.h. To support that, it also declared that tflite_support depends
|
||||
on minizip (in third_party/tflite_support/BUILD.gn). However, that's not
|
||||
enough, and results in a build error when building using the stub linux
|
||||
zlib build scripts.
|
||||
|
||||
Other places that depend on minizip use a longer path to its header
|
||||
files. For example, chrome/chrome_cleaner/zip_archiver/'s test_support
|
||||
depends on minizip, and
|
||||
chrome/chrome_cleaner/zip_archiver/target/zip_archiver_impl.cc
|
||||
includes "third_party/zlib/contrib/minizip/ioapi.h".
|
||||
|
||||
The new tensorflow stuff should do the same, instead of just including
|
||||
"contrib/minizip/ioapi.h". This patch fixes that, as well as other
|
||||
places where ioapi.h or zip.h/unzip.h are included without a fuller
|
||||
path.
|
||||
|
||||
Note: if you prefer to not modify the tflite code, let me know and I
|
||||
can instead do a change that adds third_party/zlib as an include path
|
||||
for minizip.
|
||||
|
||||
R=mcrouse@chromium.org, robertogden@chromium.org, sesse@chromium.org, thestig@chromium.org
|
||||
|
||||
Bug: 1348787
|
||||
Change-Id: I922d18b3d1c0e459437624fd248c21afc1be6bb8
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3797828
|
||||
Commit-Queue: Andres Salomon <dilinger@queued.net>
|
||||
Auto-Submit: Andres Salomon <dilinger@queued.net>
|
||||
Reviewed-by: Michael Crouse <mcrouse@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/main@{#1032774}
|
||||
---
|
||||
third_party/tflite_support/README.chromium | 2 +
|
||||
...-errors-on-linux-when-using-the-syst.patch | 129 ++++++++++++++++++
|
||||
.../metadata/cc/metadata_extractor.cc | 4 +-
|
||||
.../metadata/cc/metadata_populator.cc | 4 +-
|
||||
.../cc/utils/zip_readonly_mem_file.cc | 2 +-
|
||||
.../metadata/cc/utils/zip_readonly_mem_file.h | 2 +-
|
||||
.../cc/utils/zip_writable_mem_file.cc | 2 +-
|
||||
.../metadata/cc/utils/zip_writable_mem_file.h | 2 +-
|
||||
8 files changed, 139 insertions(+), 8 deletions(-)
|
||||
create mode 100644 third_party/tflite_support/patches/0010-Fix-TFLite-build-errors-on-linux-when-using-the-syst.patch
|
||||
|
||||
diff --git a/third_party/tflite_support/README.chromium b/third_party/tflite_support/README.chromium
|
||||
index cfaf220adb..91f4baf82b 100644
|
||||
--- a/third_party/tflite_support/README.chromium
|
||||
+++ b/third_party/tflite_support/README.chromium
|
||||
@@ -36,6 +36,8 @@ is a no-op in chromium builds and upsets clang.
|
||||
* This patch intentionally does not apply because it was made with
|
||||
`--irreversible-delete` because it is deleting a large .tflite file causing
|
||||
the chromium-presubmit bot to fail.
|
||||
+10) Fix minizip path inclusion. Upstream uses contrib/minizip/, but chromium
|
||||
+uses third_party/zlib/contrib/minizip/.
|
||||
|
||||
Update Process (internal: http://shortn/_nwz8liqimy):
|
||||
1) Run these commands:
|
||||
diff --git a/third_party/tflite_support/patches/0010-Fix-TFLite-build-errors-on-linux-when-using-the-syst.patch b/third_party/tflite_support/patches/0010-Fix-TFLite-build-errors-on-linux-when-using-the-syst.patch
|
||||
new file mode 100644
|
||||
index 0000000000..34acf277fc
|
||||
--- /dev/null
|
||||
+++ b/third_party/tflite_support/patches/0010-Fix-TFLite-build-errors-on-linux-when-using-the-syst.patch
|
||||
@@ -0,0 +1,129 @@
|
||||
+From 12da2fa8f2d779e2fc14f48de73af79e9040c141 Mon Sep 17 00:00:00 2001
|
||||
+From: Andres Salomon <dilinger@queued.net>
|
||||
+Date: Sun, 31 Jul 2022 19:07:24 -0400
|
||||
+Subject: [PATCH] Fix TFLite build errors on linux when using the system zlib
|
||||
+
|
||||
+The commit a3be9805c1601d3fabe1e5adb6b9199c033aa2c5 updated TFLite,
|
||||
+which included the new zip_*_mem_file.* files that include minizip's
|
||||
+ioapi.h. To support that, it also declared that tflite_support depends
|
||||
+on minizip (in third_party/tflite_support/BUILD.gn). However, that's not
|
||||
+enough, and results in a build error when building using the stub linux
|
||||
+zlib build scripts.
|
||||
+
|
||||
+Other places that depend on minizip use a longer path to its header
|
||||
+files. For example, chrome/chrome_cleaner/zip_archiver/'s test_support
|
||||
+depends on minizip, and
|
||||
+chrome/chrome_cleaner/zip_archiver/target/zip_archiver_impl.cc
|
||||
+includes "third_party/zlib/contrib/minizip/ioapi.h".
|
||||
+
|
||||
+The new tensorflow stuff should do the same, instead of just including
|
||||
+"contrib/minizip/ioapi.h". This patch fixes that, as well as other
|
||||
+places where ioapi.h or zip.h/unzip.h are included without a fuller
|
||||
+path.
|
||||
+---
|
||||
+ .../tensorflow_lite_support/metadata/cc/metadata_extractor.cc | 4 ++--
|
||||
+ .../tensorflow_lite_support/metadata/cc/metadata_populator.cc | 4 ++--
|
||||
+ .../metadata/cc/utils/zip_readonly_mem_file.cc | 2 +-
|
||||
+ .../metadata/cc/utils/zip_readonly_mem_file.h | 2 +-
|
||||
+ .../metadata/cc/utils/zip_writable_mem_file.cc | 2 +-
|
||||
+ .../metadata/cc/utils/zip_writable_mem_file.h | 2 +-
|
||||
+ 6 files changed, 8 insertions(+), 8 deletions(-)
|
||||
+
|
||||
+diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc
|
||||
+index 2a72338741626..62d0910182877 100644
|
||||
+--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc
|
||||
++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc
|
||||
+@@ -21,14 +21,14 @@ limitations under the License.
|
||||
+ #include "absl/status/status.h" // from @com_google_absl
|
||||
+ #include "absl/strings/str_format.h" // from @com_google_absl
|
||||
+ #include "absl/strings/string_view.h" // from @com_google_absl
|
||||
+-#include "contrib/minizip/ioapi.h"
|
||||
+-#include "contrib/minizip/unzip.h"
|
||||
+ #include "flatbuffers/flatbuffers.h" // from @flatbuffers
|
||||
+ #include "tensorflow/lite/schema/schema_generated.h"
|
||||
+ #include "tensorflow_lite_support/cc/common.h"
|
||||
+ #include "tensorflow_lite_support/cc/port/status_macros.h"
|
||||
+ #include "tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h"
|
||||
+ #include "tensorflow_lite_support/metadata/metadata_schema_generated.h"
|
||||
++#include "third_party/zlib/contrib/minizip/ioapi.h"
|
||||
++#include "third_party/zlib/contrib/minizip/unzip.h"
|
||||
+
|
||||
+ namespace tflite {
|
||||
+ namespace metadata {
|
||||
+diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc
|
||||
+index 299ade3e95d54..8e13fa63dafbc 100644
|
||||
+--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc
|
||||
++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc
|
||||
+@@ -19,8 +19,6 @@ limitations under the License.
|
||||
+ #include <cstring>
|
||||
+ #include <functional>
|
||||
+
|
||||
+-#include "contrib/minizip/ioapi.h"
|
||||
+-#include "contrib/minizip/zip.h"
|
||||
+ #include "flatbuffers/flatbuffers.h" // from @flatbuffers
|
||||
+ #include "tensorflow/lite/schema/schema_generated.h"
|
||||
+ #include "tensorflow_lite_support/cc/common.h"
|
||||
+@@ -28,6 +26,8 @@ limitations under the License.
|
||||
+ #include "tensorflow_lite_support/cc/port/statusor.h"
|
||||
+ #include "tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h"
|
||||
+ #include "tensorflow_lite_support/metadata/metadata_schema_generated.h"
|
||||
++#include "third_party/zlib/contrib/minizip/ioapi.h"
|
||||
++#include "third_party/zlib/contrib/minizip/zip.h"
|
||||
+
|
||||
+ namespace tflite {
|
||||
+ namespace metadata {
|
||||
+diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc
|
||||
+index 392b6b411fe03..525ae4a2b45bd 100644
|
||||
+--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc
|
||||
++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc
|
||||
+@@ -19,7 +19,7 @@ limitations under the License.
|
||||
+ #include <cstdio>
|
||||
+
|
||||
+ #include "absl/strings/string_view.h" // from @com_google_absl
|
||||
+-#include "contrib/minizip/ioapi.h"
|
||||
++#include "third_party/zlib/contrib/minizip/ioapi.h"
|
||||
+
|
||||
+ namespace tflite {
|
||||
+ namespace metadata {
|
||||
+diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h
|
||||
+index a1799ff509de5..72413a0a56252 100644
|
||||
+--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h
|
||||
++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h
|
||||
+@@ -19,7 +19,7 @@ limitations under the License.
|
||||
+ #include <cstdlib>
|
||||
+
|
||||
+ #include "absl/strings/string_view.h" // from @com_google_absl
|
||||
+-#include "contrib/minizip/ioapi.h"
|
||||
++#include "third_party/zlib/contrib/minizip/ioapi.h"
|
||||
+
|
||||
+ namespace tflite {
|
||||
+ namespace metadata {
|
||||
+diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc
|
||||
+index 38ad17ad8935c..3ba91b5e22890 100644
|
||||
+--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc
|
||||
++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc
|
||||
+@@ -19,7 +19,7 @@ limitations under the License.
|
||||
+ #include <cstdio>
|
||||
+
|
||||
+ #include "absl/strings/string_view.h" // from @com_google_absl
|
||||
+-#include "contrib/minizip/ioapi.h"
|
||||
++#include "third_party/zlib/contrib/minizip/ioapi.h"
|
||||
+
|
||||
+ namespace tflite {
|
||||
+ namespace metadata {
|
||||
+diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h
|
||||
+index 30e42fdb72a31..3d329925df756 100644
|
||||
+--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h
|
||||
++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h
|
||||
+@@ -19,7 +19,7 @@ limitations under the License.
|
||||
+ #include <cstdlib>
|
||||
+
|
||||
+ #include "absl/strings/string_view.h" // from @com_google_absl
|
||||
+-#include "contrib/minizip/ioapi.h"
|
||||
++#include "third_party/zlib/contrib/minizip/ioapi.h"
|
||||
+
|
||||
+ namespace tflite {
|
||||
+ namespace metadata {
|
||||
+--
|
||||
+2.30.2
|
||||
+
|
||||
diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc
|
||||
index 2a72338741..62d0910182 100644
|
||||
--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc
|
||||
+++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc
|
||||
@@ -21,14 +21,14 @@ limitations under the License.
|
||||
#include "absl/status/status.h" // from @com_google_absl
|
||||
#include "absl/strings/str_format.h" // from @com_google_absl
|
||||
#include "absl/strings/string_view.h" // from @com_google_absl
|
||||
-#include "contrib/minizip/ioapi.h"
|
||||
-#include "contrib/minizip/unzip.h"
|
||||
#include "flatbuffers/flatbuffers.h" // from @flatbuffers
|
||||
#include "tensorflow/lite/schema/schema_generated.h"
|
||||
#include "tensorflow_lite_support/cc/common.h"
|
||||
#include "tensorflow_lite_support/cc/port/status_macros.h"
|
||||
#include "tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h"
|
||||
#include "tensorflow_lite_support/metadata/metadata_schema_generated.h"
|
||||
+#include "third_party/zlib/contrib/minizip/ioapi.h"
|
||||
+#include "third_party/zlib/contrib/minizip/unzip.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace metadata {
|
||||
diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc
|
||||
index 299ade3e95..8e13fa63da 100644
|
||||
--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc
|
||||
+++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc
|
||||
@@ -19,8 +19,6 @@ limitations under the License.
|
||||
#include <cstring>
|
||||
#include <functional>
|
||||
|
||||
-#include "contrib/minizip/ioapi.h"
|
||||
-#include "contrib/minizip/zip.h"
|
||||
#include "flatbuffers/flatbuffers.h" // from @flatbuffers
|
||||
#include "tensorflow/lite/schema/schema_generated.h"
|
||||
#include "tensorflow_lite_support/cc/common.h"
|
||||
@@ -28,6 +26,8 @@ limitations under the License.
|
||||
#include "tensorflow_lite_support/cc/port/statusor.h"
|
||||
#include "tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h"
|
||||
#include "tensorflow_lite_support/metadata/metadata_schema_generated.h"
|
||||
+#include "third_party/zlib/contrib/minizip/ioapi.h"
|
||||
+#include "third_party/zlib/contrib/minizip/zip.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace metadata {
|
||||
diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc
|
||||
index 392b6b411f..525ae4a2b4 100644
|
||||
--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc
|
||||
+++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc
|
||||
@@ -19,7 +19,7 @@ limitations under the License.
|
||||
#include <cstdio>
|
||||
|
||||
#include "absl/strings/string_view.h" // from @com_google_absl
|
||||
-#include "contrib/minizip/ioapi.h"
|
||||
+#include "third_party/zlib/contrib/minizip/ioapi.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace metadata {
|
||||
diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h
|
||||
index a1799ff509..72413a0a56 100644
|
||||
--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h
|
||||
+++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h
|
||||
@@ -19,7 +19,7 @@ limitations under the License.
|
||||
#include <cstdlib>
|
||||
|
||||
#include "absl/strings/string_view.h" // from @com_google_absl
|
||||
-#include "contrib/minizip/ioapi.h"
|
||||
+#include "third_party/zlib/contrib/minizip/ioapi.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace metadata {
|
||||
diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc
|
||||
index 38ad17ad89..3ba91b5e22 100644
|
||||
--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc
|
||||
+++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc
|
||||
@@ -19,7 +19,7 @@ limitations under the License.
|
||||
#include <cstdio>
|
||||
|
||||
#include "absl/strings/string_view.h" // from @com_google_absl
|
||||
-#include "contrib/minizip/ioapi.h"
|
||||
+#include "third_party/zlib/contrib/minizip/ioapi.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace metadata {
|
||||
diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h
|
||||
index 30e42fdb72..3d329925df 100644
|
||||
--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h
|
||||
+++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h
|
||||
@@ -19,7 +19,7 @@ limitations under the License.
|
||||
#include <cstdlib>
|
||||
|
||||
#include "absl/strings/string_view.h" // from @com_google_absl
|
||||
-#include "contrib/minizip/ioapi.h"
|
||||
+#include "third_party/zlib/contrib/minizip/ioapi.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace metadata {
|
|
@ -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,37 +0,0 @@
|
|||
From 359b22d3f775afa33cca9e4f8fb57eadd0ec4118 Mon Sep 17 00:00:00 2001
|
||||
From: Nico Weber <thakis@chromium.org>
|
||||
Date: Fri, 23 Apr 2021 16:22:19 +0000
|
||||
Subject: [PATCH] Make dom distiller protoc plugin explicitly call py2.7
|
||||
|
||||
With this, chrome builds with when `/usr/bin/env python` is py3.
|
||||
|
||||
Bug: 1202134
|
||||
Change-Id: Ibbd97a1311ccb34d46f266912c871fd0522f9535
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2848445
|
||||
Commit-Queue: Nico Weber <thakis@chromium.org>
|
||||
Commit-Queue: Yaron Friedman <yfriedman@chromium.org>
|
||||
Commit-Queue: Dirk Pranke <dpranke@google.com>
|
||||
Auto-Submit: Nico Weber <thakis@chromium.org>
|
||||
Reviewed-by: Yaron Friedman <yfriedman@chromium.org>
|
||||
Reviewed-by: Dirk Pranke <dpranke@google.com>
|
||||
Cr-Commit-Position: refs/heads/master@{#875702}
|
||||
---
|
||||
.../dom_distiller_js/protoc_plugins/json_values_converter.py | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/third_party/dom_distiller_js/protoc_plugins/json_values_converter.py b/third_party/dom_distiller_js/protoc_plugins/json_values_converter.py
|
||||
index e86a88c759fcb..cae1a998c4650 100755
|
||||
--- a/third_party/dom_distiller_js/protoc_plugins/json_values_converter.py
|
||||
+++ b/third_party/dom_distiller_js/protoc_plugins/json_values_converter.py
|
||||
@@ -1,7 +1,10 @@
|
||||
-#!/usr/bin/env python
|
||||
+#!/usr/bin/env python2.7
|
||||
# Copyright 2016 The Chromium Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
+#
|
||||
+# TODO(crbug.com/1202134): Switch run line back to just "python"
|
||||
+# once things are py3-compatible.
|
||||
|
||||
"""protoc plugin to create C++ reader/writer for JSON-encoded protobufs
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
--- chromium-104.0.5112.57/build/config/compiler/BUILD.gn.orig 2022-07-26 08:11:54.192788877 +0000
|
||||
+++ chromium-104.0.5112.57/build/config/compiler/BUILD.gn 2022-07-26 08:12:10.019328155 +0000
|
||||
@@ -1540,15 +1540,6 @@ config("default_warnings") {
|
||||
cflags += [ "-Wno-unqualified-std-cast-call" ]
|
||||
}
|
||||
|
||||
- if (!is_nacl && !(is_chromeos ||
|
||||
- default_toolchain == "//build/toolchain/cros:target")) {
|
||||
- # TODO(https://crbug.com/1322823): Remove flags once potential miscompile is investigated.
|
||||
- cflags += [
|
||||
- "-Xclang",
|
||||
- "-no-opaque-pointers",
|
||||
- ]
|
||||
- }
|
||||
-
|
||||
if (is_fuchsia) {
|
||||
# TODO(https://bugs.chromium.org/p/fuchsia/issues/detail?id=77383)
|
||||
cflags += [ "-Wno-deprecated-copy" ]
|
|
@ -1,30 +0,0 @@
|
|||
From 79819c94f27524005889def53740c97a32cd7747 Mon Sep 17 00:00:00 2001
|
||||
From: Stephan Hartmann <stha09@googlemail.com>
|
||||
Date: Fri, 16 Apr 2021 20:57:15 +0000
|
||||
Subject: [PATCH] [unbundle] Use char16_t as UCHAR_TYPE
|
||||
|
||||
Overriding UCHAR_TYPE was dropped with:
|
||||
https://chromium-review.googlesource.com/c/chromium/deps/icu/+/2732628
|
||||
|
||||
Bug: 911896
|
||||
Change-Id: I4c1172aab445c82ba247b1162b8484ed0db9c381
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2830820
|
||||
Commit-Queue: Stephan Hartmann <stha09@googlemail.com>
|
||||
Reviewed-by: Lei Zhang <thestig@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/master@{#873470}
|
||||
---
|
||||
build/linux/unbundle/icu.gn | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/build/linux/unbundle/icu.gn b/build/linux/unbundle/icu.gn
|
||||
index 0f52fc11e79e6..6f3f8438bd854 100644
|
||||
--- a/build/linux/unbundle/icu.gn
|
||||
+++ b/build/linux/unbundle/icu.gn
|
||||
@@ -16,7 +16,6 @@ config("icu_config") {
|
||||
defines = [
|
||||
"USING_SYSTEM_ICU=1",
|
||||
"ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC",
|
||||
- "UCHAR_TYPE=uint16_t",
|
||||
|
||||
# U_EXPORT (defined in unicode/platform.h) is used to set public visibility
|
||||
# on classes through the U_COMMON_API and U_I18N_API macros (among others).
|
|
@ -1,490 +0,0 @@
|
|||
From 8c1ebea5f601b0b5247535dcdfd01755f3e6e1a6 Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Wolfers <aswolfers@chromium.org>
|
||||
Date: Tue, 19 Jul 2022 15:01:25 +0000
|
||||
Subject: [PATCH] [x11][ozone] Fix X11 screensaver suspension.
|
||||
|
||||
X11 screensaver suspension was broken by https://crrev.com/c/3507472,
|
||||
in which usage patterns were migrated to a non-stacking paradigm.
|
||||
|
||||
"Non-stacking" screensaver suspension describes an overriding behavior,
|
||||
such that the last suspending or un-suspending call defines the current
|
||||
state. Conversely, a "stacking" screensaver suspension paradigm allows
|
||||
for parallel suspension, such that suspending calls are expected to be
|
||||
matched by an equal number of un-suspending calls.
|
||||
|
||||
Documentation for `PlatformScreen::SetScreenSaverSuspended` (inherited
|
||||
by `X11ScreenOzone`) explains that it should be used in a non-stacking
|
||||
manner [1], which contradicts the child class's underlying
|
||||
implementation [2].
|
||||
|
||||
> If XScreenSaverSuspend is called multiple times with suspend set to
|
||||
> 'True', it must be called an equal number of times with suspend set
|
||||
> to 'False' in order for the screensaver timer to be restarted.
|
||||
|
||||
This change updates the documentation/API of the `PlatformScreen`
|
||||
parent class to correctly describe the stacking behavior of child class
|
||||
`X11ScreenOzone`. This change also updates the implementation of
|
||||
`WaylandScreen` to a stacking version. Lastly, this change updates the
|
||||
call sites of `PlatformScreen` according to the API change.
|
||||
|
||||
[1] https://crsrc.org/c/ui/ozone/public/platform_screen.h;l=96
|
||||
[2] https://linux.die.net/man/3/xscreensaverunsetattributes
|
||||
|
||||
Bug: b:193670013
|
||||
Bug: b:196213351
|
||||
Bug: 1329573
|
||||
Bug: 1339361
|
||||
Change-Id: I60975c8da9f86a0f26f3c32cf49c4a7eeeea6a12
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3759067
|
||||
Commit-Queue: Andrew Wolfers <aswolfers@chromium.org>
|
||||
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
|
||||
Reviewed-by: Scott Violet <sky@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/main@{#1025717}
|
||||
|
||||
(cherry picked from commit e61f08f8dbf1ec7cead427f3c497934e9d0db35f)
|
||||
---
|
||||
ui/aura/screen_ozone.cc | 14 ++++++--
|
||||
ui/aura/screen_ozone.h | 29 ++++++++++++----
|
||||
ui/base/x/x11_util.h | 4 ++-
|
||||
ui/display/screen.cc | 21 ++----------
|
||||
ui/display/screen.h | 34 ++++++-------------
|
||||
.../platform/wayland/host/wayland_screen.cc | 31 +++++++++++++++++
|
||||
.../platform/wayland/host/wayland_screen.h | 30 +++++++++++++++-
|
||||
ui/ozone/platform/x11/x11_screen_ozone.cc | 27 +++++++++++++--
|
||||
ui/ozone/platform/x11/x11_screen_ozone.h | 19 ++++++++++-
|
||||
ui/ozone/public/platform_screen.cc | 8 +++--
|
||||
ui/ozone/public/platform_screen.h | 26 +++++++++++---
|
||||
11 files changed, 182 insertions(+), 61 deletions(-)
|
||||
|
||||
diff --git a/ui/aura/screen_ozone.cc b/ui/aura/screen_ozone.cc
|
||||
index a78a6a48f1..09f62dc982 100644
|
||||
--- a/ui/aura/screen_ozone.cc
|
||||
+++ b/ui/aura/screen_ozone.cc
|
||||
@@ -4,6 +4,8 @@
|
||||
|
||||
#include "ui/aura/screen_ozone.h"
|
||||
|
||||
+#include <memory>
|
||||
+
|
||||
#include "ui/aura/client/screen_position_client.h"
|
||||
#include "ui/aura/window.h"
|
||||
#include "ui/aura/window_tree_host.h"
|
||||
@@ -108,8 +110,16 @@ display::Display ScreenOzone::GetPrimaryDisplay() const {
|
||||
}
|
||||
|
||||
#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
|
||||
-bool ScreenOzone::SetScreenSaverSuspended(bool suspend) {
|
||||
- return platform_screen_->SetScreenSaverSuspended(suspend);
|
||||
+ScreenOzone::ScreenSaverSuspenderOzone::ScreenSaverSuspenderOzone(
|
||||
+ std::unique_ptr<ui::PlatformScreen::PlatformScreenSaverSuspender> suspender)
|
||||
+ : suspender_(std::move(suspender)) {}
|
||||
+
|
||||
+ScreenOzone::ScreenSaverSuspenderOzone::~ScreenSaverSuspenderOzone() = default;
|
||||
+
|
||||
+std::unique_ptr<display::Screen::ScreenSaverSuspender>
|
||||
+ScreenOzone::SuspendScreenSaver() {
|
||||
+ return std::make_unique<ScreenSaverSuspenderOzone>(
|
||||
+ platform_screen_->SuspendScreenSaver());
|
||||
}
|
||||
#endif // BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
|
||||
|
||||
diff --git a/ui/aura/screen_ozone.h b/ui/aura/screen_ozone.h
|
||||
index 2970a0e0e7..d033abf366 100644
|
||||
--- a/ui/aura/screen_ozone.h
|
||||
+++ b/ui/aura/screen_ozone.h
|
||||
@@ -11,10 +11,7 @@
|
||||
#include "build/chromeos_buildflags.h"
|
||||
#include "ui/aura/aura_export.h"
|
||||
#include "ui/display/screen.h"
|
||||
-
|
||||
-namespace ui {
|
||||
-class PlatformScreen;
|
||||
-}
|
||||
+#include "ui/ozone/public/platform_screen.h"
|
||||
|
||||
namespace aura {
|
||||
|
||||
@@ -48,6 +45,10 @@ class AURA_EXPORT ScreenOzone : public display::Screen {
|
||||
display::Display GetDisplayMatching(
|
||||
const gfx::Rect& match_rect) const override;
|
||||
display::Display GetPrimaryDisplay() const override;
|
||||
+#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
|
||||
+ std::unique_ptr<display::Screen::ScreenSaverSuspender> SuspendScreenSaver()
|
||||
+ override;
|
||||
+#endif // BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
|
||||
bool IsScreenSaverActive() const override;
|
||||
base::TimeDelta CalculateIdleTime() const override;
|
||||
void AddObserver(display::DisplayObserver* observer) override;
|
||||
@@ -65,11 +66,27 @@ class AURA_EXPORT ScreenOzone : public display::Screen {
|
||||
protected:
|
||||
ui::PlatformScreen* platform_screen() { return platform_screen_.get(); }
|
||||
|
||||
+ private:
|
||||
#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
|
||||
- bool SetScreenSaverSuspended(bool suspend) override;
|
||||
+ class ScreenSaverSuspenderOzone
|
||||
+ : public display::Screen::ScreenSaverSuspender {
|
||||
+ public:
|
||||
+ explicit ScreenSaverSuspenderOzone(
|
||||
+ std::unique_ptr<ui::PlatformScreen::PlatformScreenSaverSuspender>
|
||||
+ suspender);
|
||||
+
|
||||
+ ScreenSaverSuspenderOzone(const ScreenSaverSuspenderOzone&) = delete;
|
||||
+ ScreenSaverSuspenderOzone& operator=(const ScreenSaverSuspenderOzone&) =
|
||||
+ delete;
|
||||
+
|
||||
+ ~ScreenSaverSuspenderOzone() override;
|
||||
+
|
||||
+ private:
|
||||
+ std::unique_ptr<ui::PlatformScreen::PlatformScreenSaverSuspender>
|
||||
+ suspender_;
|
||||
+ };
|
||||
#endif // BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
|
||||
|
||||
- private:
|
||||
gfx::AcceleratedWidget GetAcceleratedWidgetForWindow(
|
||||
aura::Window* window) const;
|
||||
|
||||
diff --git a/ui/base/x/x11_util.h b/ui/base/x/x11_util.h
|
||||
index bf36efe170..0692571582 100644
|
||||
--- a/ui/base/x/x11_util.h
|
||||
+++ b/ui/base/x/x11_util.h
|
||||
@@ -337,7 +337,9 @@ COMPONENT_EXPORT(UI_BASE_X) bool IsCompositingManagerPresent();
|
||||
COMPONENT_EXPORT(UI_BASE_X) bool IsX11WindowFullScreen(x11::Window window);
|
||||
|
||||
// Suspends or resumes the X screen saver, and returns whether the operation was
|
||||
-// successful. Must be called on the UI thread.
|
||||
+// successful. Must be called on the UI thread. If called multiple times with
|
||||
+// |suspend| set to true, the screen saver is not un-suspended until this method
|
||||
+// is called an equal number of times with |suspend| set to false.
|
||||
COMPONENT_EXPORT(UI_BASE_X) bool SuspendX11ScreenSaver(bool suspend);
|
||||
|
||||
// Returns true if the window manager supports the given hint.
|
||||
diff --git a/ui/display/screen.cc b/ui/display/screen.cc
|
||||
index b9723889ce..70dc0a9f5c 100644
|
||||
--- a/ui/display/screen.cc
|
||||
+++ b/ui/display/screen.cc
|
||||
@@ -85,26 +85,11 @@ void Screen::SetDisplayForNewWindows(int64_t display_id) {
|
||||
}
|
||||
|
||||
#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
|
||||
-std::unique_ptr<Screen::ScreenSaverSuspender> Screen::SuspendScreenSaver() {
|
||||
- SetScreenSaverSuspended(true);
|
||||
- screen_saver_suspension_count_++;
|
||||
- return base::WrapUnique(new Screen::ScreenSaverSuspender(this));
|
||||
-}
|
||||
-
|
||||
-Screen::ScreenSaverSuspender::~ScreenSaverSuspender() {
|
||||
- // Check that this suspender still refers to the active screen. Particularly
|
||||
- // in tests, the screen might be destructed before the suspender.
|
||||
- if (screen_ == GetScreen()) {
|
||||
- screen_->screen_saver_suspension_count_--;
|
||||
- if (screen_->screen_saver_suspension_count_ == 0) {
|
||||
- screen_->SetScreenSaverSuspended(false);
|
||||
- }
|
||||
- }
|
||||
-}
|
||||
+Screen::ScreenSaverSuspender::~ScreenSaverSuspender() = default;
|
||||
|
||||
-bool Screen::SetScreenSaverSuspended(bool suspend) {
|
||||
+std::unique_ptr<Screen::ScreenSaverSuspender> Screen::SuspendScreenSaver() {
|
||||
NOTIMPLEMENTED_LOG_ONCE();
|
||||
- return false;
|
||||
+ return nullptr;
|
||||
}
|
||||
#endif // BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
|
||||
|
||||
diff --git a/ui/display/screen.h b/ui/display/screen.h
|
||||
index a86c5b63cc..d04534006f 100644
|
||||
--- a/ui/display/screen.h
|
||||
+++ b/ui/display/screen.h
|
||||
@@ -133,28 +133,22 @@ class DISPLAY_EXPORT Screen {
|
||||
// its existence.
|
||||
class ScreenSaverSuspender {
|
||||
public:
|
||||
- ScreenSaverSuspender(const Screen&) = delete;
|
||||
- ScreenSaverSuspender& operator=(const Screen&) = delete;
|
||||
+ ScreenSaverSuspender() = default;
|
||||
|
||||
- // Notifies |screen_| that this instance is being destructed, and causes its
|
||||
- // platform-specific screensaver to be un-suspended if this is the last such
|
||||
- // remaining instance.
|
||||
- ~ScreenSaverSuspender();
|
||||
+ ScreenSaverSuspender(const ScreenSaverSuspender&) = delete;
|
||||
+ ScreenSaverSuspender& operator=(const ScreenSaverSuspender&) = delete;
|
||||
|
||||
- private:
|
||||
- friend class Screen;
|
||||
-
|
||||
- explicit ScreenSaverSuspender(Screen* screen) : screen_(screen) {}
|
||||
-
|
||||
- Screen* screen_;
|
||||
+ // Causes the platform-specific screensaver to be un-suspended iff this is
|
||||
+ // the last remaining instance.
|
||||
+ virtual ~ScreenSaverSuspender() = 0;
|
||||
};
|
||||
|
||||
// Suspends the platform-specific screensaver until the returned
|
||||
- // |ScreenSaverSuspender| is destructed. This method allows stacking multiple
|
||||
- // overlapping calls, such that the platform-specific screensaver will not be
|
||||
- // un-suspended until all returned |SreenSaverSuspender| instances have been
|
||||
- // destructed.
|
||||
- std::unique_ptr<ScreenSaverSuspender> SuspendScreenSaver();
|
||||
+ // |ScreenSaverSuspender| is destructed, or returns nullptr if suspension
|
||||
+ // failed. This method allows stacking multiple overlapping calls, such that
|
||||
+ // the platform-specific screensaver will not be un-suspended until all
|
||||
+ // returned |ScreenSaverSuspender| instances have been destructed.
|
||||
+ virtual std::unique_ptr<ScreenSaverSuspender> SuspendScreenSaver();
|
||||
#endif // BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
|
||||
|
||||
// Returns whether the screensaver is currently running.
|
||||
@@ -200,12 +194,6 @@ class DISPLAY_EXPORT Screen {
|
||||
const gfx::GpuExtraInfo& gpu_extra_info);
|
||||
|
||||
protected:
|
||||
-#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
|
||||
- // Suspends or un-suspends the platform-specific screensaver, and returns
|
||||
- // whether the operation was successful.
|
||||
- virtual bool SetScreenSaverSuspended(bool suspend);
|
||||
-#endif // BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
|
||||
-
|
||||
void set_shutdown(bool shutdown) { shutdown_ = shutdown; }
|
||||
|
||||
private:
|
||||
diff --git a/ui/ozone/platform/wayland/host/wayland_screen.cc b/ui/ozone/platform/wayland/host/wayland_screen.cc
|
||||
index 0c7dc5c02b..18cd81b472 100644
|
||||
--- a/ui/ozone/platform/wayland/host/wayland_screen.cc
|
||||
+++ b/ui/ozone/platform/wayland/host/wayland_screen.cc
|
||||
@@ -327,6 +327,37 @@ display::Display WaylandScreen::GetDisplayMatching(
|
||||
return display_matching ? *display_matching : GetPrimaryDisplay();
|
||||
}
|
||||
|
||||
+std::unique_ptr<WaylandScreen::WaylandScreenSaverSuspender>
|
||||
+WaylandScreen::WaylandScreenSaverSuspender::Create(WaylandScreen& screen) {
|
||||
+ auto suspender = base::WrapUnique(new WaylandScreenSaverSuspender(screen));
|
||||
+ if (suspender->is_suspending_) {
|
||||
+ screen.screen_saver_suspension_count_++;
|
||||
+ return suspender;
|
||||
+ }
|
||||
+
|
||||
+ return nullptr;
|
||||
+}
|
||||
+
|
||||
+WaylandScreen::WaylandScreenSaverSuspender::WaylandScreenSaverSuspender(
|
||||
+ WaylandScreen& screen)
|
||||
+ : screen_(screen.GetWeakPtr()) {
|
||||
+ is_suspending_ = screen.SetScreenSaverSuspended(true);
|
||||
+}
|
||||
+
|
||||
+WaylandScreen::WaylandScreenSaverSuspender::~WaylandScreenSaverSuspender() {
|
||||
+ if (screen_ && is_suspending_) {
|
||||
+ screen_->screen_saver_suspension_count_--;
|
||||
+ if (screen_->screen_saver_suspension_count_ == 0) {
|
||||
+ screen_->SetScreenSaverSuspended(false);
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+std::unique_ptr<PlatformScreen::PlatformScreenSaverSuspender>
|
||||
+WaylandScreen::SuspendScreenSaver() {
|
||||
+ return WaylandScreenSaverSuspender::Create(*this);
|
||||
+}
|
||||
+
|
||||
bool WaylandScreen::SetScreenSaverSuspended(bool suspend) {
|
||||
if (!connection_->zwp_idle_inhibit_manager())
|
||||
return false;
|
||||
diff --git a/ui/ozone/platform/wayland/host/wayland_screen.h b/ui/ozone/platform/wayland/host/wayland_screen.h
|
||||
index 87358f4f06..8e5515104a 100644
|
||||
--- a/ui/ozone/platform/wayland/host/wayland_screen.h
|
||||
+++ b/ui/ozone/platform/wayland/host/wayland_screen.h
|
||||
@@ -68,7 +68,8 @@ class WaylandScreen : public PlatformScreen {
|
||||
const gfx::Point& point) const override;
|
||||
display::Display GetDisplayMatching(
|
||||
const gfx::Rect& match_rect) const override;
|
||||
- bool SetScreenSaverSuspended(bool suspend) override;
|
||||
+ std::unique_ptr<PlatformScreen::PlatformScreenSaverSuspender>
|
||||
+ SuspendScreenSaver() override;
|
||||
bool IsScreenSaverActive() const override;
|
||||
base::TimeDelta CalculateIdleTime() const override;
|
||||
void AddObserver(display::DisplayObserver* observer) override;
|
||||
@@ -76,7 +77,33 @@ class WaylandScreen : public PlatformScreen {
|
||||
std::vector<base::Value> GetGpuExtraInfo(
|
||||
const gfx::GpuExtraInfo& gpu_extra_info) override;
|
||||
|
||||
+ protected:
|
||||
+ // Suspends or un-suspends the platform-specific screensaver, and returns
|
||||
+ // whether the operation was successful. Can be called more than once with the
|
||||
+ // same value for |suspend|, but those states should not stack: the first
|
||||
+ // alternating value should toggle the state of the suspend.
|
||||
+ bool SetScreenSaverSuspended(bool suspend);
|
||||
+
|
||||
private:
|
||||
+ class WaylandScreenSaverSuspender
|
||||
+ : public PlatformScreen::PlatformScreenSaverSuspender {
|
||||
+ public:
|
||||
+ WaylandScreenSaverSuspender(const WaylandScreenSaverSuspender&) = delete;
|
||||
+ WaylandScreenSaverSuspender& operator=(const WaylandScreenSaverSuspender&) =
|
||||
+ delete;
|
||||
+
|
||||
+ ~WaylandScreenSaverSuspender() override;
|
||||
+
|
||||
+ static std::unique_ptr<WaylandScreenSaverSuspender> Create(
|
||||
+ WaylandScreen& screen);
|
||||
+
|
||||
+ private:
|
||||
+ explicit WaylandScreenSaverSuspender(WaylandScreen& screen);
|
||||
+
|
||||
+ base::WeakPtr<WaylandScreen> screen_;
|
||||
+ bool is_suspending_ = false;
|
||||
+ };
|
||||
+
|
||||
// All parameters are in DIP screen coordinates/units except |physical_size|,
|
||||
// which is in physical pixels.
|
||||
void AddOrUpdateDisplay(uint32_t output_id,
|
||||
@@ -103,6 +130,7 @@ class WaylandScreen : public PlatformScreen {
|
||||
#endif
|
||||
|
||||
wl::Object<zwp_idle_inhibitor_v1> idle_inhibitor_;
|
||||
+ uint32_t screen_saver_suspension_count_ = 0;
|
||||
|
||||
base::WeakPtrFactory<WaylandScreen> weak_factory_;
|
||||
};
|
||||
diff --git a/ui/ozone/platform/x11/x11_screen_ozone.cc b/ui/ozone/platform/x11/x11_screen_ozone.cc
|
||||
index 53265ab58a..b450df9c83 100644
|
||||
--- a/ui/ozone/platform/x11/x11_screen_ozone.cc
|
||||
+++ b/ui/ozone/platform/x11/x11_screen_ozone.cc
|
||||
@@ -4,6 +4,8 @@
|
||||
|
||||
#include "ui/ozone/platform/x11/x11_screen_ozone.h"
|
||||
|
||||
+#include <memory>
|
||||
+
|
||||
#include "base/containers/flat_set.h"
|
||||
#include "ui/base/linux/linux_desktop.h"
|
||||
#include "ui/base/x/x11_idle_query.h"
|
||||
@@ -131,8 +133,29 @@ display::Display X11ScreenOzone::GetDisplayMatching(
|
||||
return matching_display ? *matching_display : GetPrimaryDisplay();
|
||||
}
|
||||
|
||||
-bool X11ScreenOzone::SetScreenSaverSuspended(bool suspend) {
|
||||
- return SuspendX11ScreenSaver(suspend);
|
||||
+X11ScreenOzone::X11ScreenSaverSuspender::X11ScreenSaverSuspender() {
|
||||
+ is_suspending_ = SuspendX11ScreenSaver(true);
|
||||
+}
|
||||
+
|
||||
+std::unique_ptr<X11ScreenOzone::X11ScreenSaverSuspender>
|
||||
+X11ScreenOzone::X11ScreenSaverSuspender::Create() {
|
||||
+ auto suspender = base::WrapUnique(new X11ScreenSaverSuspender());
|
||||
+ if (suspender->is_suspending_) {
|
||||
+ return suspender;
|
||||
+ }
|
||||
+
|
||||
+ return nullptr;
|
||||
+}
|
||||
+
|
||||
+X11ScreenOzone::X11ScreenSaverSuspender::~X11ScreenSaverSuspender() {
|
||||
+ if (is_suspending_) {
|
||||
+ SuspendX11ScreenSaver(false);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+std::unique_ptr<PlatformScreen::PlatformScreenSaverSuspender>
|
||||
+X11ScreenOzone::SuspendScreenSaver() {
|
||||
+ return X11ScreenSaverSuspender::Create();
|
||||
}
|
||||
|
||||
bool X11ScreenOzone::IsScreenSaverActive() const {
|
||||
diff --git a/ui/ozone/platform/x11/x11_screen_ozone.h b/ui/ozone/platform/x11/x11_screen_ozone.h
|
||||
index d86acae9aa..81e0fd13d8 100644
|
||||
--- a/ui/ozone/platform/x11/x11_screen_ozone.h
|
||||
+++ b/ui/ozone/platform/x11/x11_screen_ozone.h
|
||||
@@ -50,7 +50,8 @@ class X11ScreenOzone : public PlatformScreen,
|
||||
const gfx::Point& point) const override;
|
||||
display::Display GetDisplayMatching(
|
||||
const gfx::Rect& match_rect) const override;
|
||||
- bool SetScreenSaverSuspended(bool suspend) override;
|
||||
+ std::unique_ptr<PlatformScreen::PlatformScreenSaverSuspender>
|
||||
+ SuspendScreenSaver() override;
|
||||
bool IsScreenSaverActive() const override;
|
||||
base::TimeDelta CalculateIdleTime() const override;
|
||||
void AddObserver(display::DisplayObserver* observer) override;
|
||||
@@ -66,6 +67,22 @@ class X11ScreenOzone : public PlatformScreen,
|
||||
private:
|
||||
friend class X11ScreenOzoneTest;
|
||||
|
||||
+ class X11ScreenSaverSuspender
|
||||
+ : public PlatformScreen::PlatformScreenSaverSuspender {
|
||||
+ public:
|
||||
+ X11ScreenSaverSuspender(const X11ScreenSaverSuspender&) = delete;
|
||||
+ X11ScreenSaverSuspender& operator=(const X11ScreenSaverSuspender&) = delete;
|
||||
+
|
||||
+ ~X11ScreenSaverSuspender() override;
|
||||
+
|
||||
+ static std::unique_ptr<X11ScreenSaverSuspender> Create();
|
||||
+
|
||||
+ private:
|
||||
+ X11ScreenSaverSuspender();
|
||||
+
|
||||
+ bool is_suspending_ = false;
|
||||
+ };
|
||||
+
|
||||
// Overridden from ui::XDisplayManager::Delegate:
|
||||
void OnXDisplayListUpdated() override;
|
||||
float GetXDisplayScaleFactor() const override;
|
||||
diff --git a/ui/ozone/public/platform_screen.cc b/ui/ozone/public/platform_screen.cc
|
||||
index 98f599aa41..2353208396 100644
|
||||
--- a/ui/ozone/public/platform_screen.cc
|
||||
+++ b/ui/ozone/public/platform_screen.cc
|
||||
@@ -30,9 +30,13 @@ std::string PlatformScreen::GetCurrentWorkspace() {
|
||||
return {};
|
||||
}
|
||||
|
||||
-bool PlatformScreen::SetScreenSaverSuspended(bool suspend) {
|
||||
+PlatformScreen::PlatformScreenSaverSuspender::~PlatformScreenSaverSuspender() =
|
||||
+ default;
|
||||
+
|
||||
+std::unique_ptr<PlatformScreen::PlatformScreenSaverSuspender>
|
||||
+PlatformScreen::SuspendScreenSaver() {
|
||||
NOTIMPLEMENTED_LOG_ONCE();
|
||||
- return false;
|
||||
+ return nullptr;
|
||||
}
|
||||
|
||||
bool PlatformScreen::IsScreenSaverActive() const {
|
||||
diff --git a/ui/ozone/public/platform_screen.h b/ui/ozone/public/platform_screen.h
|
||||
index 091220a99f..e4adfafce3 100644
|
||||
--- a/ui/ozone/public/platform_screen.h
|
||||
+++ b/ui/ozone/public/platform_screen.h
|
||||
@@ -89,11 +89,27 @@ class COMPONENT_EXPORT(OZONE_BASE) PlatformScreen {
|
||||
virtual display::Display GetDisplayMatching(
|
||||
const gfx::Rect& match_rect) const = 0;
|
||||
|
||||
- // Suspends or un-suspends the platform-specific screensaver, and returns
|
||||
- // whether the operation was successful. Can be called more than once with the
|
||||
- // same value for |suspend|, but those states should not stack: the first
|
||||
- // alternating value should toggle the state of the suspend.
|
||||
- virtual bool SetScreenSaverSuspended(bool suspend);
|
||||
+ // Object which suspends the platform-specific screensaver for the duration of
|
||||
+ // its existence.
|
||||
+ class PlatformScreenSaverSuspender {
|
||||
+ public:
|
||||
+ PlatformScreenSaverSuspender() = default;
|
||||
+
|
||||
+ PlatformScreenSaverSuspender(const PlatformScreenSaverSuspender&) = delete;
|
||||
+ PlatformScreenSaverSuspender& operator=(
|
||||
+ const PlatformScreenSaverSuspender&) = delete;
|
||||
+
|
||||
+ // Causes the platform-specific screensaver to be un-suspended iff this is
|
||||
+ // the last remaining instance.
|
||||
+ virtual ~PlatformScreenSaverSuspender() = 0;
|
||||
+ };
|
||||
+
|
||||
+ // Suspends the platform-specific screensaver until the returned
|
||||
+ // |PlatformScreenSaverSuspender| is destructed, or returns nullptr if
|
||||
+ // suspension failed. This method allows stacking multiple overlapping calls,
|
||||
+ // such that the platform-specific screensaver will not be un-suspended until
|
||||
+ // all returned |PlatformScreenSaverSuspender| instances have been destructed.
|
||||
+ virtual std::unique_ptr<PlatformScreenSaverSuspender> SuspendScreenSaver();
|
||||
|
||||
// Returns whether the screensaver is currently running.
|
||||
virtual bool IsScreenSaverActive() const;
|
Loading…
Reference in a new issue