From 6aa22815964fd08f02cf7c8e4888fa022e1e2ea3 Mon Sep 17 00:00:00 2001 From: Duncaen Date: Wed, 31 Aug 2022 14:50:21 +0200 Subject: [PATCH] chromium: update to 105.0.5195.52. --- .../files/musl-patches/musl-sandbox.patch | 13 - .../files/musl-patches/no-mallinfo.patch | 6 +- .../patches/angle-wayland-include.patch | 39 ++ .../patches/chromium-105-bitmap-include.patch | 27 + .../chromium-105-browser-include.patch | 25 + .../patches/chromium-105-math-ceilf.patch | 42 ++ srcpkgs/chromium/patches/cross-build.patch | 12 +- .../patches/reenable-linux-i686-builds.patch | 8 +- .../remove-no-opaque-pointers-flag.patch | 18 - .../patches/sandbox-sched_getparam.patch | 17 +- srcpkgs/chromium/patches/sndio.patch | 14 +- ...ozone-fix-X11-screensaver-suspension.patch | 490 ------------------ .../patches/xxx-ppc64le-4k-pages.patch | 24 +- .../patches/xxx-ppc64le-support.patch | 8 +- srcpkgs/chromium/template | 4 +- 15 files changed, 183 insertions(+), 564 deletions(-) create mode 100644 srcpkgs/chromium/patches/angle-wayland-include.patch create mode 100644 srcpkgs/chromium/patches/chromium-105-bitmap-include.patch create mode 100644 srcpkgs/chromium/patches/chromium-105-browser-include.patch create mode 100644 srcpkgs/chromium/patches/chromium-105-math-ceilf.patch delete mode 100644 srcpkgs/chromium/patches/remove-no-opaque-pointers-flag.patch delete mode 100644 srcpkgs/chromium/patches/x11-ozone-fix-X11-screensaver-suspension.patch diff --git a/srcpkgs/chromium/files/musl-patches/musl-sandbox.patch b/srcpkgs/chromium/files/musl-patches/musl-sandbox.patch index 230bb7bbd297..c770e76d8688 100644 --- a/srcpkgs/chromium/files/musl-patches/musl-sandbox.patch +++ b/srcpkgs/chromium/files/musl-patches/musl-sandbox.patch @@ -77,16 +77,3 @@ index 80f02c0..21fbe21 100644 case __NR_unshare: #if !defined(__mips__) && !defined(__aarch64__) case __NR_vfork: ---- sandbox/policy/linux/bpf_renderer_policy_linux.cc -+++ sandbox/policy/linux/bpf_renderer_policy_linux.cc -@@ -100,9 +100,9 @@ - case __NR_uname: - case __NR_sched_getparam: - case __NR_sched_getscheduler: -+ case __NR_sched_setscheduler: - return Allow(); - case __NR_sched_getaffinity: -- case __NR_sched_setscheduler: - return RestrictSchedTarget(GetPolicyPid(), sysno); - case __NR_prlimit64: - // See crbug.com/662450 and setrlimit comment above. diff --git a/srcpkgs/chromium/files/musl-patches/no-mallinfo.patch b/srcpkgs/chromium/files/musl-patches/no-mallinfo.patch index aaa4cebf84e9..6c021d74b27e 100644 --- a/srcpkgs/chromium/files/musl-patches/no-mallinfo.patch +++ b/srcpkgs/chromium/files/musl-patches/no-mallinfo.patch @@ -1,11 +1,11 @@ --- base/trace_event/malloc_dump_provider.cc.orig +++ base/trace_event/malloc_dump_provider.cc -@@ -174,7 +174,8 @@ +@@ -189,7 +189,8 @@ #if (BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && BUILDFLAG(IS_ANDROID)) || \ (!BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && !BUILDFLAG(IS_WIN) && \ -- !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_FUCHSIA)) -+ !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_FUCHSIA) && \ +- !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_FUCHSIA)) ++ !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_FUCHSIA) && \ + !(BUILDFLAG(IS_LINUX) && !defined(__GLIBC__))) void ReportMallinfoStats(ProcessMemoryDump* pmd, size_t* total_virtual_size, diff --git a/srcpkgs/chromium/patches/angle-wayland-include.patch b/srcpkgs/chromium/patches/angle-wayland-include.patch new file mode 100644 index 000000000000..65770b9439c5 --- /dev/null +++ b/srcpkgs/chromium/patches/angle-wayland-include.patch @@ -0,0 +1,39 @@ +Patch-Source: https://github.com/archlinux/svntogit-packages/blob/a353833a5a731abfaa465b658f61894a516aa49b/trunk/angle-wayland-include-protocol.patch +diff -upr third_party/angle.orig/BUILD.gn third_party/angle/BUILD.gn +--- a/third_party/angle.orig/BUILD.gn 2022-08-17 19:38:11.000000000 +0000 ++++ b/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 +--- a/third_party/angle.orig/src/third_party/volk/BUILD.gn 2022-08-17 19:38:12.000000000 +0000 ++++ b/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", ++ ] + } + } diff --git a/srcpkgs/chromium/patches/chromium-105-bitmap-include.patch b/srcpkgs/chromium/patches/chromium-105-bitmap-include.patch new file mode 100644 index 000000000000..b37eee65265f --- /dev/null +++ b/srcpkgs/chromium/patches/chromium-105-bitmap-include.patch @@ -0,0 +1,27 @@ +Patch-Source: https://github.com/stha09/chromium-patches/blob/cd45403f83a2305d388e1b1f930ca05c13535636/chromium-105-Bitmap-include.patch +From 8959d9d1c6e4ed083c278ab9e8def20a409052b9 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Fri, 22 Jul 2022 16:51:28 +0000 +Subject: [PATCH] IWYU: add memory for std::unique_ptr in disk_cache::Bitmap + +Bug: 957519 +Change-Id: I123198345e5f9062329b7eabe980f312525c268b +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3779530 +Reviewed-by: Maks Orlovich +Commit-Queue: Stephan Hartmann +Cr-Commit-Position: refs/heads/main@{#1027289} +--- + +diff --git a/net/disk_cache/blockfile/bitmap.h b/net/disk_cache/blockfile/bitmap.h +index 07806cf..9ffa98b9 100644 +--- a/net/disk_cache/blockfile/bitmap.h ++++ b/net/disk_cache/blockfile/bitmap.h +@@ -8,6 +8,8 @@ + #include + #include + ++#include ++ + #include "base/memory/raw_ptr.h" + #include "net/base/net_export.h" + diff --git a/srcpkgs/chromium/patches/chromium-105-browser-include.patch b/srcpkgs/chromium/patches/chromium-105-browser-include.patch new file mode 100644 index 000000000000..17cd0a296220 --- /dev/null +++ b/srcpkgs/chromium/patches/chromium-105-browser-include.patch @@ -0,0 +1,25 @@ +Patch-Source: https://github.com/stha09/chromium-patches/blob/cd45403f83a2305d388e1b1f930ca05c13535636/chromium-105-browser_finder-include.patch +From 41dca8bd0c5e8ac5197d7477c6f01556fb88fb43 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Sun, 14 Aug 2022 08:41:11 +0000 +Subject: [PATCH] IWYU: add vector for std::vector in browser_finder.h + +--- + chrome/browser/ui/browser_finder.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/chrome/browser/ui/browser_finder.h b/chrome/browser/ui/browser_finder.h +index f885be0..ad7a184 100644 +--- a/chrome/browser/ui/browser_finder.h ++++ b/chrome/browser/ui/browser_finder.h +@@ -6,6 +6,7 @@ + #define CHROME_BROWSER_UI_BROWSER_FINDER_H_ + + #include ++#include + + #include "ui/display/types/display_constants.h" + #include "ui/gfx/native_widget_types.h" +-- +2.35.1 + diff --git a/srcpkgs/chromium/patches/chromium-105-math-ceilf.patch b/srcpkgs/chromium/patches/chromium-105-math-ceilf.patch new file mode 100644 index 000000000000..3d4a72ad4bfb --- /dev/null +++ b/srcpkgs/chromium/patches/chromium-105-math-ceilf.patch @@ -0,0 +1,42 @@ +Patch-Source: https://github.com/stha09/chromium-patches/blob/cd45403f83a2305d388e1b1f930ca05c13535636/chromium-105-AdjustMaskLayerGeometry-ceilf.patch +From 385068e1eb1cde9629d18ceee1fd13255c70c806 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Fri, 22 Jul 2022 18:29:24 +0000 +Subject: [PATCH] libstdc++: use math.h in blink::AdjustMaskLayerGeometry + +libstdc++ does not implement std::ceilf. Use ceilf from math.h +instead. + +Bug: 957519 +Change-Id: I03b5e0a1eb73fdeae34d5f3d2f2e9c8871c52543 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3782841 +Commit-Queue: Stephan Hartmann +Reviewed-by: Juanmi Huertas +Cr-Commit-Position: refs/heads/main@{#1027342} +--- + +diff --git a/third_party/blink/renderer/platform/graphics/compositing/adjust_mask_layer_geometry.cc b/third_party/blink/renderer/platform/graphics/compositing/adjust_mask_layer_geometry.cc +index 4abe1d9..b5b43da 100644 +--- a/third_party/blink/renderer/platform/graphics/compositing/adjust_mask_layer_geometry.cc ++++ b/third_party/blink/renderer/platform/graphics/compositing/adjust_mask_layer_geometry.cc +@@ -4,8 +4,9 @@ + + #include "third_party/blink/renderer/platform/graphics/compositing/adjust_mask_layer_geometry.h" + ++#include + #include +-#include ++ + #include "third_party/blink/renderer/platform/graphics/paint/geometry_mapper.h" + #include "third_party/blink/renderer/platform/graphics/paint/transform_paint_property_node.h" + #include "ui/gfx/geometry/size.h" +@@ -29,8 +30,7 @@ + // Map a screen pixel into the layer. + GeometryMapper::SourceToDestinationRect(TransformPaintPropertyNode::Root(), + transform, pixel_rect); +- int outset = +- std::ceilf(std::max(pixel_rect.width(), pixel_rect.height()) * 2); ++ int outset = ceilf(std::max(pixel_rect.width(), pixel_rect.height()) * 2); + // Don't expand too far in extreme cases. + constexpr int kMaxOutset = 1000; + outset = std::min(kMaxOutset, outset); diff --git a/srcpkgs/chromium/patches/cross-build.patch b/srcpkgs/chromium/patches/cross-build.patch index ddfe14951eef..53df490bac97 100644 --- a/srcpkgs/chromium/patches/cross-build.patch +++ b/srcpkgs/chromium/patches/cross-build.patch @@ -1,6 +1,6 @@ --- a/build/config/compiler/BUILD.gn.orig +++ b/build/config/compiler/BUILD.gn -@@ -58,6 +58,10 @@ +@@ -55,6 +55,10 @@ } declare_args() { @@ -11,10 +11,10 @@ # Normally, Android builds are lightly optimized, even for debug builds, to # keep binary size down. Setting this flag to true disables such optimization android_full_debug = false -@@ -880,8 +884,13 @@ - } +@@ -917,8 +917,13 @@ } else if (current_cpu == "arm64") { - if (is_clang && !is_android && !is_nacl && !is_fuchsia) { + if (is_clang && !is_android && !is_nacl && !is_fuchsia && + !(is_chromeos_lacros && is_chromeos_device)) { - cflags += [ "--target=aarch64-linux-gnu" ] - ldflags += [ "--target=aarch64-linux-gnu" ] + if (is_musl) { @@ -25,8 +25,8 @@ + ldflags += [ "--target=aarch64-linux-gnu" ] + } } - } else if (current_cpu == "mipsel" && !is_nacl) { - ldflags += [ "-Wl,--hash-style=sysv" ] + if (is_android) { + # Outline atomics crash on Exynos 9810. http://crbug.com/1272795 --- a/build/toolchain/linux/unbundle/BUILD.gn.orig +++ b/build/toolchain/linux/unbundle/BUILD.gn @@ -39,3 +39,22 @@ diff --git a/srcpkgs/chromium/patches/reenable-linux-i686-builds.patch b/srcpkgs/chromium/patches/reenable-linux-i686-builds.patch index 11c2298c4eb8..b18718e43649 100644 --- a/srcpkgs/chromium/patches/reenable-linux-i686-builds.patch +++ b/srcpkgs/chromium/patches/reenable-linux-i686-builds.patch @@ -1,6 +1,6 @@ ---- a/BUILD.gn +--- a/BUILD.gn.orig +++ b/BUILD.gn -@@ -1522,14 +1522,6 @@ +@@ -1616,16 +1616,6 @@ } } @@ -8,8 +8,10 @@ -is_valid_x86_target = - target_os != "ios" && target_os != "mac" && - (target_os != "linux" || use_libfuzzer || !build_with_chromium) +- +-# Note: v8_target_cpu == arm allows using the V8 arm simulator on x86 for fuzzing. -assert( -- is_valid_x86_target || target_cpu != "x86", +- is_valid_x86_target || target_cpu != "x86" || v8_target_cpu == "arm", - "'target_cpu=x86' is not supported for 'target_os=$target_os'. Consider omitting 'target_cpu' (default) or using 'target_cpu=x64' instead.") - group("chromium_builder_perf") { diff --git a/srcpkgs/chromium/patches/remove-no-opaque-pointers-flag.patch b/srcpkgs/chromium/patches/remove-no-opaque-pointers-flag.patch deleted file mode 100644 index 1231eeb7def0..000000000000 --- a/srcpkgs/chromium/patches/remove-no-opaque-pointers-flag.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- chromium-102.0.5005.61/build/config/compiler/BUILD.gn.orig 2022-05-19 10:35:52.991415777 +0000 -+++ chromium-102.0.5005.61/build/config/compiler/BUILD.gn 2022-05-19 10:36:11.102017131 +0000 -@@ -1538,15 +1538,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" ] diff --git a/srcpkgs/chromium/patches/sandbox-sched_getparam.patch b/srcpkgs/chromium/patches/sandbox-sched_getparam.patch index b9e1dc79924b..dfe0bd8f8235 100644 --- a/srcpkgs/chromium/patches/sandbox-sched_getparam.patch +++ b/srcpkgs/chromium/patches/sandbox-sched_getparam.patch @@ -3,18 +3,19 @@ musl uses them for pthread_getschedparam() source: https://git.alpinelinux.org/aports/commit/community/chromium?id=54af9f8ac24f52d382c5758e2445bf0206eff40e ---- a/sandbox/policy/linux/bpf_renderer_policy_linux.cc 2019-10-08 21:03:18.253080425 +0200 -+++ b/sandbox/policy/linux/bpf_renderer_policy_linux.cc 2019-10-08 21:04:19.648549718 +0200 -@@ -88,10 +88,10 @@ - case __NR_sysinfo: - case __NR_times: - case __NR_uname: +--- a/sandbox/policy/linux/bpf_renderer_policy_linux.cc ++++ b/sandbox/policy/linux/bpf_renderer_policy_linux.cc +@@ -102,11 +102,11 @@ + #if defined(__arm__) || defined(__aarch64__) + case __NR_getcpu: + #endif - return Allow(); - case __NR_sched_getaffinity: case __NR_sched_getparam: case __NR_sched_getscheduler: + case __NR_sched_setscheduler: + return Allow(); + case __NR_sched_getaffinity: - case __NR_sched_setscheduler: - return sandbox::RestrictSchedTarget(GetPolicyPid(), sysno); + return RestrictSchedTarget(GetPolicyPid(), sysno); case __NR_prlimit64: + // See crbug.com/662450 and setrlimit comment above. diff --git a/srcpkgs/chromium/patches/sndio.patch b/srcpkgs/chromium/patches/sndio.patch index df668d13b2a3..077ceaa8acbc 100644 --- a/srcpkgs/chromium/patches/sndio.patch +++ b/srcpkgs/chromium/patches/sndio.patch @@ -1,6 +1,6 @@ diff -Naur chromium-83.0.4103.97.orig/media/BUILD.gn chromium-83.0.4103.97/media/BUILD.gn --- a/media/BUILD.gn 2020-06-03 20:40:26.000000000 +0200 -+++ b/media/BUILD.gn 2020-06-13 17:32:28.510395975 +0200 ++++ b/media/BUILD.gn 2021-06-13 17:32:28.510395975 +0200 @@ -65,6 +65,9 @@ defines += [ "DLOPEN_PULSEAUDIO" ] } @@ -863,15 +863,15 @@ diff -Naur chromium-83.0.4103.97.orig/media/audio/sndio/sndio_output.h chromium- + +#endif // MEDIA_AUDIO_SNDIO_SNDIO_OUTPUT_H_ diff -Naur chromium-83.0.4103.97.orig/media/media_options.gni chromium-83.0.4103.97/media/media_options.gni ---- a/media/media_options.gni 2020-06-03 20:40:26.000000000 +0200 -+++ b/media/media_options.gni 2020-06-13 17:32:28.512395963 +0200 -@@ -125,6 +125,9 @@ +--- a/media/media_options.gni ++++ b/media/media_options.gni +@@ -158,6 +158,9 @@ # Enables runtime selection of ALSA library for audio. use_alsa = false + # Enable runtime selection of sndio(7) + use_sndio = false + - # Alsa should be used on non-Android, non-Mac POSIX systems (excluding CastOS - # video builds). - if (is_posix && !is_android && !is_mac && + # Alsa should be used on all non-Android, non-Mac POSIX systems - with the + # exception of CastOS desktop builds. + # diff --git a/srcpkgs/chromium/patches/x11-ozone-fix-X11-screensaver-suspension.patch b/srcpkgs/chromium/patches/x11-ozone-fix-X11-screensaver-suspension.patch deleted file mode 100644 index 4336d6a7a0a4..000000000000 --- a/srcpkgs/chromium/patches/x11-ozone-fix-X11-screensaver-suspension.patch +++ /dev/null @@ -1,490 +0,0 @@ -From 8c1ebea5f601b0b5247535dcdfd01755f3e6e1a6 Mon Sep 17 00:00:00 2001 -From: Andrew Wolfers -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 -Reviewed-by: Thomas Anderson -Reviewed-by: Scott Violet -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 -+ - #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 suspender) -+ : suspender_(std::move(suspender)) {} -+ -+ScreenOzone::ScreenSaverSuspenderOzone::~ScreenSaverSuspenderOzone() = default; -+ -+std::unique_ptr -+ScreenOzone::SuspendScreenSaver() { -+ return std::make_unique( -+ 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 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 -+ suspender); -+ -+ ScreenSaverSuspenderOzone(const ScreenSaverSuspenderOzone&) = delete; -+ ScreenSaverSuspenderOzone& operator=(const ScreenSaverSuspenderOzone&) = -+ delete; -+ -+ ~ScreenSaverSuspenderOzone() override; -+ -+ private: -+ std::unique_ptr -+ 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::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::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 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 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::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 -+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 -+ 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 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 Create( -+ WaylandScreen& screen); -+ -+ private: -+ explicit WaylandScreenSaverSuspender(WaylandScreen& screen); -+ -+ base::WeakPtr 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 idle_inhibitor_; -+ uint32_t screen_saver_suspension_count_ = 0; - - base::WeakPtrFactory 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 -+ - #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::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 -+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 -+ 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 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::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 SuspendScreenSaver(); - - // Returns whether the screensaver is currently running. - virtual bool IsScreenSaverActive() const; diff --git a/srcpkgs/chromium/patches/xxx-ppc64le-4k-pages.patch b/srcpkgs/chromium/patches/xxx-ppc64le-4k-pages.patch index 886be0bf4666..28c4ad35f14e 100644 --- a/srcpkgs/chromium/patches/xxx-ppc64le-4k-pages.patch +++ b/srcpkgs/chromium/patches/xxx-ppc64le-4k-pages.patch @@ -38,19 +38,23 @@ index 0b9260d..3e054ec 100644 #elif (BUILDFLAG(IS_APPLE) && defined(ARCH_CPU_64_BITS)) || \ (BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_ARM64)) PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR PA_ALWAYS_INLINE size_t -diff --git a/base/allocator/partition_allocator/partition_alloc_forward.h b/base/allocator/partition_allocator/partition_alloc_forward.h -index 938ea38..9414b41 100644 --- a/base/allocator/partition_allocator/partition_alloc_forward.h +++ b/base/allocator/partition_allocator/partition_alloc_forward.h -@@ -26,7 +26,10 @@ namespace base { - // - // __STDCPP_DEFAULT_NEW_ALIGNMENT__ is C++17. As such, it is not defined on all - // platforms, as Chrome's requirement is C++14 as of 2020. --#if defined(__STDCPP_DEFAULT_NEW_ALIGNMENT__) +@@ -25,12 +25,17 @@ + // the second one 16. We could technically return something different for + // malloc() and operator new(), but this would complicate things, and most of + // our allocations are presumably coming from operator new() anyway. +#if defined(__powerpc64__) +/* we want this to be 16 here always */ +constexpr size_t kAlignment = 16; -+#elif defined(__STDCPP_DEFAULT_NEW_ALIGNMENT__) ++#else constexpr size_t kAlignment = - std::max(alignof(max_align_t), __STDCPP_DEFAULT_NEW_ALIGNMENT__); - #else + std::max(alignof(max_align_t), + static_cast(__STDCPP_DEFAULT_NEW_ALIGNMENT__)); + static_assert(kAlignment <= 16, + "PartitionAlloc doesn't support a fundamental alignment larger " + "than 16 bytes."); ++#endif + + constexpr bool ThreadSafe = true; + diff --git a/srcpkgs/chromium/patches/xxx-ppc64le-support.patch b/srcpkgs/chromium/patches/xxx-ppc64le-support.patch index d9a2724e1e22..3c2df31566ec 100644 --- a/srcpkgs/chromium/patches/xxx-ppc64le-support.patch +++ b/srcpkgs/chromium/patches/xxx-ppc64le-support.patch @@ -3551,16 +3551,16 @@ diff --git a/v8/test/BUILD.gn b/v8/test/BUILD.gn index fb872ad39..45fc585dd 100644 --- a/v8/test/BUILD.gn +++ b/v8/test/BUILD.gn -@@ -36,7 +36,7 @@ group("gn_all") { +@@ -42,7 +42,7 @@ group("gn_all") { "benchmarks/cpp:gn_all", "cctest:cctest", - "cctest:generate-bytecode-expectations", + "unittests:generate-bytecode-expectations", - "unittests:unittests", + #"unittests:unittests", ] } } -@@ -83,7 +83,7 @@ +@@ -84,7 +84,7 @@ "message:v8_message", "mjsunit:v8_mjsunit", "mkgrokdump:mkgrokdump", @@ -3569,7 +3569,7 @@ index fb872ad39..45fc585dd 100644 "webkit:v8_webkit", ] -@@ -108,7 +108,7 @@ +@@ -109,7 +109,7 @@ "message:v8_message", "mjsunit:v8_mjsunit", "mkgrokdump:mkgrokdump", diff --git a/srcpkgs/chromium/template b/srcpkgs/chromium/template index 6a5fc76de0aa..8007ff27f171 100644 --- a/srcpkgs/chromium/template +++ b/srcpkgs/chromium/template @@ -1,7 +1,7 @@ # Template file for 'chromium' pkgname=chromium # See https://chromiumdash.appspot.com/releases?platform=Linux for the latest version -version=104.0.5112.101 +version=105.0.5195.52 revision=1 archs="i686* x86_64* aarch64* armv7l* ppc64le*" short_desc="Google's attempt at creating a safer, faster, and more stable browser" @@ -9,7 +9,7 @@ maintainer="Duncaen " license="BSD-3-Clause" homepage="https://www.chromium.org/" distfiles="https://commondatastorage.googleapis.com/chromium-browser-official/${pkgname}-${version}.tar.xz" -checksum=60f015e1559de4044cdfa3bdc1f8fde535927c8ab15b0959ccc9b6feec832f5b +checksum=dc71b2be9c30c2a7a250b3dbfb26f9b0d1aa2df7335b53ed44a203ff69947c42 lib32disabled=yes