2017-03-12 9 views
2

Chrome拡張機能を作成しています。私はバイト単位でクッキーのサイズを取得したいと思っています。これはChromeのdevtools - >アプリケーション - > Cookiesと同様です。クロムデバッガapi cookieのサイズ

私が使用してChromeからクッキーを取得:

//... 
if (chrome.cookies) { 
chrome.cookies.getAll({url: hostname}, function(cookies) { 
     for (var i = 0; i < cookies.length; i++) { 
      console.log(JSON.stringify(cookies[i], null, 1)); 
     } 
    }); 
} 

正しくクッキーの表示(例):

{ 
"domain": "REDACTED", 
"expirationDate": REDACTED, 
"hostOnly": REDACTED, 
"httpOnly": REDACTED, 
"name": "REDACTED", 
"path": REDACTED 
"sameSite": "REDACTED", 
"secure": REDACTED, 
"session": REDACTED, 
"storeId": "REDACTED", 
"value": "REDACTED" 
} 

何のサイズプロパティがありません。

デバッガAPIのCookieオブジェクトはサイズを表示するはずですが、そのプロパティは使用できません。 Cookieオブジェクトがexperimentalとマークされているので、これは合理的です。インターネット検索に基づいて https://chromedevtools.github.io/debugger-protocol-viewer/tot/Network/

、私は

encodeURIComponent(cookie.value).length; 

を使用してクッキーのサイズを取得しようとしましたが、これはクロムに比べて数バイト多かれ少なかれを返すように見えるアプリケーションをデベロッパーツール] - > [クッキー]タブ。

devtoolsの結果と一致するCookieバイトサイズを取得する方法はありますか? name.length + value.lengthだろう

(…) 
.SetSize(cookie.Name().length() + cookie.Value().length()) 
(…) 

JSで:デベロッパーツールで表示されるように、クッキーの同じサイズを取得the Chromium backend is usingと同じ計算を使用するには

答えて

0

は、私の知る限り見ることができるように、あなたはencodeURIComponentを使用しないでください。 またencodeURICOmponent('test<>').length

、デバッガプロトコルの代わりにchrome.cookies APIを使用することを検討してください。前者は安定しており、後者は実験的な部分を持ち、いつでも変更される可能性があります。

+1

まさに私が探していたものです。質問に答えてクロムバックエンドコードへのポインタを提供してくれてありがとう。私は彼らがコードを検索するための素敵なインターフェースを持っていたのか分からなかった。 – benp12345

+0

@ benp12345うれしい私は助けることができました! cs.chromium.orgに関して - 私はgithubがこの種の検索をしたかった:( –

関連する問題