This commit is contained in:
idriskalp
2022-02-14 02:15:53 +03:00
parent fca97a2417
commit 8321e43aa2
5 changed files with 343 additions and 0 deletions
@@ -0,0 +1,35 @@
From 52d0ad25ea695da44195e49f36e69fa81b55e670 Mon Sep 17 00:00:00 2001
From: Tom Anderson <thomasanderson@chromium.org>
Date: Wed, 5 Jan 2022 21:11:03 +0000
Subject: [PATCH] [X11] Fix tag dragging in KWin
R=sky
Bug: 1279532
Change-Id: Iac166803e2149eef234045d922b630f0019c8073
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3355376
Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/main@{#955869}
---
ui/platform_window/x11/x11_topmost_window_finder.cc | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/ui/platform_window/x11/x11_topmost_window_finder.cc b/ui/platform_window/x11/x11_topmost_window_finder.cc
index 50e75e17f0a..2e16393487b 100644
--- a/ui/platform_window/x11/x11_topmost_window_finder.cc
+++ b/ui/platform_window/x11/x11_topmost_window_finder.cc
@@ -68,9 +68,9 @@ bool EnumerateAllWindows(ShouldStopIteratingCallback should_stop_iterating,
void EnumerateTopLevelWindows(
ui::ShouldStopIteratingCallback should_stop_iterating) {
- // Some WMs parent 'top-level' windows in unnamed actual top-level windows
- // (ion WM), so extend the search depth to all children of top-level windows.
- const int kMaxSearchDepth = 1;
+ // WMs may reparent toplevel windows inside their own containers, so extend
+ // the search to all grandchildren of all toplevel windows.
+ const int kMaxSearchDepth = 2;
ui::EnumerateAllWindows(should_stop_iterating, kMaxSearchDepth);
}
@@ -0,0 +1,46 @@
From 3806f28918ea23291749ff4775339075a5f394e8 Mon Sep 17 00:00:00 2001
From: Tom Anderson <thomasanderson@chromium.org>
Date: Thu, 6 Jan 2022 00:59:40 +0000
Subject: [PATCH] [X11] Fix tag dragging in Mutter
We used to use a BFS to find the target window for tag dragging, but
this causes windows underneath (like the window for the desktop
wallpaper) to take precedence over nested windows.
This CL switches to a DFS.
R=sky
Bug: 1279532
Change-Id: Ib569e9270be60bcb4fff088517dfe295697608b0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3355470
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/main@{#955976}
---
ui/platform_window/x11/x11_topmost_window_finder.cc | 11 ++---------
1 file changed, 2 insertions(+), 9 deletions(-)
diff --git a/ui/platform_window/x11/x11_topmost_window_finder.cc b/ui/platform_window/x11/x11_topmost_window_finder.cc
index 2e16393487b..e20bf0abf0e 100644
--- a/ui/platform_window/x11/x11_topmost_window_finder.cc
+++ b/ui/platform_window/x11/x11_topmost_window_finder.cc
@@ -44,15 +44,8 @@ bool EnumerateChildren(ShouldStopIteratingCallback should_stop_iterating,
for (iter = windows.rbegin(); iter != windows.rend(); iter++) {
if (IsWindowNamed(*iter) && should_stop_iterating.Run(*iter))
return true;
- }
-
- // If we're at this point, we didn't find the window we're looking for at the
- // current level, so we need to recurse to the next level. We use a second
- // loop because the recursion and call to XQueryTree are expensive and is only
- // needed for a small number of cases.
- if (++depth <= max_depth) {
- for (iter = windows.rbegin(); iter != windows.rend(); iter++) {
- if (EnumerateChildren(should_stop_iterating, *iter, max_depth, depth))
+ if (depth < max_depth) {
+ if (EnumerateChildren(should_stop_iterating, *iter, max_depth, depth + 1))
return true;
}
}
@@ -0,0 +1,27 @@
From 9850414c0425aebf038faf418f331df2d6ad573b Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@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
@@ -0,0 +1,23 @@
From ce58517e546f3f3433931609683b5b4e455bbb7f Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@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)
@@ -0,0 +1,212 @@
From 307a0f63dd9b118f4b8470ed3d7567e81fdb7a6d Mon Sep 17 00:00:00 2001
From: Mike Gilbert <floppym@gentoo.org>
Date: Tue, 2 Nov 2021 11:27:25 +0000
Subject: [PATCH] Disable various compiler configs
---
build/config/compiler/BUILD.gn | 98 ++++++----------------------------
1 file changed, 17 insertions(+), 81 deletions(-)
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
index 2656f80..221e6db 100644
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -296,8 +296,6 @@ config("compiler") {
configs += [
# See the definitions below.
- ":clang_revision",
- ":compiler_cpu_abi",
":compiler_codegen",
":compiler_deterministic",
]
@@ -538,24 +536,6 @@ config("compiler") {
ldflags += [ "-Wl,-z,keep-text-section-prefix" ]
}
- 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
- # by default. https://crbug.com/765793
- cflags += [
- "-mllvm",
- "-instcombine-lower-dbg-declare=0",
- ]
- if (!is_debug && use_thin_lto && is_a_target_toolchain) {
- if (is_win) {
- ldflags += [ "-mllvm:-instcombine-lower-dbg-declare=0" ]
- } else {
- ldflags += [ "-Wl,-mllvm,-instcombine-lower-dbg-declare=0" ]
- }
- }
- }
-
# C11/C++11 compiler flags setup.
# ---------------------------
if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) ||
@@ -1246,45 +1226,6 @@ config("compiler_deterministic") {
}
}
- # Makes builds independent of absolute file path.
- if (is_clang && strip_absolute_paths_from_debug_symbols) {
- # If debug option is given, clang includes $cwd in debug info by default.
- # For such build, this flag generates reproducible obj files even we use
- # different build directory like "out/feature_a" and "out/feature_b" if
- # we build same files with same compile flag.
- # Other paths are already given in relative, no need to normalize them.
- if (is_nacl) {
- # TODO(https://crbug.com/1231236): Use -ffile-compilation-dir= here.
- cflags += [
- "-Xclang",
- "-fdebug-compilation-dir",
- "-Xclang",
- ".",
- ]
- } else {
- # -ffile-compilation-dir is an alias for both -fdebug-compilation-dir=
- # and -fcoverage-compilation-dir=.
- cflags += [ "-ffile-compilation-dir=." ]
- }
- if (!is_win) {
- # We don't use clang -cc1as on Windows (yet? https://crbug.com/762167)
- asmflags = [ "-Wa,-fdebug-compilation-dir,." ]
- }
-
- if (is_win && use_lld) {
- if (symbol_level == 2 || (is_clang && using_sanitizer)) {
- # Absolutize source file paths for PDB. Pass the real build directory
- # if the pdb contains source-level debug information and if linker
- # reproducibility is not critical.
- ldflags += [ "/PDBSourcePath:" + rebase_path(root_build_dir) ]
- } else {
- # Use a fake fixed base directory for paths in the pdb to make the pdb
- # output fully deterministic and independent of the build directory.
- ldflags += [ "/PDBSourcePath:o:\fake\prefix" ]
- }
- }
- }
-
# Tells the compiler not to use absolute paths when passing the default
# paths to the tools it invokes. We don't want this because we don't
# really need it and it can mess up the goma cache entries.
@@ -1562,7 +1503,7 @@ config("chromium_code") {
defines = [ "_HAS_NODISCARD" ]
}
} else {
- cflags = [ "-Wall" ]
+ cflags = []
if (treat_warnings_as_errors) {
cflags += [ "-Werror" ]
@@ -1571,10 +1512,6 @@ config("chromium_code") {
# well.
ldflags = [ "-Werror" ]
}
- if (is_clang) {
- # Enable extra warnings for chromium_code when we control the compiler.
- cflags += [ "-Wextra" ]
- }
# In Chromium code, we define __STDC_foo_MACROS in order to get the
# C99 macros on Mac and Linux.
@@ -1583,15 +1520,6 @@ config("chromium_code") {
"__STDC_FORMAT_MACROS",
]
- if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
- current_cpu != "s390" && current_cpu != "ppc64" &&
- current_cpu != "mips" && current_cpu != "mips64") {
- # Non-chromium code is not guaranteed to compile cleanly with
- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
- # disabled, so only do that for Release build.
- defines += [ "_FORTIFY_SOURCE=2" ]
- }
-
if (is_mac) {
cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
@@ -1959,7 +1887,8 @@ config("default_stack_frames") {
}
# Default "optimization on" config.
-config("optimize") {
+config("optimize") { }
+config("xoptimize") {
if (is_win) {
if (chrome_pgo_phase != 2) {
# Favor size over speed, /O1 must be before the common flags.
@@ -1999,7 +1928,8 @@ config("optimize") {
}
# Turn off optimizations.
-config("no_optimize") {
+config("no_optimize") { }
+config("xno_optimize") {
if (is_win) {
cflags = [
"/Od", # Disable optimization.
@@ -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.
-config("optimize_max") {
+config("optimize_max") { }
+config("xoptimize_max") {
if (is_nacl && is_nacl_irt) {
# The NaCl IRT is a special case and always wants its own config.
# Various components do:
@@ -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.
-config("optimize_speed") {
+config("optimize_speed") { }
+config("xoptimize_speed") {
if (is_nacl && is_nacl_irt) {
# The NaCl IRT is a special case and always wants its own config.
# Various components do:
@@ -2098,7 +2030,8 @@ config("optimize_speed") {
}
}
-config("optimize_fuzzing") {
+config("optimize_fuzzing") { }
+config("xoptimize_fuzzing") {
cflags = [ "-O1" ] + common_optimize_on_cflags
rustflags = [ "-Copt-level=1" ]
ldflags = common_optimize_on_ldflags
@@ -2218,7 +2151,8 @@ config("win_pdbaltpath") {
}
# Full symbols.
-config("symbols") {
+config("symbols") { }
+config("xsymbols") {
if (is_win) {
if (is_clang) {
cflags = [ "/Z7" ] # Debug information in the .obj files.
@@ -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.
-config("minimal_symbols") {
+config("minimal_symbols") { }
+config("xminimal_symbols") {
if (is_win) {
# Functions, files, and line tables only.
cflags = []
@@ -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.
-config("no_symbols") {
+config("no_symbols") { }
+config("xno_symbols") {
if (is_win) {
ldflags = [ "/DEBUG" ]
--
2.32.0