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()
InspectorTest.addResult(error);
InspectorTest.completeTest();
}
function main()
{
InspectorTest.clearAllCaches()
......
......@@ -39,7 +39,11 @@ InspectorTest.dumpCacheTree = async function()
}
var dataGrid = view._dataGrid;
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(", "));
}
}
......
......@@ -1709,7 +1709,7 @@
{ "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."}
],
"experimental": true
"experimental": true
}
]
},
......@@ -1951,7 +1951,8 @@
"description": "Data entry.",
"properties": [
{ "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 {
_createDataGrid() {
var columns = /** @type {!Array<!DataGrid.DataGrid.ColumnDescriptor>} */ ([
{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(
columns, undefined, this._deleteButtonClicked.bind(this), this._updateData.bind(this, true));
......@@ -110,6 +111,7 @@ Resources.ServiceWorkerCacheView = class extends UI.SimpleView {
data['number'] = i + skipCount;
data['request'] = entries[i].request;
data['response'] = entries[i].response;
data['responseTime'] = entries[i].responseTime;
var node = new DataGrid.DataGridNode(data);
node.selectable = true;
this._dataGrid.rootNode().appendChild(node);
......
......@@ -223,7 +223,8 @@ SDK.ServiceWorkerCacheModel = class extends SDK.SDKModel {
return;
}
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);
}
};
......@@ -243,10 +244,12 @@ SDK.ServiceWorkerCacheModel.Entry = class {
/**
* @param {string} request
* @param {string} response
* @param {string} responseTime
*/
constructor(request, response) {
constructor(request, response, responseTime) {
this.request = request;
this.response = response;
this.responseTime = responseTime;
}
};
......
......@@ -15,6 +15,7 @@
#include "platform/wtf/PtrUtil.h"
#include "platform/wtf/RefCounted.h"
#include "platform/wtf/RefPtr.h"
#include "platform/wtf/Time.h"
#include "platform/wtf/Vector.h"
#include "platform/wtf/text/StringBuilder.h"
#include "public/platform/Platform.h"
......@@ -165,6 +166,7 @@ struct RequestResponse {
: request(request), response(response) {}
String request;
String response;
double response_time;
};
class ResponsesAccumulator : public RefCounted<ResponsesAccumulator> {
......@@ -186,6 +188,8 @@ class ResponsesAccumulator : public RefCounted<ResponsesAccumulator> {
responses_.at(responses_.size() - num_responses_left_);
request_response.request = request.Url().GetString();
request_response.response = response.StatusText();
request_response.response_time =
WTF::Time::FromInternalValue(response.ResponseTime()).ToDoubleT();
if (--num_responses_left_ != 0)
return;
......@@ -208,6 +212,7 @@ class ResponsesAccumulator : public RefCounted<ResponsesAccumulator> {
DataEntry::create()
.setRequest(request_response.request)
.setResponse(request_response.response)
.setResponseTime(request_response.response_time)
.build();
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