Handle chrome.storage[area].set errors better, retry every minute.
This commit is contained in:
parent
82a7e34e68
commit
525b8c7658
41
lib/$.coffee
41
lib/$.coffee
@ -251,9 +251,8 @@ $.get = (key, val, cb) ->
|
|||||||
|
|
||||||
count = 0
|
count = 0
|
||||||
done = (item) ->
|
done = (item) ->
|
||||||
{lastError} = chrome.runtime
|
if chrome.runtime.lastError
|
||||||
if lastError
|
c.error chrome.runtime.lastError.message
|
||||||
c.error lastError, lastError.message or 'No message.'
|
|
||||||
$.extend items, item
|
$.extend items, item
|
||||||
cb items unless --count
|
cb items unless --count
|
||||||
|
|
||||||
@ -264,28 +263,38 @@ $.get = (key, val, cb) ->
|
|||||||
count++
|
count++
|
||||||
chrome.storage.sync.get syncItems, done
|
chrome.storage.sync.get syncItems, done
|
||||||
$.set = do ->
|
$.set = do ->
|
||||||
items = {}
|
items =
|
||||||
localItems = {}
|
sync: {}
|
||||||
|
local: {}
|
||||||
|
timeout = {}
|
||||||
|
|
||||||
set = $.debounce $.SECOND, ->
|
setArea = (area) ->
|
||||||
|
return if timeout[area]
|
||||||
|
chrome.storage[area].set items[area], ->
|
||||||
|
if chrome.runtime.lastError
|
||||||
|
c.error chrome.runtime.lastError.message
|
||||||
|
timeout[area] = setTimeout setArea, $.MINUTE, area
|
||||||
|
return
|
||||||
|
items[area] = {}
|
||||||
|
delete timeout[area]
|
||||||
|
|
||||||
|
setAll = $.debounce $.SECOND, ->
|
||||||
for key in $.localKeys
|
for key in $.localKeys
|
||||||
if key of items
|
if key of items.sync
|
||||||
(localItems or= {})[key] = items[key]
|
items.local[key] = items.sync[key]
|
||||||
delete items[key]
|
delete items.sync[key]
|
||||||
try
|
try
|
||||||
chrome.storage.local.set localItems
|
setArea 'local'
|
||||||
chrome.storage.sync.set items
|
setArea 'sync'
|
||||||
items = {}
|
|
||||||
localItems = {}
|
|
||||||
catch err
|
catch err
|
||||||
c.error err.stack
|
c.error err.stack
|
||||||
|
|
||||||
(key, val) ->
|
(key, val) ->
|
||||||
if typeof key is 'string'
|
if typeof key is 'string'
|
||||||
items[key] = val
|
items.sync[key] = val
|
||||||
else
|
else
|
||||||
$.extend items, key
|
$.extend items.sync, key
|
||||||
set()
|
setAll()
|
||||||
<% } else { %>
|
<% } else { %>
|
||||||
# http://wiki.greasespot.net/Main_Page
|
# http://wiki.greasespot.net/Main_Page
|
||||||
$.sync = do ->
|
$.sync = do ->
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user