chrome.webRequestに基づいてchrome-fiddlerを作成する(一)


同前は読者に適応する
1.フィddlerを通じて調整したり、chromeブラウザを使うのが好きな学生
2.chromeプラグインの開発に興味がある学生
3.fiddlerについて知っている学生(本文ではfiddlerに関する基礎知識は話さない)
湖南省にある地名
1.実はfiddlerは大部分の機能を満たすことができます.そして、fiddlerに基づいてプラグインを開発することができます.しかし、fiddlerをオープンした後、chromeを通じてページを更新するのはとても遅くなりました.これはchromeを愛する多くの開発者がfiddlerを使用することを放棄しました.
2.多くの学生がuuntuやmacのシステムを使っていますが、uuntuにはまだfiddlerの代替品がないようです.Wirestharkがあると聞きましたが、使うのが面倒くさいです.もちろん方法があります.つまり、仮想マシンを作って、ウインドウを作って、中にfiddlerを入れて、apaacheを再開します.
問題に対する分析
上の問題に対して、実は第一の問題を解決したら、chromeの問題を解決したら、第二の問題を解決しました.他のシステムにもchromeがありますので、chromeをめぐって文章を作ることができます.また、fiddlerの作者のエリックにメールしたことがありますが、英語が下手な原因かもしれません.fiddlerはieシリーズとfirefoxシリーズでは大丈夫です.主にchromeです.だから、この問題はずっと悩んでいます.ちょうど私の同僚がいて、chromeプラグインを作りました.当時は統計の学生は統計の要求urlだけを見たいです.一部の関係ないurlをフィルタリングしてもいいです.chromeの下の開発者ツールのnetリストのフィルタリング機能はまた力がありません.そこで彼はchromeから提供されたwebRequestを使って、実際には要求を傍受し、そしてrequest Headerのパラメータを通していくつかのフィルタリングを行い、自分の見たい要求をカスタマイズしました.
webrequestが傍受できるなら、fiddler-scriptのようにrequestのurlを変更できますか?だから、私はプラグインを開発して試してもいいです.できれば、少なくともfiddlerのマッピング機能に取って代わることができます.つまり、住所を把握して、この住所を自分の欲しい住所にマッピングします.
シシシシサイは考え方を検証する
筆者は以前chromeプラグインを開発していませんので、まず科学普及してみます.http://code.google.com/chrome/extensions/getstarted.html
実はchromeプラグインを開発するのはとても簡単です.ここではchromeプラグインの基礎をあまり説明しません.
私の需要はバックグラウンドがあります.直接に要求を聞いて、その中の一つの要求をテストします.私の欲しい要求をマッピングしてくれるかどうかを確認します.ですから、本当はmaifest.jsonとbackgroundが必要です.
1.manifest.json(プラグインの基礎配置ファイルを書く)
{
  "name": "fiddler", 
  "version": "1.6",      
  "minimum_chrome_version" : "17.0.0",   // 17.0  ,webRequest       。
  
  "background_page": "background.html",
  "description": "chrome-fiddler",
  "permissions": [       
        "tabs",            
          "*://*/*",         
          "webRequestBlocking", //        
          "webRequest"   //              
     ]
 }
 
2.background.background.js(バックグランド)、外鎖はbackground.jsです.
chrome.webRequest.onBeforeRequest.addListener (

          function(details) {

                   var url = details.url;
                   //          
                   if( url.indexOf("min-player")!= -1) {
                          return {redirectUrl: "localhost/player.js"}; //              。
                          //1.      rediretUrl.     url,    。     
                   } 
                   return true;
           },
          {urls:["<all_urls>"]},  //     url,      *   。
           , ["blocking"] 
)
このプラグインを拡張パネルを通してchromeに追加し、再起動し、整合urlのページに入った後、networkでバッグをつかみ、urlマッピングに成功しました.つまり、地元のjsを変えて、オンライン効果を見ることができます.それでは、私の考え方は検証に成功しました.
同前TODO
アイデアはすでに検証されていますが、以下の機能を実現するためには簡単版のfiddlerマッピング機能が必要です.
1.フロントインターフェースを必要とします.urlとのマッチングを設定します.
2.   複数のマップは、追加、削除、変更がサポートされます.
3.   地元のファイルについては、ファイルを選択することで選択できますか?
4.   backgroundのライフサイクルはchromeが閉じる前に配置をずっと保存したいです.ローカルストレージをサポートする必要があります.html 5のlocal Storrageを通じて.
とりあえずこの四つの機能を実現しましょう.明日は終わります.今日はこれだけ書いて、あとは続けます.   chrome.webRequestに基づいてchrome-fiddlerを作成します.ご注目ください.よろしくお願いします.