| 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 2dc2740e8cbcdd20648287d3eac1c4ee0109f466..f178179ad0886317c74af82110699b6cdc3213ba 100644
|
| --- a/ash/common/devtools/ash_devtools_dom_agent.cc
|
| +++ b/ash/common/devtools/ash_devtools_dom_agent.cc
|
| @@ -66,19 +66,6 @@
|
| return it == siblings.begin() ? nullptr : *std::prev(it);
|
| }
|
|
|
| -views::View* FindPreviousSibling(views::View* view) {
|
| - views::View* parent = view->parent();
|
| - int view_index = -1;
|
| - for (int i = 0, count = parent->child_count(); i < count; i++) {
|
| - if (view == parent->child_at(i)) {
|
| - view_index = i;
|
| - break;
|
| - }
|
| - }
|
| - DCHECK_GE(view_index, 0);
|
| - return view_index == 0 ? nullptr : parent->child_at(view_index - 1);
|
| -}
|
| -
|
| } // namespace
|
|
|
| AshDevToolsDOMAgent::AshDevToolsDOMAgent(ash::WmShell* shell) : shell_(shell) {
|
| @@ -86,7 +73,7 @@
|
| }
|
|
|
| AshDevToolsDOMAgent::~AshDevToolsDOMAgent() {
|
| - RemoveObservers();
|
| + RemoveObserverFromAllWindows();
|
| }
|
|
|
| ui::devtools::protocol::Response AshDevToolsDOMAgent::disable() {
|
| @@ -131,26 +118,6 @@
|
| AddWindowTree(window);
|
| }
|
|
|
| -void AshDevToolsDOMAgent::OnWillRemoveView(views::Widget* widget,
|
| - views::View* view) {
|
| - if (view == widget->GetRootView())
|
| - RemoveViewTree(view, nullptr, true);
|
| -}
|
| -
|
| -void AshDevToolsDOMAgent::OnChildViewRemoved(views::View* view,
|
| - views::View* parent) {
|
| - RemoveViewTree(view, parent, true);
|
| -}
|
| -
|
| -void AshDevToolsDOMAgent::OnChildViewAdded(views::View* view) {
|
| - AddViewTree(view);
|
| -}
|
| -
|
| -void AshDevToolsDOMAgent::OnChildViewReordered(views::View* view) {
|
| - RemoveViewTree(view, view->parent(), false);
|
| - AddViewTree(view);
|
| -}
|
| -
|
| WmWindow* AshDevToolsDOMAgent::GetWindowFromNodeId(int nodeId) {
|
| return node_id_to_window_map_.count(nodeId) ? node_id_to_window_map_[nodeId]
|
| : nullptr;
|
| @@ -215,8 +182,7 @@
|
| 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);
|
| + // TODO(mhashmi): Add WidgetRemovalsObserver here
|
| widget_to_node_id_map_[widget] = node->getNodeId();
|
| node_id_to_widget_map_[node->getNodeId()] = widget;
|
| return node;
|
| @@ -230,8 +196,7 @@
|
| 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);
|
| + // TODO(mhashmi): Add ViewObserver here
|
| view_to_node_id_map_[view] = node->getNodeId();
|
| node_id_to_view_map_[node->getNodeId()] = view;
|
| return node;
|
| @@ -273,7 +238,6 @@
|
|
|
| if (remove_observer)
|
| 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);
|
| frontend()->childNodeRemoved(parent_id, node_id);
|
| @@ -297,8 +261,8 @@
|
| int parent_id =
|
| GetNodeIdFromWindow(WmLookup::Get()->GetWindowForWidget(widget));
|
|
|
| - if (remove_observer)
|
| - widget->RemoveRemovalsObserver(this);
|
| + // TODO(mhashmi): Add WidgetRemovalsObserver and remove it here based on
|
| + // |remove_observer|
|
|
|
| NodeIdToWidgetMap::iterator node_id_to_widget_it =
|
| node_id_to_widget_map_.find(node_id);
|
| @@ -307,15 +271,6 @@
|
| widget_to_node_id_map_.erase(widget_to_node_id_it);
|
| node_id_to_widget_map_.erase(node_id_to_widget_it);
|
| frontend()->childNodeRemoved(parent_id, node_id);
|
| -}
|
| -
|
| -void AshDevToolsDOMAgent::AddViewTree(views::View* view) {
|
| - DCHECK(view_to_node_id_map_.count(view->parent()));
|
| - views::View* prev_sibling = FindPreviousSibling(view);
|
| - frontend()->childNodeInserted(
|
| - view_to_node_id_map_[view->parent()],
|
| - prev_sibling ? view_to_node_id_map_[prev_sibling] : 0,
|
| - BuildTreeForView(view));
|
| }
|
|
|
| void AshDevToolsDOMAgent::RemoveViewTree(views::View* view,
|
| @@ -341,8 +296,8 @@
|
| else // views::RootView
|
| parent_id = GetNodeIdFromWidget(view->GetWidget());
|
|
|
| - if (remove_observer)
|
| - view->RemoveObserver(this);
|
| + // TODO(mhashmi): Add ViewObserver and remove it here based on
|
| + // |remove_observer|
|
|
|
| NodeIdToViewMap::iterator node_id_to_view_it =
|
| node_id_to_view_map_.find(node_id);
|
| @@ -353,17 +308,13 @@
|
| frontend()->childNodeRemoved(parent_id, node_id);
|
| }
|
|
|
| -void AshDevToolsDOMAgent::RemoveObservers() {
|
| +void AshDevToolsDOMAgent::RemoveObserverFromAllWindows() {
|
| for (auto& pair : window_to_node_id_map_)
|
| pair.first->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() {
|
| - RemoveObservers();
|
| + RemoveObserverFromAllWindows();
|
| window_to_node_id_map_.clear();
|
| widget_to_node_id_map_.clear();
|
| view_to_node_id_map_.clear();
|
|
|