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

Side by Side Diff: ash/accelerators/accelerator_controller.cc

Issue 12494011: Keyboard shortcut to log views, layers, windows (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | ash/accelerators/accelerator_table.h » ('j') | ui/views/debug_utils.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ash/accelerators/accelerator_controller.h" 5 #include "ash/accelerators/accelerator_controller.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 #include <string> 9 #include <string>
10 10
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 bool HandleMediaPlayPause() { 267 bool HandleMediaPlayPause() {
268 Shell::GetInstance()->delegate()->HandleMediaPlayPause(); 268 Shell::GetInstance()->delegate()->HandleMediaPlayPause();
269 return true; 269 return true;
270 } 270 }
271 271
272 bool HandleMediaPrevTrack() { 272 bool HandleMediaPrevTrack() {
273 Shell::GetInstance()->delegate()->HandleMediaPrevTrack(); 273 Shell::GetInstance()->delegate()->HandleMediaPrevTrack();
274 return true; 274 return true;
275 } 275 }
276 276
277 #if !defined(NDEBUG)
278 bool HandlePrintLayerHierarchy() { 277 bool HandlePrintLayerHierarchy() {
279 Shell::RootWindowList root_windows = Shell::GetAllRootWindows(); 278 Shell::RootWindowList root_windows = Shell::GetAllRootWindows();
280 for (size_t i = 0; i < root_windows.size(); ++i) { 279 for (size_t i = 0; i < root_windows.size(); ++i) {
281 ui::PrintLayerHierarchy(root_windows[i]->layer(), 280 ui::PrintLayerHierarchy(root_windows[i]->layer(),
282 root_windows[i]->GetLastMouseLocationInRoot()); 281 root_windows[i]->GetLastMouseLocationInRoot());
283 } 282 }
284 return true; 283 return true;
285 } 284 }
286 285
287 bool HandlePrintViewHierarchy() { 286 bool HandlePrintViewHierarchy() {
288 aura::Window* active_window = ash::wm::GetActiveWindow(); 287 aura::Window* active_window = ash::wm::GetActiveWindow();
289 if (!active_window) 288 if (!active_window)
290 return true; 289 return true;
291 views::Widget* browser_widget = 290 views::Widget* browser_widget =
292 views::Widget::GetWidgetForNativeWindow(active_window); 291 views::Widget::GetWidgetForNativeWindow(active_window);
293 if (browser_widget) 292 if (!browser_widget)
294 views::PrintViewHierarchy(browser_widget->GetRootView()); 293 return true;
294 // Error so logs can be collected from end-users.
295 LOG(ERROR) << "View hierarchy:";
296 views::PrintViewHierarchy(browser_widget->GetRootView());
295 return true; 297 return true;
296 } 298 }
297 299
298 void PrintWindowHierarchy(aura::Window* window, int indent) { 300 void PrintWindowHierarchy(aura::Window* window, int indent) {
299 std::string indent_str(indent, ' '); 301 std::string indent_str(indent, ' ');
300 std::string name(window->name()); 302 std::string name(window->name());
301 if (name.empty()) 303 if (name.empty())
302 name = "\"\""; 304 name = "\"\"";
303 DLOG(INFO) << indent_str << name << " (" << window << ")" 305 // Error so logs can be collected from end-users.
304 << " type=" << window->type() 306 LOG(ERROR) << indent_str << name << " (" << window << ")"
305 << (wm::IsActiveWindow(window) ? " [active] " : " ") 307 << " type=" << window->type()
Daniel Erat 2013/03/16 03:32:23 nit: fix indenting on this and following lines
James Cook 2013/03/16 04:09:24 Done.
306 << (window->IsVisible() ? " visible " : " ") 308 << (wm::IsActiveWindow(window) ? " [active] " : " ")
307 << window->bounds().ToString(); 309 << (window->IsVisible() ? " visible " : " ")
310 << window->bounds().ToString();
308 311
309 for (size_t i = 0; i < window->children().size(); ++i) 312 for (size_t i = 0; i < window->children().size(); ++i)
310 PrintWindowHierarchy(window->children()[i], indent + 3); 313 PrintWindowHierarchy(window->children()[i], indent + 3);
311 } 314 }
312 315
313 bool HandlePrintWindowHierarchy() { 316 bool HandlePrintWindowHierarchy() {
314 DLOG(INFO) << "Window hierarchy:";
315 Shell::RootWindowControllerList controllers = 317 Shell::RootWindowControllerList controllers =
316 Shell::GetAllRootWindowControllers(); 318 Shell::GetAllRootWindowControllers();
317 for (size_t i = 0; i < controllers.size(); ++i) { 319 for (size_t i = 0; i < controllers.size(); ++i) {
318 DLOG(INFO) << "RootWindow " << i << ":"; 320 // Error so logs can be collected from end-users.
321 LOG(ERROR) << "RootWindow " << i << ":";
319 PrintWindowHierarchy(controllers[i]->root_window(), 0); 322 PrintWindowHierarchy(controllers[i]->root_window(), 0);
320 } 323 }
321 return true; 324 return true;
322 } 325 }
323 326
324 #endif // !defined(NDEBUG) 327 bool HandlePrintUIHierarchies() {
328 // This is a separate command so the user only has to hit one key to generate
329 // all the logs. Developers use the individual dumps repeatedly, so keep
330 // those as separate commands to avoid spamming their logs.
331 HandlePrintLayerHierarchy();
332 HandlePrintWindowHierarchy();
333 HandlePrintViewHierarchy();
334 return true;
335 }
325 336
326 } // namespace 337 } // namespace
327 338
328 //////////////////////////////////////////////////////////////////////////////// 339 ////////////////////////////////////////////////////////////////////////////////
329 // AcceleratorControllerContext, public: 340 // AcceleratorControllerContext, public:
330 341
331 AcceleratorControllerContext::AcceleratorControllerContext() { 342 AcceleratorControllerContext::AcceleratorControllerContext() {
332 current_accelerator_.set_type(ui::ET_UNKNOWN); 343 current_accelerator_.set_type(ui::ET_UNKNOWN);
333 previous_accelerator_.set_type(ui::ET_UNKNOWN); 344 previous_accelerator_.set_type(ui::ET_UNKNOWN);
334 } 345 }
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after
705 // TODO(mazda): Fix crbug.com/158217 716 // TODO(mazda): Fix crbug.com/158217
706 return false; 717 return false;
707 } 718 }
708 if (ime_control_delegate_.get()) 719 if (ime_control_delegate_.get())
709 return ime_control_delegate_->HandleNextIme(); 720 return ime_control_delegate_->HandleNextIme();
710 break; 721 break;
711 case PREVIOUS_IME: 722 case PREVIOUS_IME:
712 if (ime_control_delegate_.get()) 723 if (ime_control_delegate_.get())
713 return ime_control_delegate_->HandlePreviousIme(); 724 return ime_control_delegate_->HandlePreviousIme();
714 break; 725 break;
726 case PRINT_UI_HIERARCHIES:
727 return HandlePrintUIHierarchies();
715 case SWITCH_IME: 728 case SWITCH_IME:
716 if (ime_control_delegate_.get()) 729 if (ime_control_delegate_.get())
717 return ime_control_delegate_->HandleSwitchIme(accelerator); 730 return ime_control_delegate_->HandleSwitchIme(accelerator);
718 break; 731 break;
719 case SELECT_WIN_0: 732 case SELECT_WIN_0:
720 Launcher::ForPrimaryDisplay()->SwitchToWindow(0); 733 Launcher::ForPrimaryDisplay()->SwitchToWindow(0);
721 return true; 734 return true;
722 case SELECT_WIN_1: 735 case SELECT_WIN_1:
723 Launcher::ForPrimaryDisplay()->SwitchToWindow(1); 736 Launcher::ForPrimaryDisplay()->SwitchToWindow(1);
724 return true; 737 return true;
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
900 keyboard_brightness_control_delegate) { 913 keyboard_brightness_control_delegate) {
901 keyboard_brightness_control_delegate_ = 914 keyboard_brightness_control_delegate_ =
902 keyboard_brightness_control_delegate.Pass(); 915 keyboard_brightness_control_delegate.Pass();
903 } 916 }
904 917
905 bool AcceleratorController::CanHandleAccelerators() const { 918 bool AcceleratorController::CanHandleAccelerators() const {
906 return true; 919 return true;
907 } 920 }
908 921
909 } // namespace ash 922 } // namespace ash
OLDNEW
« no previous file with comments | « no previous file | ash/accelerators/accelerator_table.h » ('j') | ui/views/debug_utils.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698