| Index: content/browser/android/java/gin_java_bridge_dispatcher_host.cc
|
| diff --git a/content/browser/android/java/gin_java_bridge_dispatcher_host.cc b/content/browser/android/java/gin_java_bridge_dispatcher_host.cc
|
| index c0b20b975abde48041526e049028b6c35ca18d72..c8fb2fd989962a0d27e7e59b46f4cfbf32a7c399 100644
|
| --- a/content/browser/android/java/gin_java_bridge_dispatcher_host.cc
|
| +++ b/content/browser/android/java/gin_java_bridge_dispatcher_host.cc
|
| @@ -210,18 +210,10 @@ void GinJavaBridgeDispatcherHost::RemoveNamedObject(
|
| named_objects_.erase(iter);
|
| object->RemoveName();
|
|
|
| - // Not erasing from the objects map, as we can still receive method
|
| - // invocation requests for this object, and they should work until the
|
| - // java object is gone.
|
| - if (!object->IsNamed()) {
|
| - JNIEnv* env = base::android::AttachCurrentThread();
|
| - base::android::ScopedJavaLocalRef<jobject> retained_object_set =
|
| - retained_object_set_.get(env);
|
| - if (!retained_object_set.is_null()) {
|
| - JNI_Java_HashSet_remove(
|
| - env, retained_object_set, object->GetLocalRef(env));
|
| - }
|
| - }
|
| + // As the object isn't going to be removed from the JavaScript side until the
|
| + // next page reload, calls to it must still work, thus we should continue to
|
| + // hold it. All the transient objects and removed named objects will be purged
|
| + // during the cleansing caused by DocumentAvailableInMainFrame event.
|
|
|
| web_contents()->SendToAllFrames(
|
| new GinJavaBridgeMsg_RemoveNamedObject(MSG_ROUTING_NONE, copied_name));
|
|
|