2011-10-26 11 views
1

URLを取得し、URLが指し示すページをネットワーク上で表示するために必要なすべてのリソース(圧縮されたもの)を表示しようとしています。クライアント上のサイズ(圧縮解除されたもの)です。Chrome拡張機能のリソースサイズを取得する

私は、リスナーをchrome.experimental.webRequest.onCompletedに追加することで、必要なリソースを活用することができました。ただし、このコールバックではヘッダーのサイズがわかりません。

私はトリックを行うだろうchrome.experimental.devtools.network.getHARを呼び出しchrome.experimental.devtools.network.onRequestFinishedにリスナーを追加すると思いますが、私はエラーUncaught TypeError: Cannot read property 'network' of undefinedを得るようchrome.experimental.devtools.networkに何かを使用することはできませんよ。

アイデア?

+0

、あなたが読んで理解している[実験的なAPIを使用する方法](のhttp:/ /code.google.com/chrome/extensions/dev/experimental.html#using)?また、[これらのAPIの制限事項](http://code.google.com/chrome/extensions/dev/experimental.html#overview)についてご存知ですか? – Alasdair

+0

両方に対応しています。これは単なる内部使用のためのツールに過ぎず、拡張機能で使用するChromeのバージョンをパッケージ化しており、今後使用することができます。私はdetails.responseHeaders.lengthを<;; ++ I){ 場合、私は= 0 chrome.experimental.webRequest.onResponseStarted.addListener( 機能(詳細){ (VARについて:私はこのようなもので、問題を解決しました{ console.log(details.url + ':' + details.responseHeaders [i] .value + 'bytes'); } (詳細は応答ヘッダー[i] .name === 'Content-Length' } }、 {}、 ["responseHeaders"]); – Andrew

答えて

3

圧縮サイズは、ヘッダ内にある場合、あなたはこのようにそれを得ることができます。あなたが取得しているエラーについて

chrome.experimental.webRequest.onResponseStarted.addListener(
    function(details) { 
    for (var i = 0; i < details.responseHeaders.length; ++i) { 
     if (details.responseHeaders[i].name === 'Content-Length') { 
     console.log(details.url + ': ' + details.responseHeaders[i].value + 
        'bytes'); 
     } 
    } 
    }, 
    {}, 
    ["responseHeaders"]);