dom_agent_mac.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. // Copyright 2019 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #ifndef COMPONENTS_UI_DEVTOOLS_VIEWS_DOM_AGENT_MAC_H_
  5. #define COMPONENTS_UI_DEVTOOLS_VIEWS_DOM_AGENT_MAC_H_
  6. #include "components/ui_devtools/views/dom_agent_views.h"
  7. #include "ui/views/widget/widget_observer.h"
  8. namespace views {
  9. class NativeWidgetMac;
  10. }
  11. namespace ui_devtools {
  12. class DOMAgentMac : public DOMAgentViews, public views::WidgetObserver {
  13. public:
  14. DOMAgentMac();
  15. DOMAgentMac(const DOMAgentMac&) = delete;
  16. DOMAgentMac& operator=(const DOMAgentMac&) = delete;
  17. ~DOMAgentMac() override;
  18. void OnNativeWidgetAdded(views::NativeWidgetMac* native_widget);
  19. // DOMAgent
  20. std::vector<UIElement*> CreateChildrenForRoot() override;
  21. // DevTools protocol generated backend classes.
  22. protocol::Response enable() override;
  23. protocol::Response disable() override;
  24. // views::WidgetObserver
  25. void OnWidgetDestroying(views::Widget* widget) override;
  26. // DOMAgentViews
  27. std::unique_ptr<protocol::DOM::Node> BuildTreeForWindow(
  28. UIElement* window_element_root) override;
  29. private:
  30. void InitializeRootsFromOpenWindows();
  31. std::vector<views::Widget*> roots_;
  32. };
  33. } // namespace ui_devtools
  34. #endif // COMPONENTS_UI_DEVTOOLS_VIEWS_DOM_AGENT_MAC_H_