summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--build/common.gypi9
-rw-r--r--webkit/glue/weburlloader_impl.cc54
2 files changed, 29 insertions, 34 deletions
diff --git a/build/common.gypi b/build/common.gypi
index 5e36f7f..5516c63 100644
--- a/build/common.gypi
+++ b/build/common.gypi
@@ -45,6 +45,9 @@
# Disable viewport meta tag by default.
'enable_viewport%': 0,
+ # Enable DoubleResourceLoadTiming support.
+ 'enable_double_resource_load_timing%': 1,
+
# Enable HiDPI support.
'enable_hidpi%': 0,
@@ -101,6 +104,7 @@
'use_ozone%': '<(use_ozone)',
'use_openssl%': '<(use_openssl)',
'enable_viewport%': '<(enable_viewport)',
+ 'enable_double_resource_load_timing%': '<(enable_double_resource_load_timing)',
'enable_hidpi%': '<(enable_hidpi)',
'enable_touch_ui%': '<(enable_touch_ui)',
'buildtype%': '<(buildtype)',
@@ -182,6 +186,7 @@
'use_ozone%': '<(use_ozone)',
'use_openssl%': '<(use_openssl)',
'enable_viewport%': '<(enable_viewport)',
+ 'enable_double_resource_load_timing%': '<(enable_double_resource_load_timing)',
'enable_hidpi%': '<(enable_hidpi)',
'enable_touch_ui%': '<(enable_touch_ui)',
'android_webview_build%': '<(android_webview_build)',
@@ -746,6 +751,7 @@
'linux_fpic%': '<(linux_fpic)',
'chromeos%': '<(chromeos)',
'enable_viewport%': '<(enable_viewport)',
+ 'enable_double_resource_load_timing%': '<(enable_double_resource_load_timing)',
'enable_hidpi%': '<(enable_hidpi)',
'enable_touch_ui%': '<(enable_touch_ui)',
'use_xi2_mt%':'<(use_xi2_mt)',
@@ -1849,6 +1855,9 @@
],
},
}],
+ ['enable_double_resource_load_timing==1', {
+ 'defines': ['ENABLE_DOUBLE_RESOURCE_LOAD_TIMING'],
+ }],
['enable_rlz==1', {
'defines': ['ENABLE_RLZ'],
}],
diff --git a/webkit/glue/weburlloader_impl.cc b/webkit/glue/weburlloader_impl.cc
index 2145ce3..d550422 100644
--- a/webkit/glue/weburlloader_impl.cc
+++ b/webkit/glue/weburlloader_impl.cc
@@ -150,51 +150,37 @@ bool GetInfoFromDataURL(const GURL& url,
typedef ResourceDevToolsInfo::HeadersVector HeadersVector;
-// Given a base time and a second time, returns the time from the base time to
-// the second time, in milliseconds. If the second time is null, returns -1.
-// The base time must not be null.
-int TimeTicksToOffset(base::TimeTicks base_time, base::TimeTicks time) {
- if (time.is_null())
- return -1;
- DCHECK(!base_time.is_null());
- return static_cast<int>((time - base_time).InMillisecondsRoundedUp());
-}
-
// Converts timing data from |load_timing| to the format used by WebKit.
void PopulateURLLoadTiming(const net::LoadTimingInfo& load_timing,
WebURLLoadTiming* url_timing) {
DCHECK(!load_timing.request_start.is_null());
+ const TimeTicks kNullTicks;
url_timing->initialize();
url_timing->setRequestTime(
- (load_timing.request_start - TimeTicks()).InSecondsF());
- url_timing->setProxyStart(TimeTicksToOffset(load_timing.request_start,
- load_timing.proxy_resolve_start));
- url_timing->setProxyEnd(TimeTicksToOffset(load_timing.request_start,
- load_timing.proxy_resolve_end));
- url_timing->setDNSStart(TimeTicksToOffset(
- load_timing.request_start,
- load_timing.connect_timing.dns_start));
- url_timing->setDNSEnd(TimeTicksToOffset(load_timing.request_start,
- load_timing.connect_timing.dns_end));
+ (load_timing.request_start - kNullTicks).InSecondsF());
+ url_timing->setProxyStart(
+ (load_timing.proxy_resolve_start - kNullTicks).InSecondsF());
+ url_timing->setProxyEnd(
+ (load_timing.proxy_resolve_end - kNullTicks).InSecondsF());
+ url_timing->setDNSStart(
+ (load_timing.connect_timing.dns_start - kNullTicks).InSecondsF());
+ url_timing->setDNSEnd(
+ (load_timing.connect_timing.dns_end - kNullTicks).InSecondsF());
url_timing->setConnectStart(
- TimeTicksToOffset(load_timing.request_start,
- load_timing.connect_timing.connect_start));
+ (load_timing.connect_timing.connect_start - kNullTicks).InSecondsF());
url_timing->setConnectEnd(
- TimeTicksToOffset(load_timing.request_start,
- load_timing.connect_timing.connect_end));
+ (load_timing.connect_timing.connect_end - kNullTicks).InSecondsF());
url_timing->setSSLStart(
- TimeTicksToOffset(load_timing.request_start,
- load_timing.connect_timing.ssl_start));
- url_timing->setSSLEnd(TimeTicksToOffset(load_timing.request_start,
- load_timing.connect_timing.ssl_end));
- url_timing->setSendStart(TimeTicksToOffset(load_timing.request_start,
- load_timing.send_start));
- url_timing->setSendEnd(TimeTicksToOffset(load_timing.request_start,
- load_timing.send_end));
+ (load_timing.connect_timing.ssl_start - kNullTicks).InSecondsF());
+ url_timing->setSSLEnd(
+ (load_timing.connect_timing.ssl_end - kNullTicks).InSecondsF());
+ url_timing->setSendStart(
+ (load_timing.send_start - kNullTicks).InSecondsF());
+ url_timing->setSendEnd(
+ (load_timing.send_end - kNullTicks).InSecondsF());
url_timing->setReceiveHeadersEnd(
- TimeTicksToOffset(load_timing.request_start,
- load_timing.receive_headers_end));
+ (load_timing.receive_headers_end - kNullTicks).InSecondsF());
}
void PopulateURLResponse(