Commit b5669370 authored by eustas@chromium.org's avatar eustas@chromium.org

DevTools: show HTTP headers of cached resources in network panel.

Screenshot: http://picpaste.com/RaGXNCAZ.png

BUG=91276

Review URL: https://codereview.chromium.org/300913002

git-svn-id: svn://svn.chromium.org/blink/trunk@175535 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 0bb5f0a4
...@@ -12,49 +12,49 @@ Running: testGetStaticAsync ...@@ -12,49 +12,49 @@ Running: testGetStaticAsync
Dumping request: Dumping request:
url: http://user:password@127.0.0.1:8000/inspector/network/resources/empty.html url: http://user:password@127.0.0.1:8000/inspector/network/resources/empty.html
requestMethod: GET requestMethod: GET
test request header value: headerValue test request header value: headerValueA
Running: testGetStaticSync Running: testGetStaticSync
Dumping request: Dumping request:
url: http://user:password@127.0.0.1:8000/inspector/network/resources/empty.html url: http://user:password@127.0.0.1:8000/inspector/network/resources/empty.html
requestMethod: GET requestMethod: GET
test request header value: undefined test request header value: headerValueB
Running: testGetCachedAsync Running: testGetCachedAsync
Dumping request: Dumping request:
url: http://user:password@127.0.0.1:8000/inspector/network/resources/random-cached.php url: http://user:password@127.0.0.1:8000/inspector/network/resources/random-cached.php
requestMethod: GET requestMethod: GET
test request header value: headerValue test request header value: headerValueC
Running: testGetCachedSync Running: testGetCachedSync
Dumping request: Dumping request:
url: http://user:password@127.0.0.1:8000/inspector/network/resources/random-cached.php url: http://user:password@127.0.0.1:8000/inspector/network/resources/random-cached.php
requestMethod: GET requestMethod: GET
test request header value: headerValue test request header value: headerValueD
Running: testGetRandomAsync Running: testGetRandomAsync
Dumping request: Dumping request:
url: http://user:password@127.0.0.1:8000/inspector/network/resources/random.php url: http://user:password@127.0.0.1:8000/inspector/network/resources/random.php
requestMethod: GET requestMethod: GET
test request header value: headerValue test request header value: headerValueE
Running: testGetRandomSync Running: testGetRandomSync
Dumping request: Dumping request:
url: http://user:password@127.0.0.1:8000/inspector/network/resources/random.php url: http://user:password@127.0.0.1:8000/inspector/network/resources/random.php
requestMethod: GET requestMethod: GET
test request header value: headerValue test request header value: headerValueF
Running: testPostAsync Running: testPostAsync
Dumping request: Dumping request:
url: http://user:password@127.0.0.1:8000/inspector/network/resources/random.php url: http://user:password@127.0.0.1:8000/inspector/network/resources/random.php
requestFormData: payload requestFormData: payload
requestMethod: POST requestMethod: POST
test request header value: headerValue test request header value: headerValueG
Running: testPostSync Running: testPostSync
Dumping request: Dumping request:
url: http://user:password@127.0.0.1:8000/inspector/network/resources/random.php url: http://user:password@127.0.0.1:8000/inspector/network/resources/random.php
requestFormData: payload requestFormData: payload
requestMethod: POST requestMethod: POST
test request header value: headerValue test request header value: headerValueH
...@@ -61,42 +61,42 @@ function test() ...@@ -61,42 +61,42 @@ function test()
InspectorTest.runTestSuite([ InspectorTest.runTestSuite([
function testGetStaticAsync(next) function testGetStaticAsync(next)
{ {
testXHRReplay("GET", "resources/empty.html", true, "user", "password", [["headerName", "headerValue"]], false, undefined, undefined, next); testXHRReplay("GET", "resources/empty.html", true, "user", "password", [["headerName", "headerValueA"]], false, undefined, undefined, next);
}, },
function testGetStaticSync(next) function testGetStaticSync(next)
{ {
testXHRReplay("GET", "resources/empty.html", false, "user", "password", [["headerName", "headerValue"]], false, undefined, undefined, next); testXHRReplay("GET", "resources/empty.html", false, "user", "password", [["headerName", "headerValueB"]], false, undefined, undefined, next);
}, },
function testGetCachedAsync(next) function testGetCachedAsync(next)
{ {
testXHRReplay("GET", "resources/random-cached.php", true, "user", "password", [["headerName", "headerValue"]], false, undefined, undefined, next); testXHRReplay("GET", "resources/random-cached.php", true, "user", "password", [["headerName", "headerValueC"]], false, undefined, undefined, next);
}, },
function testGetCachedSync(next) function testGetCachedSync(next)
{ {
testXHRReplay("GET", "resources/random-cached.php", false, "user", "password", [["headerName", "headerValue"]], false, undefined, undefined, next); testXHRReplay("GET", "resources/random-cached.php", false, "user", "password", [["headerName", "headerValueD"]], false, undefined, undefined, next);
}, },
function testGetRandomAsync(next) function testGetRandomAsync(next)
{ {
testXHRReplay("GET", "resources/random.php", true, "user", "password", [["headerName", "headerValue"]], false, undefined, undefined, next); testXHRReplay("GET", "resources/random.php", true, "user", "password", [["headerName", "headerValueE"]], false, undefined, undefined, next);
}, },
function testGetRandomSync(next) function testGetRandomSync(next)
{ {
testXHRReplay("GET", "resources/random.php", false, "user", "password", [["headerName", "headerValue"]], false, undefined, undefined, next); testXHRReplay("GET", "resources/random.php", false, "user", "password", [["headerName", "headerValueF"]], false, undefined, undefined, next);
}, },
function testPostAsync(next) function testPostAsync(next)
{ {
testXHRReplay("POST", "resources/random.php", true, "user", "password", [["headerName", "headerValue"]], false, "payload", undefined, next); testXHRReplay("POST", "resources/random.php", true, "user", "password", [["headerName", "headerValueG"]], false, "payload", undefined, next);
}, },
function testPostSync(next) function testPostSync(next)
{ {
testXHRReplay("POST", "resources/random.php", false, "user", "password", [["headerName", "headerValue"]], false, "payload", undefined, next); testXHRReplay("POST", "resources/random.php", false, "user", "password", [["headerName", "headerValueH"]], false, "payload", undefined, next);
} }
]); ]);
} }
......
...@@ -245,7 +245,7 @@ static PassRefPtr<TypeBuilder::Network::Response> buildObjectForResourceResponse ...@@ -245,7 +245,7 @@ static PassRefPtr<TypeBuilder::Network::Response> buildObjectForResourceResponse
statusText = response.httpStatusText(); statusText = response.httpStatusText();
} }
RefPtr<JSONObject> headers; RefPtr<JSONObject> headers;
if (response.resourceLoadInfo()) if (response.resourceLoadInfo() && response.resourceLoadInfo()->responseHeaders.size())
headers = buildObjectForHeaders(response.resourceLoadInfo()->responseHeaders); headers = buildObjectForHeaders(response.resourceLoadInfo()->responseHeaders);
else else
headers = buildObjectForHeaders(response.httpHeaderFields()); headers = buildObjectForHeaders(response.httpHeaderFields());
...@@ -269,7 +269,7 @@ static PassRefPtr<TypeBuilder::Network::Response> buildObjectForResourceResponse ...@@ -269,7 +269,7 @@ static PassRefPtr<TypeBuilder::Network::Response> buildObjectForResourceResponse
if (response.resourceLoadInfo()) { if (response.resourceLoadInfo()) {
if (!response.resourceLoadInfo()->responseHeadersText.isEmpty()) if (!response.resourceLoadInfo()->responseHeadersText.isEmpty())
responseObject->setHeadersText(response.resourceLoadInfo()->responseHeadersText); responseObject->setHeadersText(response.resourceLoadInfo()->responseHeadersText);
if (response.resourceLoadInfo()->requestHeaders.size())
responseObject->setRequestHeaders(buildObjectForHeaders(response.resourceLoadInfo()->requestHeaders)); responseObject->setRequestHeaders(buildObjectForHeaders(response.resourceLoadInfo()->requestHeaders));
if (!response.resourceLoadInfo()->requestHeadersText.isEmpty()) if (!response.resourceLoadInfo()->requestHeadersText.isEmpty())
responseObject->setRequestHeadersText(response.resourceLoadInfo()->requestHeadersText); responseObject->setRequestHeadersText(response.resourceLoadInfo()->requestHeadersText);
......
...@@ -397,10 +397,13 @@ WebInspector.RequestHeadersView.prototype = { ...@@ -397,10 +397,13 @@ WebInspector.RequestHeadersView.prototype = {
requestMethodElement.title = this._formatHeader(WebInspector.UIString("Request Method"), this._request.requestMethod); requestMethodElement.title = this._formatHeader(WebInspector.UIString("Request Method"), this._request.requestMethod);
var value = statusCodeFragment.createChild("div", "header-value source-code"); var statusTextElement = statusCodeFragment.createChild("div", "header-value source-code");
value.textContent = this._request.statusCode + " " + this._request.statusText; var statusText = this._request.statusCode + " " + this._request.statusText;
if (this._request.cached) if (this._request.cached) {
value.createChild("span", "status-from-cache").textContent = " " + WebInspector.UIString("(from cache)"); statusText += " " + WebInspector.UIString("(from cache)");
statusTextElement.classList.add("status-from-cache");
}
statusTextElement.textContent = statusText;
statusCodeElement.title = statusCodeFragment; statusCodeElement.title = statusCodeFragment;
} }
...@@ -424,16 +427,16 @@ WebInspector.RequestHeadersView.prototype = { ...@@ -424,16 +427,16 @@ WebInspector.RequestHeadersView.prototype = {
* @param {string} title * @param {string} title
* @param {!Array.<!WebInspector.NetworkRequest.NameValue>} headers * @param {!Array.<!WebInspector.NetworkRequest.NameValue>} headers
* @param {!TreeElement} headersTreeElement * @param {!TreeElement} headersTreeElement
* @param {boolean=} showCaution * @param {boolean=} provisionalHeaders
*/ */
_refreshHeaders: function(title, headers, headersTreeElement, showCaution) _refreshHeaders: function(title, headers, headersTreeElement, provisionalHeaders)
{ {
headersTreeElement.removeChildren(); headersTreeElement.removeChildren();
var length = headers.length; var length = headers.length;
this._refreshHeadersTitle(title, headersTreeElement, length); this._refreshHeadersTitle(title, headersTreeElement, length);
if (showCaution) { if (provisionalHeaders) {
var cautionText = WebInspector.UIString("Provisional headers are shown"); var cautionText = WebInspector.UIString("Provisional headers are shown");
var cautionFragment = document.createDocumentFragment(); var cautionFragment = document.createDocumentFragment();
cautionFragment.createChild("div", "warning-icon-small"); cautionFragment.createChild("div", "warning-icon-small");
...@@ -443,7 +446,7 @@ WebInspector.RequestHeadersView.prototype = { ...@@ -443,7 +446,7 @@ WebInspector.RequestHeadersView.prototype = {
headersTreeElement.appendChild(cautionTreeElement); headersTreeElement.appendChild(cautionTreeElement);
} }
headersTreeElement.hidden = !length && !showCaution; headersTreeElement.hidden = !length && !provisionalHeaders;
for (var i = 0; i < length; ++i) { for (var i = 0; i < length; ++i) {
var headerTreeElement = new TreeElement(this._formatHeader(headers[i].name, headers[i].value)); var headerTreeElement = new TreeElement(this._formatHeader(headers[i].name, headers[i].value));
headerTreeElement.selectable = false; headerTreeElement.selectable = false;
......
...@@ -166,7 +166,7 @@ ...@@ -166,7 +166,7 @@
.resource-headers-view .outline-disclosure .header-value { .resource-headers-view .outline-disclosure .header-value {
display: inline; display: inline;
margin-right: 100px; margin-right: 1em;
white-space: pre-wrap; white-space: pre-wrap;
word-break: break-all; word-break: break-all;
margin-top: 1px; margin-top: 1px;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment