| Index: chrome/browser/extensions/extension_prefs.cc
|
| diff --git a/chrome/browser/extensions/extension_prefs.cc b/chrome/browser/extensions/extension_prefs.cc
|
| index db8181f73ca13ea113c52e35461c0f03d160711b..9f1762f0fecc057dacff9a43968b5918802f838a 100644
|
| --- a/chrome/browser/extensions/extension_prefs.cc
|
| +++ b/chrome/browser/extensions/extension_prefs.cc
|
| @@ -162,6 +162,9 @@ const char kPrefOldGrantedAPIs[] = "granted_permissions.api";
|
| // A preference that indicates when an extension was installed.
|
| const char kPrefInstallTime[] = "install_time";
|
|
|
| +// A preference which saves the creation flags for extensions.
|
| +const char kPrefCreationFlags[] = "creation_flags";
|
| +
|
| // A preference that indicates whether the extension was installed from the
|
| // Chrome Web Store.
|
| const char kPrefFromWebStore[] = "from_webstore";
|
| @@ -1442,7 +1445,6 @@ void ExtensionPrefs::SetActionBoxOrder(const ExtensionIdList& extension_ids) {
|
| void ExtensionPrefs::OnExtensionInstalled(
|
| const Extension* extension,
|
| Extension::State initial_state,
|
| - bool from_webstore,
|
| const syncer::StringOrdinal& page_ordinal) {
|
| const std::string& id = extension->id();
|
| CHECK(Extension::IdIsValid(id));
|
| @@ -1452,8 +1454,10 @@ void ExtensionPrefs::OnExtensionInstalled(
|
| extension_dict->Set(kPrefState, Value::CreateIntegerValue(initial_state));
|
| extension_dict->Set(kPrefLocation,
|
| Value::CreateIntegerValue(extension->location()));
|
| + extension_dict->Set(kPrefCreationFlags,
|
| + Value::CreateIntegerValue(extension->creation_flags()));
|
| extension_dict->Set(kPrefFromWebStore,
|
| - Value::CreateBooleanValue(from_webstore));
|
| + Value::CreateBooleanValue(extension->from_webstore()));
|
| extension_dict->Set(kPrefFromBookmark,
|
| Value::CreateBooleanValue(extension->from_bookmark()));
|
| extension_dict->Set(kPrefWasInstalledByDefault,
|
| @@ -1865,6 +1869,22 @@ bool ExtensionPrefs::IsFromBookmark(
|
| return false;
|
| }
|
|
|
| +int ExtensionPrefs::GetCreationFlags(const std::string& extension_id) const {
|
| + int creation_flags = Extension::NO_FLAGS;
|
| + if (!ReadExtensionPrefInteger(extension_id, kPrefCreationFlags,
|
| + &creation_flags)) {
|
| + // Since kPrefCreationFlags was added later, it will be missing for
|
| + // previously installed extensions.
|
| + if (IsFromBookmark(extension_id))
|
| + creation_flags |= Extension::FROM_BOOKMARK;
|
| + if (IsFromWebStore(extension_id))
|
| + creation_flags |= Extension::FROM_WEBSTORE;
|
| + if (WasInstalledByDefault(extension_id))
|
| + creation_flags |= Extension::WAS_INSTALLED_BY_DEFAULT;
|
| + }
|
| + return creation_flags;
|
| +}
|
| +
|
| bool ExtensionPrefs::WasInstalledByDefault(
|
| const std::string& extension_id) const {
|
| const DictionaryValue* dictionary = GetExtensionPref(extension_id);
|
|
|