aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/scripts/background.js12
-rw-r--r--app/scripts/lib/extension-store.js4
2 files changed, 13 insertions, 3 deletions
diff --git a/app/scripts/background.js b/app/scripts/background.js
index 732f47590..d9a2b0a6e 100644
--- a/app/scripts/background.js
+++ b/app/scripts/background.js
@@ -50,8 +50,12 @@ async function loadStateFromPersistence () {
// read from disk
let versionedData = diskStore.getState() || migrator.generateInitialState(firstTimeState)
// fetch from extension store and merge in data
- const extensionData = await extensionStore.fetch() // TODO: handle possible exceptions (https://developer.chrome.com/apps/runtime#property-lastError)
- versionedData = { ...versionedData, ...extensionData }
+
+ if (extensionStore.isSupported && extensionStore.isEnabled) {
+ const extensionData = await extensionStore.fetch() // TODO: handle possible exceptions (https://developer.chrome.com/apps/runtime#property-lastError)
+ versionedData = { ...versionedData, ...extensionData }
+ }
+
// migrate data
versionedData = await migrator.migrateData(versionedData)
// write to disk
@@ -92,7 +96,9 @@ function setupController (initState) {
}
function syncDataWithExtension(state) {
- extensionStore.sync(state) // TODO: handle possible exceptions (https://developer.chrome.com/apps/runtime#property-lastError)
+ if (extensionStore.isSupported && extensionStore.isEnabled) {
+ extensionStore.sync(state) // TODO: handle possible exceptions (https://developer.chrome.com/apps/runtime#property-lastError)
+ }
return state
}
diff --git a/app/scripts/lib/extension-store.js b/app/scripts/lib/extension-store.js
index dd0f82f36..67ee71f16 100644
--- a/app/scripts/lib/extension-store.js
+++ b/app/scripts/lib/extension-store.js
@@ -14,6 +14,10 @@ const handleDisabledSyncAndResolve = (resolve, toResolve) => {
}
module.exports = class ExtensionStore {
+ constructor() {
+ this.isSupported = !!(extension.storage.sync)
+ this.isEnabled = true // TODO: get value from user settings
+ }
async fetch() {
return new Promise((resolve) => {
extension.storage.sync.get(KEYS_TO_SYNC, (data) => {