| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/extensions/api/preference/chrome_direct_setting_api.h" | 5 #include "chrome/browser/extensions/api/preference/chrome_direct_setting_api.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/containers/hash_tables.h" | 8 #include "base/containers/hash_tables.h" |
| 9 #include "base/lazy_instance.h" | 9 #include "base/lazy_instance.h" |
| 10 #include "base/prefs/pref_change_registrar.h" | 10 #include "base/prefs/pref_change_registrar.h" |
| 11 #include "base/prefs/pref_service.h" | 11 #include "base/prefs/pref_service.h" |
| 12 #include "base/strings/stringprintf.h" | 12 #include "base/strings/stringprintf.h" |
| 13 #include "chrome/browser/extensions/api/preference/preference_api_constants.h" | 13 #include "chrome/browser/extensions/api/preference/preference_api_constants.h" |
| 14 #include "chrome/browser/extensions/extension_service.h" | |
| 15 #include "chrome/browser/profiles/profile.h" | 14 #include "chrome/browser/profiles/profile.h" |
| 16 #include "extensions/browser/extension_system.h" | 15 #include "extensions/browser/extension_registry.h" |
| 17 | 16 |
| 18 namespace extensions { | 17 namespace extensions { |
| 19 namespace chromedirectsetting { | 18 namespace chromedirectsetting { |
| 20 | 19 |
| 21 const char kOnPrefChangeFormat[] = | 20 const char kOnPrefChangeFormat[] = |
| 22 "types.private.ChromeDirectSetting.%s.onChange"; | 21 "types.private.ChromeDirectSetting.%s.onChange"; |
| 23 | 22 |
| 24 class PreferenceWhitelist { | 23 class PreferenceWhitelist { |
| 25 public: | 24 public: |
| 26 PreferenceWhitelist() { | 25 PreferenceWhitelist() { |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 130 if (router && router->HasEventListener(event_name)) { | 129 if (router && router->HasEventListener(event_name)) { |
| 131 const PrefService::Preference* preference = | 130 const PrefService::Preference* preference = |
| 132 profile_->GetPrefs()->FindPreference(pref_key.c_str()); | 131 profile_->GetPrefs()->FindPreference(pref_key.c_str()); |
| 133 const base::Value* value = preference->GetValue(); | 132 const base::Value* value = preference->GetValue(); |
| 134 | 133 |
| 135 scoped_ptr<base::DictionaryValue> result(new base::DictionaryValue); | 134 scoped_ptr<base::DictionaryValue> result(new base::DictionaryValue); |
| 136 result->Set(preference_api_constants::kValue, value->DeepCopy()); | 135 result->Set(preference_api_constants::kValue, value->DeepCopy()); |
| 137 base::ListValue args; | 136 base::ListValue args; |
| 138 args.Append(result.release()); | 137 args.Append(result.release()); |
| 139 | 138 |
| 140 ExtensionService* extension_service = | 139 for (const scoped_refptr<const extensions::Extension>& extension : |
| 141 ExtensionSystem::Get(profile_)->extension_service(); | 140 ExtensionRegistry::Get(profile_)->enabled_extensions()) { |
| 142 const ExtensionSet* extensions = extension_service->extensions(); | 141 const std::string& extension_id = extension->id(); |
| 143 for (ExtensionSet::const_iterator it = extensions->begin(); | |
| 144 it != extensions->end(); ++it) { | |
| 145 const std::string& extension_id = (*it)->id(); | |
| 146 if (router->ExtensionHasEventListener(extension_id, event_name)) { | 142 if (router->ExtensionHasEventListener(extension_id, event_name)) { |
| 147 scoped_ptr<base::ListValue> args_copy(args.DeepCopy()); | 143 scoped_ptr<base::ListValue> args_copy(args.DeepCopy()); |
| 148 scoped_ptr<Event> event(new Event(event_name, args_copy.Pass())); | 144 scoped_ptr<Event> event(new Event(event_name, args_copy.Pass())); |
| 149 router->DispatchEventToExtension(extension_id, event.Pass()); | 145 router->DispatchEventToExtension(extension_id, event.Pass()); |
| 150 } | 146 } |
| 151 } | 147 } |
| 152 } | 148 } |
| 153 } | 149 } |
| 154 | 150 |
| 155 } // namespace chromedirectsetting | 151 } // namespace chromedirectsetting |
| 156 } // namespace extensions | 152 } // namespace extensions |
| OLD | NEW |