Chromium Code Reviews| Index: chrome/browser/extensions/extension_service.cc |
| diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc |
| index 037abdbbdbe63e221bd4e4d1888fafcbb310cb18..25a358ef5e1b1e506aef6d033db9a588927ce9a4 100644 |
| --- a/chrome/browser/extensions/extension_service.cc |
| +++ b/chrome/browser/extensions/extension_service.cc |
| @@ -575,8 +575,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); |
| @@ -733,7 +733,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); |
| @@ -1535,6 +1535,7 @@ void ExtensionService::AddComponentExtension(const Extension* extension) { |
| AddNewOrUpdatedExtension(extension, |
| Extension::ENABLED_COMPONENT, |
| extensions::NOT_BLACKLISTED, |
| + false, |
| syncer::StringOrdinal(), |
| std::string()); |
| return; |
| @@ -1696,6 +1697,7 @@ void ExtensionService::OnExtensionInstalled( |
| const syncer::StringOrdinal& page_ordinal, |
| bool has_requirement_errors, |
| extensions::BlacklistState blacklist_state, |
| + bool is_ephemeral, |
|
benwells
2014/05/19 02:06:53
Could we make ephemerality less central?
Do you h
tmdiep
2014/05/19 02:51:16
That would be quite nice actually. One problem is
|
| bool wait_for_idle) { |
| CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| @@ -1790,6 +1792,7 @@ void ExtensionService::OnExtensionInstalled( |
| extension, |
| initial_state, |
| blacklisted_for_malware, |
| + is_ephemeral, |
| extensions::ExtensionPrefs::DELAY_REASON_WAIT_FOR_IDLE, |
| page_ordinal, |
| install_parameter); |
| @@ -1810,6 +1813,7 @@ void ExtensionService::OnExtensionInstalled( |
| extension, |
| initial_state, |
| blacklisted_for_malware, |
| + is_ephemeral, |
| extensions::ExtensionPrefs::DELAY_REASON_GC, |
| page_ordinal, |
| install_parameter); |
| @@ -1820,6 +1824,7 @@ void ExtensionService::OnExtensionInstalled( |
| extension, |
| initial_state, |
| blacklisted_for_malware, |
| + is_ephemeral, |
| extensions::ExtensionPrefs::DELAY_REASON_WAIT_FOR_IMPORTS, |
| page_ordinal, |
| install_parameter); |
| @@ -1829,6 +1834,7 @@ void ExtensionService::OnExtensionInstalled( |
| AddNewOrUpdatedExtension(extension, |
| initial_state, |
| blacklist_state, |
| + is_ephemeral, |
| page_ordinal, |
| install_parameter); |
| } |
| @@ -1838,6 +1844,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)); |
| @@ -1846,6 +1853,7 @@ void ExtensionService::AddNewOrUpdatedExtension( |
| extension_prefs_->OnExtensionInstalled(extension, |
| initial_state, |
| blacklisted_for_malware, |
| + is_ephemeral, |
| page_ordinal, |
| install_parameter); |
| delayed_installs_.Remove(extension->id()); |