diff options
| author | mrmr1993 | 2017-04-18 02:18:14 +0100 | 
|---|---|---|
| committer | mrmr1993 | 2017-04-18 02:18:14 +0100 | 
| commit | b0fc681480da40ec0bdb43773275ef7181c78cf1 (patch) | |
| tree | cfb8826b7dc2e3e2522cf0e0151de551ac40d5d8 | |
| parent | 93a07e4c4ccc64b5939adbf71a12bfad403845ad (diff) | |
| download | vimium-b0fc681480da40ec0bdb43773275ef7181c78cf1.tar.bz2 | |
Check whether chrome.storage.sync is enabled, fall back to .local if not
| -rw-r--r-- | lib/settings.coffee | 8 | 
1 files changed, 8 insertions, 0 deletions
| diff --git a/lib/settings.coffee b/lib/settings.coffee index 51bb8bc4..51f6b504 100644 --- a/lib/settings.coffee +++ b/lib/settings.coffee @@ -27,6 +27,14 @@ Settings =        @cache = if Utils.isBackgroundPage() then localStorage else extend {}, localStorage        @runOnLoadedCallbacks() +    # Test chrome.storage.sync to see if it is enabled. +    # NOTE(mrmr1993, 2017-04-18): currently the API is defined in FF, but it is disabled behind a flag in +    # about:config. Every use sets chrome.runtime.lastError, so we use that to check whether we can use it. +    chrome.storage.sync.get null, => +      if chrome.runtime.lastError +        storageArea = "local" +        @storage = chrome.storage[storageArea] +      chrome.storage.local.get null, (localItems) =>        localItems = {} if chrome.runtime.lastError        @storage.get null, (syncedItems) => | 
