diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-12 14:27:29 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-13 09:35:20 +0000 |
commit | c30a6232df03e1efbd9f3b226777b07e087a1122 (patch) | |
tree | e992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/content/browser/android/java | |
parent | 7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff) | |
download | qtwebengine-chromium-85-based.tar.gz |
BASELINE: Update Chromium to 85.0.4183.14085-based
Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/content/browser/android/java')
-rw-r--r-- | chromium/content/browser/android/java/gin_java_bridge_dispatcher_host.cc | 15 | ||||
-rw-r--r-- | chromium/content/browser/android/java/gin_java_bridge_message_filter.cc | 3 |
2 files changed, 14 insertions, 4 deletions
diff --git a/chromium/content/browser/android/java/gin_java_bridge_dispatcher_host.cc b/chromium/content/browser/android/java/gin_java_bridge_dispatcher_host.cc index df359f8c122..e1e9597a09d 100644 --- a/chromium/content/browser/android/java/gin_java_bridge_dispatcher_host.cc +++ b/chromium/content/browser/android/java/gin_java_bridge_dispatcher_host.cc @@ -11,6 +11,7 @@ #include "content/browser/android/java/gin_java_bound_object_delegate.h" #include "content/browser/android/java/gin_java_bridge_message_filter.h" #include "content/browser/android/java/java_bridge_thread.h" +#include "content/browser/web_contents/web_contents_impl.h" #include "content/common/android/gin_java_bridge_value.h" #include "content/common/android/hash_set.h" #include "content/common/gin_java_bridge_messages.h" @@ -208,7 +209,12 @@ void GinJavaBridgeDispatcherHost::AddNamedObject( // notified the observers about new RenderFrame, it is necessary to ensure // here that all render frame IDs are registered with the filter. InstallFilterAndRegisterAllRoutingIds(); - web_contents()->SendToAllFrames( + // We should include pending RenderFrameHosts, otherwise they will miss the + // chance when calling add or remove methods when they are created but not + // committed. See: http://crbug.com/1087806 + WebContentsImpl* web_contents_impl = + static_cast<WebContentsImpl*>(web_contents()); + web_contents_impl->SendToAllFramesIncludingPending( new GinJavaBridgeMsg_AddNamedObject(MSG_ROUTING_NONE, name, object_id)); } @@ -234,7 +240,12 @@ void GinJavaBridgeDispatcherHost::RemoveNamedObject( // hold it. All the transient objects and removed named objects will be purged // during the cleansing caused by DocumentAvailableInMainFrame event. - web_contents()->SendToAllFrames( + // We should include pending RenderFrameHosts, otherwise they will miss the + // chance when calling add or remove methods when they are created but not + // committed. See: http://crbug.com/1087806 + WebContentsImpl* web_contents_impl = + static_cast<WebContentsImpl*>(web_contents()); + web_contents_impl->SendToAllFramesIncludingPending( new GinJavaBridgeMsg_RemoveNamedObject(MSG_ROUTING_NONE, copied_name)); } diff --git a/chromium/content/browser/android/java/gin_java_bridge_message_filter.cc b/chromium/content/browser/android/java/gin_java_bridge_message_filter.cc index 53dba1f9e84..f16d73b4ec7 100644 --- a/chromium/content/browser/android/java/gin_java_bridge_message_filter.cc +++ b/chromium/content/browser/android/java/gin_java_bridge_message_filter.cc @@ -5,7 +5,6 @@ #include "content/browser/android/java/gin_java_bridge_message_filter.h" #include "base/auto_reset.h" -#include "base/task/post_task.h" #include "build/build_config.h" #include "content/browser/android/java/gin_java_bridge_dispatcher_host.h" #include "content/browser/android/java/java_bridge_thread.h" @@ -40,7 +39,7 @@ void GinJavaBridgeMessageFilter::OnDestruct() const { if (BrowserThread::CurrentlyOn(BrowserThread::UI)) { delete this; } else { - base::DeleteSoon(FROM_HERE, {BrowserThread::UI}, this); + GetUIThreadTaskRunner({})->DeleteSoon(FROM_HERE, this); } } |