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

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

Issue 297263003: Optimize promotion of ephemeral apps (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 7 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
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 1622 matching lines...) Expand 10 before | Expand all | Expand 10 after
1633 return GetInstalledInfoHelper(extension_id, extension_prefs); 1633 return GetInstalledInfoHelper(extension_id, extension_prefs);
1634 } 1634 }
1635 1635
1636 void ExtensionPrefs::RemoveEvictedEphemeralApp( 1636 void ExtensionPrefs::RemoveEvictedEphemeralApp(
1637 const std::string& extension_id) { 1637 const std::string& extension_id) {
1638 if (ReadPrefAsBooleanAndReturn(extension_id, kPrefEvictedEphemeralApp)) 1638 if (ReadPrefAsBooleanAndReturn(extension_id, kPrefEvictedEphemeralApp))
1639 DeleteExtensionPrefs(extension_id); 1639 DeleteExtensionPrefs(extension_id);
1640 } 1640 }
1641 1641
1642 bool ExtensionPrefs::IsEphemeralApp(const std::string& extension_id) const { 1642 bool ExtensionPrefs::IsEphemeralApp(const std::string& extension_id) const {
1643 // Hide the data of evicted ephemeral apps.
1644 if (ReadPrefAsBooleanAndReturn(extension_id, kPrefEvictedEphemeralApp))
1645 return false;
1646
1643 if (ReadPrefAsBooleanAndReturn(extension_id, kPrefEphemeralApp)) 1647 if (ReadPrefAsBooleanAndReturn(extension_id, kPrefEphemeralApp))
1644 return true; 1648 return true;
1645 1649
1646 // Ephemerality was previously stored in the creation flags, so we must also 1650 // Ephemerality was previously stored in the creation flags, so we must also
1647 // check it for backcompatibility. 1651 // check it for backcompatibility.
1648 return (GetCreationFlags(extension_id) & Extension::IS_EPHEMERAL) != 0; 1652 return (GetCreationFlags(extension_id) & Extension::IS_EPHEMERAL) != 0;
1649 } 1653 }
1650 1654
1655 void ExtensionPrefs::OnEphemeralAppInstalled(const std::string& extension_id) {
1656 DCHECK(IsEphemeralApp(extension_id));
1657
1658 ScopedExtensionPrefUpdate update(prefs_, extension_id);
1659 update->Set(kPrefEphemeralApp, new base::FundamentalValue(false));
1660
1661 DCHECK(!IsEvictedEphemeralApp(update.Get()));
1662 update->Remove(kPrefEvictedEphemeralApp, NULL);
1663 }
1664
1651 bool ExtensionPrefs::WasAppDraggedByUser(const std::string& extension_id) { 1665 bool ExtensionPrefs::WasAppDraggedByUser(const std::string& extension_id) {
1652 return ReadPrefAsBooleanAndReturn(extension_id, kPrefUserDraggedApp); 1666 return ReadPrefAsBooleanAndReturn(extension_id, kPrefUserDraggedApp);
1653 } 1667 }
1654 1668
1655 void ExtensionPrefs::SetAppDraggedByUser(const std::string& extension_id) { 1669 void ExtensionPrefs::SetAppDraggedByUser(const std::string& extension_id) {
1656 UpdateExtensionPref(extension_id, kPrefUserDraggedApp, 1670 UpdateExtensionPref(extension_id, kPrefUserDraggedApp,
1657 new base::FundamentalValue(true)); 1671 new base::FundamentalValue(true));
1658 } 1672 }
1659 1673
1660 bool ExtensionPrefs::IsFromWebStore( 1674 bool ExtensionPrefs::IsFromWebStore(
(...skipping 474 matching lines...) Expand 10 before | Expand all | Expand 10 after
2135 new base::FundamentalValue(extension->was_installed_by_default())); 2149 new base::FundamentalValue(extension->was_installed_by_default()));
2136 extension_dict->Set( 2150 extension_dict->Set(
2137 kPrefWasInstalledByOem, 2151 kPrefWasInstalledByOem,
2138 new base::FundamentalValue(extension->was_installed_by_oem())); 2152 new base::FundamentalValue(extension->was_installed_by_oem()));
2139 extension_dict->Set(kPrefInstallTime, 2153 extension_dict->Set(kPrefInstallTime,
2140 new base::StringValue( 2154 new base::StringValue(
2141 base::Int64ToString(install_time.ToInternalValue()))); 2155 base::Int64ToString(install_time.ToInternalValue())));
2142 if (blacklisted_for_malware) 2156 if (blacklisted_for_malware)
2143 extension_dict->Set(kPrefBlacklist, new base::FundamentalValue(true)); 2157 extension_dict->Set(kPrefBlacklist, new base::FundamentalValue(true));
2144 2158
2145 if (is_ephemeral) 2159 extension_dict->Set(kPrefEphemeralApp,
2146 extension_dict->Set(kPrefEphemeralApp, new base::FundamentalValue(true)); 2160 new base::FundamentalValue(is_ephemeral));
2147 else
2148 extension_dict->Remove(kPrefEphemeralApp, NULL);
2149 2161
2150 base::FilePath::StringType path = MakePathRelative(install_directory_, 2162 base::FilePath::StringType path = MakePathRelative(install_directory_,
2151 extension->path()); 2163 extension->path());
2152 extension_dict->Set(kPrefPath, new base::StringValue(path)); 2164 extension_dict->Set(kPrefPath, new base::StringValue(path));
2153 if (!install_parameter.empty()) { 2165 if (!install_parameter.empty()) {
2154 extension_dict->Set(kPrefInstallParam, 2166 extension_dict->Set(kPrefInstallParam,
2155 new base::StringValue(install_parameter)); 2167 new base::StringValue(install_parameter));
2156 } 2168 }
2157 // We store prefs about LOAD extensions, but don't cache their manifest 2169 // We store prefs about LOAD extensions, but don't cache their manifest
2158 // since it may change on disk. 2170 // since it may change on disk.
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
2256 extension_pref_value_map_->RegisterExtension( 2268 extension_pref_value_map_->RegisterExtension(
2257 extension_id, install_time, is_enabled, is_incognito_enabled); 2269 extension_id, install_time, is_enabled, is_incognito_enabled);
2258 2270
2259 FOR_EACH_OBSERVER( 2271 FOR_EACH_OBSERVER(
2260 ExtensionPrefsObserver, 2272 ExtensionPrefsObserver,
2261 observer_list_, 2273 observer_list_,
2262 OnExtensionRegistered(extension_id, install_time, is_enabled)); 2274 OnExtensionRegistered(extension_id, install_time, is_enabled));
2263 } 2275 }
2264 2276
2265 } // namespace extensions 2277 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698