From 1b9c606f113736601d237f42b7b3d40ece08a808 Mon Sep 17 00:00:00 2001 From: Nicolas Stepien Date: Fri, 29 Mar 2013 02:39:02 +0100 Subject: [PATCH] Begin working on Chrome's storage API. Let's start easy with $.delete. --- lib/$.coffee | 26 +++++++++++++++++--------- src/features.coffee | 3 +-- src/manifest.json | 5 ++++- 3 files changed, 22 insertions(+), 12 deletions(-) diff --git a/lib/$.coffee b/lib/$.coffee index 0b4d23ca3..4b3b321a1 100644 --- a/lib/$.coffee +++ b/lib/$.coffee @@ -202,8 +202,8 @@ $.extend $, "#{size} #{['B', 'KB', 'MB', 'GB'][unit]}" <% if (type === 'crx') { %> - delete: (key) -> - localStorage.removeItem g.NAMESPACE + key + delete: (keys) -> + chrome.storage.sync.remove keys get: (key, defaultVal) -> if val = localStorage.getItem g.NAMESPACE + key JSON.parse val @@ -221,10 +221,14 @@ do -> # To access the storage object later, keep a reference # to the object. {scriptStorage} = opera - $.delete = (key) -> - key = g.NAMESPACE + key - localStorage.removeItem key - delete scriptStorage[key] + $.delete = (keys) -> + unless keys instanceof Array + keys = [keys] + for key in keys + key = g.NAMESPACE + key + localStorage.removeItem key + delete scriptStorage[key] + return $.get = (key, defaultVal) -> if val = scriptStorage[g.NAMESPACE + key] JSON.parse val @@ -238,9 +242,13 @@ do -> scriptStorage[key] = val <% } else { %> delete: (key) -> - key = g.NAMESPACE + key - localStorage.removeItem key - GM_deleteValue key + unless keys instanceof Array + keys = [keys] + for key in keys + key = g.NAMESPACE + key + localStorage.removeItem key + GM_deleteValue key + return get: (key, defaultVal) -> if val = GM_getValue g.NAMESPACE + key JSON.parse val diff --git a/src/features.coffee b/src/features.coffee index c5b29702f..6df6b8de4 100644 --- a/src/features.coffee +++ b/src/features.coffee @@ -331,8 +331,7 @@ Settings = innerHTML: ": Clear manually hidden threads and posts on /#{g.BOARD}/." $.on $('button', div), 'click', -> @textContent = 'Hidden: 0' - $.delete "hiddenThreads.#{g.BOARD}" - $.delete "hiddenPosts.#{g.BOARD}" + $.delete ["hiddenThreads.#{g.BOARD}", "hiddenPosts.#{g.BOARD}"] $.after $('input[name="Stubs"]', section).parentNode.parentNode, div export: -> now = Date.now() diff --git a/src/manifest.json b/src/manifest.json index 599de79a8..b17375947 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -14,5 +14,8 @@ "run_at": "document_start" }], "homepage_url": "<%= meta.page %>", - "minimum_chrome_version": "25" + "minimum_chrome_version": "25", + "permissions": [ + "storage" + ] }