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

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: trybot complaints 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
« no previous file with comments | « chrome/browser/extensions/extension_service.h ('k') | chrome/chrome_browser_extensions.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/extension_service.cc
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
index a93594708fc816d00a30ee1df19b28ffd2125a3f..98333c4256d0f6c3195a154182f34ae87d599090 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);
}
« no previous file with comments | « chrome/browser/extensions/extension_service.h ('k') | chrome/chrome_browser_extensions.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698