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 "extensions/browser/extension_prefs.h" | 5 #include "extensions/browser/extension_prefs.h" |
6 | 6 |
7 #include <iterator> | 7 #include <iterator> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/prefs/pref_notifier.h" | 10 #include "base/prefs/pref_notifier.h" |
(...skipping 1147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1158 return id_list_out; | 1158 return id_list_out; |
1159 } | 1159 } |
1160 | 1160 |
1161 void ExtensionPrefs::SetToolbarOrder(const ExtensionIdList& extension_ids) { | 1161 void ExtensionPrefs::SetToolbarOrder(const ExtensionIdList& extension_ids) { |
1162 SetExtensionPrefFromContainer(pref_names::kToolbar, extension_ids); | 1162 SetExtensionPrefFromContainer(pref_names::kToolbar, extension_ids); |
1163 } | 1163 } |
1164 | 1164 |
1165 void ExtensionPrefs::OnExtensionInstalled( | 1165 void ExtensionPrefs::OnExtensionInstalled( |
1166 const Extension* extension, | 1166 const Extension* extension, |
1167 Extension::State initial_state, | 1167 Extension::State initial_state, |
| 1168 Extension::DisableReason initial_disable_reason, |
1168 const syncer::StringOrdinal& page_ordinal, | 1169 const syncer::StringOrdinal& page_ordinal, |
1169 int install_flags, | 1170 int install_flags, |
1170 const std::string& install_parameter) { | 1171 const std::string& install_parameter) { |
1171 ScopedExtensionPrefUpdate update(prefs_, extension->id()); | 1172 ScopedExtensionPrefUpdate update(prefs_, extension->id()); |
1172 base::DictionaryValue* extension_dict = update.Get(); | 1173 base::DictionaryValue* extension_dict = update.Get(); |
1173 const base::Time install_time = time_provider_->GetCurrentTime(); | 1174 const base::Time install_time = time_provider_->GetCurrentTime(); |
1174 PopulateExtensionInfoPrefs(extension, | 1175 PopulateExtensionInfoPrefs(extension, |
1175 install_time, | 1176 install_time, |
1176 initial_state, | 1177 initial_state, |
| 1178 initial_disable_reason, |
1177 install_flags, | 1179 install_flags, |
1178 install_parameter, | 1180 install_parameter, |
1179 extension_dict); | 1181 extension_dict); |
1180 | 1182 |
1181 bool requires_sort_ordinal = extension->RequiresSortOrdinal() && | 1183 bool requires_sort_ordinal = extension->RequiresSortOrdinal() && |
1182 (install_flags & kInstallFlagIsEphemeral) == 0; | 1184 (install_flags & kInstallFlagIsEphemeral) == 0; |
1183 FinishExtensionInfoPrefs(extension->id(), | 1185 FinishExtensionInfoPrefs(extension->id(), |
1184 install_time, | 1186 install_time, |
1185 requires_sort_ordinal, | 1187 requires_sort_ordinal, |
1186 page_ordinal, | 1188 page_ordinal, |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1369 if (info) | 1371 if (info) |
1370 extensions_info->push_back(linked_ptr<ExtensionInfo>(info.release())); | 1372 extensions_info->push_back(linked_ptr<ExtensionInfo>(info.release())); |
1371 } | 1373 } |
1372 | 1374 |
1373 return extensions_info.Pass(); | 1375 return extensions_info.Pass(); |
1374 } | 1376 } |
1375 | 1377 |
1376 void ExtensionPrefs::SetDelayedInstallInfo( | 1378 void ExtensionPrefs::SetDelayedInstallInfo( |
1377 const Extension* extension, | 1379 const Extension* extension, |
1378 Extension::State initial_state, | 1380 Extension::State initial_state, |
| 1381 Extension::DisableReason initial_disable_reason, |
1379 int install_flags, | 1382 int install_flags, |
1380 DelayReason delay_reason, | 1383 DelayReason delay_reason, |
1381 const syncer::StringOrdinal& page_ordinal, | 1384 const syncer::StringOrdinal& page_ordinal, |
1382 const std::string& install_parameter) { | 1385 const std::string& install_parameter) { |
1383 base::DictionaryValue* extension_dict = new base::DictionaryValue(); | 1386 base::DictionaryValue* extension_dict = new base::DictionaryValue(); |
1384 PopulateExtensionInfoPrefs(extension, | 1387 PopulateExtensionInfoPrefs(extension, |
1385 time_provider_->GetCurrentTime(), | 1388 time_provider_->GetCurrentTime(), |
1386 initial_state, | 1389 initial_state, |
| 1390 initial_disable_reason, |
1387 install_flags, | 1391 install_flags, |
1388 install_parameter, | 1392 install_parameter, |
1389 extension_dict); | 1393 extension_dict); |
1390 | 1394 |
1391 // Add transient data that is needed by FinishDelayedInstallInfo(), but | 1395 // Add transient data that is needed by FinishDelayedInstallInfo(), but |
1392 // should not be in the final extension prefs. All entries here should have | 1396 // should not be in the final extension prefs. All entries here should have |
1393 // a corresponding Remove() call in FinishDelayedInstallInfo(). | 1397 // a corresponding Remove() call in FinishDelayedInstallInfo(). |
1394 if (extension->RequiresSortOrdinal() && | 1398 if (extension->RequiresSortOrdinal() && |
1395 (install_flags & kInstallFlagIsEphemeral) == 0) { | 1399 (install_flags & kInstallFlagIsEphemeral) == 0) { |
1396 extension_dict->SetString( | 1400 extension_dict->SetString( |
(...skipping 556 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1953 for (typename ExtensionIdContainer::const_iterator iter = strings.begin(); | 1957 for (typename ExtensionIdContainer::const_iterator iter = strings.begin(); |
1954 iter != strings.end(); ++iter) { | 1958 iter != strings.end(); ++iter) { |
1955 list_of_values->Append(new base::StringValue(*iter)); | 1959 list_of_values->Append(new base::StringValue(*iter)); |
1956 } | 1960 } |
1957 } | 1961 } |
1958 | 1962 |
1959 void ExtensionPrefs::PopulateExtensionInfoPrefs( | 1963 void ExtensionPrefs::PopulateExtensionInfoPrefs( |
1960 const Extension* extension, | 1964 const Extension* extension, |
1961 const base::Time install_time, | 1965 const base::Time install_time, |
1962 Extension::State initial_state, | 1966 Extension::State initial_state, |
| 1967 Extension::DisableReason initial_disable_reason, |
1963 int install_flags, | 1968 int install_flags, |
1964 const std::string& install_parameter, | 1969 const std::string& install_parameter, |
1965 base::DictionaryValue* extension_dict) { | 1970 base::DictionaryValue* extension_dict) { |
1966 extension_dict->Set(kPrefState, new base::FundamentalValue(initial_state)); | 1971 extension_dict->Set(kPrefState, new base::FundamentalValue(initial_state)); |
| 1972 // Update kPrefDisableReasons to add new disable reason if the extension is |
| 1973 // initially set to be disabled. |
| 1974 if (initial_state == Extension::DISABLED) |
| 1975 AddDisableReason(extension->id(), initial_disable_reason); |
1967 extension_dict->Set(kPrefLocation, | 1976 extension_dict->Set(kPrefLocation, |
1968 new base::FundamentalValue(extension->location())); | 1977 new base::FundamentalValue(extension->location())); |
1969 extension_dict->Set(kPrefCreationFlags, | 1978 extension_dict->Set(kPrefCreationFlags, |
1970 new base::FundamentalValue(extension->creation_flags())); | 1979 new base::FundamentalValue(extension->creation_flags())); |
1971 extension_dict->Set(kPrefFromWebStore, | 1980 extension_dict->Set(kPrefFromWebStore, |
1972 new base::FundamentalValue(extension->from_webstore())); | 1981 new base::FundamentalValue(extension->from_webstore())); |
1973 extension_dict->Set(kPrefFromBookmark, | 1982 extension_dict->Set(kPrefFromBookmark, |
1974 new base::FundamentalValue(extension->from_bookmark())); | 1983 new base::FundamentalValue(extension->from_bookmark())); |
1975 extension_dict->Set( | 1984 extension_dict->Set( |
1976 kPrefWasInstalledByDefault, | 1985 kPrefWasInstalledByDefault, |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2101 extension_pref_value_map_->RegisterExtension( | 2110 extension_pref_value_map_->RegisterExtension( |
2102 extension_id, install_time, is_enabled, is_incognito_enabled); | 2111 extension_id, install_time, is_enabled, is_incognito_enabled); |
2103 | 2112 |
2104 FOR_EACH_OBSERVER( | 2113 FOR_EACH_OBSERVER( |
2105 ExtensionPrefsObserver, | 2114 ExtensionPrefsObserver, |
2106 observer_list_, | 2115 observer_list_, |
2107 OnExtensionRegistered(extension_id, install_time, is_enabled)); | 2116 OnExtensionRegistered(extension_id, install_time, is_enabled)); |
2108 } | 2117 } |
2109 | 2118 |
2110 } // namespace extensions | 2119 } // namespace extensions |
OLD | NEW |