Changeset 62927 in webkit


Ignore:
Timestamp:
Jul 9, 2010 3:18:37 AM (14 years ago)
Author:
pfeldman@chromium.org
Message:

2010-07-08 Pavel Feldman <pfeldman@chromium.org>

Reviewed by Yury Semikhatsky.

Web Inspector: Provide detailed network info in the resources panel.

https://bugs.webkit.org/show_bug.cgi?id=40227

  • English.lproj/localizedStrings.js:
  • inspector/InspectorController.cpp: (WebCore::InspectorController::willSendRequest): (WebCore::InspectorController::didReceiveResponse):
  • inspector/InspectorController.h:
  • inspector/InspectorResource.cpp: (WebCore::InspectorResource::InspectorResource): (WebCore::InspectorResource::updateResponse): (WebCore::InspectorResource::updateScriptObject): (WebCore::InspectorResource::buildObjectForTiming):
  • inspector/InspectorResource.h:
  • inspector/front-end/ResourcesPanel.js: (WebInspector.ResourcesPanel):

2010-07-08 Pavel Feldman <pfeldman@chromium.org>

Reviewed by Yury Semikhatsky.

Web Inspector: Provide detailed network info in the resources panel.

https://bugs.webkit.org/show_bug.cgi?id=40227

  • WebKit.gyp:
  • public/WebDevToolsAgent.h:
  • public/WebURLLoadTiming.h: Added. (WebKit::WebURLLoadTiming::~WebURLLoadTiming): (WebKit::WebURLLoadTiming::WebURLLoadTiming): (WebKit::WebURLLoadTiming::operator=): (WebKit::WebURLLoadTiming::isNull):
  • public/WebURLRequest.h:
  • public/WebURLResponse.h:
  • src/WebDevToolsAgentImpl.cpp: (WebKit::WebDevToolsAgentImpl::willSendRequest):
  • src/WebDevToolsAgentImpl.h:
  • src/WebURLLoadTiming.cpp: Added. (WebKit::WebURLLoadTiming::initialize): (WebKit::WebURLLoadTiming::reset): (WebKit::WebURLLoadTiming::assign): (WebKit::WebURLLoadTiming::setDomainLookupTimes): (WebKit::WebURLLoadTiming::setConnectStartTime): (WebKit::WebURLLoadTiming::setRequestTimes): (WebKit::WebURLLoadTiming::setHeadersAvailableTime): (WebKit::WebURLLoadTiming::WebURLLoadTiming): (WebKit::WebURLLoadTiming::operator=): (WebKit::WebURLLoadTiming::operator PassRefPtr<ResourceLoadTiming>):
  • src/WebURLRequest.cpp: (WebKit::WebURLRequest::reportLoadTiming): (WebKit::WebURLRequest::setReportLoadTiming):
  • src/WebURLResponse.cpp: (WebKit::WebURLResponse::setConnectionID): (WebKit::WebURLResponse::setLoadTiming):
Location:
trunk
Files:
2 added
22 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r62926 r62927  
     12010-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
    1442010-07-09  Eric Seidel  <eric@webkit.org>
    245
  • trunk/WebCore/inspector/InspectorController.cpp

    r62897 r62927  
    948948}
    949949
    950 void InspectorController::willSendRequest(unsigned long identifier, const ResourceRequest& request, const ResourceResponse& redirectResponse)
     950void InspectorController::willSendRequest(unsigned long identifier, ResourceRequest& request, const ResourceResponse& redirectResponse)
    951951{
    952952    if (!enabled())
     
    960960    if (!resource)
    961961        return;
     962
     963    request.setReportLoadTiming(true);
    962964
    963965    if (!redirectResponse.isNull()) {
     
    965967        // See http/tests/misc/will-send-request-returns-null-on-redirect.html
    966968        if (!request.url().isEmpty()) {
    967             resource->markResponseReceivedTime();
    968969            resource->endTiming();
    969970            resource->updateResponse(redirectResponse);
     
    996997    if (RefPtr<InspectorResource> resource = getTrackedResource(identifier)) {
    997998        resource->updateResponse(response);
    998         resource->markResponseReceivedTime();
    999999
    10001000        if (resource != m_mainResource && m_frontend)
  • trunk/WebCore/inspector/InspectorController.h

    r62897 r62927  
    168168
    169169    void identifierForInitialRequest(unsigned long identifier, DocumentLoader*, const ResourceRequest&);
    170     void willSendRequest(unsigned long identifier, const ResourceRequest&, const ResourceResponse& redirectResponse);
     170    void willSendRequest(unsigned long identifier, ResourceRequest&, const ResourceResponse& redirectResponse);
    171171    void didReceiveResponse(unsigned long identifier, const ResourceResponse&);
    172172    void didReceiveContentLength(unsigned long identifier, int lengthReceived);
  • trunk/WebCore/inspector/InspectorResource.cpp

    r62535 r62927  
    4040#include "Frame.h"
    4141#include "InspectorFrontend.h"
     42#include "ResourceLoadTiming.h"
    4243#include "ResourceRequest.h"
    4344#include "ResourceResponse.h"
     
    6364    , m_loadEventTime(-1.0)
    6465    , m_domContentEventTime(-1.0)
     66    , m_connectionID(0)
    6567    , m_isMainResource(false)
    6668{
     
    129131    m_suggestedFilename = response.suggestedFilename();
    130132
     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);
    131149    m_changes.set(ResponseChange);
    132150    m_changes.set(TypeChange);
     
    140158    }
    141159}
    142 
    143160
    144161void InspectorResource::updateScriptObject(InspectorFrontend* frontend)
     
    173190        populateHeadersObject(&responseHeaders, m_responseHeaderFields);
    174191        jsonObject.set("responseHeaders", responseHeaders);
     192        jsonObject.set("connectionID", m_connectionID);
     193        if (m_loadTiming)
     194            jsonObject.set("timing", buildObjectForTiming(frontend, m_loadTiming.get()));
    175195        jsonObject.set("didResponseChange", true);
    176196    }
     
    336356}
    337357
    338 void InspectorResource::markResponseReceivedTime()
    339 {
    340     m_responseReceivedTime = currentTime();
    341     m_changes.set(TimingChange);
    342 }
    343 
    344358void InspectorResource::endTiming()
    345359{
     
    380394}
    381395
     396ScriptObject 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
    382409} // namespace WebCore
    383410
  • trunk/WebCore/inspector/InspectorResource.h

    r62535 r62927  
    5050    class InspectorFrontend;
    5151    class Frame;
     52    class ResourceLoadTiming;
     53    class ResourceRequest;
    5254    class ResourceResponse;
    53 
    54     class ResourceRequest;
    5555
    5656    class InspectorResource : public RefCounted<InspectorResource> {
     
    103103
    104104        void startTiming();
    105         void markResponseReceivedTime();
    106105        void markLoadEventTime();
    107106        void markDOMContentEventTime();
     
    153152        CachedResource* cachedResource() const;
    154153
     154        ScriptObject buildObjectForTiming(InspectorFrontend*, ResourceLoadTiming*);
     155
    155156        unsigned long m_identifier;
    156157        RefPtr<DocumentLoader> m_loader;
     
    173174        double m_loadEventTime;
    174175        double m_domContentEventTime;
     176        unsigned m_connectionID;
     177        RefPtr<ResourceLoadTiming> m_loadTiming;
    175178        ScriptString m_overrideContent;
    176179        Type m_overrideContentType;
  • trunk/WebCore/inspector/front-end/ResourcesPanel.js

    r62647 r62927  
    4747    this.graphsTreeElement.children[0].select();
    4848    this._resourceTrackingEnabled = false;
     49
     50    this._popoverHelper = new WebInspector.PopoverHelper(this.element, this._getPopoverAnchor.bind(this), this._showPopover.bind(this), true);
    4951}
    5052
     
    733735    {
    734736        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();
    735782    }
    736783}
     
    856903            var leftLabel = rightLabel;
    857904
     905        if (resource.connectionID)
     906            return {left: leftLabel, right: rightLabel};
     907
    858908        if (hasLatency && rightLabel) {
    859909            var total = this.formatValue(resource.duration);
     
    866916        if (resource.cached)
    867917            tooltip = WebInspector.UIString("%s (from cache)", tooltip);
    868 
    869918        return {left: leftLabel, right: rightLabel, tooltip: tooltip};
    870919    },
     
    12061255    this._barAreaElement = document.createElement("div");
    12071256    this._barAreaElement.className = "resources-graph-bar-area hidden";
     1257    this._barAreaElement.resource = resource;
    12081258    this._graphElement.appendChild(this._barAreaElement);
    12091259
  • trunk/WebCore/inspector/front-end/inspector.js

    r62897 r62927  
    11821182        resource.suggestedFilename = payload.suggestedFilename;
    11831183        resource.responseHeaders = payload.responseHeaders;
     1184        resource.connectionID = payload.connectionID;
     1185        resource.timing = payload.timing;
    11841186    }
    11851187
  • trunk/WebCore/loader/appcache/ApplicationCacheGroup.cpp

    r62677 r62927  
    480480        inspectorController->identifierForInitialRequest(m_currentResourceIdentifier, m_frame->loader()->documentLoader(), handle->request());
    481481        ResourceResponse redirectResponse = ResourceResponse();
    482         inspectorController->willSendRequest(m_currentResourceIdentifier, handle->request(), redirectResponse);
     482        inspectorController->willSendRequest(m_currentResourceIdentifier, request, redirectResponse);
    483483    }
    484484#endif
  • trunk/WebCore/platform/network/ResourceLoadTiming.h

    r62348 r62927  
    3535class ResourceLoadTiming : public RefCounted<ResourceLoadTiming> {
    3636public:
    37     PassRefPtr<ResourceLoadTiming> create()
     37    static PassRefPtr<ResourceLoadTiming> create()
    3838    {
    3939        return adoptRef(new ResourceLoadTiming);
     
    4343    {
    4444        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;
    5652        return timing.release();
    5753    }
     
    5955    bool operator==(const ResourceLoadTiming& other) const
    6056    {
    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;
    7264    }
    7365
     
    7769    }
    7870
    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;
    9078
    9179private:
    9280    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)
    10488    {
    10589    }
  • trunk/WebCore/platform/network/ResourceRequestBase.h

    r58647 r62927  
    132132        void setReportUploadProgress(bool reportUploadProgress) { m_reportUploadProgress = reportUploadProgress; }
    133133
     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
    134138        // What this request is for.
    135139        TargetType targetType() const { return m_targetType; }
     
    142146            , m_platformRequestUpdated(true)
    143147            , m_reportUploadProgress(false)
     148            , m_reportLoadTiming(false)
    144149            , m_targetType(TargetIsSubresource)
    145150        {
     
    155160            , m_platformRequestUpdated(false)
    156161            , m_reportUploadProgress(false)
     162            , m_reportLoadTiming(false)
    157163            , m_targetType(TargetIsSubresource)
    158164        {
     
    175181        mutable bool m_platformRequestUpdated;
    176182        bool m_reportUploadProgress;
     183        bool m_reportLoadTiming;
    177184        TargetType m_targetType;
    178185
  • trunk/WebCore/platform/network/ResourceResponseBase.cpp

    r62348 r62927  
    454454
    455455    return m_lastModifiedDate;
     456}
     457
     458unsigned ResourceResponseBase::connectionID() const
     459{
     460    lazyInit();
     461
     462    return m_connectionID;
     463}
     464
     465void ResourceResponseBase::setConnectionID(unsigned connectionID)
     466{
     467    lazyInit();
     468
     469    m_connectionID = connectionID;
    456470}
    457471
  • trunk/WebCore/platform/network/ResourceResponseBase.h

    r62348 r62927  
    9898    double lastModified() const;
    9999
     100    unsigned connectionID() const;
     101    void setConnectionID(unsigned);
     102
    100103    ResourceLoadTiming* resourceLoadTiming() const;
    101104    void setResourceLoadTiming(PassRefPtr<ResourceLoadTiming>);
     
    131134    HTTPHeaderMap m_httpHeaderFields;
    132135    time_t m_lastModifiedDate;
     136    unsigned m_connectionID;
    133137    RefPtr<ResourceLoadTiming> m_resourceLoadTiming;
    134138
  • trunk/WebKit/chromium/ChangeLog

    r62893 r62927  
     12010-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
    1392010-07-08  Jay Civelli  <jcivelli@chromium.org>
    240
  • trunk/WebKit/chromium/WebKit.gyp

    r62748 r62927  
    212212                'public/WebURLError.h',
    213213                'public/WebURLLoader.h',
     214                'public/WebURLLoadTiming.h',
    214215                'public/WebURLLoaderClient.h',
    215216                'public/WebURLRequest.h',
     
    423424                'src/WebString.cpp',
    424425                'src/WebURL.cpp',
     426                'src/WebURLLoadTiming.cpp',
    425427                'src/WebURLRequest.cpp',
    426428                'src/WebURLRequestPrivate.h',
  • trunk/WebKit/chromium/public/WebDevToolsAgent.h

    r62178 r62927  
    8282
    8383    virtual void identifierForInitialRequest(unsigned long resourceId, WebFrame*, const WebURLRequest&) = 0;
    84     virtual void willSendRequest(unsigned long resourceId, const WebURLRequest&) = 0;
     84    virtual void willSendRequest(unsigned long resourceId, WebURLRequest&) = 0;
    8585    virtual void didReceiveData(unsigned long resourceId, int length) = 0;
    8686    virtual void didReceiveResponse(unsigned long resourceId, const WebURLResponse&) = 0;
  • trunk/WebKit/chromium/public/WebURLRequest.h

    r58380 r62927  
    130130    WEBKIT_API void setReportUploadProgress(bool);
    131131
     132    // Controls whether load timing info is collected for the request.
     133    WEBKIT_API bool reportLoadTiming() const;
     134    WEBKIT_API void setReportLoadTiming(bool);
     135
    132136    WEBKIT_API TargetType targetType() const;
    133137    WEBKIT_API void setTargetType(TargetType);
  • trunk/WebKit/chromium/public/WebURLResponse.h

    r61865 r62927  
    4444class WebString;
    4545class WebURL;
     46class WebURLLoadTiming;
    4647class WebURLResponsePrivate;
    4748
     
    7273    WEBKIT_API WebURL url() const;
    7374    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&);
    7481
    7582    WEBKIT_API double responseTime() const;
  • trunk/WebKit/chromium/src/WebDevToolsAgentImpl.cpp

    r62542 r62927  
    521521}
    522522
    523 void WebDevToolsAgentImpl::willSendRequest(unsigned long resourceId, const WebURLRequest& request)
     523void WebDevToolsAgentImpl::willSendRequest(unsigned long resourceId, WebURLRequest& request)
    524524{
    525525    if (InspectorController* ic = inspectorController())
    526         ic->willSendRequest(resourceId, request.toResourceRequest(), ResourceResponse());
     526        ic->willSendRequest(resourceId, request.toMutableResourceRequest(), ResourceResponse());
    527527}
    528528
  • trunk/WebKit/chromium/src/WebDevToolsAgentImpl.h

    r61772 r62927  
    9090
    9191    virtual void identifierForInitialRequest(unsigned long, WebFrame*, const WebURLRequest&);
    92     virtual void willSendRequest(unsigned long, const WebURLRequest&);
     92    virtual void willSendRequest(unsigned long, WebURLRequest&);
    9393    virtual void didReceiveData(unsigned long, int length);
    9494    virtual void didReceiveResponse(unsigned long, const WebURLResponse&);
  • trunk/WebKit/chromium/src/WebURLRequest.cpp

    r50739 r62927  
    195195}
    196196
     197bool WebURLRequest::reportLoadTiming() const
     198{
     199    return m_private->m_resourceRequest->reportLoadTiming();
     200}
     201
     202void WebURLRequest::setReportLoadTiming(bool reportLoadTiming)
     203{
     204    m_private->m_resourceRequest->setReportLoadTiming(reportLoadTiming);
     205}
     206
    197207WebURLRequest::TargetType WebURLRequest::targetType() const
    198208{
  • trunk/WebKit/chromium/src/WebURLResponse.cpp

    r61865 r62927  
    3333
    3434#include "ResourceResponse.h"
     35#include "ResourceLoadTiming.h"
    3536
    3637#include "WebHTTPHeaderVisitor.h"
    3738#include "WebString.h"
    3839#include "WebURL.h"
     40#include "WebURLLoadTiming.h"
    3941#include "WebURLResponsePrivate.h"
     42
     43#include <wtf/RefPtr.h>
    4044
    4145using namespace WebCore;
     
    9296{
    9397    m_private->m_resourceResponse->setURL(url);
     98}
     99
     100unsigned WebURLResponse::connectionID() const
     101{
     102    return m_private->m_resourceResponse->connectionID();
     103}
     104
     105void WebURLResponse::setConnectionID(unsigned connectionID)
     106{
     107    m_private->m_resourceResponse->setConnectionID(connectionID);
     108}
     109
     110WebURLLoadTiming WebURLResponse::loadTiming()
     111{
     112    return WebURLLoadTiming(m_private->m_resourceResponse->resourceLoadTiming());
     113}
     114
     115void WebURLResponse::setLoadTiming(const WebURLLoadTiming& timing)
     116{
     117    RefPtr<ResourceLoadTiming> loadTiming = PassRefPtr<ResourceLoadTiming>(timing);
     118    m_private->m_resourceResponse->setResourceLoadTiming(loadTiming.release());
    94119}
    95120
Note: See TracChangeset for help on using the changeset viewer.