summaryrefslogtreecommitdiffstats
path: root/content/renderer/java
diff options
context:
space:
mode:
Diffstat (limited to 'content/renderer/java')
-rw-r--r--content/renderer/java/java_bridge_dispatcher.cc13
-rw-r--r--content/renderer/java/java_bridge_dispatcher.h2
2 files changed, 10 insertions, 5 deletions
diff --git a/content/renderer/java/java_bridge_dispatcher.cc b/content/renderer/java/java_bridge_dispatcher.cc
index 1eeac19..c0b5994 100644
--- a/content/renderer/java/java_bridge_dispatcher.cc
+++ b/content/renderer/java/java_bridge_dispatcher.cc
@@ -21,9 +21,9 @@ JavaBridgeDispatcher::JavaBridgeDispatcher(RenderView* render_view)
: RenderViewObserver(render_view) {
}
-bool JavaBridgeDispatcher::EnsureChannelIsSetUp() {
+void JavaBridgeDispatcher::EnsureChannelIsSetUp() {
if (channel_.get()) {
- return true;
+ return;
}
IPC::ChannelHandle channel_handle;
@@ -31,7 +31,6 @@ bool JavaBridgeDispatcher::EnsureChannelIsSetUp() {
channel_ = JavaBridgeChannel::GetJavaBridgeChannel(
channel_handle, ChildProcess::current()->io_message_loop_proxy());
- return channel_.get();
}
JavaBridgeDispatcher::~JavaBridgeDispatcher() {
@@ -70,7 +69,8 @@ void JavaBridgeDispatcher::OnAddNamedObject(
const NPVariant_Param& variant_param) {
DCHECK_EQ(variant_param.type, NPVARIANT_PARAM_SENDER_OBJECT_ROUTING_ID);
- if (!EnsureChannelIsSetUp()) {
+ EnsureChannelIsSetUp();
+ if (!channel_.get()) {
// It's possible for |channel_| to be NULL if the RenderView is going away.
return;
}
@@ -96,6 +96,11 @@ void JavaBridgeDispatcher::OnAddNamedObject(
}
void JavaBridgeDispatcher::OnRemoveNamedObject(const string16& name) {
+ if (!channel_.get()) {
+ DCHECK(objects_.empty());
+ return;
+ }
+
// Removing an object does not unbind it from JavaScript until the window
// object is next cleared. Note that the browser checks that the named object
// is present.
diff --git a/content/renderer/java/java_bridge_dispatcher.h b/content/renderer/java/java_bridge_dispatcher.h
index df32831..29a10374 100644
--- a/content/renderer/java/java_bridge_dispatcher.h
+++ b/content/renderer/java/java_bridge_dispatcher.h
@@ -37,7 +37,7 @@ class JavaBridgeDispatcher : public RenderViewObserver {
const NPVariant_Param& variant_param);
void OnRemoveNamedObject(const string16& name);
- bool EnsureChannelIsSetUp();
+ void EnsureChannelIsSetUp();
// Objects that will be bound to the window when the window object is next
// cleared. We hold a ref to these.