Commit 7861fd0f authored by Xiaohui Chen's avatar Xiaohui Chen Committed by Commit Bot

Move ash/public/cpp/debug_utils.h impl to ash/debug.cc

Bug: None
Change-Id: I5d03b6ef8853bdb58b09335c591014cb573fdae0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2153885
Commit-Queue: Xiaohui Chen <xiaohuic@chromium.org>
Reviewed-by: default avatarAhmed Fakhry <afakhry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#760541}
parent b6682f04
...@@ -12,32 +12,22 @@ ...@@ -12,32 +12,22 @@
#include "ash/public/cpp/ash_switches.h" #include "ash/public/cpp/ash_switches.h"
#include "ash/public/cpp/debug_utils.h" #include "ash/public/cpp/debug_utils.h"
#include "ash/public/cpp/toast_data.h" #include "ash/public/cpp/toast_data.h"
#include "ash/public/cpp/window_properties.h"
#include "ash/root_window_controller.h"
#include "ash/shell.h" #include "ash/shell.h"
#include "ash/system/toast/toast_manager_impl.h" #include "ash/system/toast/toast_manager_impl.h"
#include "ash/touch/touch_devices_controller.h" #include "ash/touch/touch_devices_controller.h"
#include "ash/wallpaper/wallpaper_controller_impl.h" #include "ash/wallpaper/wallpaper_controller_impl.h"
#include "ash/wm/tablet_mode/tablet_mode_controller.h" #include "ash/wm/tablet_mode/tablet_mode_controller.h"
#include "ash/wm/window_properties.h"
#include "ash/wm/window_state.h"
#include "ash/wm/window_util.h"
#include "base/command_line.h" #include "base/command_line.h"
#include "base/metrics/user_metrics.h" #include "base/metrics/user_metrics.h"
#include "base/metrics/user_metrics_action.h" #include "base/metrics/user_metrics_action.h"
#include "base/strings/utf_string_conversions.h" #include "base/strings/utf_string_conversions.h"
#include "ui/accessibility/ax_tree_id.h" #include "ui/accessibility/ax_tree_id.h"
#include "ui/accessibility/platform/aura_window_properties.h"
#include "ui/aura/client/aura_constants.h" #include "ui/aura/client/aura_constants.h"
#include "ui/compositor/debug_utils.h"
#include "ui/compositor/layer.h"
#include "ui/display/manager/display_manager.h" #include "ui/display/manager/display_manager.h"
#include "ui/gfx/canvas.h" #include "ui/gfx/canvas.h"
#include "ui/gfx/image/image_skia.h" #include "ui/gfx/image/image_skia.h"
#include "ui/gfx/image/image_skia_rep.h" #include "ui/gfx/image/image_skia_rep.h"
#include "ui/views/debug_utils.h"
#include "ui/views/widget/widget.h" #include "ui/views/widget/widget.h"
#include "ui/wm/core/window_properties.h"
namespace ash { namespace ash {
namespace debug { namespace debug {
...@@ -118,95 +108,18 @@ void HandleTriggerHUDDisplay() { ...@@ -118,95 +108,18 @@ void HandleTriggerHUDDisplay() {
} // namespace } // namespace
void PrintLayerHierarchy(std::ostringstream* out) {
for (aura::Window* root : Shell::Get()->GetAllRootWindows()) {
ui::Layer* layer = root->layer();
if (layer) {
ui::PrintLayerHierarchy(
layer,
RootWindowController::ForWindow(root)->GetLastMouseLocationInRoot(),
out);
}
}
}
void HandlePrintLayerHierarchy() { void HandlePrintLayerHierarchy() {
std::ostringstream out; std::ostringstream out;
PrintLayerHierarchy(&out); PrintLayerHierarchy(&out);
LOG(ERROR) << out.str(); LOG(ERROR) << out.str();
} }
void PrintViewHierarchy(std::ostringstream* out) {
aura::Window* active_window = window_util::GetActiveWindow();
if (!active_window)
return;
views::Widget* widget = views::Widget::GetWidgetForNativeView(active_window);
if (!widget)
return;
views::PrintViewHierarchy(widget->GetRootView(), out);
}
void HandlePrintViewHierarchy() { void HandlePrintViewHierarchy() {
std::ostringstream out; std::ostringstream out;
PrintViewHierarchy(&out); PrintViewHierarchy(&out);
LOG(ERROR) << out.str(); LOG(ERROR) << out.str();
} }
void PrintWindowHierarchy(const aura::Window* active_window,
const aura::Window* focused_window,
aura::Window* window,
int indent,
std::ostringstream* out) {
std::string indent_str(indent, ' ');
std::string name(window->GetName());
if (name.empty())
name = "\"\"";
const gfx::Vector2dF& subpixel_position_offset =
window->layer()->GetSubpixelOffset();
*out << indent_str;
*out << name << " (" << window << ")"
<< " type=" << window->type();
int window_id = window->id();
if (window_id != aura::Window::kInitialId)
*out << " id=" << window_id;
if (window->GetProperty(kWindowStateKey))
*out << " " << WindowState::Get(window)->GetStateType();
*out << ((window == active_window) ? " [active]" : "")
<< ((window == focused_window) ? " [focused]" : "")
<< (window->IsVisible() ? " visible" : "") << " "
<< (window->occlusion_state() != aura::Window::OcclusionState::UNKNOWN
? aura::Window::OcclusionStateToString(window->occlusion_state())
: "")
<< " " << window->bounds().ToString();
if (!subpixel_position_offset.IsZero())
*out << " subpixel offset=" + subpixel_position_offset.ToString();
std::string* tree_id = window->GetProperty(ui::kChildAXTreeID);
if (tree_id)
*out << " ax_tree_id=" << *tree_id;
base::string16 title(window->GetTitle());
if (!title.empty())
*out << " title=" << title;
int app_type = window->GetProperty(aura::client::kAppType);
*out << " app_type=" << app_type;
std::string* pkg_name = window->GetProperty(ash::kArcPackageNameKey);
if (pkg_name)
*out << " pkg_name=" << *pkg_name;
*out << '\n';
for (aura::Window* child : window->children())
PrintWindowHierarchy(active_window, focused_window, child, indent + 3, out);
}
void PrintWindowHierarchy(std::ostringstream* out) {
aura::Window* active_window = window_util::GetActiveWindow();
aura::Window* focused_window = window_util::GetFocusedWindow();
aura::Window::Windows roots = Shell::Get()->GetAllRootWindows();
for (size_t i = 0; i < roots.size(); ++i) {
*out << "RootWindow " << i << ":\n";
PrintWindowHierarchy(active_window, focused_window, roots[i], 0, out);
}
}
void HandlePrintWindowHierarchy() { void HandlePrintWindowHierarchy() {
std::ostringstream out; std::ostringstream out;
PrintWindowHierarchy(&out); PrintWindowHierarchy(&out);
......
...@@ -4,20 +4,110 @@ ...@@ -4,20 +4,110 @@
#include "ash/debug.h" #include "ash/debug.h"
#include <memory>
#include <string>
#include "ash/public/cpp/debug_utils.h"
#include "ash/public/cpp/window_properties.h"
#include "ash/root_window_controller.h"
#include "ash/shell.h" #include "ash/shell.h"
#include "ash/wm/window_properties.h"
#include "ash/wm/window_state.h"
#include "ash/wm/window_util.h"
#include "cc/debug/layer_tree_debug_state.h" #include "cc/debug/layer_tree_debug_state.h"
#include "ui/accessibility/platform/aura_window_properties.h"
#include "ui/aura/client/aura_constants.h"
#include "ui/aura/window_tree_host.h" #include "ui/aura/window_tree_host.h"
#include "ui/compositor/compositor.h" #include "ui/compositor/compositor.h"
#include "ui/compositor/debug_utils.h"
#include "ui/views/debug_utils.h"
#include "ui/views/widget/widget.h"
namespace ash { namespace ash {
namespace debug { namespace debug {
void PrintLayerHierarchy(std::ostringstream* out) {
for (aura::Window* root : Shell::Get()->GetAllRootWindows()) {
ui::Layer* layer = root->layer();
if (layer) {
ui::PrintLayerHierarchy(
layer,
RootWindowController::ForWindow(root)->GetLastMouseLocationInRoot(),
out);
}
}
}
void PrintViewHierarchy(std::ostringstream* out) {
aura::Window* active_window = window_util::GetActiveWindow();
if (!active_window)
return;
views::Widget* widget = views::Widget::GetWidgetForNativeView(active_window);
if (!widget)
return;
views::PrintViewHierarchy(widget->GetRootView(), out);
}
void PrintWindowHierarchy(const aura::Window* active_window,
const aura::Window* focused_window,
aura::Window* window,
int indent,
std::ostringstream* out) {
std::string indent_str(indent, ' ');
std::string name(window->GetName());
if (name.empty())
name = "\"\"";
const gfx::Vector2dF& subpixel_position_offset =
window->layer()->GetSubpixelOffset();
*out << indent_str;
*out << name << " (" << window << ")"
<< " type=" << window->type();
int window_id = window->id();
if (window_id != aura::Window::kInitialId)
*out << " id=" << window_id;
if (window->GetProperty(kWindowStateKey))
*out << " " << WindowState::Get(window)->GetStateType();
*out << ((window == active_window) ? " [active]" : "")
<< ((window == focused_window) ? " [focused]" : "")
<< (window->IsVisible() ? " visible" : "") << " "
<< (window->occlusion_state() != aura::Window::OcclusionState::UNKNOWN
? aura::Window::OcclusionStateToString(window->occlusion_state())
: "")
<< " " << window->bounds().ToString();
if (!subpixel_position_offset.IsZero())
*out << " subpixel offset=" + subpixel_position_offset.ToString();
std::string* tree_id = window->GetProperty(ui::kChildAXTreeID);
if (tree_id)
*out << " ax_tree_id=" << *tree_id;
base::string16 title(window->GetTitle());
if (!title.empty())
*out << " title=" << title;
int app_type = window->GetProperty(aura::client::kAppType);
*out << " app_type=" << app_type;
std::string* pkg_name = window->GetProperty(ash::kArcPackageNameKey);
if (pkg_name)
*out << " pkg_name=" << *pkg_name;
*out << '\n';
for (aura::Window* child : window->children())
PrintWindowHierarchy(active_window, focused_window, child, indent + 3, out);
}
void PrintWindowHierarchy(std::ostringstream* out) {
aura::Window* active_window = window_util::GetActiveWindow();
aura::Window* focused_window = window_util::GetFocusedWindow();
aura::Window::Windows roots = Shell::Get()->GetAllRootWindows();
for (size_t i = 0; i < roots.size(); ++i) {
*out << "RootWindow " << i << ":\n";
PrintWindowHierarchy(active_window, focused_window, roots[i], 0, out);
}
}
void ToggleShowDebugBorders() { void ToggleShowDebugBorders() {
aura::Window::Windows root_windows = Shell::Get()->GetAllRootWindows(); aura::Window::Windows root_windows = Shell::Get()->GetAllRootWindows();
std::unique_ptr<cc::DebugBorderTypes> value; std::unique_ptr<cc::DebugBorderTypes> value;
for (aura::Window::Windows::iterator it = root_windows.begin(); for (auto* window : root_windows) {
it != root_windows.end(); ++it) { ui::Compositor* compositor = window->GetHost()->compositor();
ui::Compositor* compositor = (*it)->GetHost()->compositor();
cc::LayerTreeDebugState state = compositor->GetLayerTreeDebugState(); cc::LayerTreeDebugState state = compositor->GetLayerTreeDebugState();
if (!value.get()) if (!value.get())
value.reset(new cc::DebugBorderTypes(state.show_debug_borders.flip())); value.reset(new cc::DebugBorderTypes(state.show_debug_borders.flip()));
...@@ -29,9 +119,8 @@ void ToggleShowDebugBorders() { ...@@ -29,9 +119,8 @@ void ToggleShowDebugBorders() {
void ToggleShowFpsCounter() { void ToggleShowFpsCounter() {
aura::Window::Windows root_windows = Shell::Get()->GetAllRootWindows(); aura::Window::Windows root_windows = Shell::Get()->GetAllRootWindows();
std::unique_ptr<bool> value; std::unique_ptr<bool> value;
for (aura::Window::Windows::iterator it = root_windows.begin(); for (auto* window : root_windows) {
it != root_windows.end(); ++it) { ui::Compositor* compositor = window->GetHost()->compositor();
ui::Compositor* compositor = (*it)->GetHost()->compositor();
cc::LayerTreeDebugState state = compositor->GetLayerTreeDebugState(); cc::LayerTreeDebugState state = compositor->GetLayerTreeDebugState();
if (!value.get()) if (!value.get())
value.reset(new bool(!state.show_fps_counter)); value.reset(new bool(!state.show_fps_counter));
...@@ -43,9 +132,8 @@ void ToggleShowFpsCounter() { ...@@ -43,9 +132,8 @@ void ToggleShowFpsCounter() {
void ToggleShowPaintRects() { void ToggleShowPaintRects() {
aura::Window::Windows root_windows = Shell::Get()->GetAllRootWindows(); aura::Window::Windows root_windows = Shell::Get()->GetAllRootWindows();
std::unique_ptr<bool> value; std::unique_ptr<bool> value;
for (aura::Window::Windows::iterator it = root_windows.begin(); for (auto* window : root_windows) {
it != root_windows.end(); ++it) { ui::Compositor* compositor = window->GetHost()->compositor();
ui::Compositor* compositor = (*it)->GetHost()->compositor();
cc::LayerTreeDebugState state = compositor->GetLayerTreeDebugState(); cc::LayerTreeDebugState state = compositor->GetLayerTreeDebugState();
if (!value.get()) if (!value.get())
value.reset(new bool(!state.show_paint_rects)); value.reset(new bool(!state.show_paint_rects));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment