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

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

Issue 2526103002: Add live updates for AshDevToolsCSSAgent (Closed)
Patch Set: Override enable/disable methods to attach/detach observer to DOMAgent Created 4 years, 1 month 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
« no previous file with comments | « ash/common/devtools/ash_devtools_css_agent.cc ('k') | ash/common/devtools/ash_devtools_dom_agent.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 de4d23b7b6c9085f21fb94279146502f88438cc5..f1f2a6444ef3ca708d9574da0537053098cfa44f 100644
--- a/ash/common/devtools/ash_devtools_dom_agent.h
+++ b/ash/common/devtools/ash_devtools_dom_agent.h
@@ -8,20 +8,30 @@
#include "ash/common/wm_shell.h"
#include "ash/common/wm_window_observer.h"
#include "base/compiler_specific.h"
+#include "base/observer_list.h"
#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_observer.h"
#include "ui/views/widget/widget_removals_observer.h"
namespace ash {
namespace devtools {
+class ASH_EXPORT AshDevToolsDOMAgentObserver {
+ public:
+ virtual void OnWindowBoundsChanged(WmWindow* window) {}
+ virtual void OnWidgetBoundsChanged(views::Widget* widget) {}
+ virtual void OnViewBoundsChanged(views::View* view) {}
+};
+
class ASH_EXPORT AshDevToolsDOMAgent
: public NON_EXPORTED_BASE(ui::devtools::UiDevToolsBaseAgent<
ui::devtools::protocol::DOM::Metainfo>),
public WmWindowObserver,
+ public views::WidgetObserver,
public views::WidgetRemovalsObserver,
public views::ViewObserver {
public:
@@ -39,14 +49,22 @@ class ASH_EXPORT AshDevToolsDOMAgent
void OnWindowTreeChanged(WmWindow* window,
const TreeChangeParams& params) override;
void OnWindowStackingChanged(WmWindow* window) override;
+ void OnWindowBoundsChanged(WmWindow* window,
+ const gfx::Rect& old_bounds,
+ const gfx::Rect& new_bounds) override;
// views::WidgetRemovalsObserver
void OnWillRemoveView(views::Widget* widget, views::View* view) override;
+ // views::WidgetObserver
+ void OnWidgetBoundsChanged(views::Widget* widget,
+ const gfx::Rect& new_bounds) override;
+
// views::ViewObserver
void OnChildViewRemoved(views::View* view, views::View* parent) override;
void OnChildViewAdded(views::View* view) override;
void OnChildViewReordered(views::View*) override;
+ void OnViewBoundsChanged(views::View* view) override;
WmWindow* GetWindowFromNodeId(int nodeId);
views::Widget* GetWidgetFromNodeId(int nodeId);
@@ -56,6 +74,9 @@ class ASH_EXPORT AshDevToolsDOMAgent
int GetNodeIdFromWidget(views::Widget* widget);
int GetNodeIdFromView(views::View* view);
+ void AddObserver(AshDevToolsDOMAgentObserver* observer);
+ void RemoveObserver(AshDevToolsDOMAgentObserver* observer);
+
private:
std::unique_ptr<ui::devtools::protocol::DOM::Node> BuildInitialTree();
std::unique_ptr<ui::devtools::protocol::DOM::Node> BuildTreeForWindow(
@@ -106,6 +127,8 @@ class ASH_EXPORT AshDevToolsDOMAgent
using NodeIdToViewMap = std::unordered_map<int, views::View*>;
NodeIdToViewMap node_id_to_view_map_;
+ base::ObserverList<AshDevToolsDOMAgentObserver> observers_;
+
DISALLOW_COPY_AND_ASSIGN(AshDevToolsDOMAgent);
};
« no previous file with comments | « ash/common/devtools/ash_devtools_css_agent.cc ('k') | ash/common/devtools/ash_devtools_dom_agent.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698