stMind

about Tech, Computer vision and Machine learning

続 Chrome Extensionのチュートリアルをやってみた!

できました!

コメント欄でos0xさんに教えていただいて、manifest.jsonにpermissionsの指定をする事で動作させることができました!
ありがとうございました!!
(非常に見にくいですが、Twitterのつぶやきの所に、Tweet Thisボタンを押したページのタイトルと短縮URLが挿入されてます)

f:id:satojkovic:20091120010008p:image

原因はクロスドメイン制約

どうやらチュートリアルの内容が古く、現在では仕様が変わっており、クロスドメイン通信を行うにはmanifest.jsonでpermissionsの指定が必須となっているようです。クロスドメイン通信でなければ、特別な権限なしにリソースを取得出来ます。コメント欄のURL参照。

permissionsの指定は、以下のようにFQHNで記述するか、

もしくはマッチパターンで記述します。(ホストに続くパス情報は無視されます)

またアクセスはホストとスキームで許可されるので、httpとhttpsは分けて記述することが必要です。

"permissions": [
     "http://www.google.com/",
     "https://www.google.com/",
],

その他

これもコメント欄で教えていただいたのですが、Toolstrips APIは削除される事が決まっており、代わりとしてBrowserActionを使用するようです。

os0xさんが書かれている続・先取り! Google Chrome Extensions:第1回 Chrome ExtensionsのAPI#1|gihyo.jp … 技術評論社が日本語で詳しく書かれているので、参考にしてチャレンジしてみたいと思います。

まとめ

Extensionで異なるドメインのリソースを取得するには、manifest.jsonにpermissionsを記述する事!