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

Unified Diff: mojo/services/public/cpp/view_manager/lib/view_manager_client_impl.cc

Issue 713313002: Use Binding<> instead of InterfaceImpl in ViewManagerClientImpl (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 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
Index: mojo/services/public/cpp/view_manager/lib/view_manager_client_impl.cc
diff --git a/mojo/services/public/cpp/view_manager/lib/view_manager_client_impl.cc b/mojo/services/public/cpp/view_manager/lib/view_manager_client_impl.cc
index cc04f04e61abfc293c573b8da05681f0e4a01c6a..b01f4567a3bf768deaa76e64fbc9c22b0c9d5a1c 100644
--- a/mojo/services/public/cpp/view_manager/lib/view_manager_client_impl.cc
+++ b/mojo/services/public/cpp/view_manager/lib/view_manager_client_impl.cc
@@ -92,8 +92,16 @@ class RootObserver : public ViewObserver {
};
ViewManagerClientImpl::ViewManagerClientImpl(ViewManagerDelegate* delegate,
- Shell* shell)
- : connected_(false), connection_id_(0), next_id_(1), delegate_(delegate) {
+ Shell* shell,
+ ScopedMessagePipeHandle handle,
+ bool delete_on_error)
+ : connected_(false),
+ connection_id_(0),
+ next_id_(1),
+ delegate_(delegate),
+ binding_(this, handle.Pass()),
+ delete_on_error_(delete_on_error) {
+ service_ = binding_.client();
sky 2014/11/13 00:34:38 move to initializer list? You'll have to move serv
}
ViewManagerClientImpl::~ViewManagerClientImpl() {
@@ -232,13 +240,6 @@ View* ViewManagerClientImpl::GetViewById(Id id) {
}
////////////////////////////////////////////////////////////////////////////////
-// ViewManagerClientImpl, InterfaceImpl overrides:
-
-void ViewManagerClientImpl::OnConnectionEstablished() {
- service_ = client();
-}
-
-////////////////////////////////////////////////////////////////////////////////
// ViewManagerClientImpl, ViewManagerClient implementation:
void ViewManagerClientImpl::OnEmbed(
@@ -396,6 +397,13 @@ void ViewManagerClientImpl::OnActiveWindowChanged(Id old_focused_window,
Id new_focused_window) {}
////////////////////////////////////////////////////////////////////////////////
+// OnConnectionError, private:
+void ViewManagerClientImpl::OnConnectionError() {
+ if (delete_on_error_)
+ delete this;
+}
+
+////////////////////////////////////////////////////////////////////////////////
// ViewManagerClientImpl, private:
void ViewManagerClientImpl::RemoveRoot(View* root) {

Powered by Google App Engine
This is Rietveld 408576698