Chrome Extension開発を勉強してみる (15) - chrome.storageを使う -

2012-08-14T00:00:00+00:00 Chrome Extension JavaScript

※Chromeのみ対応でChromiumは非対応な模様 (Daily Build版のやつは未検証)

タイトル通り、chrome.storage APIを使ってみた

manifest.json

{
  "name": "test",
  "version": "0.1",
  "manifest_version": 2,
  "browser_action": {
    "default_icon": "icon.png",
    "default_title": "test"
  },
  "background": {
    "scripts": ["background.js"]
  },
  "permissions": ["storage"]
}

5MB? 以上のデータを保管する場合にはunlimitedStorageなパーミッションが必要な模様。通常な場合はstorageのパーミッションだけでいい模様

background.js

単純にブラウザアクションを作り、それをクリックするたびに+1をしてchrome.storageにぶち込むというのをやる

(function(undefined) {
  chrome.storage.onChanged.addListener(function(changes, namespace) {
    console.log(changes);
    console.log(namespace);
  });

  chrome.browserAction.onClicked.addListener(function(tab) {
    chrome.storage.local.get(["value"], function(item) {
      var n = 0;

      if ("value" in item) {
        n = parseInt(item.value);
      }

      chrome.storage.local.set({ "value": (n + 1) });

      console.log(n);
    });
  });
})();

ローカルな所であればchrome.storage.localなAPIを使う事で可能で、chrome.storage.onChanged.addListenerを変更をキャッチできる。namespaceな引数はchrome.storage.localかchrome.storage.syncかをどちらかが入るが、値はlocal、もしくはsyncが格納される模様

公式ドキュメント: http://developer.chrome.com/trunk/extensions/storage.html

Native Client(NaCl)をやってみる (3) - NativeClientからPostMessage - Chrome Extension開発を勉強してみる (14) - file:// へのアクセスに関して -