Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package chromium for openSUSE:Factory checked in at 2022-01-13 23:20:51 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/chromium (Old) and /work/SRC/openSUSE:Factory/.chromium.new.1892 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "chromium" Thu Jan 13 23:20:51 2022 rev:318 rq:945924 version:97.0.4692.71 Changes: -------- --- /work/SRC/openSUSE:Factory/chromium/chromium.changes 2022-01-04 08:43:32.108798376 +0100 +++ /work/SRC/openSUSE:Factory/.chromium.new.1892/chromium.changes 2022-01-13 23:21:14.724039787 +0100 @@ -1,0 +2,62 @@ +Tue Jan 11 20:00:16 UTC 2022 - Callum Farmer <gm...@opensuse.org> + +- Chromium 97.0.4692.71 (boo#1194331): + * CVE-2022-0096: Use after free in Storage + * CVE-2022-0097: Inappropriate implementation in DevTools + * CVE-2022-0098: Use after free in Screen Capture + * CVE-2022-0099: Use after free in Sign-in + * CVE-2022-0100: Heap buffer overflow in Media streams API + * CVE-2022-0101: Heap buffer overflow in Bookmarks + * CVE-2022-0102: Type Confusion in V8 + * CVE-2022-0103: Use after free in SwiftShader + * CVE-2022-0104: Heap buffer overflow in ANGLE + * CVE-2022-0105: Use after free in PDF + * CVE-2022-0106: Use after free in Autofill + * CVE-2022-0107: Use after free in File Manager API + * CVE-2022-0108: Inappropriate implementation in Navigation + * CVE-2022-0109: Inappropriate implementation in Autofill + * CVE-2022-0110: Incorrect security UI in Autofill + * CVE-2022-0111: Inappropriate implementation in Navigation + * CVE-2022-0112: Incorrect security UI in Browser UI + * CVE-2022-0113: Inappropriate implementation in Blink + * CVE-2022-0114: Out of bounds memory access in Web Serial + * CVE-2022-0115: Uninitialized Use in File API + * CVE-2022-0116: Inappropriate implementation in Compositing + * CVE-2022-0117: Policy bypass in Service Workers + * CVE-2022-0118: Inappropriate implementation in WebShare + * CVE-2022-0120: Inappropriate implementation in Passwords +- Removed patches: + * chromium-96-CommandLine-include.patch + * chromium-96-RestrictedCookieManager-tuple.patch + * chromium-96-DrmRenderNodePathFinder-include.patch + * chromium-96-CouponDB-include.patch + * chromium-96-freetype-unbundle.patch + * chromium-96-compiler.patch + * chromium-vaapi.patch + * chromium-86-nearby-include.patch +- Added patches: + * chromium-97-compiler.patch + * chromium-97-Point-constexpr.patch + * chromium-97-ScrollView-reference.patch + * chromium-95-libyuv-arm.patch + * fix-tag-dragging-in-KWin.patch + * fix-tag-dragging-in-Mutter.patch + +------------------------------------------------------------------- +Thu Dec 30 15:30:19 UTC 2021 - Callum Farmer <gm...@opensuse.org> + +- Revert wayland fixes because it doesn't handle GPU correctly + (boo#1194182) + +------------------------------------------------------------------- +Thu Dec 30 08:38:17 UTC 2021 - Martin Li??ka <mli...@suse.cz> + +- Use GCC 11, but disable LTO (boo#1194055). + +------------------------------------------------------------------- +Wed Dec 29 12:23:48 UTC 2021 - Callum Farmer <gm...@opensuse.org> + +- Use our own copy of the wrapper so that we can use the fixes + for Wayland + +------------------------------------------------------------------- Old: ---- chromium-86-nearby-include.patch chromium-96-CommandLine-include.patch chromium-96-CouponDB-include.patch chromium-96-DrmRenderNodePathFinder-include.patch chromium-96-RestrictedCookieManager-tuple.patch chromium-96-compiler.patch chromium-96-freetype-unbundle.patch chromium-96.0.4664.110.tar.xz chromium-vaapi.patch New: ---- chrome-wrapper chromium-95-libyuv-arm.patch chromium-97-Point-constexpr.patch chromium-97-ScrollView-reference.patch chromium-97-compiler.patch chromium-97.0.4692.71.tar.xz fix-tag-dragging-in-KWin.patch fix-tag-dragging-in-Mutter.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ chromium.spec ++++++ --- /var/tmp/diff_new_pack.VmuYOX/_old 2022-01-13 23:21:23.124045283 +0100 +++ /var/tmp/diff_new_pack.VmuYOX/_new 2022-01-13 23:21:23.128045285 +0100 @@ -1,7 +1,7 @@ # # spec file for package chromium # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -35,10 +35,8 @@ %bcond_with system_vpx %ifarch aarch64 %bcond_with swiftshader -%bcond_with lto %else %bcond_without swiftshader -%bcond_without lto %endif %if 0%{?suse_version} >= 1550 %bcond_without system_harfbuzz @@ -48,8 +46,10 @@ %bcond_with system_freetype %endif %bcond_with clang +# Chromium built with GCC 11 and LTO enabled crashes (boo#1194055) +%bcond_with lto Name: chromium -Version: 96.0.4664.110 +Version: 97.0.4692.71 Release: 0 Summary: Google's open source browser project License: BSD-3-Clause AND LGPL-2.1-or-later @@ -62,6 +62,7 @@ # https://source.chromium.org/chromium/chromium/src/+/refs/tags/%%{version}:chrome/installer/linux/common/installer.include Source105: INSTALL.sh # +Source106: chrome-wrapper Patch0: chromium-libusb_interrupt_event_handler.patch # PATCH-FIX-OPENSUSE Make the 1-click-install ymp file always download [bnc#836059] Patch1: exclude_ymp.patch @@ -82,10 +83,9 @@ # gentoo/fedora/arch patchset Patch12: chromium-78-protobuf-RepeatedPtrField-export.patch Patch13: chromium-80-QuicStreamSendBuffer-deleted-move-constructor.patch -Patch15: chromium-96-compiler.patch +Patch15: chromium-97-compiler.patch Patch17: chromium-86-ImageMemoryBarrierData-init.patch Patch18: chromium-86-nearby-explicit.patch -Patch19: chromium-86-nearby-include.patch Patch21: chromium-gcc11.patch Patch31: chromium-89-missing-cstring-header.patch Patch40: chromium-91-java-only-allowed-in-android-builds.patch @@ -99,18 +99,12 @@ Patch68: chromium-94-ffmpeg-roll.patch Patch69: chromium-93-InkDropHost-crash.patch Patch72: chromium-95-quiche-include.patch -Patch73: chromium-96-CommandLine-include.patch -Patch74: chromium-96-RestrictedCookieManager-tuple.patch -Patch75: chromium-96-DrmRenderNodePathFinder-include.patch -Patch76: chromium-96-CouponDB-include.patch -Patch77: chromium-96-freetype-unbundle.patch Patch78: chromium-96-EnumTable-crash.patch -# Google seem not too keen on merging this but GPU accel is quite important -# https://chromium-review.googlesource.com/c/chromium/src/+/532294 -# https://github.com/saiarcot895/chromium-ubuntu-build/tree/master/debian/patches -# Recreated from scratch to be smaller and use system the orginal switches -# (default on) compared to the PR -Patch100: chromium-vaapi.patch +Patch79: chromium-97-Point-constexpr.patch +Patch80: chromium-97-ScrollView-reference.patch +Patch81: chromium-95-libyuv-arm.patch +Patch82: fix-tag-dragging-in-Mutter.patch +Patch83: fix-tag-dragging-in-KWin.patch Patch101: chromium-86-fix-vaapi-on-intel.patch # PATCH-FIX-SUSE: allow prop codecs to be set with chromium branding Patch102: chromium-prop-codecs.patch @@ -280,13 +274,13 @@ %endif %if %{without clang} BuildRequires: binutils-gold -#%if %{?suse_version} >= 1550 -#BuildRequires: gcc -#BuildRequires: gcc-c++ -#%else -BuildRequires: gcc10 -BuildRequires: gcc10-c++ -#%endif +%if %{?suse_version} >= 1550 +BuildRequires: gcc +BuildRequires: gcc-c++ +%else +BuildRequires: gcc11 +BuildRequires: gcc11-c++ +%endif %endif %description @@ -320,6 +314,10 @@ ln -sfn %{_bindir}/$PYTHON $HOME/bin/python export PATH="$HOME/bin/:$PATH" +# use our wrapper (disabled) +#rm chrome/installer/linux/common/wrapper +#cp %{SOURCE106} chrome/installer/linux/common/wrapper + # Remove bundled libs keeplibs=( base/third_party/cityhash @@ -587,17 +585,17 @@ export CC=clang export CXX=clang++ %else -#%if 0%{?suse_version} <= 1500 -export CC=gcc-10 -export CXX=g++-10 +%if 0%{?suse_version} <= 1500 +export CC=gcc-11 +export CXX=g++-11 # some still call gcc/g++ ln -sfn %{_bindir}/$CC $HOME/bin/gcc ln -sfn %{_bindir}/$CXX $HOME/bin/g++ export PATH="$HOME/bin/:$PATH" -#%else -#export CC=gcc -#export CXX=g++ -#%endif +%else +export CC=gcc +export CXX=g++ +%endif %endif export AR=ar export NM=nm ++++++ chrome-wrapper ++++++ #!/bin/bash # # Copyright (c) 2011 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. # Let the wrapped binary know that it has been run through the wrapper. export CHROME_WRAPPER="`readlink -f "$0"`" HERE="`dirname "$CHROME_WRAPPER"`" export CHROME_VERSION_EXTRA="@@CHANNEL@@" # We don't want bug-buddy intercepting our crashes. http://crbug.com/24120 export GNOME_DISABLE_CRASH_DIALOG=SET_BY_GOOGLE_CHROME # This provides a much better experience on Wayland. #if [ "$XDG_SESSION_TYPE" == "wayland" ]; then # ARGS="--ozone-platform=wayland" #fi # Sanitize std{in,out,err} because they'll be shared with untrusted child # processes (http://crbug.com/376567). exec < /dev/null exec > >(exec cat) exec 2> >(exec cat >&2) # Note: exec -a below is a bashism. exec -a "$0" "$HERE/@@PROGNAME@@" "$ARGS" "$@" ++++++ chromium-94-ffmpeg-roll.patch ++++++ --- /var/tmp/diff_new_pack.VmuYOX/_old 2022-01-13 23:21:23.248045364 +0100 +++ /var/tmp/diff_new_pack.VmuYOX/_new 2022-01-13 23:21:23.252045366 +0100 @@ -1,50 +1,13 @@ -From b94755e4633045be96ab5e0bdde0db7e16a804bd Mon Sep 17 00:00:00 2001 -From: "liber...@chromium.org" <liber...@chromium.org> -Date: Fri, 6 Aug 2021 04:25:31 +0000 -Subject: [PATCH] FFmpeg M94 roll. - -Contains DEPS update + chromium-side fixes. - -Bug: 1227259 -Change-Id: I61c5eaa789ea12c17d0cbcbf837435b9cf32479b -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3011889 -Reviewed-by: Thomas Guilbert <tguilb...@chromium.org> -Commit-Queue: Frank Liberato <liber...@chromium.org> -Cr-Commit-Position: refs/heads/master@{#909174} ---- - media/ffmpeg/ffmpeg_common.h | 1 + - media/filters/ffmpeg_demuxer.cc | 4 ++-- - 2 files changed, 3 insertions(+), 2 deletions(-) - -diff --git a/media/ffmpeg/ffmpeg_common.h b/media/ffmpeg/ffmpeg_common.h -index cede8ac5a7..97d6307e28 100644 ---- a/media/ffmpeg/ffmpeg_common.h -+++ b/media/ffmpeg/ffmpeg_common.h -@@ -29,7 +29,6 @@ extern "C" { - #include <libavformat/avformat.h> - #include <libavformat/avio.h> - #include <libavutil/avutil.h> --#include <libavutil/channel_layout.h> - #include <libavutil/imgutils.h> - #include <libavutil/log.h> - #include <libavutil/mastering_display_metadata.h> -diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc -index ac4713b072..605001d935 100644 ---- a/media/filters/ffmpeg_demuxer.cc -+++ b/media/filters/ffmpeg_demuxer.cc -@@ -106,12 +106,12 @@ static base::TimeDelta ExtractStartTime(AVStream* stream) { +diff --git a/build/linux/unbundle/ffmpeg.gn b/build/linux/unbundle/ffmpeg.gn +index 16e20744706..6a079b32221 100644 +--- a/build/linux/unbundle/ffmpeg.gn ++++ b/build/linux/unbundle/ffmpeg.gn +@@ -12,6 +12,7 @@ pkg_config("system_ffmpeg") { + "libavformat", + "libavutil", + ] ++ defines = [ "av_stream_get_first_dts(stream)=stream->first_dts" ] + } - // Next try to use the first DTS value, for codecs where we know PTS == DTS - // (excludes all H26x codecs). The start time must be returned in PTS. -+ if (stream->first_dts != kNoFFmpegTimestamp && -- if (av_stream_get_first_dts(stream) != kNoFFmpegTimestamp && - stream->codecpar->codec_id != AV_CODEC_ID_HEVC && - stream->codecpar->codec_id != AV_CODEC_ID_H264 && - stream->codecpar->codec_id != AV_CODEC_ID_MPEG4) { - const base::TimeDelta first_pts = -+ ConvertFromTimeBase(stream->time_base, stream->first_dts); -- ConvertFromTimeBase(stream->time_base, av_stream_get_first_dts(stream)); - if (first_pts < start_time) - start_time = first_pts; - } + buildflag_header("ffmpeg_features") { ++++++ chromium-95-libyuv-arm.patch ++++++ diff --git a/third_party/libyuv/source/row_neon.cc b/third_party/libyuv/source/row_neon.cc index 6ef6f1c..e4a9e1e 100644 --- a/third_party/libyuv/source/row_neon.cc +++ b/third_party/libyuv/source/row_neon.cc @@ -2346,7 +2346,7 @@ void ARGBToAB64Row_NEON(const uint8_t* src_argb, uint16_t* dst_ab64, int width) { asm volatile( - "vld1.8 q4, %3 \n" // shuffler + "vld1.8 {d8, d9}, %3 \n" // shuffler "1: \n" "vld1.8 {q0}, [%0]! \n" "vld1.8 {q2}, [%0]! \n" ++++++ chromium-97-Point-constexpr.patch ++++++ >From 9850414c0425aebf038faf418f331df2d6ad573b Mon Sep 17 00:00:00 2001 From: Stephan Hartmann <sth...@googlemail.com> Date: Fri, 5 Nov 2021 08:53:26 +0000 Subject: [PATCH] GCC: make gfx::Point::operator== constexpr blink::IntRect::operator== is constexpr. Therefore, gfx::Point::operator== needs to be constexpr as well. --- ui/gfx/geometry/point.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/gfx/geometry/point.h b/ui/gfx/geometry/point.h index 71c5a5b..55b3220 100644 --- a/ui/gfx/geometry/point.h +++ b/ui/gfx/geometry/point.h @@ -95,7 +95,7 @@ class GEOMETRY_EXPORT Point { int y_; }; -inline bool operator==(const Point& lhs, const Point& rhs) { +constexpr bool operator==(const Point& lhs, const Point& rhs) { return lhs.x() == rhs.x() && lhs.y() == rhs.y(); } -- 2.32.0 ++++++ chromium-97-ScrollView-reference.patch ++++++ >From ce58517e546f3f3433931609683b5b4e455bbb7f Mon Sep 17 00:00:00 2001 From: Stephan Hartmann <sth...@googlemail.com> Date: Fri, 5 Nov 2021 15:48:05 +0000 Subject: [PATCH] GCC: fix undefined reference to ScrollView::SetContents() --- ui/views/controls/scroll_view.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ui/views/controls/scroll_view.h b/ui/views/controls/scroll_view.h index 3bd5a8bf..f850728c 100644 --- a/ui/views/controls/scroll_view.h +++ b/ui/views/controls/scroll_view.h @@ -386,6 +386,9 @@ ScrollViewCallbackList on_contents_scroll_ended_; }; +// Required for WebAppUrlHandlerIntentPickerView +template View* ScrollView::SetContents<View>(std::unique_ptr<View> a_view); + BEGIN_VIEW_BUILDER(VIEWS_EXPORT, ScrollView, View) VIEW_BUILDER_VIEW_TYPE_PROPERTY(View, Contents) VIEW_BUILDER_PROPERTY(ui::LayerType, ContentsLayerType) ++++++ chromium-96-compiler.patch -> chromium-97-compiler.patch ++++++ --- /work/SRC/openSUSE:Factory/chromium/chromium-96-compiler.patch 2021-12-16 21:20:30.490548543 +0100 +++ /work/SRC/openSUSE:Factory/.chromium.new.1892/chromium-97-compiler.patch 2022-01-13 23:20:54.672026668 +0100 @@ -1,6 +1,6 @@ -From f4d0b0eb899005b4b8b6388e1d8bb82cc0018fc8 Mon Sep 17 00:00:00 2001 +From 307a0f63dd9b118f4b8470ed3d7567e81fdb7a6d Mon Sep 17 00:00:00 2001 From: Mike Gilbert <flop...@gentoo.org> -Date: Fri, 1 Oct 2021 12:17:48 +0000 +Date: Tue, 2 Nov 2021 11:27:25 +0000 Subject: [PATCH] Disable various compiler configs --- @@ -8,10 +8,10 @@ 1 file changed, 17 insertions(+), 81 deletions(-) diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn -index 673716f..3ff820e 100644 +index 2656f80..221e6db 100644 --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -292,8 +292,6 @@ config("compiler") { +@@ -296,8 +296,6 @@ config("compiler") { configs += [ # See the definitions below. @@ -20,11 +20,11 @@ ":compiler_codegen", ":compiler_deterministic", ] -@@ -532,24 +530,6 @@ config("compiler") { +@@ -538,24 +536,6 @@ config("compiler") { ldflags += [ "-Wl,-z,keep-text-section-prefix" ] } -- if (is_clang && !is_nacl && !use_xcode_clang) { +- if (is_clang && !is_nacl && !use_xcode_clang && current_os != "zos") { - cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ] - - # TODO(hans): Remove this once Clang generates better optimized debug info @@ -45,7 +45,7 @@ # C11/C++11 compiler flags setup. # --------------------------- if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) || -@@ -1240,45 +1220,6 @@ config("compiler_deterministic") { +@@ -1246,45 +1226,6 @@ config("compiler_deterministic") { } } @@ -91,7 +91,7 @@ # Tells the compiler not to use absolute paths when passing the default # paths to the tools it invokes. We don't want this because we don't # really need it and it can mess up the goma cache entries. -@@ -1698,7 +1639,7 @@ config("chromium_code") { +@@ -1562,7 +1503,7 @@ config("chromium_code") { defines = [ "_HAS_NODISCARD" ] } } else { @@ -100,7 +100,7 @@ if (treat_warnings_as_errors) { cflags += [ "-Werror" ] -@@ -1707,10 +1648,6 @@ config("chromium_code") { +@@ -1571,10 +1512,6 @@ config("chromium_code") { # well. ldflags = [ "-Werror" ] } @@ -111,7 +111,7 @@ # In Chromium code, we define __STDC_foo_MACROS in order to get the # C99 macros on Mac and Linux. -@@ -1719,15 +1656,6 @@ config("chromium_code") { +@@ -1583,15 +1520,6 @@ config("chromium_code") { "__STDC_FORMAT_MACROS", ] @@ -127,7 +127,7 @@ if (is_mac) { cflags_objc = [ "-Wobjc-missing-property-synthesis" ] cflags_objcc = [ "-Wobjc-missing-property-synthesis" ] -@@ -2095,7 +2023,8 @@ config("default_stack_frames") { +@@ -1959,7 +1887,8 @@ config("default_stack_frames") { } # Default "optimization on" config. @@ -137,7 +137,7 @@ if (is_win) { if (chrome_pgo_phase != 2) { # Favor size over speed, /O1 must be before the common flags. -@@ -2135,7 +2064,8 @@ config("optimize") { +@@ -1999,7 +1928,8 @@ config("optimize") { } # Turn off optimizations. @@ -147,7 +147,7 @@ if (is_win) { cflags = [ "/Od", # Disable optimization. -@@ -2175,7 +2105,8 @@ config("no_optimize") { +@@ -2039,7 +1969,8 @@ config("no_optimize") { # Turns up the optimization level. On Windows, this implies whole program # optimization and link-time code generation which is very expensive and should # be used sparingly. @@ -157,7 +157,7 @@ if (is_nacl && is_nacl_irt) { # The NaCl IRT is a special case and always wants its own config. # Various components do: -@@ -2208,7 +2139,8 @@ config("optimize_max") { +@@ -2072,7 +2003,8 @@ config("optimize_max") { # # TODO(crbug.com/621335) - rework how all of these configs are related # so that we don't need this disclaimer. @@ -167,7 +167,7 @@ if (is_nacl && is_nacl_irt) { # The NaCl IRT is a special case and always wants its own config. # Various components do: -@@ -2234,7 +2166,8 @@ config("optimize_speed") { +@@ -2098,7 +2030,8 @@ config("optimize_speed") { } } @@ -177,7 +177,7 @@ cflags = [ "-O1" ] + common_optimize_on_cflags rustflags = [ "-Copt-level=1" ] ldflags = common_optimize_on_ldflags -@@ -2354,7 +2287,8 @@ config("win_pdbaltpath") { +@@ -2218,7 +2151,8 @@ config("win_pdbaltpath") { } # Full symbols. @@ -187,7 +187,7 @@ if (is_win) { if (is_clang) { cflags = [ "/Z7" ] # Debug information in the .obj files. -@@ -2468,7 +2402,8 @@ config("symbols") { +@@ -2337,7 +2271,8 @@ config("symbols") { # Minimal symbols. # This config guarantees to hold symbol for stack trace which are shown to user # when crash happens in unittests running on buildbot. @@ -197,7 +197,7 @@ if (is_win) { # Functions, files, and line tables only. cflags = [] -@@ -2540,7 +2475,8 @@ config("minimal_symbols") { +@@ -2407,7 +2342,8 @@ config("minimal_symbols") { # This configuration contains function names only. That is, the compiler is # told to not generate debug information and the linker then just puts function # names in the final debug information. ++++++ chromium-96.0.4664.110.tar.xz -> chromium-97.0.4692.71.tar.xz ++++++ /work/SRC/openSUSE:Factory/chromium/chromium-96.0.4664.110.tar.xz /work/SRC/openSUSE:Factory/.chromium.new.1892/chromium-97.0.4692.71.tar.xz differ: char 26, line 1 ++++++ fix-tag-dragging-in-KWin.patch ++++++ >From 52d0ad25ea695da44195e49f36e69fa81b55e670 Mon Sep 17 00:00:00 2001 From: Tom Anderson <thomasander...@chromium.org> Date: Wed, 5 Jan 2022 21:11:03 +0000 Subject: [PATCH] [X11] Fix tag dragging in KWin R=sky Bug: 1279532 Change-Id: Iac166803e2149eef234045d922b630f0019c8073 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3355376 Auto-Submit: Thomas Anderson <thomasander...@chromium.org> Reviewed-by: Scott Violet <s...@chromium.org> Commit-Queue: Thomas Anderson <thomasander...@chromium.org> Cr-Commit-Position: refs/heads/main@{#955869} --- ui/platform_window/x11/x11_topmost_window_finder.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ui/platform_window/x11/x11_topmost_window_finder.cc b/ui/platform_window/x11/x11_topmost_window_finder.cc index 50e75e17f0a..2e16393487b 100644 --- a/ui/platform_window/x11/x11_topmost_window_finder.cc +++ b/ui/platform_window/x11/x11_topmost_window_finder.cc @@ -68,9 +68,9 @@ bool EnumerateAllWindows(ShouldStopIteratingCallback should_stop_iterating, void EnumerateTopLevelWindows( ui::ShouldStopIteratingCallback should_stop_iterating) { - // Some WMs parent 'top-level' windows in unnamed actual top-level windows - // (ion WM), so extend the search depth to all children of top-level windows. - const int kMaxSearchDepth = 1; + // WMs may reparent toplevel windows inside their own containers, so extend + // the search to all grandchildren of all toplevel windows. + const int kMaxSearchDepth = 2; ui::EnumerateAllWindows(should_stop_iterating, kMaxSearchDepth); } ++++++ fix-tag-dragging-in-Mutter.patch ++++++ >From 3806f28918ea23291749ff4775339075a5f394e8 Mon Sep 17 00:00:00 2001 From: Tom Anderson <thomasander...@chromium.org> Date: Thu, 6 Jan 2022 00:59:40 +0000 Subject: [PATCH] [X11] Fix tag dragging in Mutter We used to use a BFS to find the target window for tag dragging, but this causes windows underneath (like the window for the desktop wallpaper) to take precedence over nested windows. This CL switches to a DFS. R=sky Bug: 1279532 Change-Id: Ib569e9270be60bcb4fff088517dfe295697608b0 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3355470 Reviewed-by: Scott Violet <s...@chromium.org> Commit-Queue: Thomas Anderson <thomasander...@chromium.org> Auto-Submit: Thomas Anderson <thomasander...@chromium.org> Cr-Commit-Position: refs/heads/main@{#955976} --- ui/platform_window/x11/x11_topmost_window_finder.cc | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/ui/platform_window/x11/x11_topmost_window_finder.cc b/ui/platform_window/x11/x11_topmost_window_finder.cc index 2e16393487b..e20bf0abf0e 100644 --- a/ui/platform_window/x11/x11_topmost_window_finder.cc +++ b/ui/platform_window/x11/x11_topmost_window_finder.cc @@ -44,15 +44,8 @@ bool EnumerateChildren(ShouldStopIteratingCallback should_stop_iterating, for (iter = windows.rbegin(); iter != windows.rend(); iter++) { if (IsWindowNamed(*iter) && should_stop_iterating.Run(*iter)) return true; - } - - // If we're at this point, we didn't find the window we're looking for at the - // current level, so we need to recurse to the next level. We use a second - // loop because the recursion and call to XQueryTree are expensive and is only - // needed for a small number of cases. - if (++depth <= max_depth) { - for (iter = windows.rbegin(); iter != windows.rend(); iter++) { - if (EnumerateChildren(should_stop_iterating, *iter, max_depth, depth)) + if (depth < max_depth) { + if (EnumerateChildren(should_stop_iterating, *iter, max_depth, depth + 1)) return true; } } ++++++ gcc-enable-lto.patch ++++++ --- /var/tmp/diff_new_pack.VmuYOX/_old 2022-01-13 23:21:23.408045468 +0100 +++ /var/tmp/diff_new_pack.VmuYOX/_new 2022-01-13 23:21:23.412045471 +0100 @@ -3,7 +3,7 @@ --- chromium-85.0.4183.69.orig/build/config/BUILDCONFIG.gn +++ chromium-85.0.4183.69/build/config/BUILDCONFIG.gn @@ -130,6 +130,8 @@ declare_args() { - # separate flags. + # set "is_official_build" to true for any build intended to ship to end-users. is_official_build = false + gcc_lto = false