Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5774)

Unified Diff: chrome/browser/extensions/extension_info_map.cc

Issue 8361021: Track all extension processes in ExtensionInfoMap (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: argh Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..50d75d508f450f2ec12a0e452efda055414433c0 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));
}
-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();
+bool 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();
}
« no previous file with comments | « chrome/browser/extensions/extension_info_map.h ('k') | chrome/browser/extensions/extension_process_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698