cherry pick sync fix from main
This commit is contained in:
parent
90a8e76025
commit
3204e15c54
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue