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

Unified Diff: chrome/browser/renderer_host/chrome_extension_message_filter.cc

Issue 2514523002: [Extensions] Make port creation synchronous in unload handlers (Closed)
Patch Set: Created 4 years, 1 month 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: chrome/browser/renderer_host/chrome_extension_message_filter.cc
diff --git a/chrome/browser/renderer_host/chrome_extension_message_filter.cc b/chrome/browser/renderer_host/chrome_extension_message_filter.cc
index b1b9fedc4aa1f324cde717cd3d0c401c9ad17937..3b1ef45bc0bb4594811b9f068d4d4814e19db217 100644
--- a/chrome/browser/renderer_host/chrome_extension_message_filter.cc
+++ b/chrome/browser/renderer_host/chrome_extension_message_filter.cc
@@ -80,6 +80,8 @@ bool ChromeExtensionMessageFilter::OnMessageReceived(
IPC_BEGIN_MESSAGE_MAP(ChromeExtensionMessageFilter, message)
IPC_MESSAGE_HANDLER(ExtensionHostMsg_OpenChannelToExtension,
OnOpenChannelToExtension)
+ IPC_MESSAGE_HANDLER(ExtensionHostMsg_OpenChannelToExtensionSync,
+ OnOpenChannelToExtensionSync)
IPC_MESSAGE_HANDLER(ExtensionHostMsg_OpenChannelToTab, OnOpenChannelToTab)
IPC_MESSAGE_HANDLER(ExtensionHostMsg_OpenChannelToNativeApp,
OnOpenChannelToNativeApp)
@@ -138,9 +140,26 @@ void ChromeExtensionMessageFilter::OnOpenChannelToExtension(
BrowserThread::PostTask(
BrowserThread::UI, FROM_HERE,
base::Bind(
- &ChromeExtensionMessageFilter::OpenChannelToExtensionOnUIThread,
- this, render_process_id_, routing_id, port2_id, info,
- channel_name, include_tls_channel_id));
+ &ChromeExtensionMessageFilter::OpenChannelToExtensionOnUIThread, this,
+ render_process_id_, routing_id, port2_id, info, channel_name,
+ include_tls_channel_id));
+}
+
+void ChromeExtensionMessageFilter::OnOpenChannelToExtensionSync(
+ int routing_id,
+ const ExtensionMsg_ExternalConnectionInfo& info,
+ const std::string& channel_name,
+ bool include_tls_channel_id,
+ int* port_id) {
+ int port2_id = 0;
+ extensions::MessageService::AllocatePortIdPair(port_id, &port2_id);
+
+ BrowserThread::PostTask(
+ BrowserThread::UI, FROM_HERE,
+ base::Bind(
+ &ChromeExtensionMessageFilter::OpenChannelToExtensionOnUIThread, this,
+ render_process_id_, routing_id, port2_id, info, channel_name,
+ include_tls_channel_id));
}
void ChromeExtensionMessageFilter::OpenChannelToExtensionOnUIThread(

Powered by Google App Engine
This is Rietveld 408576698