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

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

Issue 714133002: Add more management policy checking after extension installed (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix CrOS compile Created 6 years, 1 month 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 <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
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
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
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
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
OLDNEW
« extensions/browser/extension_prefs.h ('K') | « extensions/browser/extension_prefs.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698