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

Unified Diff: chrome/browser/extensions/extension_service.cc

Issue 671873004: Migrates legacy packaged app data when it's upgraded to a platform app (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addresses cmumford comments Created 5 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/extension_service.cc
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
index 7dd707b1097006b7b8cf3a0c632073adbb4112bb..dc0cb3fc015491d268b5abdd2da2bb497f31aa83 100644
--- a/chrome/browser/extensions/extension_service.cc
+++ b/chrome/browser/extensions/extension_service.cc
@@ -21,6 +21,7 @@
#include "chrome/browser/content_settings/content_settings_internal_extension_provider.h"
#include "chrome/browser/extensions/api/content_settings/content_settings_custom_extension_provider.h"
#include "chrome/browser/extensions/api/content_settings/content_settings_service.h"
+#include "chrome/browser/extensions/app_data_migrator.h"
#include "chrome/browser/extensions/component_loader.h"
#include "chrome/browser/extensions/crx_installer.h"
#include "chrome/browser/extensions/data_deleter.h"
@@ -271,7 +272,8 @@ ExtensionService::ExtensionService(Profile* profile,
installs_delayed_for_gc_(false),
is_first_run_(false),
block_extensions_(false),
- shared_module_service_(new extensions::SharedModuleService(profile_)) {
+ shared_module_service_(new extensions::SharedModuleService(profile_)),
+ app_data_migrator_(new extensions::AppDataMigrator(profile_, registry_)) {
CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
// Figure out if extension installation should be enabled.
@@ -1858,6 +1860,16 @@ void ExtensionService::AddNewOrUpdatedExtension(
delayed_installs_.Remove(extension->id());
if (InstallVerifier::NeedsVerification(*extension))
system_->install_verifier()->VerifyExtension(extension->id());
+
+ const Extension* old = GetInstalledExtension(extension->id());
+ if (extensions::AppDataMigrator::NeedsMigration(old, extension)) {
+ app_data_migrator_->DoMigrationAndReply(
+ old, extension,
+ base::Bind(&ExtensionService::FinishInstallation, AsWeakPtr(),
+ make_scoped_refptr(extension), was_ephemeral));
+ return;
+ }
+
FinishInstallation(extension, was_ephemeral);
}

Powered by Google App Engine
This is Rietveld 408576698