diff --git a/src/models/storage.ts b/src/models/storage.ts index 346824670..34db02369 100644 --- a/src/models/storage.ts +++ b/src/models/storage.ts @@ -69,7 +69,7 @@ class EntryStorage { return new Promise( (resolve: (value: boolean) => void, reject: (reason: Error) => void) => { - chrome.storage.sync.get((_data: {[hash: string]: OTPStorage}) => { + chrome.storage.local.get((_data: {[hash: string]: OTPStorage}) => { for (const hash of Object.keys(_data)) { if (!this.isValidEntry(_data, hash)) { continue; @@ -89,7 +89,7 @@ class EntryStorage { (resolve: (value: {[hash: string]: OTPStorage}) => void, reject: (reason: Error) => void) => { try { - chrome.storage.sync.get((_data: {[hash: string]: OTPStorage}) => { + chrome.storage.local.get((_data: {[hash: string]: OTPStorage}) => { for (const hash of Object.keys(_data)) { if (!this.isValidEntry(_data, hash)) { delete _data[hash]; @@ -127,7 +127,7 @@ class EntryStorage { return new Promise( (resolve: () => void, reject: (reason: Error) => void) => { try { - chrome.storage.sync.get((_data: {[hash: string]: OTPStorage}) => { + chrome.storage.local.get((_data: {[hash: string]: OTPStorage}) => { for (const hash of Object.keys(data)) { // never trust data import from user // we do not support encrypted data import any longer @@ -197,7 +197,7 @@ class EntryStorage { } } _data = this.ensureUniqueIndex(_data); - chrome.storage.sync.set(_data, resolve); + chrome.storage.local.set(_data, resolve); }); return; } catch (error) { @@ -210,7 +210,7 @@ class EntryStorage { return new Promise( (resolve: () => void, reject: (reason: Error) => void) => { try { - chrome.storage.sync.get((_data: {[hash: string]: OTPStorage}) => { + chrome.storage.local.get((_data: {[hash: string]: OTPStorage}) => { if (_data.hasOwnProperty(entry.hash)) { throw new Error('The specific entry has already existed.'); } @@ -218,7 +218,7 @@ class EntryStorage { this.getOTPStorageFromEntry(encryption, entry); _data[entry.hash] = storageItem; _data = this.ensureUniqueIndex(_data); - chrome.storage.sync.set(_data, resolve); + chrome.storage.local.set(_data, resolve); }); return; } catch (error) { @@ -231,7 +231,7 @@ class EntryStorage { return new Promise( (resolve: () => void, reject: (reason: Error) => void) => { try { - chrome.storage.sync.get((_data: {[hash: string]: OTPStorage}) => { + chrome.storage.local.get((_data: {[hash: string]: OTPStorage}) => { if (!_data.hasOwnProperty(entry.hash)) { throw new Error('The specific entry is not existing.'); } @@ -239,7 +239,7 @@ class EntryStorage { this.getOTPStorageFromEntry(encryption, entry); _data[entry.hash] = storageItem; _data = this.ensureUniqueIndex(_data); - chrome.storage.sync.set(_data, resolve); + chrome.storage.local.set(_data, resolve); }); return; } catch (error) { @@ -252,14 +252,14 @@ class EntryStorage { return new Promise( (resolve: () => void, reject: (reason: Error) => void) => { try { - chrome.storage.sync.get((_data: {[hash: string]: OTPStorage}) => { + chrome.storage.local.get((_data: {[hash: string]: OTPStorage}) => { entries.forEach(entry => { const storageItem = this.getOTPStorageFromEntry(encryption, entry); _data[entry.hash] = storageItem; }); _data = this.ensureUniqueIndex(_data); - chrome.storage.sync.set(_data, resolve); + chrome.storage.local.set(_data, resolve); }); return; } catch (error) { @@ -273,7 +273,7 @@ class EntryStorage { (resolve: (value: OTPEntry[]) => void, reject: (reason: Error) => void) => { try { - chrome.storage.sync.get( + chrome.storage.local.get( async (_data: {[hash: string]: OTPStorage}) => { const data: OTPEntry[] = []; for (const hash of Object.keys(_data)) { @@ -420,7 +420,7 @@ class EntryStorage { static async remove(hash: string) { return new Promise( (resolve: () => void, reject: (reason: Error) => void) => { - return chrome.storage.sync.remove(hash, resolve); + return chrome.storage.local.remove(hash, resolve); }); } @@ -428,13 +428,13 @@ class EntryStorage { return new Promise( (resolve: () => void, reject: (reason: Error) => void) => { try { - chrome.storage.sync.get((_data: {[hash: string]: OTPStorage}) => { + chrome.storage.local.get((_data: {[hash: string]: OTPStorage}) => { if (_data.hasOwnProperty(entry.hash)) { delete _data[entry.hash]; } _data = this.ensureUniqueIndex(_data); - chrome.storage.sync.remove(entry.hash, () => { - chrome.storage.sync.set(_data, resolve); + chrome.storage.local.remove(entry.hash, () => { + chrome.storage.local.set(_data, resolve); }); return; }); diff --git a/src/popup.ts b/src/popup.ts index a3fadf618..3ca38f7b4 100644 --- a/src/popup.ts +++ b/src/popup.ts @@ -113,6 +113,10 @@ async function init() { ui.instance.fixPopupSize(); } + if (ui.instance.isEdge()) { + localStorage.storageLocation = 'local' + } + return; } diff --git a/src/test/test.ts b/src/test/test.ts index 285a7e4de..9c04994b9 100644 --- a/src/test/test.ts +++ b/src/test/test.ts @@ -246,7 +246,7 @@ function testFinished() { async function clear() { return new Promise((resolve: () => void, reject: (reason: Error) => void) => { try { - chrome.storage.sync.clear(resolve); + chrome.storage.local.clear(resolve); } catch (error) { reject(error); } @@ -258,7 +258,7 @@ async function get() { (resolve: (items: {[key: string]: T}) => void, reject: (reason: Error) => void) => { try { - chrome.storage.sync.get(resolve); + chrome.storage.local.get(resolve); } catch (error) { reject(error); } @@ -269,7 +269,7 @@ async function set(items: {[key: string]: {}}) { /* tslint:disable-next-line:no-any */ return new Promise((resolve: () => void, reject: (reason: Error) => void) => { try { - chrome.storage.sync.set(items, resolve); + chrome.storage.local.set(items, resolve); } catch (error) { reject(error); }