| Index: content/browser/android/java/gin_java_bridge_dispatcher_host.h
|
| diff --git a/content/browser/android/java/gin_java_bridge_dispatcher_host.h b/content/browser/android/java/gin_java_bridge_dispatcher_host.h
|
| index 615c2b03770af4197ec1a0799a0cfe3bc4191b65..1fc89da36e1879aac821927305ac8f08dbce6c43 100644
|
| --- a/content/browser/android/java/gin_java_bridge_dispatcher_host.h
|
| +++ b/content/browser/android/java/gin_java_bridge_dispatcher_host.h
|
| @@ -78,18 +78,14 @@ class GinJavaBridgeDispatcherHost
|
| bool IsValidRenderFrameHost(RenderFrameHost* render_frame_host);
|
| void SendReply(RenderFrameHost* render_frame_host, IPC::Message* reply_msg);
|
| void SendMethods(RenderFrameHost* render_frame_host,
|
| - IPC::Message* reply_msg,
|
| const std::set<std::string>& method_names);
|
| void SendHasMethodReply(RenderFrameHost* render_frame_host,
|
| - IPC::Message* reply_msg,
|
| bool result);
|
| void ProcessMethodInvocationResult(
|
| RenderFrameHost* render_frame_host,
|
| - IPC::Message* reply_msg,
|
| scoped_refptr<GinJavaMethodInvocationHelper> result);
|
| void ProcessMethodInvocationObjectResult(
|
| RenderFrameHost* render_frame_host,
|
| - IPC::Message* reply_msg,
|
| scoped_refptr<GinJavaMethodInvocationHelper> result);
|
| GinJavaBoundObject::ObjectID AddObject(
|
| const base::android::JavaRef<jobject>& object,
|
| @@ -101,6 +97,7 @@ class GinJavaBridgeDispatcherHost
|
| void RemoveHolder(RenderFrameHost* holder,
|
| const GinJavaBoundObject::ObjectMap::iterator& from,
|
| size_t count);
|
| + IPC::Message* GetPendingReply(RenderFrameHost* render_frame_host);
|
|
|
| // Every time a GinJavaBoundObject backed by a real Java object is
|
| // created/destroyed, we insert/remove a strong ref to that Java object into
|
| @@ -114,6 +111,13 @@ class GinJavaBridgeDispatcherHost
|
| typedef std::map<std::string, GinJavaBoundObject::ObjectID> NamedObjectMap;
|
| NamedObjectMap named_objects_;
|
|
|
| + // Keep track of pending calls out to Java such that we can send a synchronous
|
| + // reply to the renderer waiting on the response should the RenderFrame be
|
| + // destroyed while the reply is pending.
|
| + // Only used on the UI thread.
|
| + typedef std::map<RenderFrameHost*, IPC::Message*> PendingReplyMap;
|
| + PendingReplyMap pending_replies_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(GinJavaBridgeDispatcherHost);
|
| };
|
|
|
|
|