― MozillaZine.jp フォーラムは Mozilla 製品に関する情報交換の場です ―



All times are UTC + 9 hours

返信する
ユーザー名:
件名:
オプション:
BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: ON
BBCode を無効にする
フォントサイズ:
フォントカラー
スマイリーを無効にする
URL を自動的にパースしない
ユーザエージェントを表示する
認証コード
KCaptcha by Nikita_Sp
   

トピックのレビュー - 拡張機能の呼び出し方法について
作成者 メッセージ
  記事の件名:  Re: 拡張機能の呼び出し方法について  引用付きで返信する
mitsugu様、Piro様、返信ありがとうございます。

その後、調べていたところ、
カスタムDOMイベントを利用する方法を見つけました。

https://developer.mozilla.org/ja/Code_snippets/Interaction_between_privileged_and_non-privileged_pages

http://forums.mozillazine.org/viewtopic.php?p=2955601

この手のアプリケーションはセキュリティの問題が付いて回るので、
承知の上、あわせて継続調査したいと思います。
ありがとうございました。
投稿記事 Posted: 2010年6月29日(火) 10:48
  記事の件名:  Re: 拡張機能の呼び出し方法について  引用付きで返信する
グローバルな名前空間に何らかのオブジェクトやコンストラクタ関数を追加することは可能です。

例えばXUL/Migemoというアドオンでは、"migemo"という名前のプロパティをグローバルな名前空間に追加して、"migemo.query()"のような形で他のアドオンやWebページのスクリプトから簡単に機能を呼び出せるようにしています。
http://piro.sakura.ne.jp/xul/_xulmigemo.html#api-usage
これを実現しているコードは以下です。
http://www.cozmixng.org/repos/piro/xulm ... gemoAPI.js

C言語でやる場合は、システムモニターというアドオンに実装例があります。
http://www.clear-code.com/blog/2009/10/20.html
http://git.clear-code.com/xul/extension ... components

nsICategoryManagerに'JavaScript global property'というカテゴリ名でコンポーネントを登録するというのがポイントです。

ただ、この方法で追加した機能で文字列や数値などのプリミティブ値以外を返すと(例えばArrayとか)、戻ってきたオブジェクトのプロパティやメソッドにアクセスしようとした時に、セキュリティのエラーが発生することがあります。上記の例の場合、xmXMigemoAPI.jsの中でnew Array()した配列は、APIを呼び出したWebページのスクリプトからアクセスすると諸々のメソッドを呼べないということになります。
投稿記事 Posted: 2010年6月27日(日) 22:07
  記事の件名:  Re: 拡張機能の呼び出し方法について  引用付きで返信する
> 呼び出しのトリガーをWebのコンテンツ(HTML)にすることはできないのでしょうか?
セキュリティ上の理由によりできません。
投稿記事 Posted: 2010年6月27日(日) 19:50
  記事の件名:  拡張機能の呼び出し方法について  引用付きで返信する
こんにちは。

XPCOMで作った拡張機能をWebサーバ上にあるHTMLのボタン押下時に
javascriptを使って呼び出そうとしています。

ローカルであれば
コード:
netscape.security.PrivilegeManager.enablePrivilege()

を使ってインスタンス生成、メソッド呼び出しできるのですが、
下記URLに書かれているように、HTTP経由になると呼び出せません。
http://piro.sakura.ne.jp/latest/blosxom.cgi/webtech/javascript/2006-06-27_unsinged-script.htm

XULオーバーレイにより、Firefoxのメニュー上などにボタンを配置して
拡張機能を呼び出すことができるのは確認しましたが、
呼び出しのトリガーをWebのコンテンツ(HTML)にすることはできないのでしょうか?

アドバイスいただけるとうれしいです。
投稿記事 Posted: 2010年6月27日(日) 19:11

All times are UTC + 9 hours


ページ移動:  
Powered by MozillaZine.jp® Forum Software © phpBB Group , Almsamim WYSIWYG
Japanese translation principally by ocean