Index: mojo/services/view_manager/connection_manager.h |
diff --git a/mojo/services/view_manager/connection_manager.h b/mojo/services/view_manager/connection_manager.h |
index 73f74a0b76e65b656d9863eb3246162e328cb2cb..7c6695a438f39266aca0b92469ddc64543ee3160 100644 |
--- a/mojo/services/view_manager/connection_manager.h |
+++ b/mojo/services/view_manager/connection_manager.h |
@@ -15,6 +15,7 @@ |
#include "mojo/services/view_manager/animation_runner.h" |
#include "mojo/services/view_manager/ids.h" |
#include "mojo/services/view_manager/server_view_delegate.h" |
+#include "mojo/services/view_manager/server_view_observer.h" |
#include "third_party/mojo_services/src/view_manager/public/interfaces/view_manager.mojom.h" |
#include "third_party/mojo_services/src/window_manager/public/interfaces/window_manager_internal.mojom.h" |
@@ -29,6 +30,7 @@ class ViewManagerServiceImpl; |
// ConnectionManager manages the set of connections to the ViewManager (all the |
// ViewManagerServiceImpls) as well as providing the root of the hierarchy. |
class ConnectionManager : public ServerViewDelegate, |
+ public ServerViewObserver, |
public mojo::WindowManagerInternalClient { |
public: |
// Create when a ViewManagerServiceImpl is about to make a change. Ensures |
@@ -69,6 +71,10 @@ class ConnectionManager : public ServerViewDelegate, |
mojo::WindowManagerInternal* wm_internal); |
~ConnectionManager() override; |
+ // Creates a new ServerView. The return value is owned by the caller, but must |
+ // be destroyed before ConnectionManager. |
+ ServerView* CreateServerView(const ViewId& id); |
+ |
// Returns the id for the next ViewManagerServiceImpl. |
mojo::ConnectionSpecificId GetAndAdvanceNextConnectionId(); |
@@ -175,27 +181,32 @@ class ConnectionManager : public ServerViewDelegate, |
void DoAnimation(); |
// Overridden from ServerViewDelegate: |
- void OnWillDestroyView(ServerView* view) override; |
- void OnViewDestroyed(const ServerView* view) override; |
+ void PrepareToDestroyView(ServerView* view) override; |
+ void PrepareToChangeViewHierarchy(ServerView* view, |
+ ServerView* new_parent, |
+ ServerView* old_parent) override; |
+ void PrepareToChangeViewVisibility(ServerView* view) override; |
+ void OnScheduleViewPaint(const ServerView* view) override; |
+ |
+ // Overridden from ServerViewObserver: |
+ void OnViewDestroyed(ServerView* view) override; |
void OnWillChangeViewHierarchy(ServerView* view, |
ServerView* new_parent, |
ServerView* old_parent) override; |
- void OnViewHierarchyChanged(const ServerView* view, |
- const ServerView* new_parent, |
- const ServerView* old_parent) override; |
- void OnViewBoundsChanged(const ServerView* view, |
+ void OnViewHierarchyChanged(ServerView* view, |
+ ServerView* new_parent, |
+ ServerView* old_parent) override; |
+ void OnViewBoundsChanged(ServerView* view, |
const gfx::Rect& old_bounds, |
const gfx::Rect& new_bounds) override; |
- void OnViewSurfaceIdChanged(const ServerView* view) override; |
- void OnViewReordered(const ServerView* view, |
- const ServerView* relative, |
+ void OnViewReordered(ServerView* view, |
+ ServerView* relative, |
mojo::OrderDirection direction) override; |
void OnWillChangeViewVisibility(ServerView* view) override; |
void OnViewSharedPropertyChanged( |
- const ServerView* view, |
+ ServerView* view, |
const std::string& name, |
const std::vector<uint8_t>* new_data) override; |
- void OnScheduleViewPaint(const ServerView* view) override; |
// WindowManagerInternalClient: |
void DispatchInputEventToView(mojo::Id transport_view_id, |