Commit d3ec2cc5 authored by kristipark's avatar kristipark Committed by Commit Bot

[CacheStorage] [DevTools] Added "Time Received" column to cache storage data grid

Screenshot of the change in the bug.

Since the entry response time is given as an internal UTC format, I added wrapper methods to Time.h to convert it to standard UTC format.

BUG=727922

Review-Url: https://codereview.chromium.org/2928833002
Cr-Commit-Position: refs/heads/master@{#478797}
parent 0c983d19
...@@ -14,7 +14,7 @@ function test() ...@@ -14,7 +14,7 @@ function test()
InspectorTest.addResult(error); InspectorTest.addResult(error);
InspectorTest.completeTest(); InspectorTest.completeTest();
} }
function main() function main()
{ {
InspectorTest.clearAllCaches() InspectorTest.clearAllCaches()
......
...@@ -39,7 +39,11 @@ InspectorTest.dumpCacheTree = async function() ...@@ -39,7 +39,11 @@ InspectorTest.dumpCacheTree = async function()
} }
var dataGrid = view._dataGrid; var dataGrid = view._dataGrid;
for (var node of dataGrid.rootNode().children) { for (var node of dataGrid.rootNode().children) {
var entries = Array.from(node.element().children, td => td.textContent).filter(text => text); var children = Array.from(node.element().children).filter(function (element) {
// Removes timestamp, potential flake depending on time zone
return !(element.classList.contains("responseTime-column"));
});
var entries = Array.from(children, td => td.textContent).filter(text => text);
InspectorTest.addResult(" " + entries.join(", ")); InspectorTest.addResult(" " + entries.join(", "));
} }
} }
......
...@@ -1709,7 +1709,7 @@ ...@@ -1709,7 +1709,7 @@
{ "name": "redirectStatusCode", "type": "integer", "optional": true, "description": "HTTP response code, only sent if a redirect was intercepted." }, { "name": "redirectStatusCode", "type": "integer", "optional": true, "description": "HTTP response code, only sent if a redirect was intercepted." },
{ "name": "redirectUrl", "optional": true, "type": "string", "description": "Redirect location, only sent if a redirect was intercepted."} { "name": "redirectUrl", "optional": true, "type": "string", "description": "Redirect location, only sent if a redirect was intercepted."}
], ],
"experimental": true "experimental": true
} }
] ]
}, },
...@@ -1951,7 +1951,8 @@ ...@@ -1951,7 +1951,8 @@
"description": "Data entry.", "description": "Data entry.",
"properties": [ "properties": [
{ "name": "request", "type": "string", "description": "Request url spec." }, { "name": "request", "type": "string", "description": "Request url spec." },
{ "name": "response", "type": "string", "description": "Response stataus text." } { "name": "response", "type": "string", "description": "Response status text." },
{ "name": "responseTime", "type": "number", "description": "Number of seconds since epoch." }
] ]
}, },
{ {
......
...@@ -36,7 +36,8 @@ Resources.ServiceWorkerCacheView = class extends UI.SimpleView { ...@@ -36,7 +36,8 @@ Resources.ServiceWorkerCacheView = class extends UI.SimpleView {
_createDataGrid() { _createDataGrid() {
var columns = /** @type {!Array<!DataGrid.DataGrid.ColumnDescriptor>} */ ([ var columns = /** @type {!Array<!DataGrid.DataGrid.ColumnDescriptor>} */ ([
{id: 'number', title: Common.UIString('#'), width: '50px'}, {id: 'request', title: Common.UIString('Request')}, {id: 'number', title: Common.UIString('#'), width: '50px'}, {id: 'request', title: Common.UIString('Request')},
{id: 'response', title: Common.UIString('Response')} {id: 'response', title: Common.UIString('Response')},
{id: 'responseTime', title: Common.UIString('Time Cached')}
]); ]);
var dataGrid = new DataGrid.DataGrid( var dataGrid = new DataGrid.DataGrid(
columns, undefined, this._deleteButtonClicked.bind(this), this._updateData.bind(this, true)); columns, undefined, this._deleteButtonClicked.bind(this), this._updateData.bind(this, true));
...@@ -110,6 +111,7 @@ Resources.ServiceWorkerCacheView = class extends UI.SimpleView { ...@@ -110,6 +111,7 @@ Resources.ServiceWorkerCacheView = class extends UI.SimpleView {
data['number'] = i + skipCount; data['number'] = i + skipCount;
data['request'] = entries[i].request; data['request'] = entries[i].request;
data['response'] = entries[i].response; data['response'] = entries[i].response;
data['responseTime'] = entries[i].responseTime;
var node = new DataGrid.DataGridNode(data); var node = new DataGrid.DataGridNode(data);
node.selectable = true; node.selectable = true;
this._dataGrid.rootNode().appendChild(node); this._dataGrid.rootNode().appendChild(node);
......
...@@ -223,7 +223,8 @@ SDK.ServiceWorkerCacheModel = class extends SDK.SDKModel { ...@@ -223,7 +223,8 @@ SDK.ServiceWorkerCacheModel = class extends SDK.SDKModel {
return; return;
} }
var entries = response.cacheDataEntries.map( var entries = response.cacheDataEntries.map(
dataEntry => new SDK.ServiceWorkerCacheModel.Entry(dataEntry.request, dataEntry.response)); dataEntry => new SDK.ServiceWorkerCacheModel.Entry(
dataEntry.request, dataEntry.response, new Date(dataEntry.responseTime * 1000).toLocaleString()));
callback(entries, response.hasMore); callback(entries, response.hasMore);
} }
}; };
...@@ -243,10 +244,12 @@ SDK.ServiceWorkerCacheModel.Entry = class { ...@@ -243,10 +244,12 @@ SDK.ServiceWorkerCacheModel.Entry = class {
/** /**
* @param {string} request * @param {string} request
* @param {string} response * @param {string} response
* @param {string} responseTime
*/ */
constructor(request, response) { constructor(request, response, responseTime) {
this.request = request; this.request = request;
this.response = response; this.response = response;
this.responseTime = responseTime;
} }
}; };
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
#include "platform/wtf/PtrUtil.h" #include "platform/wtf/PtrUtil.h"
#include "platform/wtf/RefCounted.h" #include "platform/wtf/RefCounted.h"
#include "platform/wtf/RefPtr.h" #include "platform/wtf/RefPtr.h"
#include "platform/wtf/Time.h"
#include "platform/wtf/Vector.h" #include "platform/wtf/Vector.h"
#include "platform/wtf/text/StringBuilder.h" #include "platform/wtf/text/StringBuilder.h"
#include "public/platform/Platform.h" #include "public/platform/Platform.h"
...@@ -165,6 +166,7 @@ struct RequestResponse { ...@@ -165,6 +166,7 @@ struct RequestResponse {
: request(request), response(response) {} : request(request), response(response) {}
String request; String request;
String response; String response;
double response_time;
}; };
class ResponsesAccumulator : public RefCounted<ResponsesAccumulator> { class ResponsesAccumulator : public RefCounted<ResponsesAccumulator> {
...@@ -186,6 +188,8 @@ class ResponsesAccumulator : public RefCounted<ResponsesAccumulator> { ...@@ -186,6 +188,8 @@ class ResponsesAccumulator : public RefCounted<ResponsesAccumulator> {
responses_.at(responses_.size() - num_responses_left_); responses_.at(responses_.size() - num_responses_left_);
request_response.request = request.Url().GetString(); request_response.request = request.Url().GetString();
request_response.response = response.StatusText(); request_response.response = response.StatusText();
request_response.response_time =
WTF::Time::FromInternalValue(response.ResponseTime()).ToDoubleT();
if (--num_responses_left_ != 0) if (--num_responses_left_ != 0)
return; return;
...@@ -208,6 +212,7 @@ class ResponsesAccumulator : public RefCounted<ResponsesAccumulator> { ...@@ -208,6 +212,7 @@ class ResponsesAccumulator : public RefCounted<ResponsesAccumulator> {
DataEntry::create() DataEntry::create()
.setRequest(request_response.request) .setRequest(request_response.request)
.setResponse(request_response.response) .setResponse(request_response.response)
.setResponseTime(request_response.response_time)
.build(); .build();
array->addItem(std::move(entry)); array->addItem(std::move(entry));
} }
......
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