diff --git a/platform/webext/bootstrap.js b/platform/webext/bootstrap.js index 69f6fc7dd..ebbbc0b78 100644 --- a/platform/webext/bootstrap.js +++ b/platform/webext/bootstrap.js @@ -46,6 +46,9 @@ function startup({ webExtension }) { }); return true; } + if ( message.what === 'webext:storageMigrateDone' ) { + browser.runtime.onMessage.removeListener(onMessage); + } if ( typeof callback === 'function' ) { callback(); } @@ -262,13 +265,6 @@ var getStorageMigrator = function() { let markAsDone = function() { close(); - let { Services } = Components.utils.import('resource://gre/modules/Services.jsm', null), - path = Services.dirsvc.get('ProfD', Components.interfaces.nsIFile); - path.append('extension-data'); - path.append(hostName + '.sqlite'); - if ( path.exists() && path.isFile() ) { - path.renameTo(null, hostName + '.migrated.sqlite'); - } }; return { diff --git a/platform/webext/from-legacy.js b/platform/webext/from-legacy.js index 456086536..93edba2be 100644 --- a/platform/webext/from-legacy.js +++ b/platform/webext/from-legacy.js @@ -52,7 +52,14 @@ }); }; - migrateNext(); + self.browser.storage.local.get('legacyStorageMigrated', bin => { + if ( bin && bin.legacyStorageMigrated ) { + self.browser.runtime.sendMessage({ what: 'webext:storageMigrateDone' }); + return callback(); + } + self.browser.storage.local.set({ legacyStorageMigrated: true }); + migrateNext(); + }); }; µb.onBeforeStartQueue.push(migrateAll);