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(); |
} |