summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_message_service.cc
diff options
context:
space:
mode:
authoraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-07 00:14:31 +0000
committeraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-07 00:14:31 +0000
commite916901cd0a8144ca81346d52f2129b3a6e07d67 (patch)
tree572a9d0bc51ba6ecbd52ebc6aca1093fad40ad2c /chrome/browser/extensions/extension_message_service.cc
parent1ca24f56fabfb0338afac62c31d7c2de77b081ca (diff)
downloadchromium_src-e916901cd0a8144ca81346d52f2129b3a6e07d67.zip
chromium_src-e916901cd0a8144ca81346d52f2129b3a6e07d67.tar.gz
chromium_src-e916901cd0a8144ca81346d52f2129b3a6e07d67.tar.bz2
Add inspect links for all active views in chrome://extensions.
Also: * Add ID to the information in chrome://extensions. * Call ExtensionMessageService::RegisterExtension() for all RVHs, not just ExtensionHost. * Teach RVHD to be able to return the current URL. * Renamed "background" to "background_page" in the manifest. Review URL: http://codereview.chromium.org/113027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15481 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_message_service.cc')
-rwxr-xr-xchrome/browser/extensions/extension_message_service.cc37
1 files changed, 27 insertions, 10 deletions
diff --git a/chrome/browser/extensions/extension_message_service.cc b/chrome/browser/extensions/extension_message_service.cc
index 8c8a3b9..9c4f2b5 100755
--- a/chrome/browser/extensions/extension_message_service.cc
+++ b/chrome/browser/extensions/extension_message_service.cc
@@ -13,7 +13,6 @@
#include "chrome/browser/extensions/extension_tabs_module.h"
#include "chrome/browser/extensions/extension_view.h"
#include "chrome/browser/renderer_host/render_view_host.h"
-#include "chrome/browser/renderer_host/render_process_host.h"
#include "chrome/browser/renderer_host/resource_message_filter.h"
#include "chrome/browser/tab_contents/tab_contents.h"
#include "chrome/browser/tab_contents/tab_util.h"
@@ -112,6 +111,30 @@ void ExtensionMessageService::RemoveEventListener(std::string event_name,
listeners_[event_name].erase(render_process_id);
}
+int ExtensionMessageService::GetProcessIdForExtension(
+ const std::string& extension_id) {
+ AutoLock lock(process_ids_lock_);
+ ProcessIDMap::iterator process_id_it = process_ids_.find(
+ StringToLowerASCII(extension_id));
+ if (process_id_it == process_ids_.end())
+ return -1;
+ return process_id_it->second;
+}
+
+RenderProcessHost* ExtensionMessageService::GetProcessForExtension(
+ const std::string& extension_id) {
+ DCHECK_EQ(MessageLoop::current()->type(), MessageLoop::TYPE_UI);
+
+ int process_id = GetProcessIdForExtension(extension_id);
+ if (process_id == -1)
+ return NULL;
+
+ RenderProcessHost* host = RenderProcessHost::FromID(process_id);
+ DCHECK(host);
+
+ return host;
+}
+
int ExtensionMessageService::OpenChannelToExtension(
int routing_id, const std::string& extension_id,
ResourceMessageFilter* source) {
@@ -119,15 +142,9 @@ int ExtensionMessageService::OpenChannelToExtension(
ChromeThread::GetMessageLoop(ChromeThread::IO));
// Lookup the targeted extension process.
- int process_id;
- {
- AutoLock lock(process_ids_lock_);
- ProcessIDMap::iterator process_id_it = process_ids_.find(
- StringToLowerASCII(extension_id));
- if (process_id_it == process_ids_.end())
- return -1;
- process_id = process_id_it->second;
- }
+ int process_id = GetProcessIdForExtension(extension_id);
+ if (process_id == -1)
+ return -1;
DCHECK(initialized_);