2016-05-16 11 views
0

現在、私はMozilla Firefox用のプラグインを作成しています。このプラグインは、タブで行われたHTTPリクエストを聞く機能を必要としています。だから私はそのトピックについてのmdnのarticleの説明を読んでいたが、それを稼働させることはできない。プラグインでFirefoxタブのhttpリクエストを聞きます

「簡単な方法」を試しましたが、このコードをどこに配置するかはわかりません。私がプラグインのindex.jsに配置すると、「gBrowserは定義されていません」というメッセージが表示されます。誰かがこの実行方法を教えてくれれば、本当にうれしいでしょう。

私はこのarticleも読んでいます。これは私の仕事に繋がるXMLHttpRequestの使用に似ているようです。だから私はこの問題から解決策にこれを形成しようとしましたが、どちらもうまくいきません。

は、任意の助けをありがとうございました:)

EDITを:私はこのようなXMLHttpRequestのために働いた溶液に、第二の記事からコードを生成することができた:

let { Cc,Ci } = require("chrome"); 
var activityDistributor = Cc["@mozilla.org/network/http-activity-distributor;1"].getService(Ci.nsIHttpActivityDistributor); 

var httpObserver = { 
    observeActivity: function(aHttpChannel, aActivityType, aActivitySubtype, aTimestamp, aExtraSizeData, aExtraStringData){ 
     if (aActivityType == nsIHttpActivityObserver.ACTIVITY_TYPE_HTTP_TRANSACTION) { 
      switch(aActivitySubtype) { 
       case nsIHttpActivityObserver.ACTIVITY_SUBTYPE_RESPONSE_HEADER: 
        // received response header 
        break; 
       case nsIHttpActivityObserver.ACTIVITY_SUBTYPE_RESPONSE_COMPLETE: 
        console.log('recieved !!!') 
        break; 
      } 
     } 
    } 
}; 

activityDistributor.addObserver(httpObserver); 

しかし、それはありませんログ出力をしないでください(少なくとも、ブラウザのコンソールでそれを見つけることはできません)。

答えて

0

解決策が見つかりました。それは私の過ちです。私は "nsIHttpActivityObserver"が設定されていないように変数に間違った名前を付けました!これは正しいコードです:

let { Cc,Ci } = require("chrome"); 
var nsIHttpActivityObserver = Cc["@mozilla.org/network/http-activity-distributor;1"].getService(Ci.nsIHttpActivityDistributor); 


var httpObserver = { 
    observeActivity: function(aHttpChannel, aActivityType, aActivitySubtype, aTimestamp, aExtraSizeData, aExtraStringData){ 
     if (aActivityType == nsIHttpActivityObserver.ACTIVITY_TYPE_HTTP_TRANSACTION) { 
      switch(aActivitySubtype) { 
       case nsIHttpActivityObserver.ACTIVITY_SUBTYPE_RESPONSE_HEADER: 
        console.log('header received') 
        break; 
       case nsIHttpActivityObserver.ACTIVITY_SUBTYPE_RESPONSE_COMPLETE: 
        console.log('complete anwser received') 
        break; 
      } 
     } 
    } 
}; 

nsIHttpActivityObserver.addObserver(httpObserver); 
関連する問題