Index: sky/viewer/document_view.cc |
diff --git a/sky/viewer/document_view.cc b/sky/viewer/document_view.cc |
index 0bfbeca61cc1ae882737332713e88baaba237217..a90d43b18105eca39dba8091beebc8de39931309 100644 |
--- a/sky/viewer/document_view.cc |
+++ b/sky/viewer/document_view.cc |
@@ -65,18 +65,22 @@ mojo::Target WebNavigationPolicyToNavigationTarget( |
} // namespace |
DocumentView::DocumentView( |
+ const base::Closure& destruction_callback, |
+ mojo::ServiceProviderPtr provider, |
mojo::URLResponsePtr response, |
- mojo::ShellPtr shell, |
+ mojo::Shell* shell, |
scoped_refptr<base::MessageLoopProxy> compositor_thread) |
- : response_(response.Pass()), |
- shell_(shell.Pass()), |
+ : destruction_callback_(destruction_callback), |
+ response_(response.Pass()), |
+ shell_(shell), |
web_view_(NULL), |
root_(NULL), |
- view_manager_client_factory_(shell_.get(), this), |
+ view_manager_client_factory_(shell_, this), |
inspector_service_factory_(this), |
compositor_thread_(compositor_thread), |
weak_factory_(this) { |
- shell_.set_client(this); |
+ exported_services_.AddService(&view_manager_client_factory_); |
+ mojo::WeakBindToPipe(&exported_services_, provider.PassMessagePipe()); |
} |
DocumentView::~DocumentView() { |
@@ -84,21 +88,13 @@ DocumentView::~DocumentView() { |
web_view_->close(); |
if (root_) |
root_->RemoveObserver(this); |
+ destruction_callback_.Run(); |
} |
base::WeakPtr<DocumentView> DocumentView::GetWeakPtr() { |
return weak_factory_.GetWeakPtr(); |
} |
-void DocumentView::AcceptConnection(const mojo::String& requestor_url, |
- mojo::ServiceProviderPtr provider) { |
- exported_services_.AddService(&view_manager_client_factory_); |
- mojo::WeakBindToPipe(&exported_services_, provider.PassMessagePipe()); |
-} |
- |
-void DocumentView::Initialize(mojo::Array<mojo::String> args) { |
-} |
- |
void DocumentView::OnEmbed( |
mojo::ViewManager* view_manager, |
mojo::View* root, |