summaryrefslogtreecommitdiffstats
path: root/chrome/browser/debugger
diff options
context:
space:
mode:
authoraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-14 19:04:15 +0000
committeraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-14 19:04:15 +0000
commit9966c15b544129454e32349c43e8bd8ddeaf42d9 (patch)
treeb0ee9d420f63526894aca6ceee33a3d927d2eb36 /chrome/browser/debugger
parentd443fba7a6e9ad4eaa9fd86e508ee3973bcf81cf (diff)
downloadchromium_src-9966c15b544129454e32349c43e8bd8ddeaf42d9.zip
chromium_src-9966c15b544129454e32349c43e8bd8ddeaf42d9.tar.gz
chromium_src-9966c15b544129454e32349c43e8bd8ddeaf42d9.tar.bz2
Only deliver extension messages to contexts that care. This
save 60 (of 70) mb of string data on www.mashable.com with AdBlock installed. BUG=96544,76571 Review URL: http://codereview.chromium.org/7890024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@101111 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/debugger')
-rw-r--r--chrome/browser/debugger/extension_ports_remote_service.cc13
-rw-r--r--chrome/browser/debugger/extension_ports_remote_service.h5
2 files changed, 7 insertions, 11 deletions
diff --git a/chrome/browser/debugger/extension_ports_remote_service.cc b/chrome/browser/debugger/extension_ports_remote_service.cc
index 3c0275d..cf46fb8 100644
--- a/chrome/browser/debugger/extension_ports_remote_service.cc
+++ b/chrome/browser/debugger/extension_ports_remote_service.cc
@@ -226,6 +226,7 @@ bool ExtensionPortsRemoteService::Send(IPC::Message *message) {
IPC_BEGIN_MESSAGE_MAP(ExtensionPortsRemoteService, *message)
IPC_MESSAGE_HANDLER(ExtensionMsg_MessageInvoke, OnExtensionMessageInvoke)
+ IPC_MESSAGE_HANDLER(ExtensionMsg_DeliverMessage, OnDeliverMessage)
IPC_MESSAGE_UNHANDLED_ERROR()
IPC_END_MESSAGE_MAP()
@@ -238,13 +239,7 @@ void ExtensionPortsRemoteService::OnExtensionMessageInvoke(
const std::string& function_name,
const ListValue& args,
const GURL& event_url) {
- if (function_name == ExtensionMessageService::kDispatchOnMessage) {
- DCHECK_EQ(args.GetSize(), 2u);
- std::string message;
- int port_id;
- if (args.GetString(0, &message) && args.GetInteger(1, &port_id))
- OnExtensionMessage(message, port_id);
- } else if (function_name == ExtensionMessageService::kDispatchOnDisconnect) {
+ if (function_name == ExtensionMessageService::kDispatchOnDisconnect) {
DCHECK_EQ(args.GetSize(), 1u);
int port_id;
if (args.GetInteger(0, &port_id))
@@ -258,8 +253,8 @@ void ExtensionPortsRemoteService::OnExtensionMessageInvoke(
}
}
-void ExtensionPortsRemoteService::OnExtensionMessage(
- const std::string& message, int port_id) {
+void ExtensionPortsRemoteService::OnDeliverMessage(
+ int port_id, const std::string& message) {
VLOG(1) << "Message event: from port " << port_id << ", < " << message << ">";
// Transpose the information into a JSON message for the external client.
DictionaryValue content;
diff --git a/chrome/browser/debugger/extension_ports_remote_service.h b/chrome/browser/debugger/extension_ports_remote_service.h
index 0a5eea6..401f560 100644
--- a/chrome/browser/debugger/extension_ports_remote_service.h
+++ b/chrome/browser/debugger/extension_ports_remote_service.h
@@ -77,14 +77,15 @@ class ExtensionPortsRemoteService : public DevToolsRemoteListener,
const std::string& tool,
const std::string& destination);
- // Handles a message from the ExtensionMessageService.
+ // Handles requests from ExtensionMessageService to invoke specific
+ // JavaScript functions. Currently we only handle the "disconnect" function.
void OnExtensionMessageInvoke(const std::string& extension_id,
const std::string& function_name,
const base::ListValue& args,
const GURL& event_url);
// Handles a message sent from an extension through the
// ExtensionMessageService, to be passed to the external client.
- void OnExtensionMessage(const std::string& message, int port_id);
+ void OnDeliverMessage(int port_id, const std::string& message);
// Handles a disconnect event sent from the ExtensionMessageService.
void OnExtensionPortDisconnected(int port_id);