diff options
Diffstat (limited to 'b2g/components/B2GAppMigrator.js')
-rw-r--r-- | b2g/components/B2GAppMigrator.js | 152 |
1 files changed, 0 insertions, 152 deletions
diff --git a/b2g/components/B2GAppMigrator.js b/b2g/components/B2GAppMigrator.js deleted file mode 100644 index 65671d151..000000000 --- a/b2g/components/B2GAppMigrator.js +++ /dev/null @@ -1,152 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -'use strict'; - -function debug(s) { - dump("-*- B2GAppMigrator.js: " + s + "\n"); -} -const DEBUG = false; - -const Cc = Components.classes; -const Ci = Components.interfaces; -const Cu = Components.utils; - -const kMigrationMessageName = "webapps-before-update-merge"; - -const kIDBDirType = "indexedDBPDir"; -const kProfileDirType = "ProfD"; - -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); -Cu.import("resource://gre/modules/Services.jsm"); -Cu.import("resource://gre/modules/FileUtils.jsm"); - -XPCOMUtils.defineLazyServiceGetter(this, "appsService", - "@mozilla.org/AppsService;1", - "nsIAppsService"); - -function B2GAppMigrator() { -} - -B2GAppMigrator.prototype = { - classID: Components.ID('{7211ece0-b458-4635-9afc-f8d7f376ee95}'), - QueryInterface: XPCOMUtils.generateQI([Ci.nsIObserver, - Ci.nsISupportsWeakReference]), - executeBrowserMigration: function() { - if (DEBUG) debug("Executing Browser Migration"); - // The browser db file and directory names are hashed the same way - // everywhere, so it should be the same on all systems. We should - // be able to just hardcode it. - let browserDBDirName = "2959517650brreosw"; - let browserDBFileName = browserDBDirName + ".sqlite"; - - // Storage directories need to be prefixed with the local id of - // the app - let browserLocalAppId = appsService.getAppLocalIdByManifestURL("app://browser.gaiamobile.org/manifest.webapp"); - let browserAppStorageDirName = browserLocalAppId + "+f+app+++browser.gaiamobile.org"; - - // On the phone, the browser db will only be in the old IDB - // directory, since it only existed up until v2.0. On desktop, it - // will exist in the profile directory. - // - // Uses getDir with filename appending to make sure we don't - // create extra directories along the way if they don't already - // exist. - let browserDBFile = FileUtils.getDir(kIDBDirType, - ["storage", - "persistent", - browserAppStorageDirName, - "idb"], false, true); - browserDBFile.append(browserDBFileName); - let browserDBDir = FileUtils.getDir(kIDBDirType, - ["storage", - "persistent", - browserAppStorageDirName, - "idb", - browserDBDirName - ], false, true); - - if (!browserDBFile.exists()) { - if (DEBUG) debug("Browser DB " + browserDBFile.path + " does not exist, trying profile location"); - browserDBFile = FileUtils.getDir(kProfileDirType, - ["storage", - "persistent", - browserAppStorageDirName, - "idb"], false, true); - browserDBFile.append(browserDBFileName); - if (!browserDBFile.exists()) { - if (DEBUG) debug("Browser DB " + browserDBFile.path + " does not exist. Cannot copy browser db."); - return; - } - // If we have confirmed we have a DB file, we should also have a - // directory. - browserDBDir = FileUtils.getDir(kProfileDirType, - ["storage", - "persistent", - browserAppStorageDirName, - "idb", - browserDBDirName - ], false, true); - } - - let systemLocalAppId = appsService.getAppLocalIdByManifestURL("app://system.gaiamobile.org/manifest.webapp"); - let systemAppStorageDirName = systemLocalAppId + "+f+app+++system.gaiamobile.org"; - - // This check futureproofs the system DB storage directory. It - // currently exists outside of the profile but will most likely - // move into the profile at some point. - let systemDBDir = FileUtils.getDir(kIDBDirType, - ["storage", - "persistent", - systemAppStorageDirName, - "idb"], false, true); - - if (!systemDBDir.exists()) { - if (DEBUG) debug("System DB directory " + systemDBDir.path + " does not exist, trying profile location"); - systemDBDir = FileUtils.getDir(kProfileDirType, - ["storage", - "persistent", - systemAppStorageDirName, - "idb"], false, true); - if (!systemDBDir.exists()) { - if (DEBUG) debug("System DB directory " + systemDBDir.path + " does not exist. Cannot copy browser db."); - return; - } - } - - if (DEBUG) { - debug("Browser DB file exists, copying"); - debug("Browser local id: " + browserLocalAppId + ""); - debug("System local id: " + systemLocalAppId + ""); - debug("Browser DB file path: " + browserDBFile.path + ""); - debug("Browser DB dir path: " + browserDBDir.path + ""); - debug("System DB directory path: " + systemDBDir.path + ""); - } - - try { - browserDBFile.copyTo(systemDBDir, browserDBFileName); - } catch (e) { - debug("File copy caused error! " + e.name); - } - try { - browserDBDir.copyTo(systemDBDir, browserDBDirName); - } catch (e) { - debug("Dir copy caused error! " + e.name); - } - if (DEBUG) debug("Browser DB copied successfully"); - }, - - observe: function(subject, topic, data) { - switch (topic) { - case kMigrationMessageName: - this.executeBrowserMigration(); - break; - default: - debug("Unhandled topic: " + topic); - break; - } - } -}; - -this.NSGetFactory = XPCOMUtils.generateNSGetFactory([B2GAppMigrator]); |