diff --git a/src/content/sync.js b/src/content/sync.js index 9f82e37..fc38d69 100644 --- a/src/content/sync.js +++ b/src/content/sync.js @@ -35,16 +35,20 @@ export class Sync { await this.getSync(pref); // check storage.sync } + static hasOldData(obj) { + // FP v3 OR FP v7 + return Object.hasOwn(obj, 'settings') || Object.hasOwn(obj, 'foxyProxyEdition'); + } + static async getSync(pref) { if (!pref.sync) { return; } const syncPref = await browser.storage.sync.get(); // check sync from old version 3-7 - if (!Object.keys(pref)[0] && - (Object.hasOwn(syncPref, 'settings') || Object.hasOwn(syncPref, 'foxyProxyEdition'))) { - Object.keys(syncPref).forEach(i => pref[i] = syncPref[i]); - return; + if ((!Object.keys(pref)[0] || this.hasOldData(pref)) && this.hasOldData(syncPref)) { // (local has no data OR has old data) AND sync has old data + Object.keys(syncPref).forEach(i => pref[i] = syncPref[i]); // set sync data to pref to migrate next in background.js + return; } // convert object to array & filter proxies