Index: chrome/browser/extensions/api/preference/preference_helpers.cc |
diff --git a/chrome/browser/extensions/api/preference/preference_helpers.cc b/chrome/browser/extensions/api/preference/preference_helpers.cc |
index 237e365146c9f7c6ffcea72104ea468766bd8447..86f39d5a5a8923edce2152f94968b6c73206c122 100644 |
--- a/chrome/browser/extensions/api/preference/preference_helpers.cc |
+++ b/chrome/browser/extensions/api/preference/preference_helpers.cc |
@@ -8,12 +8,11 @@ |
#include "base/prefs/pref_service.h" |
#include "base/values.h" |
#include "chrome/browser/extensions/api/preference/preference_api.h" |
-#include "chrome/browser/extensions/extension_service.h" |
#include "chrome/browser/extensions/extension_util.h" |
#include "chrome/browser/profiles/profile.h" |
#include "extensions/browser/event_router.h" |
#include "extensions/browser/extension_prefs.h" |
-#include "extensions/browser/extension_system.h" |
+#include "extensions/browser/extension_registry.h" |
#include "extensions/common/manifest_handlers/incognito_info.h" |
#include "extensions/common/permissions/permissions_data.h" |
@@ -93,23 +92,20 @@ void DispatchEventToExtensions( |
EventRouter* router = EventRouter::Get(profile); |
if (!router || !router->HasEventListener(event_name)) |
return; |
- ExtensionService* extension_service = |
- ExtensionSystem::Get(profile)->extension_service(); |
- const ExtensionSet* extensions = extension_service->extensions(); |
- for (ExtensionSet::const_iterator it = extensions->begin(); |
- it != extensions->end(); ++it) { |
- std::string extension_id = (*it)->id(); |
+ |
+ for (const scoped_refptr<const extensions::Extension>& extension : |
+ ExtensionRegistry::Get(profile)->enabled_extensions()) { |
// TODO(bauerb): Only iterate over registered event listeners. |
- if (router->ExtensionHasEventListener(extension_id, event_name) && |
- (*it)->permissions_data()->HasAPIPermission(permission) && |
- (!incognito || IncognitoInfo::IsSplitMode(it->get()) || |
- util::CanCrossIncognito(it->get(), profile))) { |
+ if (router->ExtensionHasEventListener(extension->id(), event_name) && |
+ extension->permissions_data()->HasAPIPermission(permission) && |
+ (!incognito || IncognitoInfo::IsSplitMode(extension.get()) || |
+ util::CanCrossIncognito(extension.get(), profile))) { |
// Inject level of control key-value. |
base::DictionaryValue* dict; |
bool rv = args->GetDictionary(0, &dict); |
DCHECK(rv); |
std::string level_of_control = |
- GetLevelOfControl(profile, extension_id, browser_pref, incognito); |
+ GetLevelOfControl(profile, extension->id(), browser_pref, incognito); |
dict->SetString(kLevelOfControlKey, level_of_control); |
// If the extension is in incognito split mode, |
@@ -118,15 +114,12 @@ void DispatchEventToExtensions( |
// incognito pref has not alredy been set |
Profile* restrict_to_profile = NULL; |
bool from_incognito = false; |
- if (IncognitoInfo::IsSplitMode(it->get())) { |
- if (incognito && |
- util::IsIncognitoEnabled(extension_id, profile)) { |
+ if (IncognitoInfo::IsSplitMode(extension.get())) { |
+ if (incognito && util::IsIncognitoEnabled(extension->id(), profile)) { |
restrict_to_profile = profile->GetOffTheRecordProfile(); |
} else if (!incognito && |
PreferenceAPI::Get(profile)->DoesExtensionControlPref( |
- extension_id, |
- browser_pref, |
- &from_incognito) && |
+ extension->id(), browser_pref, &from_incognito) && |
from_incognito) { |
restrict_to_profile = profile; |
} |
@@ -135,7 +128,7 @@ void DispatchEventToExtensions( |
scoped_ptr<base::ListValue> args_copy(args->DeepCopy()); |
scoped_ptr<Event> event(new Event(event_name, args_copy.Pass())); |
event->restrict_to_browser_context = restrict_to_profile; |
- router->DispatchEventToExtension(extension_id, event.Pass()); |
+ router->DispatchEventToExtension(extension->id(), event.Pass()); |
} |
} |
} |