Index: chrome/browser/extensions/extension_service.cc |
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc |
index 19e22399595f1b13f4ded2e97fba509c9306d146..74ddc892f6ffa89128517b0cb2e46a01753c3310 100644 |
--- a/chrome/browser/extensions/extension_service.cc |
+++ b/chrome/browser/extensions/extension_service.cc |
@@ -577,8 +577,8 @@ bool ExtensionService::UpdateExtension(const std::string& id, |
if (extension && extension->was_installed_by_oem()) |
creation_flags |= Extension::WAS_INSTALLED_BY_OEM; |
- if (extension && extension->is_ephemeral()) |
- creation_flags |= Extension::IS_EPHEMERAL; |
+ if (extension) |
+ installer->set_is_ephemeral(extension_prefs_->IsEphemeralApp(id)); |
installer->set_creation_flags(creation_flags); |
@@ -735,7 +735,7 @@ bool ExtensionService::UninstallExtension(const std::string& extension_id, |
// Do not remove the data of ephemeral apps. They will be garbage collected by |
// EphemeralAppService. |
- if (!extension->is_ephemeral()) |
+ if (!extension_prefs_->IsEphemeralApp(extension_id)) |
extensions::DataDeleter::StartDeleting(profile_, extension.get()); |
UntrackTerminatedExtension(extension_id); |
@@ -1543,6 +1543,7 @@ void ExtensionService::AddComponentExtension(const Extension* extension) { |
AddNewOrUpdatedExtension(extension, |
Extension::ENABLED_COMPONENT, |
extensions::NOT_BLACKLISTED, |
+ false, |
syncer::StringOrdinal(), |
std::string()); |
return; |
@@ -1709,6 +1710,7 @@ void ExtensionService::OnExtensionInstalled( |
const syncer::StringOrdinal& page_ordinal, |
bool has_requirement_errors, |
extensions::BlacklistState blacklist_state, |
+ bool is_ephemeral, |
bool wait_for_idle) { |
CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
@@ -1803,6 +1805,7 @@ void ExtensionService::OnExtensionInstalled( |
extension, |
initial_state, |
blacklisted_for_malware, |
+ is_ephemeral, |
extensions::ExtensionPrefs::DELAY_REASON_WAIT_FOR_IDLE, |
page_ordinal, |
install_parameter); |
@@ -1823,6 +1826,7 @@ void ExtensionService::OnExtensionInstalled( |
extension, |
initial_state, |
blacklisted_for_malware, |
+ is_ephemeral, |
extensions::ExtensionPrefs::DELAY_REASON_GC, |
page_ordinal, |
install_parameter); |
@@ -1833,6 +1837,7 @@ void ExtensionService::OnExtensionInstalled( |
extension, |
initial_state, |
blacklisted_for_malware, |
+ is_ephemeral, |
extensions::ExtensionPrefs::DELAY_REASON_WAIT_FOR_IMPORTS, |
page_ordinal, |
install_parameter); |
@@ -1842,6 +1847,7 @@ void ExtensionService::OnExtensionInstalled( |
AddNewOrUpdatedExtension(extension, |
initial_state, |
blacklist_state, |
+ is_ephemeral, |
page_ordinal, |
install_parameter); |
} |
@@ -1851,6 +1857,7 @@ void ExtensionService::AddNewOrUpdatedExtension( |
const Extension* extension, |
Extension::State initial_state, |
extensions::BlacklistState blacklist_state, |
+ bool is_ephemeral, |
const syncer::StringOrdinal& page_ordinal, |
const std::string& install_parameter) { |
CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
@@ -1859,6 +1866,7 @@ void ExtensionService::AddNewOrUpdatedExtension( |
extension_prefs_->OnExtensionInstalled(extension, |
initial_state, |
blacklisted_for_malware, |
+ is_ephemeral, |
page_ordinal, |
install_parameter); |
delayed_installs_.Remove(extension->id()); |