| Index: ash/common/devtools/ash_devtools_dom_agent.h
 | 
| diff --git a/ash/common/devtools/ash_devtools_dom_agent.h b/ash/common/devtools/ash_devtools_dom_agent.h
 | 
| index b79f606ac7d317aff8d92b3d7a0ca657c41101a5..de4d23b7b6c9085f21fb94279146502f88438cc5 100644
 | 
| --- a/ash/common/devtools/ash_devtools_dom_agent.h
 | 
| +++ b/ash/common/devtools/ash_devtools_dom_agent.h
 | 
| @@ -11,7 +11,9 @@
 | 
|  #include "components/ui_devtools/DOM.h"
 | 
|  #include "components/ui_devtools/devtools_base_agent.h"
 | 
|  #include "ui/views/view.h"
 | 
| +#include "ui/views/view_observer.h"
 | 
|  #include "ui/views/widget/widget.h"
 | 
| +#include "ui/views/widget/widget_removals_observer.h"
 | 
|  
 | 
|  namespace ash {
 | 
|  namespace devtools {
 | 
| @@ -19,7 +21,9 @@ namespace devtools {
 | 
|  class ASH_EXPORT AshDevToolsDOMAgent
 | 
|      : public NON_EXPORTED_BASE(ui::devtools::UiDevToolsBaseAgent<
 | 
|                                 ui::devtools::protocol::DOM::Metainfo>),
 | 
| -      public WmWindowObserver {
 | 
| +      public WmWindowObserver,
 | 
| +      public views::WidgetRemovalsObserver,
 | 
| +      public views::ViewObserver {
 | 
|   public:
 | 
|    explicit AshDevToolsDOMAgent(ash::WmShell* shell);
 | 
|    ~AshDevToolsDOMAgent() override;
 | 
| @@ -36,6 +40,14 @@ class ASH_EXPORT AshDevToolsDOMAgent
 | 
|                             const TreeChangeParams& params) override;
 | 
|    void OnWindowStackingChanged(WmWindow* window) override;
 | 
|  
 | 
| +  // views::WidgetRemovalsObserver
 | 
| +  void OnWillRemoveView(views::Widget* widget, views::View* view) override;
 | 
| +
 | 
| +  // views::ViewObserver
 | 
| +  void OnChildViewRemoved(views::View* view, views::View* parent) override;
 | 
| +  void OnChildViewAdded(views::View* view) override;
 | 
| +  void OnChildViewReordered(views::View*) override;
 | 
| +
 | 
|    WmWindow* GetWindowFromNodeId(int nodeId);
 | 
|    views::Widget* GetWidgetFromNodeId(int nodeId);
 | 
|    views::View* GetViewFromNodeId(int nodeId);
 | 
| @@ -61,9 +73,12 @@ class ASH_EXPORT AshDevToolsDOMAgent
 | 
|    void RemoveWindowTree(WmWindow* window, bool remove_observer);
 | 
|    void RemoveWindowNode(WmWindow* window, bool remove_observer);
 | 
|  
 | 
| +  // Don't need AddWidgetTree because |widget| will always be inside a window,
 | 
| +  // so when windows are created, their widget nodes are created as well.
 | 
|    void RemoveWidgetTree(views::Widget* widget, bool remove_observer);
 | 
|    void RemoveWidgetNode(views::Widget* widget, bool remove_observer);
 | 
|  
 | 
| +  void AddViewTree(views::View* view);
 | 
|    void RemoveViewTree(views::View* view,
 | 
|                        views::View* parent,
 | 
|                        bool remove_observer);
 | 
| @@ -71,7 +86,7 @@ class ASH_EXPORT AshDevToolsDOMAgent
 | 
|                        views::View* parent,
 | 
|                        bool remove_observer);
 | 
|  
 | 
| -  void RemoveObserverFromAllWindows();
 | 
| +  void RemoveObservers();
 | 
|    void Reset();
 | 
|  
 | 
|    ash::WmShell* shell_;
 | 
| 
 |