Index: sky/viewer/document_view.cc |
diff --git a/sky/viewer/document_view.cc b/sky/viewer/document_view.cc |
index a8be823e394040ea119124f9de94fcef04281815..9b74033276398cdc7801aa4826eae42e46cda99d 100644 |
--- a/sky/viewer/document_view.cc |
+++ b/sky/viewer/document_view.cc |
@@ -72,19 +72,23 @@ mojo::Target WebNavigationPolicyToNavigationTarget( |
static int s_next_debugger_id = 1; |
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), |
debugger_id_(s_next_debugger_id++), |
weak_factory_(this) { |
- shell_.set_client(this); |
+ exported_services_.AddService(&view_manager_client_factory_); |
+ mojo::WeakBindToPipe(&exported_services_, provider.PassMessagePipe()); |
} |
DocumentView::~DocumentView() { |
@@ -92,21 +96,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, |
@@ -267,7 +263,7 @@ mojo::NavigatorHost* DocumentView::NavigatorHost() { |
} |
mojo::Shell* DocumentView::Shell() { |
- return shell_.get(); |
+ return shell_; |
} |
void DocumentView::OnViewBoundsChanged(mojo::View* view, |
@@ -324,7 +320,7 @@ class InspectorHostImpl : public inspector::InspectorHost { |
void DocumentView::StartDebuggerInspectorBackend() { |
if (!inspector_backend_) { |
- inspector_host_.reset(new InspectorHostImpl(web_view_, shell_.get())); |
+ inspector_host_.reset(new InspectorHostImpl(web_view_, shell_)); |
inspector_backend_.reset( |
new inspector::InspectorBackendMojo(inspector_host_.get())); |
} |