Chromium Code Reviews| 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) { |