Chromium Code Reviews| Index: content/renderer/java/java_bridge_dispatcher.cc |
| diff --git a/content/renderer/java/java_bridge_dispatcher.cc b/content/renderer/java/java_bridge_dispatcher.cc |
| index 20b047a9a2ca700978d1cd9e886e09eba2cf002e..c4aff0ba5993be22b62d02e38cfe38e5e7077b46 100644 |
| --- a/content/renderer/java/java_bridge_dispatcher.cc |
| +++ b/content/renderer/java/java_bridge_dispatcher.cc |
| @@ -16,9 +16,20 @@ |
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" |
| JavaBridgeDispatcher::JavaBridgeDispatcher( |
| - content::RenderView* render_view, |
| - const IPC::ChannelHandle& channel_handle) |
| + content::RenderView* render_view) |
| : RenderViewObserver(render_view) { |
| +} |
| + |
| +void JavaBridgeDispatcher::EnsureChannelIsSetUp() { |
| + if (channel_.get()) { |
| + return; |
| + } |
| + |
| + IPC::ChannelHandle channel_handle; |
| + render_view()->Send(new JavaBridgeMsg_GetChannelHandle( |
|
jam
2011/12/07 22:07:03
nit: "render_view()->" isn't needed, and render_vi
Steve Block
2011/12/08 11:17:56
Done.
|
| + render_view()->GetRoutingId(), |
| + &channel_handle)); |
| + |
| channel_.reset(JavaBridgeChannel::GetJavaBridgeChannel( |
| channel_handle, ChildProcess::current()->io_message_loop_proxy())); |
| } |
| @@ -62,6 +73,9 @@ void JavaBridgeDispatcher::OnAddNamedObject( |
| const string16& name, |
| const NPVariant_Param& variant_param) { |
| DCHECK_EQ(variant_param.type, NPVARIANT_PARAM_SENDER_OBJECT_ROUTING_ID); |
| + |
| + EnsureChannelIsSetUp(); |
| + |
| // This creates an NPObject, wrapped as an NPVariant. We don't need the |
| // containing window or the page URL, as we don't do re-entrant sync IPC. |
| NPVariant variant; |