diff options
-rw-r--r-- | build/common.gypi | 9 | ||||
-rw-r--r-- | webkit/glue/weburlloader_impl.cc | 54 |
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( |