Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1522)

Unified Diff: ui/base/x/x11_util.cc

Issue 540643002: Add WindowManager to about:gpu page on Linux/X11 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/base/x/x11_util.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/base/x/x11_util.cc
diff --git a/ui/base/x/x11_util.cc b/ui/base/x/x11_util.cc
index 108ae30655849b3789699e5b763e01fd79888ef6..6daf1686c5cdc84da9b43e5e7954c3e0b30d1025 100644
--- a/ui/base/x/x11_util.cc
+++ b/ui/base/x/x11_util.cc
@@ -102,6 +102,38 @@ bool GetProperty(XID window, const std::string& property_name, long max_length,
property);
}
+bool GetWindowManagerName(std::string* wm_name) {
+ DCHECK(wm_name);
+ int wm_window = 0;
+ if (!GetIntProperty(GetX11RootWindow(),
+ "_NET_SUPPORTING_WM_CHECK",
+ &wm_window)) {
+ return false;
+ }
+
+ // It's possible that a window manager started earlier in this X session left
+ // a stale _NET_SUPPORTING_WM_CHECK property when it was replaced by a
+ // non-EWMH window manager, so we trap errors in the following requests to
+ // avoid crashes (issue 23860).
+
+ // EWMH requires the supporting-WM window to also have a
+ // _NET_SUPPORTING_WM_CHECK property pointing to itself (to avoid a stale
+ // property referencing an ID that's been recycled for another window), so we
+ // check that too.
+ gfx::X11ErrorTracker err_tracker;
+ int wm_window_property = 0;
+ bool result = GetIntProperty(
+ wm_window, "_NET_SUPPORTING_WM_CHECK", &wm_window_property);
+ if (err_tracker.FoundNewError() || !result ||
+ wm_window_property != wm_window) {
+ return false;
+ }
+
+ result = GetStringProperty(
+ static_cast<XID>(wm_window), "_NET_WM_NAME", wm_name);
+ return !err_tracker.FoundNewError() && result;
+}
+
// A process wide singleton that manages the usage of X cursors.
class XCursorCache {
public:
@@ -1155,38 +1187,6 @@ bool CopyAreaToCanvas(XID drawable,
return true;
}
-bool GetWindowManagerName(std::string* wm_name) {
- DCHECK(wm_name);
- int wm_window = 0;
- if (!GetIntProperty(GetX11RootWindow(),
- "_NET_SUPPORTING_WM_CHECK",
- &wm_window)) {
- return false;
- }
-
- // It's possible that a window manager started earlier in this X session left
- // a stale _NET_SUPPORTING_WM_CHECK property when it was replaced by a
- // non-EWMH window manager, so we trap errors in the following requests to
- // avoid crashes (issue 23860).
-
- // EWMH requires the supporting-WM window to also have a
- // _NET_SUPPORTING_WM_CHECK property pointing to itself (to avoid a stale
- // property referencing an ID that's been recycled for another window), so we
- // check that too.
- gfx::X11ErrorTracker err_tracker;
- int wm_window_property = 0;
- bool result = GetIntProperty(
- wm_window, "_NET_SUPPORTING_WM_CHECK", &wm_window_property);
- if (err_tracker.FoundNewError() || !result ||
- wm_window_property != wm_window) {
- return false;
- }
-
- result = GetStringProperty(
- static_cast<XID>(wm_window), "_NET_WM_NAME", wm_name);
- return !err_tracker.FoundNewError() && result;
-}
-
WindowManagerName GuessWindowManager() {
std::string name;
if (GetWindowManagerName(&name)) {
@@ -1219,6 +1219,13 @@ WindowManagerName GuessWindowManager() {
return WM_UNKNOWN;
}
+std::string GuessWindowManagerName() {
+ std::string name;
+ if (GetWindowManagerName(&name))
+ return name;
+ return "Unknown";
+}
+
void SetDefaultX11ErrorHandlers() {
SetX11ErrorHandlers(NULL, NULL);
}
« no previous file with comments | « ui/base/x/x11_util.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698