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
Dumping request:
url: http://user:password@127.0.0.1:8000/inspector/network/resources/empty.html
requestMethod: GET
test request header value: headerValue
test request header value: headerValueA
Running: testGetStaticSync
Dumping request:
url: http://user:password@127.0.0.1:8000/inspector/network/resources/empty.html
requestMethod: GET
test request header value: undefined
test request header value: headerValueB
Running: testGetCachedAsync
Dumping request:
url: http://user:password@127.0.0.1:8000/inspector/network/resources/random-cached.php
requestMethod: GET
test request header value: headerValue
test request header value: headerValueC
Running: testGetCachedSync
Dumping request:
url: http://user:password@127.0.0.1:8000/inspector/network/resources/random-cached.php
requestMethod: GET
test request header value: headerValue
test request header value: headerValueD
Running: testGetRandomAsync
Dumping request:
url: http://user:password@127.0.0.1:8000/inspector/network/resources/random.php
requestMethod: GET
test request header value: headerValue
test request header value: headerValueE
Running: testGetRandomSync
Dumping request:
url: http://user:password@127.0.0.1:8000/inspector/network/resources/random.php
requestMethod: GET
test request header value: headerValue
test request header value: headerValueF
Running: testPostAsync
Dumping request:
url: http://user:password@127.0.0.1:8000/inspector/network/resources/random.php
requestFormData: payload
requestMethod: POST
test request header value: headerValue
test request header value: headerValueG
Running: testPostSync
Dumping request:
url: http://user:password@127.0.0.1:8000/inspector/network/resources/random.php
requestFormData: payload
requestMethod: POST
test request header value: headerValue
test request header value: headerValueH
......@@ -61,42 +61,42 @@ function test()
InspectorTest.runTestSuite([
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)
{
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)
{
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)
{
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)
{
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)
{
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)
{
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)
{
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
statusText = response.httpStatusText();
}
RefPtr<JSONObject> headers;
if (response.resourceLoadInfo())
if (response.resourceLoadInfo() && response.resourceLoadInfo()->responseHeaders.size())
headers = buildObjectForHeaders(response.resourceLoadInfo()->responseHeaders);
else
headers = buildObjectForHeaders(response.httpHeaderFields());
......@@ -269,8 +269,8 @@ static PassRefPtr<TypeBuilder::Network::Response> buildObjectForResourceResponse
if (response.resourceLoadInfo()) {
if (!response.resourceLoadInfo()->responseHeadersText.isEmpty())
responseObject->setHeadersText(response.resourceLoadInfo()->responseHeadersText);
responseObject->setRequestHeaders(buildObjectForHeaders(response.resourceLoadInfo()->requestHeaders));
if (response.resourceLoadInfo()->requestHeaders.size())
responseObject->setRequestHeaders(buildObjectForHeaders(response.resourceLoadInfo()->requestHeaders));
if (!response.resourceLoadInfo()->requestHeadersText.isEmpty())
responseObject->setRequestHeadersText(response.resourceLoadInfo()->requestHeadersText);
}
......
......@@ -397,10 +397,13 @@ WebInspector.RequestHeadersView.prototype = {
requestMethodElement.title = this._formatHeader(WebInspector.UIString("Request Method"), this._request.requestMethod);
var value = statusCodeFragment.createChild("div", "header-value source-code");
value.textContent = this._request.statusCode + " " + this._request.statusText;
if (this._request.cached)
value.createChild("span", "status-from-cache").textContent = " " + WebInspector.UIString("(from cache)");
var statusTextElement = statusCodeFragment.createChild("div", "header-value source-code");
var statusText = this._request.statusCode + " " + this._request.statusText;
if (this._request.cached) {
statusText += " " + WebInspector.UIString("(from cache)");
statusTextElement.classList.add("status-from-cache");
}
statusTextElement.textContent = statusText;
statusCodeElement.title = statusCodeFragment;
}
......@@ -424,16 +427,16 @@ WebInspector.RequestHeadersView.prototype = {
* @param {string} title
* @param {!Array.<!WebInspector.NetworkRequest.NameValue>} headers
* @param {!TreeElement} headersTreeElement
* @param {boolean=} showCaution
* @param {boolean=} provisionalHeaders
*/
_refreshHeaders: function(title, headers, headersTreeElement, showCaution)
_refreshHeaders: function(title, headers, headersTreeElement, provisionalHeaders)
{
headersTreeElement.removeChildren();
var length = headers.length;
this._refreshHeadersTitle(title, headersTreeElement, length);
if (showCaution) {
if (provisionalHeaders) {
var cautionText = WebInspector.UIString("Provisional headers are shown");
var cautionFragment = document.createDocumentFragment();
cautionFragment.createChild("div", "warning-icon-small");
......@@ -443,7 +446,7 @@ WebInspector.RequestHeadersView.prototype = {
headersTreeElement.appendChild(cautionTreeElement);
}
headersTreeElement.hidden = !length && !showCaution;
headersTreeElement.hidden = !length && !provisionalHeaders;
for (var i = 0; i < length; ++i) {
var headerTreeElement = new TreeElement(this._formatHeader(headers[i].name, headers[i].value));
headerTreeElement.selectable = false;
......
......@@ -166,7 +166,7 @@
.resource-headers-view .outline-disclosure .header-value {
display: inline;
margin-right: 100px;
margin-right: 1em;
white-space: pre-wrap;
word-break: break-all;
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