diff options
author | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-07 00:14:31 +0000 |
---|---|---|
committer | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-07 00:14:31 +0000 |
commit | e916901cd0a8144ca81346d52f2129b3a6e07d67 (patch) | |
tree | 572a9d0bc51ba6ecbd52ebc6aca1093fad40ad2c /chrome/browser/extensions/extension_message_service.cc | |
parent | 1ca24f56fabfb0338afac62c31d7c2de77b081ca (diff) | |
download | chromium_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-x | chrome/browser/extensions/extension_message_service.cc | 37 |
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_); |