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



All times are UTC + 9 hours

新しいトピックを投稿する トピックへ返信する  [ 4 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2010年6月27日(日) 19:11 
こんにちは。

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:50 
オフライン

登録日時: 2007年1月14日(日) 14:24
記事: 138
お住まい: Osaka,Japan
> 呼び出しのトリガーをWebのコンテンツ(HTML)にすることはできないのでしょうか?
セキュリティ上の理由によりできません。


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2010年6月27日(日) 22:07 
オフライン
Moderator

登録日時: 2007年5月03日(木) 01:11
記事: 91
お住まい: 東京
グローバルな名前空間に何らかのオブジェクトやコンストラクタ関数を追加することは可能です。

例えば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月29日(火) 10:48 
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

この手のアプリケーションはセキュリティの問題が付いて回るので、
承知の上、あわせて継続調査したいと思います。
ありがとうございました。


通報する
ページトップ
  
引用付きで返信する  
期間内表示:  ソート  
新しいトピックを投稿する トピックへ返信する  [ 4 件の記事 ] 

All times are UTC + 9 hours


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[1人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

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