拡張機能内で自拡張機能のバージョン情報を取得する方法を探していたところ
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ファイルを読むことができました。
一応、情報として投稿しておきます。
なお、引用元のディスカッションからはだいぶ時間が経っていますので
現時点でもっと別の方法がありましたら教えてください。
吉川と申します。
まだアンドキュメントな機能だと思いますが、
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/
Content Scripts上ではセキュリティの都合上、chrome.*のほとんどのAPIが動作しません。
恐らく、chrome.extension以外は、全部ダメだと思います。
chrome.appは、今後使えるようになる可能性はありますが。。。
以前は、Cross Domain XHRも無理だったと思いますが、今は可能なようですね。
現状の結論としては、Background Pageを経由して取得するしかないようです。
ご参考までに。
以上
2011年12月6日20:12 yamaji <yamayam...@gmail.com>: