2012-02-24 3 views
0

Firefoxで "chrome://"プロトコルを使用しているときに入力ストリーム を見ることができるかどうか疑問に思っていました。もっと クリアさせてください。Firefoxでクロムプロトコルを調べる

  1. nsXULDocument.cppにはnsXULDocument :: ResumeWalk()メソッドがあります。
  2. LoadScript()[行:3004]を呼び出します。
  3. LoadScript()がNS_NewStreamLoader [nsXULDocument.cpp、行 3440]を呼び出します。
  4. NS_NewStreamLoaderはNS_NewChannel()[nsNetUtil.h、行:593]を呼び出します。
  5. NS_NewChannel()は、ioservice-> NewChannelFromURI() [nsNetUtil.h、line:226]を呼び出します。
  6. NewChannelFromURI()がNewChannelFromURIWithProxyFlags()を呼び出します。 [nsIOService.cppライン:596]。
  7. NewChannelFromURIWithProxyFlags() がnsChromeProtocolHandler-> newChannel() [nsChromeProtocolHandler.cpp、行:182]になるように、実行時に解決されhandler-> newChannel()を呼び出します。
  8. これは、ioServ-> NewChannelFromURI() [nsChromeProtocolHandler.cpp、line:196]を呼び出します。
  9. ステップ6を繰り返す。
  10. ステップ7を繰り返すが、異なる時点で、それは(等ファイル、クロム、JAR)プロトコルに基づいて 異なるハンドラをロードすることができるが、

上記呼び出しシーケンスを説明するための私の意図は、設定しました私の問題の文脈を にしてください。私は "chrome://"プロトコルが であることを知りたいのですが、それが使われるときは入力ストリームを処理したいのです。例えば、 の場合、Firefoxが "chrome:// package/content/ script.js"のようなスクリプトをロードしている場合、 ディスクからアクセスされたときにファイルをインターセプトしたいと思います。ファイルを傍受した後、その内容を変更するか、 ファイルの内容を自分が選択したフォルダにダンプします。

fread()のような方法でFirefoxがファイルを読み込むと、おそらく、私も知りたいことですが、read要求がchromeプロトコルかどうかを判断したいと思いますが、その瞬間に自分のニーズに基づいてファイルを変更することができます。これに関するどんな助け? 「クローム」プロトコルについてここで好奇心つまずいてきた人のために

+1

:// 'プロトコルハンドラ - しかし、それはすぐに大きな混乱になるでしょう。パフォーマンス上の理由から、 'chrome://'プロトコルはもはや "内部を覗く"方法を提供しません。 –

+0

ええと、私は理解しています。 Neckoの一般的なインターフェースは、具体的なプロトコル情報が失われている場所だと思います。 – Anton

答えて

関連する問題