Index: extensions/renderer/messaging_bindings.cc |
diff --git a/extensions/renderer/messaging_bindings.cc b/extensions/renderer/messaging_bindings.cc |
index b82e84b113e571242a45d951dc5e0db6c9fb67e4..c8ad89387a7a1894a742ef890ce7620671cf25b0 100644 |
--- a/extensions/renderer/messaging_bindings.cc |
+++ b/extensions/renderer/messaging_bindings.cc |
@@ -75,6 +75,11 @@ void DispatchOnConnectToScriptContext( |
const std::string& tls_channel_id, |
bool* port_created, |
ScriptContext* script_context) { |
+ if (info.source_is_in_same_process && |
+ info.source_render_frame_routing_id == |
+ script_context->GetRenderFrame()->GetRoutingID()) |
+ return; |
+ |
MessagingBindings* bindings = g_messaging_map.Get()[script_context]; |
DCHECK(bindings); |
@@ -122,7 +127,7 @@ void DispatchOnConnectToScriptContext( |
if (info.guest_process_id != content::ChildProcessHost::kInvalidUniqueID) { |
guest_process_id = v8::Integer::New(isolate, info.guest_process_id); |
guest_render_frame_routing_id = |
- v8::Integer::New(isolate, info.guest_render_frame_routing_id); |
+ v8::Integer::New(isolate, info.source_render_frame_routing_id); |
} |
} |