Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // An implementation of WebURLLoader in terms of ResourceLoaderBridge. | 5 // An implementation of WebURLLoader in terms of ResourceLoaderBridge. |
| 6 | 6 |
| 7 #include "webkit/glue/weburlloader_impl.h" | 7 #include "webkit/glue/weburlloader_impl.h" |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 143 | 143 |
| 144 return true; | 144 return true; |
| 145 } | 145 } |
| 146 | 146 |
| 147 *error_code = net::ERR_INVALID_URL; | 147 *error_code = net::ERR_INVALID_URL; |
| 148 return false; | 148 return false; |
| 149 } | 149 } |
| 150 | 150 |
| 151 typedef ResourceDevToolsInfo::HeadersVector HeadersVector; | 151 typedef ResourceDevToolsInfo::HeadersVector HeadersVector; |
| 152 | 152 |
| 153 // Given a base time and a second time, returns the time from the base time to | |
| 154 // the second time, in milliseconds. If the second time is null, returns -1. | |
| 155 // The base time must not be null. | |
| 156 int TimeTicksToOffset(base::TimeTicks base_time, base::TimeTicks time) { | |
| 157 if (time.is_null()) | |
| 158 return -1; | |
| 159 DCHECK(!base_time.is_null()); | |
| 160 return static_cast<int>((time - base_time).InMillisecondsRoundedUp()); | |
|
eustas
2013/05/21 09:47:37
I don't think that storing time in double is a goo
| |
| 161 } | |
| 162 | |
| 163 // Converts timing data from |load_timing| to the format used by WebKit. | 153 // Converts timing data from |load_timing| to the format used by WebKit. |
| 164 void PopulateURLLoadTiming(const net::LoadTimingInfo& load_timing, | 154 void PopulateURLLoadTiming(const net::LoadTimingInfo& load_timing, |
| 165 WebURLLoadTiming* url_timing) { | 155 WebURLLoadTiming* url_timing) { |
| 166 DCHECK(!load_timing.request_start.is_null()); | 156 DCHECK(!load_timing.request_start.is_null()); |
| 167 | 157 |
| 168 url_timing->initialize(); | 158 url_timing->initialize(); |
| 169 url_timing->setRequestTime( | 159 url_timing->setRequestTime( |
| 170 (load_timing.request_start - TimeTicks()).InSecondsF()); | 160 (load_timing.request_start - TimeTicks()).InSecondsF()); |
| 171 url_timing->setProxyStart(TimeTicksToOffset(load_timing.request_start, | 161 url_timing->setProxyStart( |
| 172 load_timing.proxy_resolve_start)); | 162 (load_timing.proxy_resolve_start - TimeTicks()).InSecondsF()); |
| 173 url_timing->setProxyEnd(TimeTicksToOffset(load_timing.request_start, | 163 url_timing->setProxyEnd( |
| 174 load_timing.proxy_resolve_end)); | 164 (load_timing.proxy_resolve_end - TimeTicks()).InSecondsF()); |
| 175 url_timing->setDNSStart(TimeTicksToOffset( | 165 url_timing->setDNSStart( |
| 176 load_timing.request_start, | 166 (load_timing.connect_timing.dns_start - TimeTicks()).InSecondsF()); |
| 177 load_timing.connect_timing.dns_start)); | 167 url_timing->setDNSEnd( |
| 178 url_timing->setDNSEnd(TimeTicksToOffset(load_timing.request_start, | 168 (load_timing.connect_timing.dns_end - TimeTicks()).InSecondsF()); |
| 179 load_timing.connect_timing.dns_end)); | |
| 180 url_timing->setConnectStart( | 169 url_timing->setConnectStart( |
| 181 TimeTicksToOffset(load_timing.request_start, | 170 (load_timing.connect_timing.connect_start - TimeTicks()).InSecondsF()); |
| 182 load_timing.connect_timing.connect_start)); | |
| 183 url_timing->setConnectEnd( | 171 url_timing->setConnectEnd( |
| 184 TimeTicksToOffset(load_timing.request_start, | 172 (load_timing.connect_timing.connect_end - TimeTicks()).InSecondsF()); |
| 185 load_timing.connect_timing.connect_end)); | |
| 186 url_timing->setSSLStart( | 173 url_timing->setSSLStart( |
| 187 TimeTicksToOffset(load_timing.request_start, | 174 (load_timing.connect_timing.ssl_start - TimeTicks()).InSecondsF()); |
| 188 load_timing.connect_timing.ssl_start)); | 175 url_timing->setSSLEnd( |
| 189 url_timing->setSSLEnd(TimeTicksToOffset(load_timing.request_start, | 176 (load_timing.connect_timing.ssl_end - TimeTicks()).InSecondsF()); |
| 190 load_timing.connect_timing.ssl_end)); | 177 url_timing->setSendStart( |
| 191 url_timing->setSendStart(TimeTicksToOffset(load_timing.request_start, | 178 (load_timing.send_start - TimeTicks()).InSecondsF()); |
| 192 load_timing.send_start)); | 179 url_timing->setSendEnd( |
| 193 url_timing->setSendEnd(TimeTicksToOffset(load_timing.request_start, | 180 (load_timing.send_end - TimeTicks()).InSecondsF()); |
| 194 load_timing.send_end)); | |
| 195 url_timing->setReceiveHeadersEnd( | 181 url_timing->setReceiveHeadersEnd( |
| 196 TimeTicksToOffset(load_timing.request_start, | 182 (load_timing.receive_headers_end - TimeTicks()).InSecondsF()); |
| 197 load_timing.receive_headers_end)); | |
| 198 } | 183 } |
| 199 | 184 |
| 200 void PopulateURLResponse( | 185 void PopulateURLResponse( |
| 201 const GURL& url, | 186 const GURL& url, |
| 202 const ResourceResponseInfo& info, | 187 const ResourceResponseInfo& info, |
| 203 WebURLResponse* response) { | 188 WebURLResponse* response) { |
| 204 response->setURL(url); | 189 response->setURL(url); |
| 205 response->setResponseTime(info.response_time.ToDoubleT()); | 190 response->setResponseTime(info.response_time.ToDoubleT()); |
| 206 response->setMIMEType(WebString::fromUTF8(info.mime_type)); | 191 response->setMIMEType(WebString::fromUTF8(info.mime_type)); |
| 207 response->setTextEncodingName(WebString::fromUTF8(info.charset)); | 192 response->setTextEncodingName(WebString::fromUTF8(info.charset)); |
| (...skipping 651 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 859 | 844 |
| 860 void WebURLLoaderImpl::setDefersLoading(bool value) { | 845 void WebURLLoaderImpl::setDefersLoading(bool value) { |
| 861 context_->SetDefersLoading(value); | 846 context_->SetDefersLoading(value); |
| 862 } | 847 } |
| 863 | 848 |
| 864 void WebURLLoaderImpl::didChangePriority(WebURLRequest::Priority new_priority) { | 849 void WebURLLoaderImpl::didChangePriority(WebURLRequest::Priority new_priority) { |
| 865 context_->DidChangePriority(new_priority); | 850 context_->DidChangePriority(new_priority); |
| 866 } | 851 } |
| 867 | 852 |
| 868 } // namespace webkit_glue | 853 } // namespace webkit_glue |
| OLD | NEW |