Chromium Code Reviews| Index: chrome/browser/extensions/extension_info_map.cc |
| diff --git a/chrome/browser/extensions/extension_info_map.cc b/chrome/browser/extensions/extension_info_map.cc |
| index 9c14448b4ae0452a4ef26a5ed33ee36029b7949b..814202802b1fad25c46dd78e2991f073ad417e22 100644 |
| --- a/chrome/browser/extensions/extension_info_map.cc |
| +++ b/chrome/browser/extensions/extension_info_map.cc |
| @@ -9,7 +9,7 @@ |
| namespace { |
| -static void CheckOnValidThread() { |
| +void CheckOnValidThread() { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| } |
| @@ -96,20 +96,29 @@ bool ExtensionInfoMap::CanCrossIncognito(const Extension* extension) { |
| !extension->incognito_split_mode(); |
| } |
| -// These are duplicated from ExtensionProcessManager so that we can have the |
| -// information on the IO thread :(. |
| -void ExtensionInfoMap::BindingsEnabledForProcess(int render_process_id) { |
| - extension_bindings_process_ids_.insert(render_process_id); |
| +void ExtensionInfoMap::RegisterExtensionProcess(const std::string& extension_id, |
| + int process_id) { |
| + DCHECK(!IsExtensionInProcess(extension_id, process_id)); |
| + extension_process_ids_.insert( |
| + ExtensionProcessIDMap::value_type(extension_id, process_id)); |
|
Matt Perry
2011/10/21 18:28:51
i think you can also use std::make_pair, but it's
Aaron Boodman
2011/10/22 04:02:42
Oh, that is better. Thanks.
|
| } |
| -void ExtensionInfoMap::BindingsDisabledForProcess(int render_process_id) { |
| - extension_bindings_process_ids_.erase(render_process_id); |
| +void ExtensionInfoMap::UnregisterExtensionProcess( |
| + const std::string& extension_id, |
| + int process_id) { |
| + ExtensionProcessIDMap::iterator iter = |
| + std::find(extension_process_ids_.begin(), |
| + extension_process_ids_.end(), |
| + ExtensionProcessIDMap::value_type(extension_id, process_id)); |
| + if (iter != extension_process_ids_.end()) |
| + extension_process_ids_.erase(iter); |
| } |
| -bool ExtensionInfoMap::AreBindingsEnabledForProcess( |
| - int render_process_id) const { |
| - // Must behave logically the same as AreBindingsEnabledForProcess() in |
| - // extension_process_manager.cc. |
| - return extension_bindings_process_ids_.find(render_process_id) != |
| - extension_bindings_process_ids_.end(); |
| +int ExtensionInfoMap::IsExtensionInProcess( |
| + const std::string& extension_id, int process_id) const { |
| + return std::find( |
| + extension_process_ids_.begin(), |
| + extension_process_ids_.end(), |
| + ExtensionProcessIDMap::value_type(extension_id, process_id)) != |
| + extension_process_ids_.end(); |
| } |