summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_message_service.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/extensions/extension_message_service.cc')
-rwxr-xr-xchrome/browser/extensions/extension_message_service.cc15
1 files changed, 11 insertions, 4 deletions
diff --git a/chrome/browser/extensions/extension_message_service.cc b/chrome/browser/extensions/extension_message_service.cc
index 74e2757..3c2c1de 100755
--- a/chrome/browser/extensions/extension_message_service.cc
+++ b/chrome/browser/extensions/extension_message_service.cc
@@ -54,12 +54,20 @@ ExtensionMessageService::ExtensionMessageService()
: next_port_id_(0) {
}
+std::set<int> ExtensionMessageService::GetUniqueProcessIds() {
+ std::set<int> ids;
+ ProcessIDMap::iterator it;
+ AutoLock lock(renderers_lock_);
+
+ for (it = process_ids_.begin(); it != process_ids_.end(); it++) {
+ ids.insert(it->second);
+ }
+ return ids;
+}
+
void ExtensionMessageService::RegisterExtension(
const std::string& extension_id, int render_process_id) {
AutoLock lock(renderers_lock_);
- // TODO(mpcomplete): We need to ensure an extension always ends up in a single
- // process. I think this means having an ExtensionProcessManager which holds
- // a BrowsingContext for each extension.
DCHECK(process_ids_.find(extension_id) == process_ids_.end() ||
process_ids_[extension_id] == render_process_id);
process_ids_[extension_id] = render_process_id;
@@ -174,4 +182,3 @@ void ExtensionMessageService::Observe(NotificationType type,
source);
}
}
-