| 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()); | |
| 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 |
| 158 const TimeTicks kNullTicks; |
| 168 url_timing->initialize(); | 159 url_timing->initialize(); |
| 169 url_timing->setRequestTime( | 160 url_timing->setRequestTime( |
| 170 (load_timing.request_start - TimeTicks()).InSecondsF()); | 161 (load_timing.request_start - kNullTicks).InSecondsF()); |
| 171 url_timing->setProxyStart(TimeTicksToOffset(load_timing.request_start, | 162 url_timing->setProxyStart( |
| 172 load_timing.proxy_resolve_start)); | 163 (load_timing.proxy_resolve_start - kNullTicks).InSecondsF()); |
| 173 url_timing->setProxyEnd(TimeTicksToOffset(load_timing.request_start, | 164 url_timing->setProxyEnd( |
| 174 load_timing.proxy_resolve_end)); | 165 (load_timing.proxy_resolve_end - kNullTicks).InSecondsF()); |
| 175 url_timing->setDNSStart(TimeTicksToOffset( | 166 url_timing->setDNSStart( |
| 176 load_timing.request_start, | 167 (load_timing.connect_timing.dns_start - kNullTicks).InSecondsF()); |
| 177 load_timing.connect_timing.dns_start)); | 168 url_timing->setDNSEnd( |
| 178 url_timing->setDNSEnd(TimeTicksToOffset(load_timing.request_start, | 169 (load_timing.connect_timing.dns_end - kNullTicks).InSecondsF()); |
| 179 load_timing.connect_timing.dns_end)); | |
| 180 url_timing->setConnectStart( | 170 url_timing->setConnectStart( |
| 181 TimeTicksToOffset(load_timing.request_start, | 171 (load_timing.connect_timing.connect_start - kNullTicks).InSecondsF()); |
| 182 load_timing.connect_timing.connect_start)); | |
| 183 url_timing->setConnectEnd( | 172 url_timing->setConnectEnd( |
| 184 TimeTicksToOffset(load_timing.request_start, | 173 (load_timing.connect_timing.connect_end - kNullTicks).InSecondsF()); |
| 185 load_timing.connect_timing.connect_end)); | |
| 186 url_timing->setSSLStart( | 174 url_timing->setSSLStart( |
| 187 TimeTicksToOffset(load_timing.request_start, | 175 (load_timing.connect_timing.ssl_start - kNullTicks).InSecondsF()); |
| 188 load_timing.connect_timing.ssl_start)); | 176 url_timing->setSSLEnd( |
| 189 url_timing->setSSLEnd(TimeTicksToOffset(load_timing.request_start, | 177 (load_timing.connect_timing.ssl_end - kNullTicks).InSecondsF()); |
| 190 load_timing.connect_timing.ssl_end)); | 178 url_timing->setSendStart( |
| 191 url_timing->setSendStart(TimeTicksToOffset(load_timing.request_start, | 179 (load_timing.send_start - kNullTicks).InSecondsF()); |
| 192 load_timing.send_start)); | 180 url_timing->setSendEnd( |
| 193 url_timing->setSendEnd(TimeTicksToOffset(load_timing.request_start, | 181 (load_timing.send_end - kNullTicks).InSecondsF()); |
| 194 load_timing.send_end)); | |
| 195 url_timing->setReceiveHeadersEnd( | 182 url_timing->setReceiveHeadersEnd( |
| 196 TimeTicksToOffset(load_timing.request_start, | 183 (load_timing.receive_headers_end - kNullTicks).InSecondsF()); |
| 197 load_timing.receive_headers_end)); | |
| 198 } | 184 } |
| 199 | 185 |
| 200 void PopulateURLResponse( | 186 void PopulateURLResponse( |
| 201 const GURL& url, | 187 const GURL& url, |
| 202 const ResourceResponseInfo& info, | 188 const ResourceResponseInfo& info, |
| 203 WebURLResponse* response) { | 189 WebURLResponse* response) { |
| 204 response->setURL(url); | 190 response->setURL(url); |
| 205 response->setResponseTime(info.response_time.ToDoubleT()); | 191 response->setResponseTime(info.response_time.ToDoubleT()); |
| 206 response->setMIMEType(WebString::fromUTF8(info.mime_type)); | 192 response->setMIMEType(WebString::fromUTF8(info.mime_type)); |
| 207 response->setTextEncodingName(WebString::fromUTF8(info.charset)); | 193 response->setTextEncodingName(WebString::fromUTF8(info.charset)); |
| (...skipping 651 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 859 | 845 |
| 860 void WebURLLoaderImpl::setDefersLoading(bool value) { | 846 void WebURLLoaderImpl::setDefersLoading(bool value) { |
| 861 context_->SetDefersLoading(value); | 847 context_->SetDefersLoading(value); |
| 862 } | 848 } |
| 863 | 849 |
| 864 void WebURLLoaderImpl::didChangePriority(WebURLRequest::Priority new_priority) { | 850 void WebURLLoaderImpl::didChangePriority(WebURLRequest::Priority new_priority) { |
| 865 context_->DidChangePriority(new_priority); | 851 context_->DidChangePriority(new_priority); |
| 866 } | 852 } |
| 867 | 853 |
| 868 } // namespace webkit_glue | 854 } // namespace webkit_glue |
| OLD | NEW |