OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/extension_management.h" | 5 #include "chrome/browser/extensions/extension_management.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <utility> |
8 | 9 |
9 #include "base/bind.h" | 10 #include "base/bind.h" |
10 #include "base/bind_helpers.h" | 11 #include "base/bind_helpers.h" |
11 #include "base/logging.h" | 12 #include "base/logging.h" |
12 #include "base/metrics/histogram_macros.h" | 13 #include "base/metrics/histogram_macros.h" |
13 #include "base/prefs/pref_service.h" | 14 #include "base/prefs/pref_service.h" |
14 #include "base/strings/string16.h" | 15 #include "base/strings/string16.h" |
15 #include "base/strings/string_util.h" | 16 #include "base/strings/string_util.h" |
16 #include "base/trace_event/trace_event.h" | 17 #include "base/trace_event/trace_event.h" |
17 #include "base/version.h" | 18 #include "base/version.h" |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
108 const { | 109 const { |
109 scoped_ptr<base::DictionaryValue> install_list(new base::DictionaryValue()); | 110 scoped_ptr<base::DictionaryValue> install_list(new base::DictionaryValue()); |
110 for (SettingsIdMap::const_iterator it = settings_by_id_.begin(); | 111 for (SettingsIdMap::const_iterator it = settings_by_id_.begin(); |
111 it != settings_by_id_.end(); | 112 it != settings_by_id_.end(); |
112 ++it) { | 113 ++it) { |
113 if (it->second->installation_mode == INSTALLATION_FORCED) { | 114 if (it->second->installation_mode == INSTALLATION_FORCED) { |
114 ExternalPolicyLoader::AddExtension( | 115 ExternalPolicyLoader::AddExtension( |
115 install_list.get(), it->first, it->second->update_url); | 116 install_list.get(), it->first, it->second->update_url); |
116 } | 117 } |
117 } | 118 } |
118 return install_list.Pass(); | 119 return install_list; |
119 } | 120 } |
120 | 121 |
121 scoped_ptr<base::DictionaryValue> | 122 scoped_ptr<base::DictionaryValue> |
122 ExtensionManagement::GetRecommendedInstallList() const { | 123 ExtensionManagement::GetRecommendedInstallList() const { |
123 scoped_ptr<base::DictionaryValue> install_list(new base::DictionaryValue()); | 124 scoped_ptr<base::DictionaryValue> install_list(new base::DictionaryValue()); |
124 for (SettingsIdMap::const_iterator it = settings_by_id_.begin(); | 125 for (SettingsIdMap::const_iterator it = settings_by_id_.begin(); |
125 it != settings_by_id_.end(); | 126 it != settings_by_id_.end(); |
126 ++it) { | 127 ++it) { |
127 if (it->second->installation_mode == INSTALLATION_RECOMMENDED) { | 128 if (it->second->installation_mode == INSTALLATION_RECOMMENDED) { |
128 ExternalPolicyLoader::AddExtension( | 129 ExternalPolicyLoader::AddExtension( |
129 install_list.get(), it->first, it->second->update_url); | 130 install_list.get(), it->first, it->second->update_url); |
130 } | 131 } |
131 } | 132 } |
132 return install_list.Pass(); | 133 return install_list; |
133 } | 134 } |
134 | 135 |
135 bool ExtensionManagement::IsInstallationExplicitlyAllowed( | 136 bool ExtensionManagement::IsInstallationExplicitlyAllowed( |
136 const ExtensionId& id) const { | 137 const ExtensionId& id) const { |
137 SettingsIdMap::const_iterator it = settings_by_id_.find(id); | 138 SettingsIdMap::const_iterator it = settings_by_id_.find(id); |
138 // No settings explicitly specified for |id|. | 139 // No settings explicitly specified for |id|. |
139 if (it == settings_by_id_.end()) | 140 if (it == settings_by_id_.end()) |
140 return false; | 141 return false; |
141 // Checks if the extension is on the automatically installed list or | 142 // Checks if the extension is on the automatically installed list or |
142 // install white-list. | 143 // install white-list. |
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
435 Observer, observer_list_, OnExtensionManagementSettingsChanged()); | 436 Observer, observer_list_, OnExtensionManagementSettingsChanged()); |
436 } | 437 } |
437 | 438 |
438 internal::IndividualSettings* ExtensionManagement::AccessById( | 439 internal::IndividualSettings* ExtensionManagement::AccessById( |
439 const ExtensionId& id) { | 440 const ExtensionId& id) { |
440 DCHECK(crx_file::id_util::IdIsValid(id)) << "Invalid ID: " << id; | 441 DCHECK(crx_file::id_util::IdIsValid(id)) << "Invalid ID: " << id; |
441 SettingsIdMap::iterator it = settings_by_id_.find(id); | 442 SettingsIdMap::iterator it = settings_by_id_.find(id); |
442 if (it == settings_by_id_.end()) { | 443 if (it == settings_by_id_.end()) { |
443 scoped_ptr<internal::IndividualSettings> settings( | 444 scoped_ptr<internal::IndividualSettings> settings( |
444 new internal::IndividualSettings(default_settings_.get())); | 445 new internal::IndividualSettings(default_settings_.get())); |
445 it = settings_by_id_.add(id, settings.Pass()).first; | 446 it = settings_by_id_.add(id, std::move(settings)).first; |
446 } | 447 } |
447 return it->second; | 448 return it->second; |
448 } | 449 } |
449 | 450 |
450 internal::IndividualSettings* ExtensionManagement::AccessByUpdateUrl( | 451 internal::IndividualSettings* ExtensionManagement::AccessByUpdateUrl( |
451 const std::string& update_url) { | 452 const std::string& update_url) { |
452 DCHECK(GURL(update_url).is_valid()) << "Invalid update URL: " << update_url; | 453 DCHECK(GURL(update_url).is_valid()) << "Invalid update URL: " << update_url; |
453 SettingsUpdateUrlMap::iterator it = settings_by_update_url_.find(update_url); | 454 SettingsUpdateUrlMap::iterator it = settings_by_update_url_.find(update_url); |
454 if (it == settings_by_update_url_.end()) { | 455 if (it == settings_by_update_url_.end()) { |
455 scoped_ptr<internal::IndividualSettings> settings( | 456 scoped_ptr<internal::IndividualSettings> settings( |
456 new internal::IndividualSettings(default_settings_.get())); | 457 new internal::IndividualSettings(default_settings_.get())); |
457 it = settings_by_update_url_.add(update_url, settings.Pass()).first; | 458 it = settings_by_update_url_.add(update_url, std::move(settings)).first; |
458 } | 459 } |
459 return it->second; | 460 return it->second; |
460 } | 461 } |
461 | 462 |
462 ExtensionManagement* ExtensionManagementFactory::GetForBrowserContext( | 463 ExtensionManagement* ExtensionManagementFactory::GetForBrowserContext( |
463 content::BrowserContext* context) { | 464 content::BrowserContext* context) { |
464 return static_cast<ExtensionManagement*>( | 465 return static_cast<ExtensionManagement*>( |
465 GetInstance()->GetServiceForBrowserContext(context, true)); | 466 GetInstance()->GetServiceForBrowserContext(context, true)); |
466 } | 467 } |
467 | 468 |
(...skipping 22 matching lines...) Expand all Loading... |
490 content::BrowserContext* context) const { | 491 content::BrowserContext* context) const { |
491 return chrome::GetBrowserContextRedirectedInIncognito(context); | 492 return chrome::GetBrowserContextRedirectedInIncognito(context); |
492 } | 493 } |
493 | 494 |
494 void ExtensionManagementFactory::RegisterProfilePrefs( | 495 void ExtensionManagementFactory::RegisterProfilePrefs( |
495 user_prefs::PrefRegistrySyncable* user_prefs) { | 496 user_prefs::PrefRegistrySyncable* user_prefs) { |
496 user_prefs->RegisterDictionaryPref(pref_names::kExtensionManagement); | 497 user_prefs->RegisterDictionaryPref(pref_names::kExtensionManagement); |
497 } | 498 } |
498 | 499 |
499 } // namespace extensions | 500 } // namespace extensions |
OLD | NEW |