Index: mojo/services/view_manager/public/cpp/lib/view_manager_client_impl.cc |
diff --git a/mojo/services/view_manager/public/cpp/lib/view_manager_client_impl.cc b/mojo/services/view_manager/public/cpp/lib/view_manager_client_impl.cc |
index fb3cb9af16ab5644f5ac80baf9bd8536b6d5682c..e210c2bc42882e784369d82cf1c8c9beaf0c037d 100644 |
--- a/mojo/services/view_manager/public/cpp/lib/view_manager_client_impl.cc |
+++ b/mojo/services/view_manager/public/cpp/lib/view_manager_client_impl.cc |
@@ -80,8 +80,8 @@ class RootObserver : public ViewObserver { |
// Overridden from ViewObserver: |
void OnViewDestroyed(View* view) override { |
DCHECK_EQ(view, root_); |
- static_cast<ViewManagerClientImpl*>( |
- ViewPrivate(root_).view_manager())->RootDestroyed(root_); |
+ static_cast<ViewManagerClientImpl*>(root_->view_manager()) |
+ ->RootDestroyed(root_); |
view->RemoveObserver(this); |
delete this; |
} |
@@ -129,13 +129,6 @@ ViewManagerClientImpl::~ViewManagerClientImpl() { |
delegate_->OnViewManagerDisconnected(this); |
} |
-Id ViewManagerClientImpl::CreateView() { |
- DCHECK(connected_); |
- const Id view_id = MakeTransportId(connection_id_, ++next_id_); |
- service_->CreateView(view_id, ActionCompletedCallbackWithErrorCode()); |
- return view_id; |
-} |
- |
void ViewManagerClientImpl::DestroyView(Id view_id) { |
DCHECK(connected_); |
service_->DeleteView(view_id, ActionCompletedCallback()); |
@@ -230,6 +223,13 @@ void ViewManagerClientImpl::RemoveView(Id view_id) { |
//////////////////////////////////////////////////////////////////////////////// |
// ViewManagerClientImpl, ViewManager implementation: |
+Id ViewManagerClientImpl::CreateViewOnServer() { |
+ DCHECK(connected_); |
+ const Id view_id = MakeTransportId(connection_id_, ++next_id_); |
+ service_->CreateView(view_id, ActionCompletedCallbackWithErrorCode()); |
+ return view_id; |
+} |
+ |
const std::string& ViewManagerClientImpl::GetEmbedderURL() const { |
return creator_url_; |
} |
@@ -247,6 +247,12 @@ View* ViewManagerClientImpl::GetFocusedView() { |
return focused_view_; |
} |
+View* ViewManagerClientImpl::CreateView() { |
+ View* view = new View(this, CreateViewOnServer()); |
+ AddView(view); |
+ return view; |
+} |
+ |
//////////////////////////////////////////////////////////////////////////////// |
// ViewManagerClientImpl, ViewManagerClient implementation: |