Changeset 100906 in webkit


Ignore:
Timestamp:
Nov 21, 2011, 5:37:06 AM (14 years ago)
Author:
pfeldman@chromium.org
Message:

Web Inspector: get rid of Panel::reset in the front-end.
https://bugs.webkit.org/show_bug.cgi?id=72587

I'm slowly getting rid of the Inspector protocol domain. It currently
contains methods that did not find their home in the meaningful domains.
This change removes reset protocol method.

Reviewed by Yury Semikhatsky.

  • inspector/Inspector.json:
  • inspector/InspectorAgent.cpp:

(WebCore::InspectorAgent::didCommitLoad):

  • inspector/InspectorDebuggerAgent.cpp:

(WebCore::InspectorDebuggerAgent::didClearMainFrameWindowObject):

  • inspector/InspectorDebuggerAgent.h:
  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
(WebCore::InspectorInstrumentation::didCommitLoadImpl):

  • inspector/front-end/ApplicationCacheModel.js:

(WebInspector.ApplicationCacheModel.prototype._frameNavigated):
(WebInspector.ApplicationCacheModel.prototype._frameDetached):

  • inspector/front-end/DebuggerModel.js:

(WebInspector.DebuggerModel.prototype._globalObjectCleared):
(WebInspector.DebuggerDispatcher.prototype.globalObjectCleared):

  • inspector/front-end/DebuggerPresentationModel.js:

(WebInspector.DebuggerPresentationModel):
(WebInspector.DebuggerPresentationModel.prototype._debuggerReset):

  • inspector/front-end/ExtensionServer.js:

(WebInspector.ExtensionServer):
(WebInspector.ExtensionServer.prototype._mainFrameNavigated):

  • inspector/front-end/JavaScriptContextManager.js:

(WebInspector.JavaScriptContextManager.prototype._frameDetached):
(WebInspector.FrameEvaluationContext.prototype.get frameId):

  • inspector/front-end/NetworkLog.js:

(WebInspector.NetworkLog):
(WebInspector.NetworkLog.prototype._mainFrameNavigated):

  • inspector/front-end/NetworkPanel.js:

(WebInspector.NetworkLogView):
(WebInspector.NetworkLogView.prototype._mainFrameNavigated):

  • inspector/front-end/ResourceTreeModel.js:

(WebInspector.ResourceTreeModel.prototype._frameNavigated):
(WebInspector.ResourceTreeModel.prototype._frameDetached):
(WebInspector.ResourceTreeModel.prototype._clearChildFramesAndResources):

  • inspector/front-end/ResourcesPanel.js:

(WebInspector.ResourcesPanel.prototype._reset):
(WebInspector.ResourcesPanel.prototype._frameDetached):

  • inspector/front-end/ScriptsPanel.js:

(WebInspector.ScriptsPanel.prototype._debuggerWasDisabled):
(WebInspector.ScriptsPanel.prototype._reset):

  • inspector/front-end/WorkerManager.js:

(WebInspector.WorkerManager):
(WebInspector.WorkerManager.prototype._mainFrameNavigated):

  • inspector/front-end/inspector.js:
Location:
trunk/Source/WebCore
Files:
19 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r100903 r100906  
     12011-11-18  Pavel Feldman  <pfeldman@google.com>
     2
     3        Web Inspector: get rid of Panel::reset in the front-end.
     4        https://bugs.webkit.org/show_bug.cgi?id=72587
     5
     6        I'm slowly getting rid of the Inspector protocol domain. It currently
     7        contains methods that did not find their home in the meaningful domains.
     8        This change removes reset protocol method.
     9
     10        Reviewed by Yury Semikhatsky.
     11
     12        * inspector/Inspector.json:
     13        * inspector/InspectorAgent.cpp:
     14        (WebCore::InspectorAgent::didCommitLoad):
     15        * inspector/InspectorDebuggerAgent.cpp:
     16        (WebCore::InspectorDebuggerAgent::didClearMainFrameWindowObject):
     17        * inspector/InspectorDebuggerAgent.h:
     18        * inspector/InspectorInstrumentation.cpp:
     19        (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
     20        (WebCore::InspectorInstrumentation::didCommitLoadImpl):
     21        * inspector/front-end/ApplicationCacheModel.js:
     22        (WebInspector.ApplicationCacheModel.prototype._frameNavigated):
     23        (WebInspector.ApplicationCacheModel.prototype._frameDetached):
     24        * inspector/front-end/DebuggerModel.js:
     25        (WebInspector.DebuggerModel.prototype._globalObjectCleared):
     26        (WebInspector.DebuggerDispatcher.prototype.globalObjectCleared):
     27        * inspector/front-end/DebuggerPresentationModel.js:
     28        (WebInspector.DebuggerPresentationModel):
     29        (WebInspector.DebuggerPresentationModel.prototype._debuggerReset):
     30        * inspector/front-end/ExtensionServer.js:
     31        (WebInspector.ExtensionServer):
     32        (WebInspector.ExtensionServer.prototype._mainFrameNavigated):
     33        * inspector/front-end/JavaScriptContextManager.js:
     34        (WebInspector.JavaScriptContextManager.prototype._frameDetached):
     35        (WebInspector.FrameEvaluationContext.prototype.get frameId):
     36        * inspector/front-end/NetworkLog.js:
     37        (WebInspector.NetworkLog):
     38        (WebInspector.NetworkLog.prototype._mainFrameNavigated):
     39        * inspector/front-end/NetworkPanel.js:
     40        (WebInspector.NetworkLogView):
     41        (WebInspector.NetworkLogView.prototype._mainFrameNavigated):
     42        * inspector/front-end/ResourceTreeModel.js:
     43        (WebInspector.ResourceTreeModel.prototype._frameNavigated):
     44        (WebInspector.ResourceTreeModel.prototype._frameDetached):
     45        (WebInspector.ResourceTreeModel.prototype._clearChildFramesAndResources):
     46        * inspector/front-end/ResourcesPanel.js:
     47        (WebInspector.ResourcesPanel.prototype._reset):
     48        (WebInspector.ResourcesPanel.prototype._frameDetached):
     49        * inspector/front-end/ScriptsPanel.js:
     50        (WebInspector.ScriptsPanel.prototype._debuggerWasDisabled):
     51        (WebInspector.ScriptsPanel.prototype._reset):
     52        * inspector/front-end/WorkerManager.js:
     53        (WebInspector.WorkerManager):
     54        (WebInspector.WorkerManager.prototype._mainFrameNavigated):
     55        * inspector/front-end/inspector.js:
     56
    1572011-06-20  Pavel Feldman  <pfeldman@chromium.org>
    258
  • trunk/Source/WebCore/inspector/Inspector.json

    r100900 r100906  
    1616            {
    1717                "name": "disconnectFromBackend"
    18             },
    19             {
    20                 "name": "reset"
    2118            },
    2219            {
     
    19531950            },
    19541951            {
     1952                "name": "globalObjectCleared",
     1953                "description": "Called when global has been cleared and debugger client should reset its state. Happens upon navigation or reload."
     1954            },
     1955            {
    19551956                "name": "scriptParsed",
    19561957                "parameters": [
  • trunk/Source/WebCore/inspector/InspectorAgent.cpp

    r99709 r100906  
    137137{
    138138    m_didCommitLoadFired = true;
    139     if (m_frontend)
    140         m_frontend->inspector()->reset();
    141 
    142139    m_injectedScriptManager->discardInjectedScripts();
    143140#if ENABLE(WORKERS)
  • trunk/Source/WebCore/inspector/InspectorDebuggerAgent.cpp

    r100695 r100906  
    165165}
    166166
    167 void InspectorDebuggerAgent::inspectedURLChanged(const String&)
     167void InspectorDebuggerAgent::didClearMainFrameWindowObject()
    168168{
    169169    m_scripts.clear();
    170170    m_breakpointIdToDebugServerBreakpointIds.clear();
     171    if (m_frontend)
     172        m_frontend->globalObjectCleared();
    171173}
    172174
  • trunk/Source/WebCore/inspector/InspectorDebuggerAgent.h

    r100695 r100906  
    7373    void clearFrontend();
    7474
    75     void inspectedURLChanged(const String& url);
     75    void didClearMainFrameWindowObject();
    7676
    7777    // Part of the protocol.
  • trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp

    r98237 r100906  
    9494void InspectorInstrumentation::didClearWindowObjectInWorldImpl(InstrumentingAgents* instrumentingAgents, Frame* frame, DOMWrapperWorld* world)
    9595{
    96     if (InspectorPageAgent* pageAgent = instrumentingAgents->inspectorPageAgent())
     96    InspectorPageAgent* pageAgent = instrumentingAgents->inspectorPageAgent();
     97    if (pageAgent)
    9798        pageAgent->didClearWindowObjectInWorld(frame, world);
    9899    if (InspectorAgent* inspectorAgent = instrumentingAgents->inspectorAgent())
    99100        inspectorAgent->didClearWindowObjectInWorld(frame, world);
     101#if ENABLE(JAVASCRIPT_DEBUGGER)
     102    if (InspectorDebuggerAgent* debuggerAgent = instrumentingAgents->inspectorDebuggerAgent()) {
     103        if (pageAgent && world == mainThreadNormalWorld() && frame == pageAgent->mainFrame())
     104            debuggerAgent->didClearMainFrameWindowObject();
     105    }
     106#endif
    100107}
    101108
     
    639646        if (InspectorResourceAgent* resourceAgent = instrumentingAgents->inspectorResourceAgent())
    640647            resourceAgent->mainFrameNavigated(loader);
    641 
    642 #if ENABLE(JAVASCRIPT_DEBUGGER)
    643         if (InspectorDebuggerAgent* debuggerAgent = instrumentingAgents->inspectorDebuggerAgent()) {
    644             KURL url = inspectorAgent->inspectedURLWithoutFragment();
    645             debuggerAgent->inspectedURLChanged(url);
    646         }
    647 #endif
    648648#if ENABLE(JAVASCRIPT_DEBUGGER) && USE(JSC)
    649649        if (InspectorProfilerAgent* profilerAgent = instrumentingAgents->inspectorProfilerAgent()) {
  • trunk/Source/WebCore/inspector/front-end/ApplicationCacheModel.js

    r100894 r100906  
    5757    _frameNavigated: function(event)
    5858    {
    59         if (event.data.isMainFrame) {
     59        if (event.data["isMainFrame"]) {
    6060            this._mainFrameNavigated();
    6161            return;
     
    6969    _frameDetached: function(event)
    7070    {
    71         var frameId = event.data;
    72         this._frameManifestRemoved(frameId);
     71        var frame = event.data;
     72        this._frameManifestRemoved(frame.id);
    7373    },
    7474   
  • trunk/Source/WebCore/inspector/front-end/DebuggerModel.js

    r100695 r100906  
    7575    FailedToParseScriptSource: "failed-to-parse-script-source",
    7676    BreakpointResolved: "breakpoint-resolved",
    77     Reset: "reset"
     77    GlobalObjectCleared: "global-object-cleared"
    7878}
    7979
     
    219219    },
    220220
    221     reset: function()
     221    _globalObjectCleared: function()
    222222    {
    223223        this._debuggerPausedDetails = null;
    224224        this._scripts = {};
    225         this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.Reset);
     225        this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.GlobalObjectCleared);
    226226    },
    227227
     
    396396    },
    397397
     398    globalObjectCleared: function()
     399    {
     400        this._debuggerModel._globalObjectCleared();
     401    },
     402
    398403    /**
    399404     * @param {DebuggerAgent.ScriptId} scriptId
  • trunk/Source/WebCore/inspector/front-end/DebuggerPresentationModel.js

    r100695 r100906  
    4848    WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.DebuggerPaused, this._debuggerPaused, this);
    4949    WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.DebuggerResumed, this._debuggerResumed, this);
    50     WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.Reset, this._debuggerReset, this);
     50    WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.GlobalObjectCleared, this._debuggerReset, this);
    5151
    5252    WebInspector.console.addEventListener(WebInspector.ConsoleModel.Events.MessageAdded, this._consoleMessageAdded, this);
     
    6666    DebuggerPaused: "debugger-paused",
    6767    DebuggerResumed: "debugger-resumed",
     68    DebuggerReset: "debugger-reset",
    6869    CallFrameSelected: "call-frame-selected",
    6970    ConsoleCommandEvaluatedInSelectedCallFrame: "console-command-evaluated-in-selected-call-frame",
     
    659660        this._selectedCallFrame = null;
    660661        this._breakpointManager.debuggerReset();
     662        this.dispatchEventToListeners(WebInspector.DebuggerPresentationModel.Events.DebuggerReset);
    661663    }
    662664}
  • trunk/Source/WebCore/inspector/front-end/ExtensionServer.js

    r100735 r100906  
    106106    },
    107107
    108     notifyInspectorReset: function()
     108    _mainFrameNavigated: function(event)
    109109    {
    110110        this._postNotification("reset");
     
    549549        WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.InspectedURLChanged,
    550550            this._inspectedURLChanged, this);
     551        WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated, this._mainFrameNavigated, this);
    551552        InspectorExtensionRegistry.getExtensionsAsync();
    552553    },
  • trunk/Source/WebCore/inspector/front-end/JavaScriptContextManager.js

    r96575 r100906  
    6262    _frameDetached: function(event)
    6363    {
    64         var frameId = event.data;
    65         var context = this._frameIdToContext[frameId];
     64        var frame = event.data;
     65        var context = this._frameIdToContext[frame.id];
    6666        if (!context)
    6767            return;
    6868        this._consoleView.removeContext(context);
    69         delete this._frameIdToContext[frameId];
     69        delete this._frameIdToContext[frame.id];
    7070    },
    7171}
     
    9696    get frameId()
    9797    {
    98         return this._frame.id
     98        return this._frame.id;
    9999    },
    100100
  • trunk/Source/WebCore/inspector/front-end/NetworkLog.js

    r97152 r100906  
    3636    this._resources = [];
    3737    WebInspector.networkManager.addEventListener(WebInspector.NetworkManager.EventTypes.ResourceStarted, this._onResourceStarted, this);
    38     WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameNavigated, this._frameNavigated, this);
     38    WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated, this._mainFrameNavigated, this);
    3939}
    4040
     
    4848    },
    4949
    50     _frameNavigated: function(event)
     50    _mainFrameNavigated: function(event)
    5151    {
    52         if (!event.data.isMainFrame)
    53             return;
    5452        // Preserve resources from the new session.
    5553        var oldResources = this._resources.splice(0, this._resources.length);
  • trunk/Source/WebCore/inspector/front-end/NetworkPanel.js

    r99965 r100906  
    6262    WebInspector.networkManager.addEventListener(WebInspector.NetworkManager.EventTypes.ResourceFinished, this._onResourceUpdated, this);
    6363
    64     WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameNavigated, this._frameNavigated, this);
     64    WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated, this._mainFrameNavigated, this);
    6565    WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.OnLoad, this._onLoadEventFired, this);
    6666    WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.DOMContentLoaded, this._domContentLoadedEventFired, this);
     
    795795    },
    796796
    797     _frameNavigated: function(event)
    798     {
    799         if (!event.data.isMainFrame)
    800             return;
    801 
     797    _mainFrameNavigated: function(event)
     798    {
    802799        var loaderId = event.data.loaderId;
    803800        // Main frame committed load.
  • trunk/Source/WebCore/inspector/front-end/Object.js

    r97152 r100906  
    3838    addEventListener: function(eventType, listener, thisObject)
    3939    {
     40        console.assert(listener);
     41
    4042        if (!this._listeners)
    4143            this._listeners = {};
     
    5254    removeEventListener: function(eventType, listener, thisObject)
    5355    {
     56        console.assert(listener);
     57
    5458        if (!this._listeners || !this._listeners[eventType])
    5559            return;
  • trunk/Source/WebCore/inspector/front-end/ResourceTreeModel.js

    r99878 r100906  
    5555    FrameNavigated: "FrameNavigated",
    5656    FrameDetached: "FrameDetached",
     57    MainFrameNavigated: "MainFrameNavigated",
    5758    ResourceAdded: "ResourceAdded",
    5859    WillLoadCachedResources: "WillLoadCachedResources",
     
    152153        // Dispatch frame navigated event to clients prior to filling it with the resources.
    153154        this.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.FrameNavigated, { frame: frame, loaderId: loaderId, isMainFrame: isMainFrame });
     155        if (isMainFrame)
     156            this.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated, { frame: frame, loaderId: loaderId });
    154157
    155158        // Fill frame with retained resources (the ones loaded using new loader).
     
    187190        }
    188191
    189         this.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.FrameDetached, frameId);
     192        this.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.FrameDetached, frame);
    190193    },
    191194
     
    310313        var subframes = this._subframes[frameId];
    311314        for (var i = 0; subframes && i < subframes.length; ++ i) {
    312             this.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.FrameDetached, subframes[i].id);
     315            this.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.FrameDetached, subframes[i]);
    313316            this._clearChildFramesAndResources(subframes[i].id, loaderToPreserveId);
    314317        }
  • trunk/Source/WebCore/inspector/front-end/ResourcesPanel.js

    r100894 r100906  
    143143    },
    144144
    145     reset: function()
     145    _reset: function()
    146146    {
    147147        this.resourcesListTreeElement.removeChildren();
     
    190190        WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.ResourceAdded, this._resourceAdded, this);
    191191        WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.CachedResourcesLoaded, this._cachedResourcesLoaded, this);
    192         WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.WillLoadCachedResources, this.reset, this);
     192        WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.WillLoadCachedResources, this._reset, this);
    193193
    194194        function populateFrame(frameId)
     
    225225    _frameDetached: function(event)
    226226    {
    227         var frameId = event.data;
    228         var frameTreeElement = this._treeElementForFrameId[frameId];
     227        var frame = event.data;
     228        if (!frame.parentId) {
     229            // Reset on main frame detach
     230            this._reset();
     231        }
     232
     233        var frameTreeElement = this._treeElementForFrameId[frame.id];
    229234        if (!frameTreeElement)
    230235            return;
    231236
    232         delete this._treeElementForFrameId[frameId];
     237        delete this._treeElementForFrameId[frame.id];
    233238        if (frameTreeElement.parent)
    234239            frameTreeElement.parent.removeChild(frameTreeElement);
  • trunk/Source/WebCore/inspector/front-end/ScriptsPanel.js

    r100903 r100906  
    166166    this._debuggerEnabled = Preferences.debuggerAlwaysEnabled;
    167167
    168     this.reset();
     168    this._reset(false);
    169169
    170170    WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.DebuggerWasEnabled, this._debuggerWasEnabled, this);
     
    183183    this._presentationModel.addEventListener(WebInspector.DebuggerPresentationModel.Events.ConsoleCommandEvaluatedInSelectedCallFrame, this._consoleCommandEvaluatedInSelectedCallFrame, this);
    184184    this._presentationModel.addEventListener(WebInspector.DebuggerPresentationModel.Events.ExecutionLineChanged, this._executionLineChanged, this);
     185    this._presentationModel.addEventListener(WebInspector.DebuggerPresentationModel.Events.DebuggerReset, this._reset.bind(this, false));
    185186   
    186187    var enableDebugger = Preferences.debuggerAlwaysEnabled || WebInspector.settings.debuggerEnabled.get();
     
    527528
    528529        this._debuggerEnabled = true;
    529         this.reset(true);
     530        this._reset(true);
    530531    },
    531532
     
    536537
    537538        this._debuggerEnabled = false;
    538         this.reset(true);
    539     },
    540 
    541     reset: function(preserveItems)
     539        this._reset(true);
     540    },
     541
     542    _reset: function(preserveItems)
    542543    {
    543544        this.visibleView = null;
  • trunk/Source/WebCore/inspector/front-end/WorkerManager.js

    r99716 r100906  
    6868        WebInspector.WorkerManager._calculateWorkerInspectorTitle();
    6969    }
     70
     71    WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated, WebInspector.workerManager._mainFrameNavigated, WebInspector.workerManager);
    7072}
    7173
     
    180182    },
    181183
    182     reset: function()
     184    _mainFrameNavigated: function(event)
    183185    {
    184186        for (var workerId in this._workerIdToWindow)
  • trunk/Source/WebCore/inspector/front-end/inspector.js

    r100277 r100906  
    672672}
    673673
    674 WebInspector.reset = function()
    675 {
    676     this.debuggerModel.reset();
    677     for (var panelName in this.panels) {
    678         var panel = this.panels[panelName];
    679         if ("reset" in panel)
    680             panel.reset();
    681     }
    682 
    683     this.domAgent.hideDOMNodeHighlight();
    684 
    685     if (!WebInspector.settings.preserveConsoleLog.get())
    686         this.console.clearMessages();
    687     this.extensionServer.notifyInspectorReset();
    688     if (this.workerManager)
    689         this.workerManager.reset();
    690 }
    691 
    692674WebInspector.bringToFront = function()
    693675{
Note: See TracChangeset for help on using the changeset viewer.