Changeset 75949 in webkit


Ignore:
Timestamp:
Jan 17, 2011 8:42:38 AM (13 years ago)
Author:
pfeldman@chromium.org
Message:

2011-01-17 Pavel Feldman <pfeldman@chromium.org>

Reviewed by Yury Semikhatsky.

Web Inspector: restore dom and network state upon frontend reuse.
https://bugs.webkit.org/show_bug.cgi?id=52574

  • inspector/Inspector.idl:
  • inspector/InspectorController.cpp: (WebCore::InspectorController::restoreInspectorStateFromCookie): (WebCore::InspectorController::populateScriptObjects): (WebCore::InspectorController::pushDataCollectedOffline): (WebCore::InspectorController::didCommitLoad):
  • inspector/InspectorController.h:
  • inspector/front-end/NetworkManager.js: (WebInspector.NetworkManager.prototype.reset):
  • inspector/front-end/NetworkPanel.js: (WebInspector.NetworkPanel.prototype.clear): (WebInspector.NetworkPanel.prototype.mainResourceChanged):
  • inspector/front-end/ResourceTreeModel.js: (WebInspector.ResourceTreeModel): (WebInspector.ResourceTreeModel.prototype.reloadCachedResources):
  • inspector/front-end/ResourcesPanel.js: (WebInspector.ResourcesPanel.prototype.clear):
  • inspector/front-end/inspector.js: (WebInspector.frontendReused):
Location:
trunk/Source/WebCore
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r75945 r75949  
     12011-01-17  Pavel Feldman  <pfeldman@chromium.org>
     2
     3        Reviewed by Yury Semikhatsky.
     4
     5        Web Inspector: restore dom and network state upon frontend reuse.
     6        https://bugs.webkit.org/show_bug.cgi?id=52574
     7
     8        * inspector/Inspector.idl:
     9        * inspector/InspectorController.cpp:
     10        (WebCore::InspectorController::restoreInspectorStateFromCookie):
     11        (WebCore::InspectorController::populateScriptObjects):
     12        (WebCore::InspectorController::pushDataCollectedOffline):
     13        (WebCore::InspectorController::didCommitLoad):
     14        * inspector/InspectorController.h:
     15        * inspector/front-end/NetworkManager.js:
     16        (WebInspector.NetworkManager.prototype.reset):
     17        * inspector/front-end/NetworkPanel.js:
     18        (WebInspector.NetworkPanel.prototype.clear):
     19        (WebInspector.NetworkPanel.prototype.mainResourceChanged):
     20        * inspector/front-end/ResourceTreeModel.js:
     21        (WebInspector.ResourceTreeModel):
     22        (WebInspector.ResourceTreeModel.prototype.reloadCachedResources):
     23        * inspector/front-end/ResourcesPanel.js:
     24        (WebInspector.ResourcesPanel.prototype.clear):
     25        * inspector/front-end/inspector.js:
     26        (WebInspector.frontendReused):
     27
    1282011-01-17  Csaba Osztrogonác  <ossy@webkit.org>
    229
  • trunk/Source/WebCore/inspector/Inspector.idl

    r75939 r75949  
    4949        [domain=Inspector] void openInInspectedWindow(in String url);
    5050        [domain=Inspector] void setSearchingForNode(in boolean enabled, out boolean newState);
     51        [notify, domain=Inspector] void frontendReused();
    5152        [notify, domain=Inspector] void addNodesToSearchResult(out Array nodeIds);
    5253        [notify, domain=Inspector] void bringToFront();
     
    186187        [notify, domain=DOM] void childNodeInserted(out long parentId, out long prevId, out Object node);
    187188        [notify, domain=DOM] void childNodeRemoved(out long parentId, out long id);
    188         [notify, domain=DOM] void didCommitLoad();
    189189
    190190        ///////////////////////////////////////////////////////////////////////
  • trunk/Source/WebCore/inspector/InspectorController.cpp

    r75939 r75949  
    227227    m_state->restoreFromInspectorCookie(inspectorStateCookie);
    228228
    229     if (!m_frontend)
     229    if (!m_frontend) {
    230230        connectFrontend();
     231        m_frontend->frontendReused();
     232        m_frontend->inspectedURLChanged(m_inspectedPage->mainFrame()->loader()->url().string());
     233        m_domAgent->setDocument(m_inspectedPage->mainFrame()->document());
     234        pushDataCollectedOffline();
     235    }
    231236
    232237    if (m_state->getBoolean(InspectorState::timelineProfilerEnabled))
     
    547552#endif
    548553
    549     m_domAgent->setDocument(m_inspectedPage->mainFrame()->document());
     554    pushDataCollectedOffline();
    550555
    551556    if (m_nodeToFocus)
    552557        focusNode();
     558
     559    // Dispatch pending frontend commands
     560    for (Vector<pair<long, String> >::iterator it = m_pendingEvaluateTestCommands.begin(); it != m_pendingEvaluateTestCommands.end(); ++it)
     561        m_frontend->evaluateForTestInFrontend((*it).first, (*it).second);
     562    m_pendingEvaluateTestCommands.clear();
     563
     564    restoreDebugger();
     565    restoreProfiler(ProfilerRestoreNoAction);
     566}
     567
     568void InspectorController::pushDataCollectedOffline()
     569{
     570    m_domAgent->setDocument(m_inspectedPage->mainFrame()->document());
    553571
    554572#if ENABLE(DATABASE)
     
    569587    }
    570588#endif
    571 
    572     // Dispatch pending frontend commands
    573     for (Vector<pair<long, String> >::iterator it = m_pendingEvaluateTestCommands.begin(); it != m_pendingEvaluateTestCommands.end(); ++it)
    574         m_frontend->evaluateForTestInFrontend((*it).first, (*it).second);
    575     m_pendingEvaluateTestCommands.clear();
    576 
    577     restoreDebugger();
    578     restoreProfiler(ProfilerRestoreNoAction);
    579589}
    580590
     
    668678#endif
    669679
    670         if (m_frontend) {
    671             m_frontend->didCommitLoad();
     680        if (m_frontend)
    672681            m_domAgent->setDocument(m_inspectedPage->mainFrame()->document());
    673         }
    674682    }
    675683}
  • trunk/Source/WebCore/inspector/InspectorController.h

    r75939 r75949  
    258258
    259259    void populateScriptObjects();
     260    void pushDataCollectedOffline();
    260261    void restoreDebugger();
    261262    enum ProfilerRestoreAction {
  • trunk/Source/WebCore/inspector/front-end/DOMAgent.js

    r75791 r75949  
    374374    },
    375375
    376     _didCommitLoad: function()
    377     {
    378         // Cleanup elements panel early on inspected page refresh.
    379         this._setDocument(null);
    380     },
    381 
    382376    _setDocument: function(payload)
    383377    {
     
    502496    {
    503497        this._domAgent._childNodeRemoved(parentId, nodeId);
    504     },
    505 
    506     didCommitLoad: function()
    507     {
    508         this._domAgent._didCommitLoad();
    509498    }
    510499}
  • trunk/Source/WebCore/inspector/front-end/NetworkManager.js

    r75786 r75949  
    8888
    8989WebInspector.NetworkManager.prototype = {
     90    reset: function()
     91    {
     92        WebInspector.panels.network.clear();
     93        WebInspector.panels.resources.clear();
     94        this._resourceTreeModel.reloadCachedResources();
     95    },
     96
    9097    identifierForInitialRequest: function(identifier, url, loader, callStack)
    9198    {
  • trunk/Source/WebCore/inspector/front-end/NetworkPanel.js

    r75786 r75949  
    805805    },
    806806
     807    clear: function()
     808    {
     809        if (this._preserveLogToggle.toggled)
     810            return;
     811
     812        this._reset();
     813    },
     814
    807815    mainResourceChanged: function()
    808816    {
    809         if (this._preserveLogToggle.toggled)
    810             return;
    811 
    812         this._reset();
     817        this.clear();
    813818        // Now resurrect the main resource along with all redirects that lead to it.
    814819        var resourcesToAppend = (WebInspector.mainResource.redirects || []).concat(WebInspector.mainResource);
  • trunk/Source/WebCore/inspector/front-end/ResourceTreeModel.js

    r75791 r75949  
    3232WebInspector.ResourceTreeModel = function()
    3333{
    34     this._resourcesByURL = {};
    35     this._resourcesByFrameId = {};
    36     this._subframes = {};
    37     InspectorBackend.cachedResources(this._processCachedResources.bind(this));
     34    this.reloadCachedResources();
    3835}
    3936
    4037WebInspector.ResourceTreeModel.prototype = {
     38    reloadCachedResources: function()
     39    {
     40        this._resourcesByURL = {};
     41        this._resourcesByFrameId = {};
     42        this._subframes = {};
     43        InspectorBackend.cachedResources(this._processCachedResources.bind(this));
     44    },
     45
    4146    addOrUpdateFrame: function(frame)
    4247    {
  • trunk/Source/WebCore/inspector/front-end/ResourcesPanel.js

    r75613 r75949  
    166166    },
    167167
     168    clear: function()
     169    {
     170        this.resourcesListTreeElement.removeChildren();
     171        this.reset();
     172    },
     173
    168174    addOrUpdateFrame: function(parentFrameId, frameId, title, subtitle)
    169175    {
  • trunk/Source/WebCore/inspector/front-end/inspector.js

    r75792 r75949  
    16511651    this.currentPanel.currentQuery = query;
    16521652    this.currentPanel.performSearch(query);
     1653}
     1654
     1655WebInspector.frontendReused = function()
     1656{
     1657    this.networkManager.reset();
     1658    this.reset();
    16531659}
    16541660
Note: See TracChangeset for help on using the changeset viewer.