manifestファイルからの情報取得

397 views
Skip to first unread message

yamaji

unread,
Dec 6, 2011, 2:04:43 AM12/6/11
to Chrome API Developers JP
はじめまして。yamajiと申します。

拡張機能内で自拡張機能のバージョン情報を取得する方法を探していたところ
Chromium-Extensions-Japan の
『manifestファイルからの情報取得』
https://groups.google.com/group/chromium-extensions-japan/browse_thread/thread/a838fcbae11a4675/3554c085f5950d2b?pli=1
に辿り着きました。

しかし、そちらには新たな投稿ができなくなっていましたので
引用してこちらに投稿させて頂きます。


> sasakiさん、こんにちは。
> 管理人の太田です。
> manifest.jsonの情報(バージョン番号など)を取得したいとのことですが、確かに今のところAPIは用意されていません。
> 私の場合、次のようにしてBackgroundPageからmanifest.jsonを取得しています。
> get_manifest(function(manifest){
> var version = manifest.version;
> });
> function get_manifest(callback){
> var url = '/manifest.json';
> var xhr = new XMLHttpRequest();
> xhr.onload = function(){
> callback(JSON.parse(xhr.responseText));
> };
> xhr.open('GET',url,true);
> xhr.send(null);
> }
> なお、PopupやOptionsPageでも同様の方法が使えますが、ContentsScriptsからはドメインが異なるのでこの方法は使えない
> のでご注意を。
> ちなみに、結構前にchrome.extension.manifestというAPIが提案されていましたが、今のところ進展はないようです。
> http://code.google.com/p/chromium/issues/detail?id=15242


この太田さんの投稿が参考になりました。

さらにContent Scriptsからmanifest.jsonの情報を取得できないかと
試してみたところ
var url = chrome.extension.getURL('/manifest.json');
とすることでContent Scriptsからもxhrでmanifestファイルを読むことができました。
一応、情報として投稿しておきます。

なお、引用元のディスカッションからはだいぶ時間が経っていますので
現時点でもっと別の方法がありましたら教えてください。

Toru Yoshikawa

unread,
Dec 6, 2011, 2:53:36 AM12/6/11
to chrome-api-d...@googlegroups.com
yamajiさん、はじめまして。

吉川と申します。

まだアンドキュメントな機能だと思いますが、

chrome.app.getDetails()

で取得できます。

Web Apps用のオブジェクトですが、Extensionsでも利用できます。
取得したオブジェクトの中に、versionプロパティがあります。

このメソッドで取得できるオブジェクトの中には他にも、

- content_scripts
- icons
- id
- key
- name
- permissions
- version

などがあります。

以上

2011年12月6日16:04 yamaji <yamayam...@gmail.com>:

> --
> このメールは Google グループのグループ「Chrome API Developers JP」の登録者に送られています。
> このグループに投稿するには、chrome-api-d...@googlegroups.com にメールを送信してください。
> このグループから退会するには、chrome-api-develop...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/chrome-api-developers-jp?hl=ja からこのグループにアクセスしてください。

--
Toru Yoshikawa
mail: pikotea[at]gmail.com
twitter: yoshikawa_t
blog: http://d.hatena.ne.jp/pikotea/

yamaji

unread,
Dec 6, 2011, 6:12:58 AM12/6/11
to chrome-api-d...@googlegroups.com
吉川さん、情報ありがとうございます。

さっそく確認してみました。

backgound pages では教えて頂いたとおりの情報が取得できました。
これならmanifestファイルを読まなくて済みますね。

ところで、content scripts で
chrome.app.getDetails() 
を実行するとnullが返ってくるようです。
やはりcontent scriptsでは使えないということでしょうか。

Toru Yoshikawa

unread,
Dec 6, 2011, 7:12:05 AM12/6/11
to chrome-api-d...@googlegroups.com
吉川です。

Content Scripts上ではセキュリティの都合上、chrome.*のほとんどのAPIが動作しません。
恐らく、chrome.extension以外は、全部ダメだと思います。
chrome.appは、今後使えるようになる可能性はありますが。。。
以前は、Cross Domain XHRも無理だったと思いますが、今は可能なようですね。

現状の結論としては、Background Pageを経由して取得するしかないようです。

ご参考までに。

以上


2011年12月6日20:12 yamaji <yamayam...@gmail.com>:

yamaji

unread,
Dec 7, 2011, 3:21:35 AM12/7/11
to chrome-api-d...@googlegroups.com
吉川さん、ありがとうございます。
参考になります。

以前は Content Scripts からだと Cross Domain XHR も無理だったんですか。
やはり Background Page を使うべきか・・・

実は、あるサイトに特化した拡張機能を作ろうとしていて
その場合 Content Scripts だけで作るのがいいと思いました。
しかし Content Scripts だけで拡張機能を作ろうとすると
いろいろ制限があり、できないことも多いのですね。

このあたり、タイトルとずれるのでまた別スレッドで質問させて頂きます。

では。
Reply all
Reply to author
Forward
0 new messages