Title: [112875] trunk
Revision
112875
Author
podivi...@chromium.org
Date
2012-04-02 06:55:50 -0700 (Mon, 02 Apr 2012)

Log Message

Web Inspector: refactor UI breakpoint listeners.
https://bugs.webkit.org/show_bug.cgi?id=82481

Reviewed by Vsevolod Vlasov.

Source/WebCore:

Breakpoint-added and breakpoint-removed events are currently dispatched on UISourceCode.
That allows us to move handlers that manage SourceFrame's breakpoint decorations from ScriptsPanel to SourceFrame.
SourceFrame's "Loaded" event is removed as it was only used by ScriptsPanel to restore SourceFrame's breakpoints.

* inspector/front-end/DebuggerPresentationModel.js:
* inspector/front-end/_javascript_SourceFrame.js:
(WebInspector._javascript_SourceFrame):
(WebInspector._javascript_SourceFrame.prototype.populateLineGutterContextMenu.addConditionalBreakpoint.didEditBreakpointCondition):
(WebInspector._javascript_SourceFrame.prototype.populateLineGutterContextMenu.):
(WebInspector._javascript_SourceFrame.prototype.beforeTextChanged):
(WebInspector._javascript_SourceFrame.prototype.didEditContent):
(WebInspector._javascript_SourceFrame.prototype._addBreakpointDecoration):
(WebInspector._javascript_SourceFrame.prototype._removeBreakpointDecoration):
(WebInspector._javascript_SourceFrame.prototype._breakpointAdded):
(WebInspector._javascript_SourceFrame.prototype._breakpointRemoved):
(WebInspector._javascript_SourceFrame.prototype.onTextViewerContentLoaded):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
(WebInspector.ScriptsPanel.prototype._uiBreakpointAdded):
(WebInspector.ScriptsPanel.prototype._uiBreakpointRemoved):
(WebInspector.ScriptsPanel.prototype._createSourceFrame):
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame.prototype.setContent):
(WebInspector.SourceFrame.prototype.onTextViewerContentLoaded):

LayoutTests:

* http/tests/inspector/debugger-test.js:
(initialize_DebuggerTest):
* http/tests/inspector/resources-test.js:
(initialize_ResourceTest.InspectorTest.showResource.showResourceCallback.visit):
(initialize_ResourceTest.InspectorTest.showResource.showResourceCallback):
(initialize_ResourceTest.InspectorTest.showResource):
(initialize_ResourceTest):
* inspector/debugger/live-edit.html:
* inspector/debugger/set-breakpoint.html:
* inspector/debugger/source-frame.html:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (112874 => 112875)


--- trunk/LayoutTests/ChangeLog	2012-04-02 13:44:48 UTC (rev 112874)
+++ trunk/LayoutTests/ChangeLog	2012-04-02 13:55:50 UTC (rev 112875)
@@ -1,3 +1,21 @@
+2012-03-28  Pavel Podivilov  <podivi...@chromium.org>
+
+        Web Inspector: refactor UI breakpoint listeners.
+        https://bugs.webkit.org/show_bug.cgi?id=82481
+
+        Reviewed by Vsevolod Vlasov.
+
+        * http/tests/inspector/debugger-test.js:
+        (initialize_DebuggerTest):
+        * http/tests/inspector/resources-test.js:
+        (initialize_ResourceTest.InspectorTest.showResource.showResourceCallback.visit):
+        (initialize_ResourceTest.InspectorTest.showResource.showResourceCallback):
+        (initialize_ResourceTest.InspectorTest.showResource):
+        (initialize_ResourceTest):
+        * inspector/debugger/live-edit.html:
+        * inspector/debugger/set-breakpoint.html:
+        * inspector/debugger/source-frame.html:
+
 2012-04-02  János Badics  <jbad...@inf.u-szeged.hu>
 
         [Qt] Unreviewed gardening.

Modified: trunk/LayoutTests/http/tests/inspector/debugger-test.js (112874 => 112875)


--- trunk/LayoutTests/http/tests/inspector/debugger-test.js	2012-04-02 13:44:48 UTC (rev 112874)
+++ trunk/LayoutTests/http/tests/inspector/debugger-test.js	2012-04-02 13:55:50 UTC (rev 112875)
@@ -163,7 +163,7 @@
             if (sourceFrame.loaded)
                 callback(sourceFrame);
             else
-                sourceFrame.addEventListener(WebInspector.SourceFrame.Events.Loaded, callback.bind(null, sourceFrame));
+                InspectorTest.addSniffer(sourceFrame, "onTextViewerContentLoaded", callback.bind(null, sourceFrame));
             return;
         }
     }

Modified: trunk/LayoutTests/http/tests/inspector/resources-test.js (112874 => 112875)


--- trunk/LayoutTests/http/tests/inspector/resources-test.js	2012-04-02 13:44:48 UTC (rev 112874)
+++ trunk/LayoutTests/http/tests/inspector/resources-test.js	2012-04-02 13:55:50 UTC (rev 112875)
@@ -81,7 +81,7 @@
                 if (sourceFrame.loaded)
                     callbackWrapper(sourceFrame);
                 else
-                    sourceFrame.addEventListener(WebInspector.SourceFrame.Events.Loaded, callbackWrapper.bind(null, sourceFrame));
+                    InspectorTest.addSniffer(sourceFrame, "onTextViewerContentLoaded", callbackWrapper.bind(null, sourceFrame));
                 return true;
             }
         }

Modified: trunk/LayoutTests/inspector/debugger/live-edit.html (112874 => 112875)


--- trunk/LayoutTests/inspector/debugger/live-edit.html	2012-04-02 13:44:48 UTC (rev 112874)
+++ trunk/LayoutTests/inspector/debugger/live-edit.html	2012-04-02 13:55:50 UTC (rev 112875)
@@ -90,7 +90,7 @@
 
             function didShowScriptSource(sourceFrame)
             {
-                InspectorTest.addSniffer(sourceFrame, "addBreakpoint", breakpointAdded);
+                InspectorTest.addSniffer(sourceFrame, "_addBreakpointDecoration", breakpointAdded);
                 InspectorTest.setBreakpoint(sourceFrame, 2, "", true);
             }
 

Modified: trunk/LayoutTests/inspector/debugger/set-breakpoint.html (112874 => 112875)


--- trunk/LayoutTests/inspector/debugger/set-breakpoint.html	2012-04-02 13:44:48 UTC (rev 112874)
+++ trunk/LayoutTests/inspector/debugger/set-breakpoint.html	2012-04-02 13:55:50 UTC (rev 112875)
@@ -40,7 +40,7 @@
                 InspectorTest.addResult("Script execution paused.");
                 InspectorTest.captureStackTrace(callFrames);
                 dumpBreakpointSidebarPane()
-                InspectorTest.addSniffer(currentSourceFrame, "removeBreakpoint", breakpointRemoved);
+                InspectorTest.addSniffer(currentSourceFrame, "_removeBreakpointDecoration", breakpointRemoved);
                 InspectorTest.removeBreakpoint(currentSourceFrame, 16);
             }
 

Modified: trunk/LayoutTests/inspector/debugger/source-frame.html (112874 => 112875)


--- trunk/LayoutTests/inspector/debugger/source-frame.html	2012-04-02 13:44:48 UTC (rev 112874)
+++ trunk/LayoutTests/inspector/debugger/source-frame.html	2012-04-02 13:55:50 UTC (rev 112875)
@@ -20,14 +20,14 @@
             function didShowScriptSource(sourceFrame)
             {
                 InspectorTest.addResult("Script source was shown.");
-                InspectorTest.addSniffer(WebInspector._javascript_SourceFrame.prototype, "addBreakpoint", didAddBreakpoint);
+                InspectorTest.addSniffer(WebInspector._javascript_SourceFrame.prototype, "_addBreakpointDecoration", didAddBreakpoint);
                 InspectorTest.setBreakpoint(sourceFrame, 17, "", true);
             }
 
             function didAddBreakpoint(lineNumber)
             {
-              InspectorTest.addResult("Breakpoint added to source frame at line " + lineNumber);
-              next();
+                InspectorTest.addResult("Breakpoint added to source frame at line " + lineNumber);
+                next();
             }
         },
 

Modified: trunk/Source/WebCore/ChangeLog (112874 => 112875)


--- trunk/Source/WebCore/ChangeLog	2012-04-02 13:44:48 UTC (rev 112874)
+++ trunk/Source/WebCore/ChangeLog	2012-04-02 13:55:50 UTC (rev 112875)
@@ -1,3 +1,35 @@
+2012-03-28  Pavel Podivilov  <podivi...@chromium.org>
+
+        Web Inspector: refactor UI breakpoint listeners.
+        https://bugs.webkit.org/show_bug.cgi?id=82481
+
+        Reviewed by Vsevolod Vlasov.
+
+        Breakpoint-added and breakpoint-removed events are currently dispatched on UISourceCode.
+        That allows us to move handlers that manage SourceFrame's breakpoint decorations from ScriptsPanel to SourceFrame.
+        SourceFrame's "Loaded" event is removed as it was only used by ScriptsPanel to restore SourceFrame's breakpoints.
+
+        * inspector/front-end/DebuggerPresentationModel.js:
+        * inspector/front-end/_javascript_SourceFrame.js:
+        (WebInspector._javascript_SourceFrame):
+        (WebInspector._javascript_SourceFrame.prototype.populateLineGutterContextMenu.addConditionalBreakpoint.didEditBreakpointCondition):
+        (WebInspector._javascript_SourceFrame.prototype.populateLineGutterContextMenu.):
+        (WebInspector._javascript_SourceFrame.prototype.beforeTextChanged):
+        (WebInspector._javascript_SourceFrame.prototype.didEditContent):
+        (WebInspector._javascript_SourceFrame.prototype._addBreakpointDecoration):
+        (WebInspector._javascript_SourceFrame.prototype._removeBreakpointDecoration):
+        (WebInspector._javascript_SourceFrame.prototype._breakpointAdded):
+        (WebInspector._javascript_SourceFrame.prototype._breakpointRemoved):
+        (WebInspector._javascript_SourceFrame.prototype.onTextViewerContentLoaded):
+        * inspector/front-end/ScriptsPanel.js:
+        (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
+        (WebInspector.ScriptsPanel.prototype._uiBreakpointAdded):
+        (WebInspector.ScriptsPanel.prototype._uiBreakpointRemoved):
+        (WebInspector.ScriptsPanel.prototype._createSourceFrame):
+        * inspector/front-end/SourceFrame.js:
+        (WebInspector.SourceFrame.prototype.setContent):
+        (WebInspector.SourceFrame.prototype.onTextViewerContentLoaded):
+
 2012-04-02  Rob Buis  <rb...@rim.com>
 
         [BlackBerry] Take into account policy checks in ClipboardBlackBerry

Modified: trunk/Source/WebCore/inspector/front-end/BreakpointManager.js (112874 => 112875)


--- trunk/Source/WebCore/inspector/front-end/BreakpointManager.js	2012-04-02 13:44:48 UTC (rev 112874)
+++ trunk/Source/WebCore/inspector/front-end/BreakpointManager.js	2012-04-02 13:55:50 UTC (rev 112875)
@@ -96,7 +96,7 @@
      */
     setBreakpoint: function(uiSourceCode, lineNumber, condition, enabled)
     {
-        if (uiSourceCode.breakpoints()[lineNumber])
+        if (uiSourceCode.breakpoints()[String(lineNumber)])
             return;
         var breakpoint = new WebInspector.Breakpoint(uiSourceCode.id, lineNumber, condition, enabled, !!uiSourceCode.url);
         this._addBreakpointToModel(breakpoint);
@@ -110,7 +110,7 @@
      */
     removeBreakpoint: function(uiSourceCode, lineNumber)
     {
-        var uiBreakpoint = uiSourceCode.breakpoints()[lineNumber];
+        var uiBreakpoint = uiSourceCode.breakpoints()[String(lineNumber)];
         if (!uiBreakpoint)
             return;
         this._innerRemoveBreakpoint(uiBreakpoint.breakpoint);

Modified: trunk/Source/WebCore/inspector/front-end/DebuggerPresentationModel.js (112874 => 112875)


--- trunk/Source/WebCore/inspector/front-end/DebuggerPresentationModel.js	2012-04-02 13:44:48 UTC (rev 112874)
+++ trunk/Source/WebCore/inspector/front-end/DebuggerPresentationModel.js	2012-04-02 13:55:50 UTC (rev 112875)
@@ -342,19 +342,6 @@
 
     /**
      * @param {WebInspector.UISourceCode} uiSourceCode
-     * @return {Array.<WebInspector.Breakpoint>}
-     */
-    breakpointsForUISourceCode: function(uiSourceCode)
-    {
-        var breakpointsMap = uiSourceCode.breakpoints();
-        var breakpointsList = [];
-        for (var lineNumber in breakpointsMap)
-            breakpointsList.push(breakpointsMap[lineNumber]);
-        return breakpointsList;
-    },
-
-    /**
-     * @param {WebInspector.UISourceCode} uiSourceCode
      * @param {number} lineNumber
      * @param {string} condition
      * @param {boolean} enabled
@@ -413,7 +400,7 @@
      */
     findBreakpoint: function(uiSourceCode, lineNumber)
     {
-        return uiSourceCode.breakpoints()[lineNumber];
+        return uiSourceCode.breakpoints()[String(lineNumber)];
     },
 
     _debuggerPaused: function()
@@ -570,8 +557,8 @@
      */
     breakpointAdded: function(lineNumber, breakpoint)
     {
-        console.assert(!this._breakpoints[lineNumber]);
-        this._breakpoints[lineNumber] = breakpoint;
+        console.assert(!this._breakpoints[String(lineNumber)]);
+        this._breakpoints[String(lineNumber)] = breakpoint;
         this.dispatchEventToListeners(WebInspector.UISourceCode.Events.BreakpointAdded, breakpoint);
     },
 
@@ -580,8 +567,8 @@
      */
     breakpointRemoved: function(lineNumber)
     {
-        var breakpoint = this._breakpoints[lineNumber];
-        delete this._breakpoints[lineNumber];
+        var breakpoint = this._breakpoints[String(lineNumber)];
+        delete this._breakpoints[String(lineNumber)];
         this.dispatchEventToListeners(WebInspector.UISourceCode.Events.BreakpointRemoved, breakpoint);
     },
 

Modified: trunk/Source/WebCore/inspector/front-end/_javascript_SourceFrame.js (112874 => 112875)


--- trunk/Source/WebCore/inspector/front-end/_javascript_SourceFrame.js	2012-04-02 13:44:48 UTC (rev 112874)
+++ trunk/Source/WebCore/inspector/front-end/_javascript_SourceFrame.js	2012-04-02 13:55:50 UTC (rev 112875)
@@ -49,9 +49,10 @@
     this.textViewer.element.addEventListener("mousedown", this._onMouseDown.bind(this), true);
     this.textViewer.element.addEventListener("keydown", this._onKeyDown.bind(this), true);
     this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.ContentChanged, this._onContentChanged, this);
+    this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.BreakpointAdded, this._breakpointAdded, this);
+    this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.BreakpointRemoved, this._breakpointRemoved, this);
     this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.ConsoleMessageAdded, this._consoleMessageAdded, this);
     this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.ConsoleMessagesCleared, this._consoleMessagesCleared, this);
-    this.addEventListener(WebInspector.SourceFrame.Events.Loaded, this._onTextViewerContentLoaded, this);
 }
 
 WebInspector._javascript_SourceFrame.prototype = {
@@ -111,10 +112,10 @@
 
             function addConditionalBreakpoint()
             {
-                this.addBreakpoint(lineNumber, true, true, true, false);
+                this._addBreakpointDecoration(lineNumber, true, true, true, false);
                 function didEditBreakpointCondition(committed, condition)
                 {
-                    this.removeBreakpoint(lineNumber);
+                    this._removeBreakpointDecoration(lineNumber);
                     if (committed)
                         this._setBreakpoint(lineNumber, condition, true);
                 }
@@ -176,7 +177,7 @@
                 if (breakpoint) {
                     this._model.removeBreakpoint(this._uiSourceCode, lineNumber);
                     // Re-adding decoration only.
-                    this.addBreakpoint(lineNumber, breakpoint.resolved, breakpoint.conditional, breakpoint.enabled, true);
+                    this._addBreakpointDecoration(lineNumber, breakpoint.resolved, breakpoint.conditional, breakpoint.enabled, true);
                 }
             }
         }
@@ -201,7 +202,7 @@
             var breakpoint = this.textModel.getAttribute(lineNumber, "breakpoint");
             if (breakpoint) {
                 // Remove fake decoration
-                this.removeBreakpoint(lineNumber);
+                this._removeBreakpointDecoration(lineNumber);
                 // Set new breakpoint
                 this._setBreakpoint(lineNumber, breakpoint.condition, breakpoint.enabled);
             }
@@ -318,7 +319,7 @@
         return container;
     },
 
-    addBreakpoint: function(lineNumber, resolved, conditional, enabled, mutedWhileEditing)
+    _addBreakpointDecoration: function(lineNumber, resolved, conditional, enabled, mutedWhileEditing)
     {
         var breakpoint = {
             resolved: resolved,
@@ -336,7 +337,7 @@
         this.textViewer.endUpdates();
     },
 
-    removeBreakpoint: function(lineNumber)
+    _removeBreakpointDecoration: function(lineNumber)
     {
         this.textModel.removeAttribute(lineNumber, "breakpoint");
         this.textViewer.beginUpdates();
@@ -465,6 +466,20 @@
         return newLineNumber;
     },
 
+    _breakpointAdded: function(event)
+    {
+        var breakpoint = /** @type {WebInspector.UIBreakpoint} */ event.data;
+        if (this.loaded)
+            this._addBreakpointDecoration(breakpoint.lineNumber, breakpoint.resolved, breakpoint.condition, breakpoint.enabled, false);
+    },
+
+    _breakpointRemoved: function(event)
+    {
+        var breakpoint = /** @type {WebInspector.UIBreakpoint} */ event.data;
+        if (this.loaded)
+            this._removeBreakpointDecoration(breakpoint.lineNumber);
+    },
+
     _consoleMessageAdded: function(event)
     {
         var message = event.data;
@@ -477,11 +492,17 @@
         this.clearMessages();
     },
 
-    _onTextViewerContentLoaded: function()
+    onTextViewerContentLoaded: function()
     {
         if (typeof this._executionLineNumber === "number")
             this.setExecutionLine(this._executionLineNumber);
 
+        var breakpoints = this._uiSourceCode.breakpoints();
+        for (var lineNumber in breakpoints) {
+            var breakpoint = breakpoints[lineNumber];
+            this._addBreakpointDecoration(breakpoint.lineNumber, breakpoint.resolved, breakpoint.condition, breakpoint.enabled, false);
+        }
+
         var messages = this._uiSourceCode.consoleMessages();
         for (var i = 0; i < messages.length; ++i) {
             var message = messages[i];

Modified: trunk/Source/WebCore/inspector/front-end/ScriptsPanel.js (112874 => 112875)


--- trunk/Source/WebCore/inspector/front-end/ScriptsPanel.js	2012-04-02 13:44:48 UTC (rev 112874)
+++ trunk/Source/WebCore/inspector/front-end/ScriptsPanel.js	2012-04-02 13:55:50 UTC (rev 112875)
@@ -331,22 +331,12 @@
     _uiBreakpointAdded: function(event)
     {
         var uiBreakpoint = /** @type {WebInspector.UIBreakpoint} */ event.data;
-
-        var sourceFrame = this._sourceFramesByUISourceCode.get(uiBreakpoint.uiSourceCode)
-        if (sourceFrame && sourceFrame.loaded)
-            sourceFrame.addBreakpoint(uiBreakpoint.lineNumber, uiBreakpoint.resolved, uiBreakpoint.condition, uiBreakpoint.enabled);
-
         this.sidebarPanes.jsBreakpoints.addBreakpoint(uiBreakpoint);
     },
 
     _uiBreakpointRemoved: function(event)
     {
         var uiBreakpoint = /** @type {WebInspector.UIBreakpoint} */ event.data;
-
-        var sourceFrame = this._sourceFramesByUISourceCode.get(uiBreakpoint.uiSourceCode)
-        if (sourceFrame && sourceFrame.loaded)
-            sourceFrame.removeBreakpoint(uiBreakpoint.lineNumber);
-
         this.sidebarPanes.jsBreakpoints.removeBreakpoint(uiBreakpoint.uiSourceCode, uiBreakpoint.lineNumber);
     },
 
@@ -546,7 +536,6 @@
         var sourceFrame = new WebInspector._javascript_SourceFrame(this, this._presentationModel, uiSourceCode);
 
         sourceFrame._uiSourceCode = uiSourceCode;
-        sourceFrame.addEventListener(WebInspector.SourceFrame.Events.Loaded, this._sourceFrameLoaded, this);
         this._sourceFramesByUISourceCode.put(uiSourceCode, sourceFrame);
         return sourceFrame;
     },
@@ -579,7 +568,6 @@
             return;
         this._sourceFramesByUISourceCode.remove(uiSourceCode);
         sourceFrame.detach();
-        sourceFrame.removeEventListener(WebInspector.SourceFrame.Events.Loaded, this._sourceFrameLoaded, this);
     },
 
     /**
@@ -606,18 +594,6 @@
         }
     },
 
-    _sourceFrameLoaded: function(event)
-    {
-        var sourceFrame = /** @type {WebInspector._javascript_SourceFrame} */ event.target;
-        var uiSourceCode = sourceFrame._uiSourceCode;
-
-        var breakpoints = this._presentationModel.breakpointsForUISourceCode(uiSourceCode);
-        for (var i = 0; i < breakpoints.length; ++i) {
-            var breakpoint = breakpoints[i];
-            sourceFrame.addBreakpoint(breakpoint.lineNumber, breakpoint.resolved, breakpoint.condition, breakpoint.enabled);
-        }
-    },
-
     _clearCurrentExecutionLine: function()
     {
         if (this._executionSourceFrame)

Modified: trunk/Source/WebCore/inspector/front-end/SourceFrame.js (112874 => 112875)


--- trunk/Source/WebCore/inspector/front-end/SourceFrame.js	2012-04-02 13:44:48 UTC (rev 112874)
+++ trunk/Source/WebCore/inspector/front-end/SourceFrame.js	2012-04-02 13:55:50 UTC (rev 112875)
@@ -54,10 +54,6 @@
     this._textViewer.readOnly = !this.canEditSource();
 }
 
-WebInspector.SourceFrame.Events = {
-    Loaded: "loaded"
-}
-
 WebInspector.SourceFrame.createSearchRegex = function(query)
 {
     var regex;
@@ -237,11 +233,13 @@
             delete this._delayedFindSearchMatches;
         }
 
-        this.dispatchEventToListeners(WebInspector.SourceFrame.Events.Loaded);
+        this.onTextViewerContentLoaded();
 
         this._textViewer.endUpdates();
     },
 
+    onTextViewerContentLoaded: function() {},
+
     _setTextViewerDecorations: function()
     {
         this._rowMessages = {};
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to