OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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_prefs.h" | 5 #include "chrome/browser/extensions/extension_prefs.h" |
6 | 6 |
7 #include "base/string_util.h" | 7 #include "base/string_util.h" |
8 #include "base/string_number_conversions.h" | 8 #include "base/string_number_conversions.h" |
9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
10 #include "chrome/browser/prefs/pref_notifier.h" | 10 #include "chrome/browser/prefs/pref_notifier.h" |
(...skipping 1107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1118 | 1118 |
1119 base::Time ExtensionPrefs::GetCurrentTime() const { | 1119 base::Time ExtensionPrefs::GetCurrentTime() const { |
1120 return base::Time::Now(); | 1120 return base::Time::Now(); |
1121 } | 1121 } |
1122 | 1122 |
1123 base::Time ExtensionPrefs::GetInstallTime( | 1123 base::Time ExtensionPrefs::GetInstallTime( |
1124 const std::string& extension_id) const { | 1124 const std::string& extension_id) const { |
1125 const DictionaryValue* extension = GetExtensionPref(extension_id); | 1125 const DictionaryValue* extension = GetExtensionPref(extension_id); |
1126 if (!extension) { | 1126 if (!extension) { |
1127 NOTREACHED(); | 1127 NOTREACHED(); |
1128 return base::Time::Time(); | 1128 return base::Time(); |
1129 } | 1129 } |
1130 std::string install_time_str("0"); | 1130 std::string install_time_str("0"); |
1131 extension->GetString(kPrefInstallTime, &install_time_str); | 1131 extension->GetString(kPrefInstallTime, &install_time_str); |
1132 int64 install_time_i64 = 0; | 1132 int64 install_time_i64 = 0; |
1133 base::StringToInt64(install_time_str, &install_time_i64); | 1133 base::StringToInt64(install_time_str, &install_time_i64); |
1134 LOG_IF(ERROR, install_time_i64 == 0) | 1134 LOG_IF(ERROR, install_time_i64 == 0) |
1135 << "Error parsing installation time of an extension."; | 1135 << "Error parsing installation time of an extension."; |
1136 return base::Time::FromInternalValue(install_time_i64); | 1136 return base::Time::FromInternalValue(install_time_i64); |
1137 } | 1137 } |
1138 | 1138 |
(...skipping 12 matching lines...) Expand all Loading... |
1151 | 1151 |
1152 void ExtensionPrefs::FixMissingPrefs(const ExtensionIdSet& extension_ids) { | 1152 void ExtensionPrefs::FixMissingPrefs(const ExtensionIdSet& extension_ids) { |
1153 // Fix old entries that did not get an installation time entry when they | 1153 // Fix old entries that did not get an installation time entry when they |
1154 // were installed or don't have a preferences field. | 1154 // were installed or don't have a preferences field. |
1155 bool persist_required = false; | 1155 bool persist_required = false; |
1156 for (ExtensionIdSet::const_iterator ext_id = extension_ids.begin(); | 1156 for (ExtensionIdSet::const_iterator ext_id = extension_ids.begin(); |
1157 ext_id != extension_ids.end(); ++ext_id) { | 1157 ext_id != extension_ids.end(); ++ext_id) { |
1158 DictionaryValue* extension = GetExtensionPref(*ext_id); | 1158 DictionaryValue* extension = GetExtensionPref(*ext_id); |
1159 CHECK(extension); | 1159 CHECK(extension); |
1160 | 1160 |
1161 if (GetInstallTime(*ext_id) == base::Time::Time()) { | 1161 if (GetInstallTime(*ext_id) == base::Time()) { |
1162 const base::Time install_time = GetCurrentTime(); | 1162 const base::Time install_time = GetCurrentTime(); |
1163 extension->Set(kPrefInstallTime, | 1163 extension->Set(kPrefInstallTime, |
1164 Value::CreateStringValue( | 1164 Value::CreateStringValue( |
1165 base::Int64ToString(install_time.ToInternalValue()))); | 1165 base::Int64ToString(install_time.ToInternalValue()))); |
1166 persist_required = true; | 1166 persist_required = true; |
1167 } | 1167 } |
1168 } | 1168 } |
1169 if (persist_required) | 1169 if (persist_required) |
1170 SavePrefsAndNotify(); | 1170 SavePrefsAndNotify(); |
1171 } | 1171 } |
(...skipping 12 matching lines...) Expand all Loading... |
1184 GetExtensionControlledPrefKeys(*ext_id, &ext_controlled_prefs); | 1184 GetExtensionControlledPrefKeys(*ext_id, &ext_controlled_prefs); |
1185 } | 1185 } |
1186 | 1186 |
1187 // Store winning preference for each extension controlled preference. | 1187 // Store winning preference for each extension controlled preference. |
1188 UpdatePrefStore(ext_controlled_prefs); | 1188 UpdatePrefStore(ext_controlled_prefs); |
1189 } | 1189 } |
1190 | 1190 |
1191 const Value* ExtensionPrefs::GetWinningExtensionControlledPrefValue( | 1191 const Value* ExtensionPrefs::GetWinningExtensionControlledPrefValue( |
1192 const std::string& key) const { | 1192 const std::string& key) const { |
1193 Value *winner = NULL; | 1193 Value *winner = NULL; |
1194 base::Time winners_install_time = base::Time::Time(); | 1194 base::Time winners_install_time = base::Time(); |
1195 | 1195 |
1196 ExtensionIdSet extension_ids; | 1196 ExtensionIdSet extension_ids; |
1197 GetEnabledExtensions(&extension_ids); | 1197 GetEnabledExtensions(&extension_ids); |
1198 for (ExtensionIdSet::iterator ext_id = extension_ids.begin(); | 1198 for (ExtensionIdSet::iterator ext_id = extension_ids.begin(); |
1199 ext_id != extension_ids.end(); ++ext_id) { | 1199 ext_id != extension_ids.end(); ++ext_id) { |
1200 base::Time extension_install_time = GetInstallTime(*ext_id); | 1200 base::Time extension_install_time = GetInstallTime(*ext_id); |
1201 | 1201 |
1202 // We do not need to consider extensions that were installed before the | 1202 // We do not need to consider extensions that were installed before the |
1203 // most recent extension found that provides the requested preference. | 1203 // most recent extension found that provides the requested preference. |
1204 if (extension_install_time < winners_install_time) | 1204 if (extension_install_time < winners_install_time) |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1298 void ExtensionPrefs::RegisterUserPrefs(PrefService* prefs) { | 1298 void ExtensionPrefs::RegisterUserPrefs(PrefService* prefs) { |
1299 prefs->RegisterDictionaryPref(kExtensionsPref); | 1299 prefs->RegisterDictionaryPref(kExtensionsPref); |
1300 prefs->RegisterListPref(kExtensionToolbar); | 1300 prefs->RegisterListPref(kExtensionToolbar); |
1301 prefs->RegisterIntegerPref(prefs::kExtensionToolbarSize, -1); | 1301 prefs->RegisterIntegerPref(prefs::kExtensionToolbarSize, -1); |
1302 prefs->RegisterDictionaryPref(kExtensionsBlacklistUpdate); | 1302 prefs->RegisterDictionaryPref(kExtensionsBlacklistUpdate); |
1303 prefs->RegisterListPref(prefs::kExtensionInstallAllowList); | 1303 prefs->RegisterListPref(prefs::kExtensionInstallAllowList); |
1304 prefs->RegisterListPref(prefs::kExtensionInstallDenyList); | 1304 prefs->RegisterListPref(prefs::kExtensionInstallDenyList); |
1305 prefs->RegisterListPref(prefs::kExtensionInstallForceList); | 1305 prefs->RegisterListPref(prefs::kExtensionInstallForceList); |
1306 prefs->RegisterStringPref(kWebStoreLogin, std::string() /* default_value */); | 1306 prefs->RegisterStringPref(kWebStoreLogin, std::string() /* default_value */); |
1307 } | 1307 } |
OLD | NEW |