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

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

Issue 322893002: Cleanup: Make ExtensionService::OnExtensionInstalled take a bitmask instead of (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: more win compile fixes Created 6 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « extensions/browser/extension_prefs.h ('k') | extensions/browser/install_flag.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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"
11 #include "base/prefs/pref_service.h" 11 #include "base/prefs/pref_service.h"
12 #include "base/strings/string_number_conversions.h" 12 #include "base/strings/string_number_conversions.h"
13 #include "base/strings/string_util.h" 13 #include "base/strings/string_util.h"
14 #include "base/value_conversions.h" 14 #include "base/value_conversions.h"
15 #include "components/pref_registry/pref_registry_syncable.h" 15 #include "components/pref_registry/pref_registry_syncable.h"
16 #include "extensions/browser/admin_policy.h" 16 #include "extensions/browser/admin_policy.h"
17 #include "extensions/browser/app_sorting.h" 17 #include "extensions/browser/app_sorting.h"
18 #include "extensions/browser/event_router.h" 18 #include "extensions/browser/event_router.h"
19 #include "extensions/browser/extension_pref_store.h" 19 #include "extensions/browser/extension_pref_store.h"
20 #include "extensions/browser/extension_prefs_factory.h" 20 #include "extensions/browser/extension_prefs_factory.h"
21 #include "extensions/browser/extension_prefs_observer.h" 21 #include "extensions/browser/extension_prefs_observer.h"
22 #include "extensions/browser/install_flag.h"
22 #include "extensions/browser/pref_names.h" 23 #include "extensions/browser/pref_names.h"
23 #include "extensions/common/feature_switch.h" 24 #include "extensions/common/feature_switch.h"
24 #include "extensions/common/manifest.h" 25 #include "extensions/common/manifest.h"
25 #include "extensions/common/permissions/permission_set.h" 26 #include "extensions/common/permissions/permission_set.h"
26 #include "extensions/common/permissions/permissions_info.h" 27 #include "extensions/common/permissions/permissions_info.h"
27 #include "extensions/common/url_pattern.h" 28 #include "extensions/common/url_pattern.h"
28 #include "extensions/common/user_script.h" 29 #include "extensions/common/user_script.h"
29 #include "ui/base/l10n/l10n_util.h" 30 #include "ui/base/l10n/l10n_util.h"
30 31
31 using base::Value; 32 using base::Value;
(...skipping 1200 matching lines...) Expand 10 before | Expand all | Expand 10 after
1232 id_set_out); 1233 id_set_out);
1233 } 1234 }
1234 1235
1235 void ExtensionPrefs::SetKnownDisabled(const ExtensionIdSet& extension_ids) { 1236 void ExtensionPrefs::SetKnownDisabled(const ExtensionIdSet& extension_ids) {
1236 SetExtensionPrefFromContainer(pref_names::kKnownDisabled, extension_ids); 1237 SetExtensionPrefFromContainer(pref_names::kKnownDisabled, extension_ids);
1237 } 1238 }
1238 1239
1239 void ExtensionPrefs::OnExtensionInstalled( 1240 void ExtensionPrefs::OnExtensionInstalled(
1240 const Extension* extension, 1241 const Extension* extension,
1241 Extension::State initial_state, 1242 Extension::State initial_state,
1242 bool blacklisted_for_malware,
1243 bool is_ephemeral,
1244 const syncer::StringOrdinal& page_ordinal, 1243 const syncer::StringOrdinal& page_ordinal,
1244 int install_flags,
1245 const std::string& install_parameter) { 1245 const std::string& install_parameter) {
1246 ScopedExtensionPrefUpdate update(prefs_, extension->id()); 1246 ScopedExtensionPrefUpdate update(prefs_, extension->id());
1247 base::DictionaryValue* extension_dict = update.Get(); 1247 base::DictionaryValue* extension_dict = update.Get();
1248 const base::Time install_time = time_provider_->GetCurrentTime(); 1248 const base::Time install_time = time_provider_->GetCurrentTime();
1249 PopulateExtensionInfoPrefs(extension, 1249 PopulateExtensionInfoPrefs(extension,
1250 install_time, 1250 install_time,
1251 initial_state, 1251 initial_state,
1252 blacklisted_for_malware, 1252 install_flags,
1253 is_ephemeral,
1254 install_parameter, 1253 install_parameter,
1255 extension_dict); 1254 extension_dict);
1256 FinishExtensionInfoPrefs(extension->id(), install_time, 1255 FinishExtensionInfoPrefs(extension->id(), install_time,
1257 extension->RequiresSortOrdinal(), 1256 extension->RequiresSortOrdinal(),
1258 page_ordinal, extension_dict); 1257 page_ordinal, extension_dict);
1259 } 1258 }
1260 1259
1261 void ExtensionPrefs::OnExtensionUninstalled(const std::string& extension_id, 1260 void ExtensionPrefs::OnExtensionUninstalled(const std::string& extension_id,
1262 const Manifest::Location& location, 1261 const Manifest::Location& location,
1263 bool external_uninstall) { 1262 bool external_uninstall) {
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
1457 if (info) 1456 if (info)
1458 extensions_info->push_back(linked_ptr<ExtensionInfo>(info.release())); 1457 extensions_info->push_back(linked_ptr<ExtensionInfo>(info.release()));
1459 } 1458 }
1460 1459
1461 return extensions_info.Pass(); 1460 return extensions_info.Pass();
1462 } 1461 }
1463 1462
1464 void ExtensionPrefs::SetDelayedInstallInfo( 1463 void ExtensionPrefs::SetDelayedInstallInfo(
1465 const Extension* extension, 1464 const Extension* extension,
1466 Extension::State initial_state, 1465 Extension::State initial_state,
1467 bool blacklisted_for_malware, 1466 int install_flags,
1468 bool is_ephemeral,
1469 DelayReason delay_reason, 1467 DelayReason delay_reason,
1470 const syncer::StringOrdinal& page_ordinal, 1468 const syncer::StringOrdinal& page_ordinal,
1471 const std::string& install_parameter) { 1469 const std::string& install_parameter) {
1472 base::DictionaryValue* extension_dict = new base::DictionaryValue(); 1470 base::DictionaryValue* extension_dict = new base::DictionaryValue();
1473 PopulateExtensionInfoPrefs(extension, 1471 PopulateExtensionInfoPrefs(extension,
1474 time_provider_->GetCurrentTime(), 1472 time_provider_->GetCurrentTime(),
1475 initial_state, 1473 initial_state,
1476 blacklisted_for_malware, 1474 install_flags,
1477 is_ephemeral,
1478 install_parameter, 1475 install_parameter,
1479 extension_dict); 1476 extension_dict);
1480 1477
1481 // Add transient data that is needed by FinishDelayedInstallInfo(), but 1478 // Add transient data that is needed by FinishDelayedInstallInfo(), but
1482 // should not be in the final extension prefs. All entries here should have 1479 // should not be in the final extension prefs. All entries here should have
1483 // a corresponding Remove() call in FinishDelayedInstallInfo(). 1480 // a corresponding Remove() call in FinishDelayedInstallInfo().
1484 if (extension->RequiresSortOrdinal()) { 1481 if (extension->RequiresSortOrdinal()) {
1485 extension_dict->SetString( 1482 extension_dict->SetString(
1486 kPrefSuggestedPageOrdinal, 1483 kPrefSuggestedPageOrdinal,
1487 page_ordinal.IsValid() ? page_ordinal.ToInternalValue() 1484 page_ordinal.IsValid() ? page_ordinal.ToInternalValue()
(...skipping 591 matching lines...) Expand 10 before | Expand all | Expand 10 after
2079 for (typename ExtensionIdContainer::const_iterator iter = strings.begin(); 2076 for (typename ExtensionIdContainer::const_iterator iter = strings.begin();
2080 iter != strings.end(); ++iter) { 2077 iter != strings.end(); ++iter) {
2081 list_of_values->Append(new base::StringValue(*iter)); 2078 list_of_values->Append(new base::StringValue(*iter));
2082 } 2079 }
2083 } 2080 }
2084 2081
2085 void ExtensionPrefs::PopulateExtensionInfoPrefs( 2082 void ExtensionPrefs::PopulateExtensionInfoPrefs(
2086 const Extension* extension, 2083 const Extension* extension,
2087 const base::Time install_time, 2084 const base::Time install_time,
2088 Extension::State initial_state, 2085 Extension::State initial_state,
2089 bool blacklisted_for_malware, 2086 int install_flags,
2090 bool is_ephemeral,
2091 const std::string& install_parameter, 2087 const std::string& install_parameter,
2092 base::DictionaryValue* extension_dict) { 2088 base::DictionaryValue* extension_dict) {
2093 // Leave the state blank for component extensions so that old chrome versions 2089 // Leave the state blank for component extensions so that old chrome versions
2094 // loading new profiles do not fail in GetInstalledExtensionInfo. Older 2090 // loading new profiles do not fail in GetInstalledExtensionInfo. Older
2095 // Chrome versions would only check for an omitted state. 2091 // Chrome versions would only check for an omitted state.
2096 if (initial_state != Extension::ENABLED_COMPONENT) 2092 if (initial_state != Extension::ENABLED_COMPONENT)
2097 extension_dict->Set(kPrefState, new base::FundamentalValue(initial_state)); 2093 extension_dict->Set(kPrefState, new base::FundamentalValue(initial_state));
2098 2094
2099 extension_dict->Set(kPrefLocation, 2095 extension_dict->Set(kPrefLocation,
2100 new base::FundamentalValue(extension->location())); 2096 new base::FundamentalValue(extension->location()));
2101 extension_dict->Set(kPrefCreationFlags, 2097 extension_dict->Set(kPrefCreationFlags,
2102 new base::FundamentalValue(extension->creation_flags())); 2098 new base::FundamentalValue(extension->creation_flags()));
2103 extension_dict->Set(kPrefFromWebStore, 2099 extension_dict->Set(kPrefFromWebStore,
2104 new base::FundamentalValue(extension->from_webstore())); 2100 new base::FundamentalValue(extension->from_webstore()));
2105 extension_dict->Set(kPrefFromBookmark, 2101 extension_dict->Set(kPrefFromBookmark,
2106 new base::FundamentalValue(extension->from_bookmark())); 2102 new base::FundamentalValue(extension->from_bookmark()));
2107 extension_dict->Set( 2103 extension_dict->Set(
2108 kPrefWasInstalledByDefault, 2104 kPrefWasInstalledByDefault,
2109 new base::FundamentalValue(extension->was_installed_by_default())); 2105 new base::FundamentalValue(extension->was_installed_by_default()));
2110 extension_dict->Set( 2106 extension_dict->Set(
2111 kPrefWasInstalledByOem, 2107 kPrefWasInstalledByOem,
2112 new base::FundamentalValue(extension->was_installed_by_oem())); 2108 new base::FundamentalValue(extension->was_installed_by_oem()));
2113 extension_dict->Set(kPrefInstallTime, 2109 extension_dict->Set(kPrefInstallTime,
2114 new base::StringValue( 2110 new base::StringValue(
2115 base::Int64ToString(install_time.ToInternalValue()))); 2111 base::Int64ToString(install_time.ToInternalValue())));
2116 if (blacklisted_for_malware) 2112 if (install_flags & kInstallFlagIsBlacklistedForMalware)
2117 extension_dict->Set(kPrefBlacklist, new base::FundamentalValue(true)); 2113 extension_dict->Set(kPrefBlacklist, new base::FundamentalValue(true));
2118 2114
2115 // TODO(tmdiep): Delete the pref if false, don't write false.
2116 bool is_ephemeral = (install_flags & kInstallFlagIsEphemeral) != 0;
2119 extension_dict->Set(kPrefEphemeralApp, 2117 extension_dict->Set(kPrefEphemeralApp,
2120 new base::FundamentalValue(is_ephemeral)); 2118 new base::FundamentalValue(is_ephemeral));
2121 2119
2122 base::FilePath::StringType path = MakePathRelative(install_directory_, 2120 base::FilePath::StringType path = MakePathRelative(install_directory_,
2123 extension->path()); 2121 extension->path());
2124 extension_dict->Set(kPrefPath, new base::StringValue(path)); 2122 extension_dict->Set(kPrefPath, new base::StringValue(path));
2125 if (!install_parameter.empty()) { 2123 if (!install_parameter.empty()) {
2126 extension_dict->Set(kPrefInstallParam, 2124 extension_dict->Set(kPrefInstallParam,
2127 new base::StringValue(install_parameter)); 2125 new base::StringValue(install_parameter));
2128 } 2126 }
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
2228 extension_pref_value_map_->RegisterExtension( 2226 extension_pref_value_map_->RegisterExtension(
2229 extension_id, install_time, is_enabled, is_incognito_enabled); 2227 extension_id, install_time, is_enabled, is_incognito_enabled);
2230 2228
2231 FOR_EACH_OBSERVER( 2229 FOR_EACH_OBSERVER(
2232 ExtensionPrefsObserver, 2230 ExtensionPrefsObserver,
2233 observer_list_, 2231 observer_list_,
2234 OnExtensionRegistered(extension_id, install_time, is_enabled)); 2232 OnExtensionRegistered(extension_id, install_time, is_enabled));
2235 } 2233 }
2236 2234
2237 } // namespace extensions 2235 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/browser/extension_prefs.h ('k') | extensions/browser/install_flag.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698