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

Side by Side Diff: extensions/browser/extension_prefs.cc

Issue 2424593002: Reduce FOR_EACH_OBSERVER usage in extensions (Closed)
Patch Set: script_observers_ Created 4 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 unified diff | Download patch
OLDNEW
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 "extensions/browser/extension_prefs.h" 5 #include "extensions/browser/extension_prefs.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <iterator> 10 #include <iterator>
(...skipping 445 matching lines...) Expand 10 before | Expand all | Expand 10 after
456 } 456 }
457 ScopedExtensionPrefUpdate update(prefs_, extension_id); 457 ScopedExtensionPrefUpdate update(prefs_, extension_id);
458 if (data_value) 458 if (data_value)
459 update->Set(key, data_value); 459 update->Set(key, data_value);
460 else 460 else
461 update->Remove(key, NULL); 461 update->Remove(key, NULL);
462 } 462 }
463 463
464 void ExtensionPrefs::DeleteExtensionPrefs(const std::string& extension_id) { 464 void ExtensionPrefs::DeleteExtensionPrefs(const std::string& extension_id) {
465 extension_pref_value_map_->UnregisterExtension(extension_id); 465 extension_pref_value_map_->UnregisterExtension(extension_id);
466 FOR_EACH_OBSERVER(ExtensionPrefsObserver, 466 for (auto& observer : observer_list_)
467 observer_list_, 467 observer.OnExtensionPrefsDeleted(extension_id);
468 OnExtensionPrefsDeleted(extension_id));
469 DictionaryPrefUpdate update(prefs_, pref_names::kExtensions); 468 DictionaryPrefUpdate update(prefs_, pref_names::kExtensions);
470 base::DictionaryValue* dict = update.Get(); 469 base::DictionaryValue* dict = update.Get();
471 dict->Remove(extension_id, NULL); 470 dict->Remove(extension_id, NULL);
472 } 471 }
473 472
474 bool ExtensionPrefs::ReadPrefAsBoolean(const std::string& extension_id, 473 bool ExtensionPrefs::ReadPrefAsBoolean(const std::string& extension_id,
475 const std::string& pref_key, 474 const std::string& pref_key,
476 bool* out_value) const { 475 bool* out_value) const {
477 const base::DictionaryValue* ext = GetExtensionPref(extension_id); 476 const base::DictionaryValue* ext = GetExtensionPref(extension_id);
478 if (!ext || !ext->GetBoolean(pref_key, out_value)) 477 if (!ext || !ext->GetBoolean(pref_key, out_value))
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
798 return; 797 return;
799 798
800 if (new_value == Extension::DISABLE_NONE) { 799 if (new_value == Extension::DISABLE_NONE) {
801 UpdateExtensionPref(extension_id, kPrefDisableReasons, NULL); 800 UpdateExtensionPref(extension_id, kPrefDisableReasons, NULL);
802 } else { 801 } else {
803 UpdateExtensionPref(extension_id, 802 UpdateExtensionPref(extension_id,
804 kPrefDisableReasons, 803 kPrefDisableReasons,
805 new base::FundamentalValue(new_value)); 804 new base::FundamentalValue(new_value));
806 } 805 }
807 806
808 FOR_EACH_OBSERVER(ExtensionPrefsObserver, 807 for (auto& observer : observer_list_)
809 observer_list_, 808 observer.OnExtensionDisableReasonsChanged(extension_id, new_value);
810 OnExtensionDisableReasonsChanged(extension_id, new_value));
811 } 809 }
812 810
813 std::set<std::string> ExtensionPrefs::GetBlacklistedExtensions() const { 811 std::set<std::string> ExtensionPrefs::GetBlacklistedExtensions() const {
814 std::set<std::string> ids; 812 std::set<std::string> ids;
815 813
816 const base::DictionaryValue* extensions = 814 const base::DictionaryValue* extensions =
817 prefs_->GetDictionary(pref_names::kExtensions); 815 prefs_->GetDictionary(pref_names::kExtensions);
818 if (!extensions) 816 if (!extensions)
819 return ids; 817 return ids;
820 818
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after
1119 1117
1120 // For external extensions, we save a preference reminding ourself not to try 1118 // For external extensions, we save a preference reminding ourself not to try
1121 // and install the extension anymore (except when |external_uninstall| is 1119 // and install the extension anymore (except when |external_uninstall| is
1122 // true, which signifies that the registry key was deleted or the pref file 1120 // true, which signifies that the registry key was deleted or the pref file
1123 // no longer lists the extension). 1121 // no longer lists the extension).
1124 if (!external_uninstall && Manifest::IsExternalLocation(location)) { 1122 if (!external_uninstall && Manifest::IsExternalLocation(location)) {
1125 UpdateExtensionPref(extension_id, kPrefState, 1123 UpdateExtensionPref(extension_id, kPrefState,
1126 new base::FundamentalValue( 1124 new base::FundamentalValue(
1127 Extension::EXTERNAL_EXTENSION_UNINSTALLED)); 1125 Extension::EXTERNAL_EXTENSION_UNINSTALLED));
1128 extension_pref_value_map_->SetExtensionState(extension_id, false); 1126 extension_pref_value_map_->SetExtensionState(extension_id, false);
1129 FOR_EACH_OBSERVER(ExtensionPrefsObserver, 1127 for (auto& observer : observer_list_)
1130 observer_list_, 1128 observer.OnExtensionStateChanged(extension_id, false);
1131 OnExtensionStateChanged(extension_id, false));
1132 } else { 1129 } else {
1133 DeleteExtensionPrefs(extension_id); 1130 DeleteExtensionPrefs(extension_id);
1134 } 1131 }
1135 } 1132 }
1136 1133
1137 void ExtensionPrefs::SetExtensionEnabled(const std::string& extension_id) { 1134 void ExtensionPrefs::SetExtensionEnabled(const std::string& extension_id) {
1138 UpdateExtensionPref(extension_id, kPrefState, 1135 UpdateExtensionPref(extension_id, kPrefState,
1139 new base::FundamentalValue(Extension::ENABLED)); 1136 new base::FundamentalValue(Extension::ENABLED));
1140 extension_pref_value_map_->SetExtensionState(extension_id, true); 1137 extension_pref_value_map_->SetExtensionState(extension_id, true);
1141 UpdateExtensionPref(extension_id, kPrefDisableReasons, nullptr); 1138 UpdateExtensionPref(extension_id, kPrefDisableReasons, nullptr);
1142 FOR_EACH_OBSERVER(ExtensionPrefsObserver, observer_list_, 1139 for (auto& observer : observer_list_)
1143 OnExtensionStateChanged(extension_id, true)); 1140 observer.OnExtensionStateChanged(extension_id, true);
1144 } 1141 }
1145 1142
1146 void ExtensionPrefs::SetExtensionDisabled(const std::string& extension_id, 1143 void ExtensionPrefs::SetExtensionDisabled(const std::string& extension_id,
1147 int disable_reasons) { 1144 int disable_reasons) {
1148 if (!IsExternalExtensionUninstalled(extension_id)) { 1145 if (!IsExternalExtensionUninstalled(extension_id)) {
1149 UpdateExtensionPref(extension_id, kPrefState, 1146 UpdateExtensionPref(extension_id, kPrefState,
1150 new base::FundamentalValue(Extension::DISABLED)); 1147 new base::FundamentalValue(Extension::DISABLED));
1151 extension_pref_value_map_->SetExtensionState(extension_id, false); 1148 extension_pref_value_map_->SetExtensionState(extension_id, false);
1152 } 1149 }
1153 UpdateExtensionPref(extension_id, kPrefDisableReasons, 1150 UpdateExtensionPref(extension_id, kPrefDisableReasons,
1154 new base::FundamentalValue(disable_reasons)); 1151 new base::FundamentalValue(disable_reasons));
1155 FOR_EACH_OBSERVER(ExtensionPrefsObserver, observer_list_, 1152 for (auto& observer : observer_list_)
1156 OnExtensionStateChanged(extension_id, false)); 1153 observer.OnExtensionStateChanged(extension_id, false);
1157 } 1154 }
1158 1155
1159 void ExtensionPrefs::SetExtensionBlacklistState(const std::string& extension_id, 1156 void ExtensionPrefs::SetExtensionBlacklistState(const std::string& extension_id,
1160 BlacklistState state) { 1157 BlacklistState state) {
1161 SetExtensionBlacklisted(extension_id, state == BLACKLISTED_MALWARE); 1158 SetExtensionBlacklisted(extension_id, state == BLACKLISTED_MALWARE);
1162 UpdateExtensionPref(extension_id, kPrefBlacklistState, 1159 UpdateExtensionPref(extension_id, kPrefBlacklistState,
1163 new base::FundamentalValue(state)); 1160 new base::FundamentalValue(state));
1164 } 1161 }
1165 1162
1166 BlacklistState ExtensionPrefs::GetExtensionBlacklistState( 1163 BlacklistState ExtensionPrefs::GetExtensionBlacklistState(
(...skipping 732 matching lines...) Expand 10 before | Expand all | Expand 10 after
1899 1896
1900 for (ExtensionIdList::iterator extension_id = extension_ids.begin(); 1897 for (ExtensionIdList::iterator extension_id = extension_ids.begin();
1901 extension_id != extension_ids.end(); 1898 extension_id != extension_ids.end();
1902 ++extension_id) { 1899 ++extension_id) {
1903 base::Time install_time = GetInstallTime(*extension_id); 1900 base::Time install_time = GetInstallTime(*extension_id);
1904 bool is_enabled = !IsExtensionDisabled(*extension_id); 1901 bool is_enabled = !IsExtensionDisabled(*extension_id);
1905 bool is_incognito_enabled = IsIncognitoEnabled(*extension_id); 1902 bool is_incognito_enabled = IsIncognitoEnabled(*extension_id);
1906 value_map->RegisterExtension( 1903 value_map->RegisterExtension(
1907 *extension_id, install_time, is_enabled, is_incognito_enabled); 1904 *extension_id, install_time, is_enabled, is_incognito_enabled);
1908 1905
1909 FOR_EACH_OBSERVER( 1906 for (auto& observer : observer_list_)
1910 ExtensionPrefsObserver, 1907 observer.OnExtensionRegistered(*extension_id, install_time, is_enabled);
1911 observer_list_,
1912 OnExtensionRegistered(*extension_id, install_time, is_enabled));
1913 1908
1914 // Set regular extension controlled prefs. 1909 // Set regular extension controlled prefs.
1915 LoadExtensionControlledPrefs( 1910 LoadExtensionControlledPrefs(
1916 this, value_map, *extension_id, kExtensionPrefsScopeRegular); 1911 this, value_map, *extension_id, kExtensionPrefsScopeRegular);
1917 // Set incognito extension controlled prefs. 1912 // Set incognito extension controlled prefs.
1918 LoadExtensionControlledPrefs(this, 1913 LoadExtensionControlledPrefs(this,
1919 value_map, 1914 value_map,
1920 *extension_id, 1915 *extension_id,
1921 kExtensionPrefsScopeIncognitoPersistent); 1916 kExtensionPrefsScopeIncognitoPersistent);
1922 // Set regular-only extension controlled prefs. 1917 // Set regular-only extension controlled prefs.
1923 LoadExtensionControlledPrefs( 1918 LoadExtensionControlledPrefs(
1924 this, value_map, *extension_id, kExtensionPrefsScopeRegularOnly); 1919 this, value_map, *extension_id, kExtensionPrefsScopeRegularOnly);
1925 1920
1926 FOR_EACH_OBSERVER(ExtensionPrefsObserver, 1921 for (auto& observer : observer_list_)
1927 observer_list_, 1922 observer.OnExtensionPrefsLoaded(*extension_id, this);
1928 OnExtensionPrefsLoaded(*extension_id, this));
1929 } 1923 }
1930 } 1924 }
1931 1925
1932 void ExtensionPrefs::FinishExtensionInfoPrefs( 1926 void ExtensionPrefs::FinishExtensionInfoPrefs(
1933 const std::string& extension_id, 1927 const std::string& extension_id,
1934 const base::Time install_time, 1928 const base::Time install_time,
1935 bool needs_sort_ordinal, 1929 bool needs_sort_ordinal,
1936 const syncer::StringOrdinal& suggested_page_ordinal, 1930 const syncer::StringOrdinal& suggested_page_ordinal,
1937 base::DictionaryValue* extension_dict) { 1931 base::DictionaryValue* extension_dict) {
1938 // Reinitializes various preferences with empty dictionaries. 1932 // Reinitializes various preferences with empty dictionaries.
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
1976 bool is_enabled = false; 1970 bool is_enabled = false;
1977 int initial_state; 1971 int initial_state;
1978 if (extension_dict->GetInteger(kPrefState, &initial_state)) { 1972 if (extension_dict->GetInteger(kPrefState, &initial_state)) {
1979 is_enabled = initial_state == Extension::ENABLED; 1973 is_enabled = initial_state == Extension::ENABLED;
1980 } 1974 }
1981 bool is_incognito_enabled = IsIncognitoEnabled(extension_id); 1975 bool is_incognito_enabled = IsIncognitoEnabled(extension_id);
1982 1976
1983 extension_pref_value_map_->RegisterExtension( 1977 extension_pref_value_map_->RegisterExtension(
1984 extension_id, install_time, is_enabled, is_incognito_enabled); 1978 extension_id, install_time, is_enabled, is_incognito_enabled);
1985 1979
1986 FOR_EACH_OBSERVER( 1980 for (auto& observer : observer_list_)
1987 ExtensionPrefsObserver, 1981 observer.OnExtensionRegistered(extension_id, install_time, is_enabled);
1988 observer_list_,
1989 OnExtensionRegistered(extension_id, install_time, is_enabled));
1990 } 1982 }
1991 1983
1992 } // namespace extensions 1984 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/browser/extension_pref_value_map.cc ('k') | extensions/browser/extension_registry.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698