extension: backgroundスクリプトからchrome.storageのアクセスはできない?

241 views
Skip to first unread message

Koizumi

unread,
Sep 29, 2013, 10:16:26 AM9/29/13
to chrome-api-d...@googlegroups.com
拡張機能でbackgroundのスクリプトに指定したスクリプトからchrome.storageへアクセスはできないのでしょうか?
詳細には、そのスクリプトで
chrome.pageAction.onClicked.addListener(
 function(tab){
  chrome.tabs.sendRequest((コンテンツスクリプトへのリクエスト),function(result){
   chrome.storage.local.get("data",function(){ /*resultとstorageのデータを使った処理*/ })
   ...

こういった複雑な入れ子の中で呼び出されています。
また、コンテンツスクリプトでも違うタイミングでlocalのストレージにアクセスしています。
デバッグ中、このchrome.storage.local.get以降を取り除くと思ったとおりに動き、
それを再び入れると、chromeのデバッガでも反応がなくなってしまいます。
従って現状、backgroundのスクリプトからはストレージにアクセスできない
(あるいはコンテンツスクリプト経由である必要がある?)
というふうに考えておりますが、軽く調べたところAPIリファレンスにも特に記述はなく
どうなんだろうと思った次第です。

Koizumi

unread,
Sep 29, 2013, 11:32:00 AM9/29/13
to chrome-api-d...@googlegroups.com
自己レスですが
sendRequestのコールバック中で呼び出すのではなく、その外からストレージにアクセスすることはできました。
backgroundからストレージにアクセス出来ないということはなさそうです。
もうちょっと自分で考えてみます。
なにかヒントになることがあればご意見お願い致します。

2013年9月29日日曜日 23時16分26秒 UTC+9 Koizumi:

Koizumi

unread,
Sep 29, 2013, 12:00:32 PM9/29/13
to chrome-api-d...@googlegroups.com
さらに自己レスです

sendRequestのコールバック中にstorage.local.getが呼び出せませんでしたが
逆、つまりstorage.local.getのコールバック中ではsendRequestが呼び出せました
バグ的なものなのでしょうか?
とりあえず開発を進めてまいります。


2013年9月30日月曜日 0時32分00秒 UTC+9 Koizumi:

Koizumi

unread,
Sep 29, 2013, 12:49:16 PM9/29/13
to chrome-api-d...@googlegroups.com
確信はありませんが、どうやら複数のフレームを持つウェブページで
時間のかかるコールバックを両方のフレームに行おうとすると
片方のコールバック終了をもう片方が受け取ってしまうバグ?の用な感じです
フレームのURLでフィルタリングをすることで解消しました


2013年9月30日月曜日 1時00分32秒 UTC+9 Koizumi:
Reply all
Reply to author
Forward
0 new messages