OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/renderer/web_ui_setup_impl.h" | 5 #include "content/renderer/web_ui_setup_impl.h" |
6 | 6 |
7 #include "content/public/renderer/render_view.h" | 7 #include "content/public/renderer/render_view.h" |
8 #include "content/renderer/web_ui_mojo.h" | 8 #include "content/renderer/web_ui_mojo.h" |
9 | 9 |
10 namespace content { | 10 namespace content { |
11 | 11 |
12 // static | 12 // static |
13 void WebUISetupImpl::Bind(mojo::ScopedMessagePipeHandle handle) { | 13 void WebUISetupImpl::Bind(mojo::ScopedMessagePipeHandle handle) { |
14 // This instance will be destroyed when the pipe is closed. See OnError. | 14 mojo::BindToPipe(new WebUISetupImpl(), handle.Pass()); |
15 new WebUISetupImpl(handle.Pass()); | |
16 } | 15 } |
17 | 16 |
18 WebUISetupImpl::WebUISetupImpl(mojo::ScopedMessagePipeHandle handle) | 17 void WebUISetupImpl::OnConnectionError() { |
19 : client_(ScopedWebUISetupClientHandle::From(handle.Pass()), this) { | 18 delete this; |
20 } | |
21 | |
22 WebUISetupImpl::~WebUISetupImpl() { | |
23 } | 19 } |
24 | 20 |
25 void WebUISetupImpl::SetWebUIHandle( | 21 void WebUISetupImpl::SetWebUIHandle( |
26 int32 view_routing_id, | 22 int32 view_routing_id, |
27 mojo::ScopedMessagePipeHandle web_ui_handle) { | 23 mojo::ScopedMessagePipeHandle web_ui_handle) { |
28 RenderView* render_view = RenderView::FromRoutingID(view_routing_id); | 24 RenderView* render_view = RenderView::FromRoutingID(view_routing_id); |
29 if (!render_view) | 25 if (!render_view) |
30 return; | 26 return; |
31 WebUIMojo* web_ui_mojo = WebUIMojo::Get(render_view); | 27 WebUIMojo* web_ui_mojo = WebUIMojo::Get(render_view); |
32 if (!web_ui_mojo) | 28 if (!web_ui_mojo) |
33 return; | 29 return; |
34 web_ui_mojo->SetBrowserHandle(web_ui_handle.Pass()); | 30 web_ui_mojo->SetBrowserHandle(web_ui_handle.Pass()); |
35 } | 31 } |
36 | 32 |
37 void WebUISetupImpl::OnError() { | |
38 delete this; | |
39 } | |
40 | |
41 } // namespace content | 33 } // namespace content |
OLD | NEW |