Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1638)

Unified Diff: content/renderer/java/java_bridge_dispatcher.cc

Issue 8834013: Fix a race condition in the Java Bridge when adding objects (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed nits Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..e623cce390b587f5d338d8ed8586494cda8ceed8 100644
--- a/content/renderer/java/java_bridge_dispatcher.cc
+++ b/content/renderer/java/java_bridge_dispatcher.cc
@@ -16,9 +16,18 @@
#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;
+ Send(new JavaBridgeHostMsg_GetChannelHandle(routing_id(), &channel_handle));
+
channel_.reset(JavaBridgeChannel::GetJavaBridgeChannel(
channel_handle, ChildProcess::current()->io_message_loop_proxy()));
}
@@ -62,6 +71,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;

Powered by Google App Engine
This is Rietveld 408576698