| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/common/devtools/ash_devtools_dom_agent.h" | 5 #include "ash/common/devtools/ash_devtools_dom_agent.h" |
| 6 | 6 |
| 7 #include "ash/common/wm_window.h" | 7 #include "ash/common/wm_window.h" |
| 8 #include "ash/public/cpp/shell_window_ids.h" | 8 #include "ash/public/cpp/shell_window_ids.h" |
| 9 #include "ash/root_window_controller.h" | 9 #include "ash/root_window_controller.h" |
| 10 #include "ash/shell.h" |
| 10 #include "components/ui_devtools/devtools_server.h" | 11 #include "components/ui_devtools/devtools_server.h" |
| 11 #include "third_party/skia/include/core/SkColor.h" | 12 #include "third_party/skia/include/core/SkColor.h" |
| 12 #include "ui/display/display.h" | 13 #include "ui/display/display.h" |
| 13 #include "ui/views/background.h" | 14 #include "ui/views/background.h" |
| 14 #include "ui/views/border.h" | 15 #include "ui/views/border.h" |
| 15 | 16 |
| 16 namespace ash { | 17 namespace ash { |
| 17 namespace devtools { | 18 namespace devtools { |
| 18 | 19 |
| 19 namespace { | 20 namespace { |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 MaskColor(rgba->getR()), MaskColor(rgba->getG()), | 98 MaskColor(rgba->getR()), MaskColor(rgba->getG()), |
| 98 MaskColor(rgba->getB())); | 99 MaskColor(rgba->getB())); |
| 99 } | 100 } |
| 100 | 101 |
| 101 views::Widget* GetWidgetFromWmWindow(WmWindow* window) { | 102 views::Widget* GetWidgetFromWmWindow(WmWindow* window) { |
| 102 return views::Widget::GetWidgetForNativeView(window->aura_window()); | 103 return views::Widget::GetWidgetForNativeView(window->aura_window()); |
| 103 } | 104 } |
| 104 | 105 |
| 105 } // namespace | 106 } // namespace |
| 106 | 107 |
| 107 AshDevToolsDOMAgent::AshDevToolsDOMAgent(ash::WmShell* shell) : shell_(shell) { | 108 AshDevToolsDOMAgent::AshDevToolsDOMAgent() {} |
| 108 DCHECK(shell_); | |
| 109 } | |
| 110 | 109 |
| 111 AshDevToolsDOMAgent::~AshDevToolsDOMAgent() { | 110 AshDevToolsDOMAgent::~AshDevToolsDOMAgent() { |
| 112 RemoveObservers(); | 111 RemoveObservers(); |
| 113 } | 112 } |
| 114 | 113 |
| 115 ui::devtools::protocol::Response AshDevToolsDOMAgent::disable() { | 114 ui::devtools::protocol::Response AshDevToolsDOMAgent::disable() { |
| 116 Reset(); | 115 Reset(); |
| 117 return ui::devtools::protocol::Response::OK(); | 116 return ui::devtools::protocol::Response::OK(); |
| 118 } | 117 } |
| 119 | 118 |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 240 } | 239 } |
| 241 | 240 |
| 242 void AshDevToolsDOMAgent::RemoveObserver( | 241 void AshDevToolsDOMAgent::RemoveObserver( |
| 243 AshDevToolsDOMAgentObserver* observer) { | 242 AshDevToolsDOMAgentObserver* observer) { |
| 244 observers_.RemoveObserver(observer); | 243 observers_.RemoveObserver(observer); |
| 245 } | 244 } |
| 246 | 245 |
| 247 std::unique_ptr<ui::devtools::protocol::DOM::Node> | 246 std::unique_ptr<ui::devtools::protocol::DOM::Node> |
| 248 AshDevToolsDOMAgent::BuildInitialTree() { | 247 AshDevToolsDOMAgent::BuildInitialTree() { |
| 249 std::unique_ptr<Array<DOM::Node>> children = Array<DOM::Node>::create(); | 248 std::unique_ptr<Array<DOM::Node>> children = Array<DOM::Node>::create(); |
| 250 for (ash::WmWindow* window : shell_->GetAllRootWindows()) | 249 for (aura::Window* window : Shell::GetAllRootWindows()) |
| 251 children->addItem(BuildTreeForWindow(window)); | 250 children->addItem(BuildTreeForWindow(WmWindow::Get(window))); |
| 252 return BuildNode("root", nullptr, std::move(children)); | 251 return BuildNode("root", nullptr, std::move(children)); |
| 253 } | 252 } |
| 254 | 253 |
| 255 std::unique_ptr<DOM::Node> AshDevToolsDOMAgent::BuildTreeForWindow( | 254 std::unique_ptr<DOM::Node> AshDevToolsDOMAgent::BuildTreeForWindow( |
| 256 ash::WmWindow* window) { | 255 ash::WmWindow* window) { |
| 257 DCHECK(!window_to_node_id_map_.count(window)); | 256 DCHECK(!window_to_node_id_map_.count(window)); |
| 258 std::unique_ptr<Array<DOM::Node>> children = Array<DOM::Node>::create(); | 257 std::unique_ptr<Array<DOM::Node>> children = Array<DOM::Node>::create(); |
| 259 views::Widget* widget = GetWidgetFromWmWindow(window); | 258 views::Widget* widget = GetWidgetFromWmWindow(window); |
| 260 if (widget) | 259 if (widget) |
| 261 children->addItem(BuildTreeForRootWidget(widget)); | 260 children->addItem(BuildTreeForRootWidget(widget)); |
| (...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 468 | 467 |
| 469 void AshDevToolsDOMAgent::InitializeHighlightingWidget() { | 468 void AshDevToolsDOMAgent::InitializeHighlightingWidget() { |
| 470 DCHECK(!widget_for_highlighting_); | 469 DCHECK(!widget_for_highlighting_); |
| 471 widget_for_highlighting_.reset(new views::Widget); | 470 widget_for_highlighting_.reset(new views::Widget); |
| 472 views::Widget::InitParams params; | 471 views::Widget::InitParams params; |
| 473 params.type = views::Widget::InitParams::TYPE_WINDOW_FRAMELESS; | 472 params.type = views::Widget::InitParams::TYPE_WINDOW_FRAMELESS; |
| 474 params.activatable = views::Widget::InitParams::ACTIVATABLE_NO; | 473 params.activatable = views::Widget::InitParams::ACTIVATABLE_NO; |
| 475 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; | 474 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; |
| 476 params.opacity = views::Widget::InitParams::WindowOpacity::TRANSLUCENT_WINDOW; | 475 params.opacity = views::Widget::InitParams::WindowOpacity::TRANSLUCENT_WINDOW; |
| 477 params.name = "HighlightingWidget"; | 476 params.name = "HighlightingWidget"; |
| 478 shell_->GetPrimaryRootWindowController() | 477 Shell::GetPrimaryRootWindowController() |
| 479 ->ConfigureWidgetInitParamsForContainer(widget_for_highlighting_.get(), | 478 ->ConfigureWidgetInitParamsForContainer(widget_for_highlighting_.get(), |
| 480 kShellWindowId_OverlayContainer, | 479 kShellWindowId_OverlayContainer, |
| 481 ¶ms); | 480 ¶ms); |
| 482 params.keep_on_top = true; | 481 params.keep_on_top = true; |
| 483 params.accept_events = false; | 482 params.accept_events = false; |
| 484 widget_for_highlighting_->Init(params); | 483 widget_for_highlighting_->Init(params); |
| 485 } | 484 } |
| 486 | 485 |
| 487 void AshDevToolsDOMAgent::UpdateHighlight( | 486 void AshDevToolsDOMAgent::UpdateHighlight( |
| 488 const WindowAndBoundsPair& window_and_bounds, | 487 const WindowAndBoundsPair& window_and_bounds, |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 523 return ui::devtools::protocol::Response::OK(); | 522 return ui::devtools::protocol::Response::OK(); |
| 524 } | 523 } |
| 525 | 524 |
| 526 bool AshDevToolsDOMAgent::IsHighlightingWindow(WmWindow* window) { | 525 bool AshDevToolsDOMAgent::IsHighlightingWindow(WmWindow* window) { |
| 527 return widget_for_highlighting_ && | 526 return widget_for_highlighting_ && |
| 528 GetWidgetFromWmWindow(window) == widget_for_highlighting_.get(); | 527 GetWidgetFromWmWindow(window) == widget_for_highlighting_.get(); |
| 529 } | 528 } |
| 530 | 529 |
| 531 } // namespace devtools | 530 } // namespace devtools |
| 532 } // namespace ash | 531 } // namespace ash |
| OLD | NEW |