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

Unified Diff: ash/common/devtools/ash_devtools_dom_agent.cc

Issue 2776543002: Create a unified UIElement interface for Widget, View and Window. (Closed)
Patch Set: . Created 3 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 side-by-side diff with in-line comments
Download patch
Index: ash/common/devtools/ash_devtools_dom_agent.cc
diff --git a/ash/common/devtools/ash_devtools_dom_agent.cc b/ash/common/devtools/ash_devtools_dom_agent.cc
index 058f10ea29e0c20c2669b6060f0f9ba3f3a0bd42..010835e04208615163d6a2352b86f6fba64d170d 100644
--- a/ash/common/devtools/ash_devtools_dom_agent.cc
+++ b/ash/common/devtools/ash_devtools_dom_agent.cc
@@ -137,7 +137,7 @@ ui::devtools::protocol::Response AshDevToolsDOMAgent::hideHighlight() {
// Handles removing windows.
void AshDevToolsDOMAgent::OnWindowHierarchyChanging(
- const HierarchyChangeParams& params) {
+ const aura::WindowObserver::HierarchyChangeParams& params) {
// Only trigger this when params.receiver == params.old_parent.
// Only removals are handled here. Removing a node can occur as a result of
// reorganizing a window or just destroying it. OnWindowHierarchyChanged
@@ -151,7 +151,7 @@ void AshDevToolsDOMAgent::OnWindowHierarchyChanging(
// Handles adding windows.
void AshDevToolsDOMAgent::OnWindowHierarchyChanged(
- const HierarchyChangeParams& params) {
+ const aura::WindowObserver::HierarchyChangeParams& params) {
// Only trigger this when params.receiver == params.new_parent.
// If there is an old_parent + new_parent, then this window's node was
// removed in OnWindowHierarchyChanging and will now be added to the
@@ -161,49 +161,56 @@ void AshDevToolsDOMAgent::OnWindowHierarchyChanged(
AddWindowTree(WmWindow::Get(params.target));
}
-void AshDevToolsDOMAgent::OnWindowStackingChanged(aura::Window* window) {
- RemoveWindowTree(WmWindow::Get(window), false);
- AddWindowTree(WmWindow::Get(window));
+// For WindowElement observers
+void AshDevToolsDOMAgent::NotifyOnWindowHierarchyChanging(
+ const aura::WindowObserver::HierarchyChangeParams& params) {
+ OnWindowHierarchyChanging(params);
}
-void AshDevToolsDOMAgent::OnWindowBoundsChanged(aura::Window* window,
- const gfx::Rect& old_bounds,
- const gfx::Rect& new_bounds) {
- for (auto& observer : observers_)
- observer.OnWindowBoundsChanged(WmWindow::Get(window));
+void AshDevToolsDOMAgent::NotifyOnWindowHierarchyChanged(
+ const aura::WindowObserver::HierarchyChangeParams& params) {
+ OnWindowHierarchyChanged(params);
+}
+
+void AshDevToolsDOMAgent::NotifyRemoveWindowTree(WmWindow* window,
+ bool remove_observer) {
+ RemoveWindowTree(window, remove_observer);
}
-void AshDevToolsDOMAgent::OnWillRemoveView(views::Widget* widget,
- views::View* view) {
- if (view == widget->GetRootView())
- RemoveViewTree(view, nullptr, true);
+void AshDevToolsDOMAgent::NotifyAddWindowTree(WmWindow* window) {
+ AddWindowTree(window);
}
-void AshDevToolsDOMAgent::OnWidgetBoundsChanged(views::Widget* widget,
- const gfx::Rect& new_bounds) {
+void AshDevToolsDOMAgent::NotfiyOnWindowBoundsChanged(WmWindow* window) {
for (auto& observer : observers_)
- observer.OnWidgetBoundsChanged(widget);
+ observer.OnWindowBoundsChanged(window);
}
-void AshDevToolsDOMAgent::OnChildViewRemoved(views::View* parent,
- views::View* view) {
+// For ViewElement observers
+void AshDevToolsDOMAgent::NotifyRemoveViewTree(views::View* view,
+ views::View* parent,
+ bool remove_observer) {
RemoveViewTree(view, parent, true);
}
-void AshDevToolsDOMAgent::OnChildViewAdded(views::View* parent,
- views::View* view) {
+void AshDevToolsDOMAgent::NotifyAddViewTree(views::View* view) {
AddViewTree(view);
}
-void AshDevToolsDOMAgent::OnChildViewReordered(views::View* parent,
- views::View* view) {
- RemoveViewTree(view, parent, false);
- AddViewTree(view);
+void AshDevToolsDOMAgent::NotifyOnViewBoundsChanged(views::View* view) {
+ for (auto& observer : observers_)
+ observer.OnViewBoundsChanged(view);
}
-void AshDevToolsDOMAgent::OnViewBoundsChanged(views::View* view) {
+// For WidgetElement observers
+void AshDevToolsDOMAgent::NotifyOnWidgetBoundsChanged(views::Widget* widget) {
for (auto& observer : observers_)
- observer.OnViewBoundsChanged(view);
+ observer.OnWidgetBoundsChanged(widget);
+}
+
+void AshDevToolsDOMAgent::OnUIElementBoundsChanged(UIElement* ui_element) {
+ for (auto& observer : observers_)
+ observer.OnUIElementBoundsChanged(ui_element);
}
WmWindow* AshDevToolsDOMAgent::GetWindowFromNodeId(int nodeId) {
@@ -267,8 +274,8 @@ std::unique_ptr<DOM::Node> AshDevToolsDOMAgent::BuildTreeForWindow(
std::unique_ptr<ui::devtools::protocol::DOM::Node> node =
BuildNode("Window", GetAttributes(window), std::move(children));
- if (!window->aura_window()->HasObserver(this))
- window->aura_window()->AddObserver(this);
+ // if (!window->aura_window()->HasObserver(this))
+ // window->aura_window()->AddObserver(this);
window_to_node_id_map_[window] = node->getNodeId();
node_id_to_window_map_[node->getNodeId()] = window;
return node;
@@ -281,8 +288,8 @@ std::unique_ptr<DOM::Node> AshDevToolsDOMAgent::BuildTreeForRootWidget(
children->addItem(BuildTreeForView(widget->GetRootView()));
std::unique_ptr<ui::devtools::protocol::DOM::Node> node =
BuildNode("Widget", GetAttributes(widget), std::move(children));
- if (!widget->HasRemovalsObserver(this))
- widget->AddRemovalsObserver(this);
+ // if (!widget->HasRemovalsObserver(this))
+ // widget->AddRemovalsObserver(this);
widget_to_node_id_map_[widget] = node->getNodeId();
node_id_to_widget_map_[node->getNodeId()] = widget;
return node;
@@ -296,8 +303,8 @@ std::unique_ptr<DOM::Node> AshDevToolsDOMAgent::BuildTreeForView(
children->addItem(BuildTreeForView(view->child_at(i)));
std::unique_ptr<ui::devtools::protocol::DOM::Node> node =
BuildNode("View", GetAttributes(view), std::move(children));
- if (!view->HasObserver(this))
- view->AddObserver(this);
+ // if (!view->HasObserver(this))
+ // view->AddObserver(this);
view_to_node_id_map_[view] = node->getNodeId();
node_id_to_view_map_[node->getNodeId()] = view;
return node;
@@ -343,8 +350,8 @@ void AshDevToolsDOMAgent::RemoveWindowNode(WmWindow* window,
node_id_to_window_map_.find(node_id);
DCHECK(node_id_to_window_it != node_id_to_window_map_.end());
- if (remove_observer)
- window->aura_window()->RemoveObserver(this);
+ // if (remove_observer)
+ // window->aura_window()->RemoveObserver(this);
node_id_to_window_map_.erase(node_id_to_window_it);
window_to_node_id_map_.erase(window_to_node_id_it);
@@ -368,8 +375,8 @@ void AshDevToolsDOMAgent::RemoveWidgetNode(views::Widget* widget,
int node_id = widget_to_node_id_it->second;
int parent_id = GetNodeIdFromWindow(WmWindow::Get(widget->GetNativeWindow()));
- if (remove_observer)
- widget->RemoveRemovalsObserver(this);
+ // if (remove_observer)
+ // widget->RemoveRemovalsObserver(this);
NodeIdToWidgetMap::iterator node_id_to_widget_it =
node_id_to_widget_map_.find(node_id);
@@ -412,8 +419,8 @@ void AshDevToolsDOMAgent::RemoveViewNode(views::View* view,
else // views::RootView
parent_id = GetNodeIdFromWidget(view->GetWidget());
- if (remove_observer)
- view->RemoveObserver(this);
+ // if (remove_observer)
+ // view->RemoveObserver(this);
NodeIdToViewMap::iterator node_id_to_view_it =
node_id_to_view_map_.find(node_id);
@@ -425,12 +432,12 @@ void AshDevToolsDOMAgent::RemoveViewNode(views::View* view,
}
void AshDevToolsDOMAgent::RemoveObservers() {
- for (auto& pair : window_to_node_id_map_)
- pair.first->aura_window()->RemoveObserver(this);
- for (auto& pair : widget_to_node_id_map_)
- pair.first->RemoveRemovalsObserver(this);
- for (auto& pair : view_to_node_id_map_)
- pair.first->RemoveObserver(this);
+ // for (auto& pair : window_to_node_id_map_)
+ // pair.first->aura_window()->RemoveObserver(this);
+ // for (auto& pair : widget_to_node_id_map_)
+ // pair.first->RemoveRemovalsObserver(this);
+ // for (auto& pair : view_to_node_id_map_)
+ // pair.first->RemoveObserver(this);
}
void AshDevToolsDOMAgent::Reset() {

Powered by Google App Engine
This is Rietveld 408576698