Changeset 76022 in webkit


Ignore:
Timestamp:
Jan 18, 2011 6:25:34 AM (13 years ago)
Author:
caseq@chromium.org
Message:

2011-01-17 Andrey Kosyakov <caseq@chromium.org>

Reviewed by Yury Semikhatsky.

Web Inspector: [refactoring] use events to notify NetworkManager clients
https://bugs.webkit.org/show_bug.cgi?id=52588

  • inspector/front-end/AuditLauncherView.js: (WebInspector.AuditLauncherView): Do not expose public interface to resource count. Do not reset resource count upon reset(). (WebInspector.AuditLauncherView.prototype._resetResourceCount): (WebInspector.AuditLauncherView.prototype._onResourceStarted): (WebInspector.AuditLauncherView.prototype._onResourceFinished):
  • inspector/front-end/AuditsPanel.js: Do not expose public interface to resource start/finish events.
  • inspector/front-end/ExtensionServer.js: (WebInspector.ExtensionServer): (WebInspector.ExtensionServer.prototype._notifyResourceFinished): (WebInspector.ExtensionServer.prototype.initExtensions):
  • inspector/front-end/NetworkManager.js: Dispatch events rather than directly call clients. (WebInspector.NetworkManager): (WebInspector.NetworkManager.prototype.willSendRequest): (WebInspector.NetworkManager.prototype.markResourceAsCached): (WebInspector.NetworkManager.prototype.didReceiveResponse): (WebInspector.NetworkManager.prototype.didReceiveContentLength): (WebInspector.NetworkManager.prototype.setInitialContent): (WebInspector.NetworkManager.prototype.didCommitLoadForFrame): (WebInspector.NetworkManager.prototype.willSendWebSocketHandshakeRequest): (WebInspector.NetworkManager.prototype.didReceiveWebSocketHandshakeResponse): (WebInspector.NetworkManager.prototype._startResource): (WebInspector.NetworkManager.prototype._finishResource):
  • inspector/front-end/NetworkPanel.js: (WebInspector.NetworkPanel): (WebInspector.NetworkPanel.prototype._onResourceStarted): (WebInspector.NetworkPanel.prototype._appendResource): (WebInspector.NetworkPanel.prototype._onResourceUpdated): (WebInspector.NetworkPanel.prototype._refreshResource): (WebInspector.NetworkPanel.prototype._onMainResourceChanged):
  • inspector/front-end/ResourcesPanel.js: (WebInspector.ResourcesPanel): (WebInspector.ResourcesPanel.prototype._refreshResource):
Location:
trunk/Source/WebCore
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r76021 r76022  
     12011-01-17  Andrey Kosyakov  <caseq@chromium.org>
     2
     3        Reviewed by Yury Semikhatsky.
     4
     5        Web Inspector: [refactoring] use events to notify NetworkManager clients
     6        https://bugs.webkit.org/show_bug.cgi?id=52588
     7
     8        * inspector/front-end/AuditLauncherView.js:
     9        (WebInspector.AuditLauncherView): Do not expose public interface to resource count. Do not reset resource count upon reset().
     10        (WebInspector.AuditLauncherView.prototype._resetResourceCount):
     11        (WebInspector.AuditLauncherView.prototype._onResourceStarted):
     12        (WebInspector.AuditLauncherView.prototype._onResourceFinished):
     13        * inspector/front-end/AuditsPanel.js: Do not expose public interface to resource start/finish events.
     14        * inspector/front-end/ExtensionServer.js:
     15        (WebInspector.ExtensionServer):
     16        (WebInspector.ExtensionServer.prototype._notifyResourceFinished):
     17        (WebInspector.ExtensionServer.prototype.initExtensions):
     18        * inspector/front-end/NetworkManager.js: Dispatch events rather than directly call clients.
     19        (WebInspector.NetworkManager):
     20        (WebInspector.NetworkManager.prototype.willSendRequest):
     21        (WebInspector.NetworkManager.prototype.markResourceAsCached):
     22        (WebInspector.NetworkManager.prototype.didReceiveResponse):
     23        (WebInspector.NetworkManager.prototype.didReceiveContentLength):
     24        (WebInspector.NetworkManager.prototype.setInitialContent):
     25        (WebInspector.NetworkManager.prototype.didCommitLoadForFrame):
     26        (WebInspector.NetworkManager.prototype.willSendWebSocketHandshakeRequest):
     27        (WebInspector.NetworkManager.prototype.didReceiveWebSocketHandshakeResponse):
     28        (WebInspector.NetworkManager.prototype._startResource):
     29        (WebInspector.NetworkManager.prototype._finishResource):
     30        * inspector/front-end/NetworkPanel.js:
     31        (WebInspector.NetworkPanel):
     32        (WebInspector.NetworkPanel.prototype._onResourceStarted):
     33        (WebInspector.NetworkPanel.prototype._appendResource):
     34        (WebInspector.NetworkPanel.prototype._onResourceUpdated):
     35        (WebInspector.NetworkPanel.prototype._refreshResource):
     36        (WebInspector.NetworkPanel.prototype._onMainResourceChanged):
     37        * inspector/front-end/ResourcesPanel.js:
     38        (WebInspector.ResourcesPanel):
     39        (WebInspector.ResourcesPanel.prototype._refreshResource):
     40
    1412011-01-18  Pavel Feldman  <pfeldman@chromium.org>
    242
  • trunk/Source/WebCore/inspector/front-end/AuditLauncherView.js

    r75950 r76022  
    11/*
    2  * Copyright (C) 2009 Google Inc. All rights reserved.
     2 * Copyright (C) 2011 Google Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    5151    this._headerElement.textContent = WebInspector.UIString("No audits to run");
    5252    this._contentElement.appendChild(this._headerElement);
     53
     54    WebInspector.networkManager.addEventListener(WebInspector.NetworkManager.EventTypes.ResourceStarted, this._onResourceStarted, this);
     55    WebInspector.networkManager.addEventListener(WebInspector.NetworkManager.EventTypes.ResourceFinished, this._onResourceFinished, this);
    5356}
    5457
    5558WebInspector.AuditLauncherView.prototype = {
    56     get totalResources()
    57     {
    58         return this._totalResources;
    59     },
    60 
    61     set totalResources(x)
    62     {
    63         if (this._totalResources === x)
    64             return;
    65         this._totalResources = x;
    66         this._updateResourceProgress();
    67     },
    68 
    69     get loadedResources()
    70     {
    71         return this._loadedResources;
    72     },
    73 
    74     set loadedResources(x)
    75     {
    76         if (this._loadedResources === x)
    77             return;
    78         this._loadedResources = x;
    79         this._updateResourceProgress();
    80     },
    81 
    8259    _resetResourceCount: function()
    8360    {
    84         this.loadedResources = 0;
    85         this.totalResources = 0;
    86     },
    87 
    88     resourceStarted: function(resource)
    89     {
     61        this._loadedResources = 0;
     62        this._totalResources = 0;
     63    },
     64
     65    _onResourceStarted: function(event)
     66    {
     67        var resource = event.data;
    9068        // Ignore long-living WebSockets for the sake of progress indicator, as we won't be waiting them anyway.
    91         if (resource.type !== WebInspector.Resource.Type.WebSocket)
    92             ++this.totalResources;
    93     },
    94 
    95     resourceFinished: function(resource)
    96     {
     69        if (resource.type === WebInspector.Resource.Type.WebSocket)
     70            return;
     71        ++this._totalResources;
     72        this._updateResourceProgress();
     73    },
     74
     75    _onResourceFinished: function(event)
     76    {
     77        var resource = event.data;
    9778        // See resorceStarted for details.
    98         if (resource.type !== WebInspector.Resource.Type.WebSocket)
    99             ++this.loadedResources;
    100     },
    101 
    102     reset: function()
    103     {
    104         this._resetResourceCount();
     79        if (resource.type === WebInspector.Resource.Type.WebSocket)
     80            return;
     81        ++this._loadedResources;
     82        this._updateResourceProgress();
    10583    },
    10684
     
    265243        } else
    266244            this._resourceProgressContainer.removeStyleClass("hidden");
    267         this._resourceProgressTextElement.textContent = WebInspector.UIString("Loading (%d of %d)", this.loadedResources, this.totalResources);
     245        this._resourceProgressTextElement.textContent = WebInspector.UIString("Loading (%d of %d)", this._loadedResources, this._totalResources);
    268246    },
    269247
  • trunk/Source/WebCore/inspector/front-end/AuditsPanel.js

    r75786 r76022  
    9797    },
    9898
    99     resourceStarted: function(resource)
    100     {
    101         this._launcherView.resourceStarted(resource);
    102     },
    103 
    104     resourceFinished: function(resource)
    105     {
    106         this._launcherView.resourceFinished(resource);
    107     },
    108 
    10999    addCategory: function(category)
    110100    {
     
    247237    },
    248238
    249     reset: function()
    250     {
    251         this._launcherView.reset();
    252     },
    253 
    254239    attach: function()
    255240    {
  • trunk/Source/WebCore/inspector/front-end/ExtensionServer.js

    r75786 r76022  
    5454    this._registerHandler("unsubscribe", this._onUnsubscribe.bind(this));
    5555
    56 
    5756    window.addEventListener("message", this._onWindowMessage.bind(this), false);
    5857}
     
    6968    },
    7069
    71     notifyResourceFinished: function(resource)
    72     {
    73         this._postNotification("resource-finished", resource.identifier, (new WebInspector.HAREntry(resource)).build());
    74     },
    75 
    7670    notifySearchAction: function(panelId, action, searchString)
    7771    {
     
    113107    {
    114108        delete this._clientObjects[auditRun.id];
     109    },
     110
     111    _notifyResourceFinished: function(event)
     112    {
     113        var resource = event.data;
     114        this._postNotification("resource-finished", resource.identifier, (new WebInspector.HAREntry(resource)).build());
    115115    },
    116116
     
    357357    initExtensions: function()
    358358    {
     359        // The networkManager is normally created after the ExtensionServer is constructed, but before initExtensions() is called.
     360        WebInspector.networkManager.addEventListener(WebInspector.NetworkManager.EventTypes.ResourceFinished, this._notifyResourceFinished, this);
     361
    359362        InspectorExtensionRegistry.getExtensionsAsync();
    360363    },
  • trunk/Source/WebCore/inspector/front-end/NetworkManager.js

    r75950 r76022  
    3131WebInspector.NetworkManager = function(resourceTreeModel)
    3232{
     33    WebInspector.Object.call(this);
     34
    3335    this._inflightResources = {};
    3436    this._resourceTreeModel = resourceTreeModel;
     
    8789}
    8890
     91WebInspector.NetworkManager.EventTypes = {
     92    ResourceStarted: "ResourceStarted",
     93    ResourceUpdated: "ResourceUpdated",
     94    ResourceFinished: "ResourceFinished",
     95    MainResourceCommitLoad: "MainResourceCommitLoad"
     96}
     97
    8998WebInspector.NetworkManager.prototype = {
    9099    reset: function()
     
    120129            this._startResource(resource);
    121130        else
    122             WebInspector.panels.network.refreshResource(resource);
     131            this._updateResource(resource);
    123132    },
    124133
     
    130139
    131140        resource.cached = true;
    132         WebInspector.panels.network.refreshResource(resource);
     141        this._updateResource(resource);
    133142    },
    134143
     
    144153        WebInspector.NetworkManager.updateResourceWithResponse(resource, response);
    145154
    146         WebInspector.panels.network.refreshResource(resource);
     155        this._updateResource(resource);
    147156        this._resourceTreeModel.addResourceToFrame(resource.loader.frameId, resource);
    148157    },
     
    157166        resource.endTime = time;
    158167
    159         WebInspector.panels.network.refreshResource(resource);
     168        this._updateResource(resource);
    160169    },
    161170
     
    205214        resource.type = WebInspector.Resource.Type[type];
    206215        resource.setInitialContent(sourceString);
    207         WebInspector.panels.resources.refreshResource(resource);
    208         WebInspector.panels.network.refreshResource(resource);
     216        this._updateResource(resource);
    209217    },
    210218
     
    217225                WebInspector.mainResource = mainResource;
    218226                mainResource.isMainResource = true;
    219                 WebInspector.panels.network.mainResourceChanged();
     227                this.dispatchEventToListeners(WebInspector.NetworkManager.EventTypes.MainResourceCommitLoad, mainResource);
    220228            }
    221229        }
     
    240248        resource.startTime = time;
    241249
    242         WebInspector.panels.network.refreshResource(resource);
     250        this._updateResource(resource);
    243251    },
    244252
     
    255263        resource.responseReceivedTime = time;
    256264
    257         WebInspector.panels.network.refreshResource(resource);
     265        this._updateResource(resource);
    258266    },
    259267
     
    284292    },
    285293
    286     _startResource: function(resource, skipRefresh)
     294    _startResource: function(resource)
    287295    {
    288296        this._inflightResources[resource.identifier] = resource;
    289         WebInspector.panels.network.appendResource(resource, skipRefresh);
    290         WebInspector.panels.audits.resourceStarted(resource);
     297        this.dispatchEventToListeners(WebInspector.NetworkManager.EventTypes.ResourceStarted, resource);
     298    },
     299
     300    _updateResource: function(resource)
     301    {
     302        this.dispatchEventToListeners(WebInspector.NetworkManager.EventTypes.ResourceUpdated, resource);
    291303    },
    292304
     
    295307        resource.endTime = finishTime;
    296308        resource.finished = true;
    297         WebInspector.panels.network.refreshResource(resource);
    298         WebInspector.panels.audits.resourceFinished(resource);
    299         WebInspector.extensionServer.notifyResourceFinished(resource);
     309        this.dispatchEventToListeners(WebInspector.NetworkManager.EventTypes.ResourceFinished, resource);
    300310        delete this._inflightResources[resource.identifier];
    301311    }
    302312}
     313
     314WebInspector.NetworkManager.prototype.__proto__ = WebInspector.Object.prototype;
  • trunk/Source/WebCore/inspector/front-end/NetworkPanel.js

    r75969 r76022  
    7979
    8080    this._toggleGridMode();
     81
     82    WebInspector.networkManager.addEventListener(WebInspector.NetworkManager.EventTypes.ResourceStarted, this._onResourceStarted, this);
     83    WebInspector.networkManager.addEventListener(WebInspector.NetworkManager.EventTypes.ResourceUpdated, this._onResourceUpdated, this);
     84    WebInspector.networkManager.addEventListener(WebInspector.NetworkManager.EventTypes.ResourceFinished, this._onResourceUpdated, this);
     85    WebInspector.networkManager.addEventListener(WebInspector.NetworkManager.EventTypes.MainResourceCommitLoad, this._onMainResourceCommitLoad, this);
    8186}
    8287
     
    773778    },
    774779
    775     appendResource: function(resource)
     780    _onResourceStarted: function(event)
     781    {
     782        this._appendResource(event.data);
     783    },
     784
     785    _appendResource: function(resource)
    776786    {
    777787        this._resources.push(resource);
     
    782792        if (resource.redirects) {
    783793            for (var i = 0; i < resource.redirects.length; ++i)
    784                 this.refreshResource(resource.redirects[i]);
    785         }
    786 
    787         this.refreshResource(resource);
    788     },
    789 
    790     refreshResource: function(resource)
     794                this._refreshResource(resource.redirects[i]);
     795        }
     796
     797        this._refreshResource(resource);
     798    },
     799
     800    _onResourceUpdated: function(event)
     801    {
     802        this._refreshResource(event.data);
     803    },
     804
     805    _refreshResource: function(resource)
    791806    {
    792807        this._staleResources.push(resource);
     
    812827    },
    813828
    814     mainResourceChanged: function()
     829    _onMainResourceCommitLoad: function()
    815830    {
    816831        if (this._preserveLogToggle.toggled)
     
    820835        // Now resurrect the main resource along with all redirects that lead to it.
    821836        var resourcesToAppend = (WebInspector.mainResource.redirects || []).concat(WebInspector.mainResource);
    822         resourcesToAppend.forEach(this.appendResource, this);
     837        resourcesToAppend.forEach(this._appendResource, this);
    823838    },
    824839
  • trunk/Source/WebCore/inspector/front-end/ResourcesPanel.js

    r75952 r76022  
    7979    this.sidebarElement.addEventListener("mousemove", this._onmousemove.bind(this), false);
    8080    this.sidebarElement.addEventListener("mouseout", this._onmouseout.bind(this), false);
     81
     82    WebInspector.networkManager.addEventListener(WebInspector.NetworkManager.EventTypes.ResourceUpdated, this._refreshResource, this);
    8183}
    8284
     
    254256    },
    255257
    256     refreshResource: function(resource)
    257     {
     258    _refreshResource: function(event)
     259    {
     260        var resource = event.data;
    258261        // FIXME: do not add XHR in the first place based on the native instrumentation.
    259262        if (resource.type === WebInspector.Resource.Type.XHR) {
Note: See TracChangeset for help on using the changeset viewer.