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

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

Issue 2547753002: [Extensions] Extension Port Ids and Initialization 2.0 (Closed)
Patch Set: rebase + unguessable token Created 4 years 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 3b1ef45bc0bb4594811b9f068d4d4814e19db217..cff73ba092539af7591ac857eb6db810234b6ae5 100644
--- a/chrome/browser/renderer_host/chrome_extension_message_filter.cc
+++ b/chrome/browser/renderer_host/chrome_extension_message_filter.cc
@@ -9,6 +9,8 @@
#include "base/bind.h"
#include "base/bind_helpers.h"
#include "base/files/file_path.h"
+#include "base/guid.h"
lazyboy 2016/12/03 03:53:26 Revert.
Devlin 2016/12/05 17:07:42 Done.
+#include "base/logging.h"
#include "base/macros.h"
#include "base/memory/ptr_util.h"
#include "base/strings/utf_string_conversions.h"
@@ -80,8 +82,6 @@ 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)
@@ -105,6 +105,9 @@ bool ChromeExtensionMessageFilter::OnMessageReceived(
void ChromeExtensionMessageFilter::OverrideThreadForMessage(
const IPC::Message& message, BrowserThread::ID* thread) {
switch (message.type()) {
+ case ExtensionHostMsg_OpenChannelToExtension::ID:
+ case ExtensionHostMsg_OpenChannelToTab::ID:
+ case ExtensionHostMsg_OpenChannelToNativeApp::ID:
case ExtensionHostMsg_OpenMessagePort::ID:
case ExtensionHostMsg_CloseMessagePort::ID:
case ExtensionHostMsg_PostMessage::ID:
@@ -131,84 +134,23 @@ void ChromeExtensionMessageFilter::OnOpenChannelToExtension(
const ExtensionMsg_ExternalConnectionInfo& info,
const std::string& channel_name,
bool include_tls_channel_id,
- int request_id) {
- int port1_id = 0;
- int port2_id = 0;
- extensions::MessageService::AllocatePortIdPair(&port1_id, &port2_id);
- Send(new ExtensionMsg_AssignPortId(routing_id, port1_id, request_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::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(
- int source_process_id, int source_routing_id,
- int receiver_port_id,
- const ExtensionMsg_ExternalConnectionInfo& info,
- const std::string& channel_name,
- bool include_tls_channel_id) {
+ const extensions::PortId& port_id) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
if (profile_) {
- extensions::MessageService::Get(profile_)
- ->OpenChannelToExtension(source_process_id,
- source_routing_id,
- receiver_port_id,
- info.source_id,
- info.target_id,
- info.source_url,
- channel_name,
- include_tls_channel_id);
+ extensions::MessageService::Get(profile_)->OpenChannelToExtension(
+ render_process_id_, routing_id, port_id, info.source_id, info.target_id,
+ info.source_url, channel_name, include_tls_channel_id);
}
}
void ChromeExtensionMessageFilter::OnOpenChannelToNativeApp(
int routing_id,
const std::string& native_app_name,
- int request_id) {
- int port1_id = 0;
- int port2_id = 0;
- extensions::MessageService::AllocatePortIdPair(&port1_id, &port2_id);
- Send(new ExtensionMsg_AssignPortId(routing_id, port1_id, request_id));
-
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
- base::Bind(
- &ChromeExtensionMessageFilter::OpenChannelToNativeAppOnUIThread,
- this, routing_id, port2_id, native_app_name));
-}
-
-void ChromeExtensionMessageFilter::OpenChannelToNativeAppOnUIThread(
- int source_routing_id,
- int receiver_port_id,
- const std::string& native_app_name) {
+ const extensions::PortId& port_id) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
if (profile_) {
- extensions::MessageService::Get(profile_)
- ->OpenChannelToNativeApp(render_process_id_,
- source_routing_id,
- receiver_port_id,
- native_app_name);
+ extensions::MessageService::Get(profile_)->OpenChannelToNativeApp(
+ render_process_id_, routing_id, port_id, native_app_name);
}
}
@@ -217,41 +159,18 @@ void ChromeExtensionMessageFilter::OnOpenChannelToTab(
const ExtensionMsg_TabTargetConnectionInfo& info,
const std::string& extension_id,
const std::string& channel_name,
- int request_id) {
- int port1_id = 0;
- int port2_id = 0;
- extensions::MessageService::AllocatePortIdPair(&port1_id, &port2_id);
- Send(new ExtensionMsg_AssignPortId(routing_id, port1_id, request_id));
-
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
- base::Bind(&ChromeExtensionMessageFilter::OpenChannelToTabOnUIThread,
- this, render_process_id_, routing_id, port2_id, info,
- extension_id, channel_name));
-}
-
-void ChromeExtensionMessageFilter::OpenChannelToTabOnUIThread(
- int source_process_id,
- int source_routing_id,
- int receiver_port_id,
- const ExtensionMsg_TabTargetConnectionInfo& info,
- const std::string& extension_id,
- const std::string& channel_name) {
+ const extensions::PortId& port_id) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
if (profile_) {
- extensions::MessageService::Get(profile_)
- ->OpenChannelToTab(source_process_id,
- source_routing_id,
- receiver_port_id,
- info.tab_id,
- info.frame_id,
- extension_id,
- channel_name);
+ extensions::MessageService::Get(profile_)->OpenChannelToTab(
+ render_process_id_, routing_id, port_id, info.tab_id, info.frame_id,
+ extension_id, channel_name);
}
}
-void ChromeExtensionMessageFilter::OnOpenMessagePort(int routing_id,
- int port_id) {
+void ChromeExtensionMessageFilter::OnOpenMessagePort(
+ int routing_id,
+ const extensions::PortId& port_id) {
if (!profile_)
return;
@@ -259,9 +178,10 @@ void ChromeExtensionMessageFilter::OnOpenMessagePort(int routing_id,
port_id, render_process_id_, routing_id);
}
-void ChromeExtensionMessageFilter::OnCloseMessagePort(int routing_id,
- int port_id,
- bool force_close) {
+void ChromeExtensionMessageFilter::OnCloseMessagePort(
+ int routing_id,
+ const extensions::PortId& port_id,
+ bool force_close) {
if (!profile_)
return;
@@ -270,7 +190,7 @@ void ChromeExtensionMessageFilter::OnCloseMessagePort(int routing_id,
}
void ChromeExtensionMessageFilter::OnPostMessage(
- int port_id,
+ const extensions::PortId& port_id,
const extensions::Message& message) {
if (!profile_)
return;

Powered by Google App Engine
This is Rietveld 408576698