| 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(
|
| + 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;
|
|
|