Changeset 62927 in webkit
- Timestamp:
- Jul 9, 2010 3:18:37 AM (14 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 22 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r62926 r62927 1 2010-07-08 Pavel Feldman <pfeldman@chromium.org> 2 3 Reviewed by Yury Semikhatsky. 4 5 Web Inspector: Provide detailed network info in the resources panel. 6 7 https://bugs.webkit.org/show_bug.cgi?id=40227 8 9 * English.lproj/localizedStrings.js: 10 * inspector/InspectorController.cpp: 11 (WebCore::InspectorController::willSendRequest): 12 (WebCore::InspectorController::didReceiveResponse): 13 * inspector/InspectorController.h: 14 * inspector/InspectorResource.cpp: 15 (WebCore::InspectorResource::InspectorResource): 16 (WebCore::InspectorResource::updateResponse): 17 (WebCore::InspectorResource::updateScriptObject): 18 (WebCore::InspectorResource::buildObjectForTiming): 19 * inspector/InspectorResource.h: 20 * inspector/front-end/ResourcesPanel.js: 21 (WebInspector.ResourcesPanel): 22 (WebInspector.ResourcesPanel.prototype.elementsToRestoreScrollPositionsFor): 23 (WebInspector.ResourcesPanel.prototype._getPopoverAnchor): 24 (WebInspector.ResourcesPanel.prototype._showPopover): 25 (WebInspector.ResourcesPanel.prototype.hide): 26 (WebInspector.ResourceTimeCalculator.prototype.computeBarGraphLabels): 27 (WebInspector.ResourceGraph): 28 * inspector/front-end/inspector.js: 29 (WebInspector.updateResource): 30 * platform/network/ResourceLoadTiming.h: 31 (WebCore::ResourceLoadTiming::create): 32 (WebCore::ResourceLoadTiming::deepCopy): 33 (WebCore::ResourceLoadTiming::operator==): 34 (WebCore::ResourceLoadTiming::ResourceLoadTiming): 35 * platform/network/ResourceRequestBase.h: 36 (WebCore::ResourceRequestBase::reportLoadTiming): 37 (WebCore::ResourceRequestBase::setReportLoadTiming): 38 (WebCore::ResourceRequestBase::ResourceRequestBase): 39 * platform/network/ResourceResponseBase.cpp: 40 (WebCore::ResourceResponseBase::connectionID): 41 (WebCore::ResourceResponseBase::setConnectionID): 42 * platform/network/ResourceResponseBase.h: 43 1 44 2010-07-09 Eric Seidel <eric@webkit.org> 2 45 -
trunk/WebCore/inspector/InspectorController.cpp
r62897 r62927 948 948 } 949 949 950 void InspectorController::willSendRequest(unsigned long identifier, constResourceRequest& request, const ResourceResponse& redirectResponse)950 void InspectorController::willSendRequest(unsigned long identifier, ResourceRequest& request, const ResourceResponse& redirectResponse) 951 951 { 952 952 if (!enabled()) … … 960 960 if (!resource) 961 961 return; 962 963 request.setReportLoadTiming(true); 962 964 963 965 if (!redirectResponse.isNull()) { … … 965 967 // See http/tests/misc/will-send-request-returns-null-on-redirect.html 966 968 if (!request.url().isEmpty()) { 967 resource->markResponseReceivedTime();968 969 resource->endTiming(); 969 970 resource->updateResponse(redirectResponse); … … 996 997 if (RefPtr<InspectorResource> resource = getTrackedResource(identifier)) { 997 998 resource->updateResponse(response); 998 resource->markResponseReceivedTime();999 999 1000 1000 if (resource != m_mainResource && m_frontend) -
trunk/WebCore/inspector/InspectorController.h
r62897 r62927 168 168 169 169 void identifierForInitialRequest(unsigned long identifier, DocumentLoader*, const ResourceRequest&); 170 void willSendRequest(unsigned long identifier, constResourceRequest&, const ResourceResponse& redirectResponse);170 void willSendRequest(unsigned long identifier, ResourceRequest&, const ResourceResponse& redirectResponse); 171 171 void didReceiveResponse(unsigned long identifier, const ResourceResponse&); 172 172 void didReceiveContentLength(unsigned long identifier, int lengthReceived); -
trunk/WebCore/inspector/InspectorResource.cpp
r62535 r62927 40 40 #include "Frame.h" 41 41 #include "InspectorFrontend.h" 42 #include "ResourceLoadTiming.h" 42 43 #include "ResourceRequest.h" 43 44 #include "ResourceResponse.h" … … 63 64 , m_loadEventTime(-1.0) 64 65 , m_domContentEventTime(-1.0) 66 , m_connectionID(0) 65 67 , m_isMainResource(false) 66 68 { … … 129 131 m_suggestedFilename = response.suggestedFilename(); 130 132 133 m_connectionID = response.connectionID(); 134 m_loadTiming = response.resourceLoadTiming(); 135 if (m_loadTiming && m_loadTiming->requestTime) { 136 m_responseReceivedTime = m_loadTiming->requestTime; 137 if (m_loadTiming->proxyDuration != -1) 138 m_responseReceivedTime += m_loadTiming->proxyDuration; 139 if (m_loadTiming->dnsDuration != -1) 140 m_responseReceivedTime += m_loadTiming->dnsDuration; 141 if (m_loadTiming->connectDuration != -1) 142 m_responseReceivedTime += m_loadTiming->connectDuration; 143 m_responseReceivedTime += m_loadTiming->sendDuration; 144 m_responseReceivedTime += m_loadTiming->receiveHeadersDuration; 145 } else 146 m_responseReceivedTime = currentTime(); 147 148 m_changes.set(TimingChange); 131 149 m_changes.set(ResponseChange); 132 150 m_changes.set(TypeChange); … … 140 158 } 141 159 } 142 143 160 144 161 void InspectorResource::updateScriptObject(InspectorFrontend* frontend) … … 173 190 populateHeadersObject(&responseHeaders, m_responseHeaderFields); 174 191 jsonObject.set("responseHeaders", responseHeaders); 192 jsonObject.set("connectionID", m_connectionID); 193 if (m_loadTiming) 194 jsonObject.set("timing", buildObjectForTiming(frontend, m_loadTiming.get())); 175 195 jsonObject.set("didResponseChange", true); 176 196 } … … 336 356 } 337 357 338 void InspectorResource::markResponseReceivedTime()339 {340 m_responseReceivedTime = currentTime();341 m_changes.set(TimingChange);342 }343 344 358 void InspectorResource::endTiming() 345 359 { … … 380 394 } 381 395 396 ScriptObject InspectorResource::buildObjectForTiming(InspectorFrontend* frontend, ResourceLoadTiming* timing) 397 { 398 ScriptObject jsonObject = frontend->newScriptObject(); 399 jsonObject.set("requestTime", timing->requestTime); 400 jsonObject.set("proxyDuration", timing->proxyDuration); 401 jsonObject.set("dnsDuration", timing->dnsDuration); 402 jsonObject.set("connectDuration", timing->connectDuration); 403 jsonObject.set("sendDuration", timing->sendDuration); 404 jsonObject.set("receiveHeadersDuration", timing->receiveHeadersDuration); 405 jsonObject.set("sslDuration", timing->sslDuration); 406 return jsonObject; 407 } 408 382 409 } // namespace WebCore 383 410 -
trunk/WebCore/inspector/InspectorResource.h
r62535 r62927 50 50 class InspectorFrontend; 51 51 class Frame; 52 class ResourceLoadTiming; 53 class ResourceRequest; 52 54 class ResourceResponse; 53 54 class ResourceRequest;55 55 56 56 class InspectorResource : public RefCounted<InspectorResource> { … … 103 103 104 104 void startTiming(); 105 void markResponseReceivedTime();106 105 void markLoadEventTime(); 107 106 void markDOMContentEventTime(); … … 153 152 CachedResource* cachedResource() const; 154 153 154 ScriptObject buildObjectForTiming(InspectorFrontend*, ResourceLoadTiming*); 155 155 156 unsigned long m_identifier; 156 157 RefPtr<DocumentLoader> m_loader; … … 173 174 double m_loadEventTime; 174 175 double m_domContentEventTime; 176 unsigned m_connectionID; 177 RefPtr<ResourceLoadTiming> m_loadTiming; 175 178 ScriptString m_overrideContent; 176 179 Type m_overrideContentType; -
trunk/WebCore/inspector/front-end/ResourcesPanel.js
r62647 r62927 47 47 this.graphsTreeElement.children[0].select(); 48 48 this._resourceTrackingEnabled = false; 49 50 this._popoverHelper = new WebInspector.PopoverHelper(this.element, this._getPopoverAnchor.bind(this), this._showPopover.bind(this), true); 49 51 } 50 52 … … 733 735 { 734 736 return [ this.containerElement ]; 737 }, 738 739 _getPopoverAnchor: function(element) 740 { 741 var anchor = element.enclosingNodeOrSelfWithClass("resources-graph-bar-area"); 742 if (!anchor) 743 return null; 744 var resource = anchor.resource; 745 return resource.timing ? anchor : null; 746 }, 747 748 _showPopover: function(anchor) 749 { 750 var tableElement = document.createElement("table"); 751 var resource = anchor.resource; 752 var data = [WebInspector.UIString("Blocking"), resource.timing.requestTime === 0 ? "?" : Number.secondsToString(Math.max(resource.timing.requestTime - resource.startTime, 0)), 753 WebInspector.UIString("Proxy"), resource.timing.proxyDuration == -1 ? "none" : Number.secondsToString(resource.timing.proxyDuration), 754 WebInspector.UIString("DNS Lookup"), resource.timing.dnsDuration == -1 ? "reused" : Number.secondsToString(resource.timing.dnsDuration), 755 WebInspector.UIString("Connecting"), resource.timing.connectDuration == -1 ? "reused" : Number.secondsToString(resource.timing.connectDuration), 756 WebInspector.UIString("Sending"), Number.secondsToString(resource.timing.sendDuration), 757 WebInspector.UIString("Waiting"), Number.secondsToString(resource.timing.receiveHeadersDuration), 758 WebInspector.UIString("Receiving"), Number.secondsToString(resource.endTime - resource.responseReceivedTime)]; 759 760 for (var i = 0; i < data.length; i += 2) { 761 var tr = document.createElement("tr"); 762 tableElement.appendChild(tr); 763 764 var td = document.createElement("td"); 765 td.textContent = data[i]; 766 tr.appendChild(td); 767 768 td = document.createElement("td"); 769 td.textContent = data[i + 1]; 770 tr.appendChild(td); 771 } 772 773 var popover = new WebInspector.Popover(tableElement); 774 popover.show(anchor.firstChild.nextSibling); 775 return popover; 776 }, 777 778 hide: function() 779 { 780 WebInspector.Panel.prototype.hide.call(this); 781 this._popoverHelper.hidePopup(); 735 782 } 736 783 } … … 856 903 var leftLabel = rightLabel; 857 904 905 if (resource.connectionID) 906 return {left: leftLabel, right: rightLabel}; 907 858 908 if (hasLatency && rightLabel) { 859 909 var total = this.formatValue(resource.duration); … … 866 916 if (resource.cached) 867 917 tooltip = WebInspector.UIString("%s (from cache)", tooltip); 868 869 918 return {left: leftLabel, right: rightLabel, tooltip: tooltip}; 870 919 }, … … 1206 1255 this._barAreaElement = document.createElement("div"); 1207 1256 this._barAreaElement.className = "resources-graph-bar-area hidden"; 1257 this._barAreaElement.resource = resource; 1208 1258 this._graphElement.appendChild(this._barAreaElement); 1209 1259 -
trunk/WebCore/inspector/front-end/inspector.js
r62897 r62927 1182 1182 resource.suggestedFilename = payload.suggestedFilename; 1183 1183 resource.responseHeaders = payload.responseHeaders; 1184 resource.connectionID = payload.connectionID; 1185 resource.timing = payload.timing; 1184 1186 } 1185 1187 -
trunk/WebCore/loader/appcache/ApplicationCacheGroup.cpp
r62677 r62927 480 480 inspectorController->identifierForInitialRequest(m_currentResourceIdentifier, m_frame->loader()->documentLoader(), handle->request()); 481 481 ResourceResponse redirectResponse = ResourceResponse(); 482 inspectorController->willSendRequest(m_currentResourceIdentifier, handle->request(), redirectResponse);482 inspectorController->willSendRequest(m_currentResourceIdentifier, request, redirectResponse); 483 483 } 484 484 #endif -
trunk/WebCore/platform/network/ResourceLoadTiming.h
r62348 r62927 35 35 class ResourceLoadTiming : public RefCounted<ResourceLoadTiming> { 36 36 public: 37 PassRefPtr<ResourceLoadTiming> create()37 static PassRefPtr<ResourceLoadTiming> create() 38 38 { 39 39 return adoptRef(new ResourceLoadTiming); … … 43 43 { 44 44 RefPtr<ResourceLoadTiming> timing = create(); 45 timing->redirectStart = redirectStart; 46 timing->redirectEnd = redirectEnd; 47 timing->redirectCount = redirectCount; 48 timing->domainLookupStart = domainLookupStart; 49 timing->domainLookupEnd = domainLookupEnd; 50 timing->connectStart = connectStart; 51 timing->connectEnd = connectEnd; 52 timing->requestStart = requestStart; 53 timing->requestEnd = requestEnd; 54 timing->responseStart = responseStart; 55 timing->responseEnd = responseEnd; 45 timing->requestTime = requestTime; 46 timing->proxyDuration = proxyDuration; 47 timing->dnsDuration = dnsDuration; 48 timing->connectDuration = connectDuration; 49 timing->sendDuration = sendDuration; 50 timing->receiveHeadersDuration = receiveHeadersDuration; 51 timing->sslDuration = sslDuration; 56 52 return timing.release(); 57 53 } … … 59 55 bool operator==(const ResourceLoadTiming& other) const 60 56 { 61 return redirectStart == other.redirectStart 62 && redirectEnd == other.redirectEnd 63 && redirectCount == other.redirectCount 64 && domainLookupStart == other.domainLookupStart 65 && domainLookupEnd == other.domainLookupEnd 66 && connectStart == other.connectStart 67 && connectEnd == other.connectEnd 68 && requestStart == other.requestStart 69 && requestEnd == other.requestEnd 70 && responseStart == other.responseStart 71 && responseEnd == other.responseEnd; 57 return requestTime == other.requestTime 58 && proxyDuration == other.proxyDuration 59 && dnsDuration == other.dnsDuration 60 && connectDuration == other.connectDuration 61 && sendDuration == other.sendDuration 62 && receiveHeadersDuration == other.receiveHeadersDuration 63 && sslDuration == other.sslDuration; 72 64 } 73 65 … … 77 69 } 78 70 79 double redirectStart; 80 double redirectEnd; 81 unsigned short redirectCount; 82 double domainLookupStart; 83 double domainLookupEnd; 84 double connectStart; 85 double connectEnd; 86 double requestStart; 87 double requestEnd; 88 double responseStart; 89 double responseEnd; 71 double requestTime; 72 double proxyDuration; 73 double dnsDuration; 74 double connectDuration; 75 double sendDuration; 76 double receiveHeadersDuration; 77 double sslDuration; 90 78 91 79 private: 92 80 ResourceLoadTiming() 93 : redirectStart(0.0) 94 , redirectEnd(0.0) 95 , redirectCount(0) 96 , domainLookupStart(0.0) 97 , domainLookupEnd(0.0) 98 , connectStart(0.0) 99 , connectEnd(0.0) 100 , requestStart(0.0) 101 , requestEnd(0.0) 102 , responseStart(0.0) 103 , responseEnd(0.0) 81 : requestTime(0.0) 82 , proxyDuration(-1.0) 83 , dnsDuration(-1.0) 84 , connectDuration(-1.0) 85 , sendDuration(0.0) 86 , receiveHeadersDuration(0.0) 87 , sslDuration(-1.0) 104 88 { 105 89 } -
trunk/WebCore/platform/network/ResourceRequestBase.h
r58647 r62927 132 132 void setReportUploadProgress(bool reportUploadProgress) { m_reportUploadProgress = reportUploadProgress; } 133 133 134 // Whether the timing information should be collected for the request. 135 bool reportLoadTiming() const { return m_reportLoadTiming; } 136 void setReportLoadTiming(bool reportLoadTiming) { m_reportLoadTiming = reportLoadTiming; } 137 134 138 // What this request is for. 135 139 TargetType targetType() const { return m_targetType; } … … 142 146 , m_platformRequestUpdated(true) 143 147 , m_reportUploadProgress(false) 148 , m_reportLoadTiming(false) 144 149 , m_targetType(TargetIsSubresource) 145 150 { … … 155 160 , m_platformRequestUpdated(false) 156 161 , m_reportUploadProgress(false) 162 , m_reportLoadTiming(false) 157 163 , m_targetType(TargetIsSubresource) 158 164 { … … 175 181 mutable bool m_platformRequestUpdated; 176 182 bool m_reportUploadProgress; 183 bool m_reportLoadTiming; 177 184 TargetType m_targetType; 178 185 -
trunk/WebCore/platform/network/ResourceResponseBase.cpp
r62348 r62927 454 454 455 455 return m_lastModifiedDate; 456 } 457 458 unsigned ResourceResponseBase::connectionID() const 459 { 460 lazyInit(); 461 462 return m_connectionID; 463 } 464 465 void ResourceResponseBase::setConnectionID(unsigned connectionID) 466 { 467 lazyInit(); 468 469 m_connectionID = connectionID; 456 470 } 457 471 -
trunk/WebCore/platform/network/ResourceResponseBase.h
r62348 r62927 98 98 double lastModified() const; 99 99 100 unsigned connectionID() const; 101 void setConnectionID(unsigned); 102 100 103 ResourceLoadTiming* resourceLoadTiming() const; 101 104 void setResourceLoadTiming(PassRefPtr<ResourceLoadTiming>); … … 131 134 HTTPHeaderMap m_httpHeaderFields; 132 135 time_t m_lastModifiedDate; 136 unsigned m_connectionID; 133 137 RefPtr<ResourceLoadTiming> m_resourceLoadTiming; 134 138 -
trunk/WebKit/chromium/ChangeLog
r62893 r62927 1 2010-07-08 Pavel Feldman <pfeldman@chromium.org> 2 3 Reviewed by Yury Semikhatsky. 4 5 Web Inspector: Provide detailed network info in the resources panel. 6 7 https://bugs.webkit.org/show_bug.cgi?id=40227 8 9 * WebKit.gyp: 10 * public/WebDevToolsAgent.h: 11 * public/WebURLLoadTiming.h: Added. 12 (WebKit::WebURLLoadTiming::~WebURLLoadTiming): 13 (WebKit::WebURLLoadTiming::WebURLLoadTiming): 14 (WebKit::WebURLLoadTiming::operator=): 15 (WebKit::WebURLLoadTiming::isNull): 16 * public/WebURLRequest.h: 17 * public/WebURLResponse.h: 18 * src/WebDevToolsAgentImpl.cpp: 19 (WebKit::WebDevToolsAgentImpl::willSendRequest): 20 * src/WebDevToolsAgentImpl.h: 21 * src/WebURLLoadTiming.cpp: Added. 22 (WebKit::WebURLLoadTiming::initialize): 23 (WebKit::WebURLLoadTiming::reset): 24 (WebKit::WebURLLoadTiming::assign): 25 (WebKit::WebURLLoadTiming::setDomainLookupTimes): 26 (WebKit::WebURLLoadTiming::setConnectStartTime): 27 (WebKit::WebURLLoadTiming::setRequestTimes): 28 (WebKit::WebURLLoadTiming::setHeadersAvailableTime): 29 (WebKit::WebURLLoadTiming::WebURLLoadTiming): 30 (WebKit::WebURLLoadTiming::operator=): 31 (WebKit::WebURLLoadTiming::operator PassRefPtr<ResourceLoadTiming>): 32 * src/WebURLRequest.cpp: 33 (WebKit::WebURLRequest::reportLoadTiming): 34 (WebKit::WebURLRequest::setReportLoadTiming): 35 * src/WebURLResponse.cpp: 36 (WebKit::WebURLResponse::setConnectionID): 37 (WebKit::WebURLResponse::setLoadTiming): 38 1 39 2010-07-08 Jay Civelli <jcivelli@chromium.org> 2 40 -
trunk/WebKit/chromium/WebKit.gyp
r62748 r62927 212 212 'public/WebURLError.h', 213 213 'public/WebURLLoader.h', 214 'public/WebURLLoadTiming.h', 214 215 'public/WebURLLoaderClient.h', 215 216 'public/WebURLRequest.h', … … 423 424 'src/WebString.cpp', 424 425 'src/WebURL.cpp', 426 'src/WebURLLoadTiming.cpp', 425 427 'src/WebURLRequest.cpp', 426 428 'src/WebURLRequestPrivate.h', -
trunk/WebKit/chromium/public/WebDevToolsAgent.h
r62178 r62927 82 82 83 83 virtual void identifierForInitialRequest(unsigned long resourceId, WebFrame*, const WebURLRequest&) = 0; 84 virtual void willSendRequest(unsigned long resourceId, constWebURLRequest&) = 0;84 virtual void willSendRequest(unsigned long resourceId, WebURLRequest&) = 0; 85 85 virtual void didReceiveData(unsigned long resourceId, int length) = 0; 86 86 virtual void didReceiveResponse(unsigned long resourceId, const WebURLResponse&) = 0; -
trunk/WebKit/chromium/public/WebURLRequest.h
r58380 r62927 130 130 WEBKIT_API void setReportUploadProgress(bool); 131 131 132 // Controls whether load timing info is collected for the request. 133 WEBKIT_API bool reportLoadTiming() const; 134 WEBKIT_API void setReportLoadTiming(bool); 135 132 136 WEBKIT_API TargetType targetType() const; 133 137 WEBKIT_API void setTargetType(TargetType); -
trunk/WebKit/chromium/public/WebURLResponse.h
r61865 r62927 44 44 class WebString; 45 45 class WebURL; 46 class WebURLLoadTiming; 46 47 class WebURLResponsePrivate; 47 48 … … 72 73 WEBKIT_API WebURL url() const; 73 74 WEBKIT_API void setURL(const WebURL&); 75 76 WEBKIT_API unsigned connectionID() const; 77 WEBKIT_API void setConnectionID(unsigned); 78 79 WEBKIT_API WebURLLoadTiming loadTiming(); 80 WEBKIT_API void setLoadTiming(const WebURLLoadTiming&); 74 81 75 82 WEBKIT_API double responseTime() const; -
trunk/WebKit/chromium/src/WebDevToolsAgentImpl.cpp
r62542 r62927 521 521 } 522 522 523 void WebDevToolsAgentImpl::willSendRequest(unsigned long resourceId, constWebURLRequest& request)523 void WebDevToolsAgentImpl::willSendRequest(unsigned long resourceId, WebURLRequest& request) 524 524 { 525 525 if (InspectorController* ic = inspectorController()) 526 ic->willSendRequest(resourceId, request.to ResourceRequest(), ResourceResponse());526 ic->willSendRequest(resourceId, request.toMutableResourceRequest(), ResourceResponse()); 527 527 } 528 528 -
trunk/WebKit/chromium/src/WebDevToolsAgentImpl.h
r61772 r62927 90 90 91 91 virtual void identifierForInitialRequest(unsigned long, WebFrame*, const WebURLRequest&); 92 virtual void willSendRequest(unsigned long, constWebURLRequest&);92 virtual void willSendRequest(unsigned long, WebURLRequest&); 93 93 virtual void didReceiveData(unsigned long, int length); 94 94 virtual void didReceiveResponse(unsigned long, const WebURLResponse&); -
trunk/WebKit/chromium/src/WebURLRequest.cpp
r50739 r62927 195 195 } 196 196 197 bool WebURLRequest::reportLoadTiming() const 198 { 199 return m_private->m_resourceRequest->reportLoadTiming(); 200 } 201 202 void WebURLRequest::setReportLoadTiming(bool reportLoadTiming) 203 { 204 m_private->m_resourceRequest->setReportLoadTiming(reportLoadTiming); 205 } 206 197 207 WebURLRequest::TargetType WebURLRequest::targetType() const 198 208 { -
trunk/WebKit/chromium/src/WebURLResponse.cpp
r61865 r62927 33 33 34 34 #include "ResourceResponse.h" 35 #include "ResourceLoadTiming.h" 35 36 36 37 #include "WebHTTPHeaderVisitor.h" 37 38 #include "WebString.h" 38 39 #include "WebURL.h" 40 #include "WebURLLoadTiming.h" 39 41 #include "WebURLResponsePrivate.h" 42 43 #include <wtf/RefPtr.h> 40 44 41 45 using namespace WebCore; … … 92 96 { 93 97 m_private->m_resourceResponse->setURL(url); 98 } 99 100 unsigned WebURLResponse::connectionID() const 101 { 102 return m_private->m_resourceResponse->connectionID(); 103 } 104 105 void WebURLResponse::setConnectionID(unsigned connectionID) 106 { 107 m_private->m_resourceResponse->setConnectionID(connectionID); 108 } 109 110 WebURLLoadTiming WebURLResponse::loadTiming() 111 { 112 return WebURLLoadTiming(m_private->m_resourceResponse->resourceLoadTiming()); 113 } 114 115 void WebURLResponse::setLoadTiming(const WebURLLoadTiming& timing) 116 { 117 RefPtr<ResourceLoadTiming> loadTiming = PassRefPtr<ResourceLoadTiming>(timing); 118 m_private->m_resourceResponse->setResourceLoadTiming(loadTiming.release()); 94 119 } 95 120
Note: See TracChangeset
for help on using the changeset viewer.