Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(229)

Unified Diff: webkit/glue/weburlloader_impl.cc

Issue 7602023: Use a monotonic clock (TimeTicks) to report network times to WebCore. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Pass TimeTicks in ResourceLoadTimingInfo Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webkit/glue/weburlloader_impl.cc
diff --git a/webkit/glue/weburlloader_impl.cc b/webkit/glue/weburlloader_impl.cc
index 5e579b835bfb4ac557e89f819659aaab583025b4..dc185d313dfd7670263baf7db8549ef4dd7c2be8 100644
--- a/webkit/glue/weburlloader_impl.cc
+++ b/webkit/glue/weburlloader_impl.cc
@@ -120,6 +120,7 @@ bool GetInfoFromDataURL(const GURL& url,
// Assure same time for all time fields of data: URLs.
Time now = Time::Now();
info->load_timing.base_time = now;
+ info->load_timing.base_ticks = base::TimeTicks::Now();
info->request_time = now;
info->response_time = now;
info->headers = NULL;
@@ -169,7 +170,9 @@ void PopulateURLResponse(
if (!timing_info.base_time.is_null()) {
WebURLLoadTiming timing;
timing.initialize();
- timing.setRequestTime(timing_info.base_time.ToDoubleT());
+ timing.setRequestTime(
+ timing_info.base_ticks.ToInternalValue() /
+ static_cast<double>(base::Time::kMicrosecondsPerSecond));
wtc 2011/08/26 23:39:15 Perhaps we should convert the base::TimeTicks to a
timing.setProxyStart(timing_info.proxy_start);
timing.setProxyEnd(timing_info.proxy_end);
timing.setDNSStart(timing_info.dns_start);
@@ -279,7 +282,7 @@ class WebURLLoaderImpl::Context : public base::RefCounted<Context>,
virtual void OnReceivedCachedMetadata(const char* data, int len);
virtual void OnCompletedRequest(const net::URLRequestStatus& status,
const std::string& security_info,
- const base::Time& completion_time);
+ const base::TimeTicks& completion_time);
private:
friend class base::RefCounted<Context>;
@@ -594,7 +597,7 @@ void WebURLLoaderImpl::Context::OnReceivedCachedMetadata(
void WebURLLoaderImpl::Context::OnCompletedRequest(
const net::URLRequestStatus& status,
const std::string& security_info,
- const base::Time& completion_time) {
+ const base::TimeTicks& completion_time) {
if (ftp_listing_delegate_.get()) {
ftp_listing_delegate_->OnCompletedRequest();
ftp_listing_delegate_.reset(NULL);
@@ -626,7 +629,9 @@ void WebURLLoaderImpl::Context::OnCompletedRequest(
error.unreachableURL = request_.url();
client_->didFail(loader_, error);
} else {
- client_->didFinishLoading(loader_, completion_time.ToDoubleT());
+ client_->didFinishLoading(
+ loader_, completion_time.ToInternalValue() /
+ static_cast<double>(base::Time::kMicrosecondsPerSecond));
}
}
@@ -670,7 +675,7 @@ void WebURLLoaderImpl::Context::HandleDataURL() {
OnReceivedData(data.data(), data.size(), 0);
}
- OnCompletedRequest(status, info.security_info, base::Time::Now());
+ OnCompletedRequest(status, info.security_info, base::TimeTicks::Now());
}
// WebURLLoaderImpl -----------------------------------------------------------

Powered by Google App Engine
This is Rietveld 408576698