// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_EXTENSIONS_APP_DATA_MIGRATOR_H_ #define CHROME_BROWSER_EXTENSIONS_APP_DATA_MIGRATOR_H_ #include "base/callback_forward.h" #include "base/macros.h" #include "base/memory/weak_ptr.h" class Profile; namespace extensions { class Extension; class ExtensionRegistry; // This class migrates legacy packaged app data in the general storage // partition to an isolated storage partition. This happens when a legacy // packaged app is upgraded to a platform app. See http://crbug.com/302577 class AppDataMigrator { public: AppDataMigrator(Profile* profile, ExtensionRegistry* registry); ~AppDataMigrator(); static bool NeedsMigration(const Extension* old, const Extension* extension); void DoMigrationAndReply(const Extension* old, const Extension* extension, const base::Closure& reply); private: Profile* profile_; ExtensionRegistry* registry_; base::WeakPtrFactory weak_factory_; DISALLOW_COPY_AND_ASSIGN(AppDataMigrator); }; } // namespace extensions #endif // CHROME_BROWSER_EXTENSIONS_APP_DATA_MIGRATOR_H_