| Index: ash/common/accelerators/debug_commands.cc
|
| diff --git a/ash/common/accelerators/debug_commands.cc b/ash/common/accelerators/debug_commands.cc
|
| deleted file mode 100644
|
| index e54ec8923e087eacaf084848d03b07f19e331e31..0000000000000000000000000000000000000000
|
| --- a/ash/common/accelerators/debug_commands.cc
|
| +++ /dev/null
|
| @@ -1,215 +0,0 @@
|
| -// Copyright 2013 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.
|
| -
|
| -#include "ash/common/accelerators/debug_commands.h"
|
| -
|
| -#include "ash/common/accelerators/accelerator_commands.h"
|
| -#include "ash/common/ash_switches.h"
|
| -#include "ash/common/shell_delegate.h"
|
| -#include "ash/common/wallpaper/wallpaper_controller.h"
|
| -#include "ash/common/wallpaper/wallpaper_delegate.h"
|
| -#include "ash/common/wm/maximize_mode/maximize_mode_controller.h"
|
| -#include "ash/common/wm_shell.h"
|
| -#include "ash/common/wm_window.h"
|
| -#include "ash/root_window_controller.h"
|
| -#include "ash/system/toast/toast_data.h"
|
| -#include "ash/system/toast/toast_manager.h"
|
| -#include "ash/wm/window_properties.h"
|
| -#include "base/command_line.h"
|
| -#include "base/metrics/user_metrics.h"
|
| -#include "base/metrics/user_metrics_action.h"
|
| -#include "base/strings/utf_string_conversions.h"
|
| -#include "ui/compositor/debug_utils.h"
|
| -#include "ui/compositor/layer.h"
|
| -#include "ui/gfx/canvas.h"
|
| -#include "ui/gfx/image/image_skia.h"
|
| -#include "ui/views/debug_utils.h"
|
| -#include "ui/views/widget/widget.h"
|
| -
|
| -namespace ash {
|
| -namespace debug {
|
| -namespace {
|
| -
|
| -void HandlePrintLayerHierarchy() {
|
| - for (WmWindow* root : WmShell::Get()->GetAllRootWindows()) {
|
| - ui::Layer* layer = root->GetLayer();
|
| - if (layer)
|
| - ui::PrintLayerHierarchy(
|
| - layer, root->GetRootWindowController()->GetLastMouseLocationInRoot());
|
| - }
|
| -}
|
| -
|
| -void HandlePrintViewHierarchy() {
|
| - WmWindow* active_window = WmShell::Get()->GetActiveWindow();
|
| - if (!active_window)
|
| - return;
|
| - views::Widget* widget = active_window->GetInternalWidget();
|
| - if (!widget)
|
| - return;
|
| - views::PrintViewHierarchy(widget->GetRootView());
|
| -}
|
| -
|
| -void PrintWindowHierarchy(const WmWindow* active_window,
|
| - WmWindow* window,
|
| - int indent,
|
| - std::ostringstream* out) {
|
| - std::string indent_str(indent, ' ');
|
| - std::string name(window->GetName());
|
| - if (name.empty())
|
| - name = "\"\"";
|
| - *out << indent_str << name << " (" << window << ")"
|
| - << " type=" << window->GetType()
|
| - << ((window == active_window) ? " [active] " : " ")
|
| - << (window->IsVisible() ? " visible " : " ")
|
| - << window->GetBounds().ToString()
|
| - << (window->aura_window()->GetProperty(kSnapChildrenToPixelBoundary)
|
| - ? " [snapped] "
|
| - : "")
|
| - << ", subpixel offset="
|
| - << window->GetLayer()->subpixel_position_offset().ToString() << '\n';
|
| -
|
| - for (WmWindow* child : window->GetChildren())
|
| - PrintWindowHierarchy(active_window, child, indent + 3, out);
|
| -}
|
| -
|
| -void HandlePrintWindowHierarchy() {
|
| - WmWindow* active_window = WmShell::Get()->GetActiveWindow();
|
| - WmWindow::Windows roots = WmShell::Get()->GetAllRootWindows();
|
| - for (size_t i = 0; i < roots.size(); ++i) {
|
| - std::ostringstream out;
|
| - out << "RootWindow " << i << ":\n";
|
| - PrintWindowHierarchy(active_window, roots[i], 0, &out);
|
| - // Error so logs can be collected from end-users.
|
| - LOG(ERROR) << out.str();
|
| - }
|
| -}
|
| -
|
| -gfx::ImageSkia CreateWallpaperImage(SkColor fill, SkColor rect) {
|
| - // TODO(oshima): Consider adding a command line option to control wallpaper
|
| - // images for testing. The size is randomly picked.
|
| - gfx::Size image_size(1366, 768);
|
| - gfx::Canvas canvas(image_size, 1.0f, true);
|
| - canvas.DrawColor(fill);
|
| - cc::PaintFlags flags;
|
| - flags.setColor(rect);
|
| - flags.setStrokeWidth(10);
|
| - flags.setStyle(cc::PaintFlags::kStroke_Style);
|
| - flags.setBlendMode(SkBlendMode::kSrcOver);
|
| - canvas.DrawRoundRect(gfx::Rect(image_size), 100, flags);
|
| - return gfx::ImageSkia(canvas.ExtractImageRep());
|
| -}
|
| -
|
| -void HandleToggleWallpaperMode() {
|
| - static int index = 0;
|
| - WallpaperController* wallpaper_controller =
|
| - WmShell::Get()->wallpaper_controller();
|
| - switch (++index % 4) {
|
| - case 0:
|
| - ash::WmShell::Get()->wallpaper_delegate()->InitializeWallpaper();
|
| - break;
|
| - case 1:
|
| - wallpaper_controller->SetWallpaperImage(
|
| - CreateWallpaperImage(SK_ColorRED, SK_ColorBLUE),
|
| - wallpaper::WALLPAPER_LAYOUT_STRETCH);
|
| - break;
|
| - case 2:
|
| - wallpaper_controller->SetWallpaperImage(
|
| - CreateWallpaperImage(SK_ColorBLUE, SK_ColorGREEN),
|
| - wallpaper::WALLPAPER_LAYOUT_CENTER);
|
| - break;
|
| - case 3:
|
| - wallpaper_controller->SetWallpaperImage(
|
| - CreateWallpaperImage(SK_ColorGREEN, SK_ColorRED),
|
| - wallpaper::WALLPAPER_LAYOUT_CENTER_CROPPED);
|
| - break;
|
| - }
|
| -}
|
| -
|
| -void HandleToggleTouchpad() {
|
| - base::RecordAction(base::UserMetricsAction("Accel_Toggle_Touchpad"));
|
| - ash::WmShell::Get()->delegate()->ToggleTouchpad();
|
| -}
|
| -
|
| -void HandleToggleTouchscreen() {
|
| - base::RecordAction(base::UserMetricsAction("Accel_Toggle_Touchscreen"));
|
| - ShellDelegate* delegate = WmShell::Get()->delegate();
|
| - delegate->SetTouchscreenEnabledInPrefs(
|
| - !delegate->IsTouchscreenEnabledInPrefs(false /* use_local_state */),
|
| - false /* use_local_state */);
|
| - delegate->UpdateTouchscreenStatusFromPrefs();
|
| -}
|
| -
|
| -void HandleToggleTouchView() {
|
| - MaximizeModeController* controller =
|
| - WmShell::Get()->maximize_mode_controller();
|
| - controller->EnableMaximizeModeWindowManager(
|
| - !controller->IsMaximizeModeWindowManagerEnabled());
|
| -}
|
| -
|
| -void HandleTriggerCrash() {
|
| - CHECK(false) << "Intentional crash via debug accelerator.";
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -void PrintUIHierarchies() {
|
| - // This is a separate command so the user only has to hit one key to generate
|
| - // all the logs. Developers use the individual dumps repeatedly, so keep
|
| - // those as separate commands to avoid spamming their logs.
|
| - HandlePrintLayerHierarchy();
|
| - HandlePrintWindowHierarchy();
|
| - HandlePrintViewHierarchy();
|
| -}
|
| -
|
| -bool DebugAcceleratorsEnabled() {
|
| - return base::CommandLine::ForCurrentProcess()->HasSwitch(
|
| - switches::kAshDebugShortcuts);
|
| -}
|
| -
|
| -bool DeveloperAcceleratorsEnabled() {
|
| - return base::CommandLine::ForCurrentProcess()->HasSwitch(
|
| - switches::kAshDeveloperShortcuts);
|
| -}
|
| -
|
| -void PerformDebugActionIfEnabled(AcceleratorAction action) {
|
| - if (!DebugAcceleratorsEnabled())
|
| - return;
|
| -
|
| - switch (action) {
|
| - case DEBUG_PRINT_LAYER_HIERARCHY:
|
| - HandlePrintLayerHierarchy();
|
| - break;
|
| - case DEBUG_PRINT_VIEW_HIERARCHY:
|
| - HandlePrintViewHierarchy();
|
| - break;
|
| - case DEBUG_PRINT_WINDOW_HIERARCHY:
|
| - HandlePrintWindowHierarchy();
|
| - break;
|
| - case DEBUG_SHOW_TOAST:
|
| - WmShell::Get()->toast_manager()->Show(
|
| - ToastData("id", base::ASCIIToUTF16("Toast"), 5000 /* duration_ms */,
|
| - base::ASCIIToUTF16("Dismiss")));
|
| - break;
|
| - case DEBUG_TOGGLE_TOUCH_PAD:
|
| - HandleToggleTouchpad();
|
| - break;
|
| - case DEBUG_TOGGLE_TOUCH_SCREEN:
|
| - HandleToggleTouchscreen();
|
| - break;
|
| - case DEBUG_TOGGLE_TOUCH_VIEW:
|
| - HandleToggleTouchView();
|
| - break;
|
| - case DEBUG_TOGGLE_WALLPAPER_MODE:
|
| - HandleToggleWallpaperMode();
|
| - break;
|
| - case DEBUG_TRIGGER_CRASH:
|
| - HandleTriggerCrash();
|
| - break;
|
| - default:
|
| - break;
|
| - }
|
| -}
|
| -
|
| -} // namespace debug
|
| -} // namespace ash
|
|
|