Title: [125767] trunk
Revision
125767
Author
[email protected]
Date
2012-08-16 04:42:13 -0700 (Thu, 16 Aug 2012)

Log Message

Web Inspector: Breakpoints are not correctly restored on reload.
https://bugs.webkit.org/show_bug.cgi?id=94209

Reviewed by Pavel Feldman.

Source/WebCore:

BreakpointManager now resets uiLocations on workspace reset (was doing it on GlobalObjectCleared).
Breakpoint manager now calls restoreBreakpoints automatically when uiSourceCode is added to workspace.

* inspector/front-end/BreakpointManager.js:
(WebInspector.BreakpointManager):
(WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
(WebInspector.BreakpointManager.prototype._workspaceReset):
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode):
* inspector/front-end/inspector.js:

LayoutTests:

restoreBreakpoints is not called inside the test anymore to test that it is called automatically.

* inspector/debugger/breakpoint-manager-expected.txt:
* inspector/debugger/breakpoint-manager.html:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (125766 => 125767)


--- trunk/LayoutTests/ChangeLog	2012-08-16 10:53:07 UTC (rev 125766)
+++ trunk/LayoutTests/ChangeLog	2012-08-16 11:42:13 UTC (rev 125767)
@@ -1,3 +1,15 @@
+2012-08-16  Vsevolod Vlasov  <[email protected]>
+
+        Web Inspector: Breakpoints are not correctly restored on reload.
+        https://bugs.webkit.org/show_bug.cgi?id=94209
+
+        Reviewed by Pavel Feldman.
+
+        restoreBreakpoints is not called inside the test anymore to test that it is called automatically.
+
+        * inspector/debugger/breakpoint-manager-expected.txt:
+        * inspector/debugger/breakpoint-manager.html:
+
 2012-08-16  Mikhail Pozdnyakov  <[email protected]>
 
         [EFL] Gardening after r125592, r125635

Modified: trunk/LayoutTests/inspector/debugger/breakpoint-manager-expected.txt (125766 => 125767)


--- trunk/LayoutTests/inspector/debugger/breakpoint-manager-expected.txt	2012-08-16 10:53:07 UTC (rev 125766)
+++ trunk/LayoutTests/inspector/debugger/breakpoint-manager-expected.txt	2012-08-16 11:42:13 UTC (rev 125767)
@@ -189,6 +189,7 @@
 
   Navigating to B.
   Resetting debugger.
+  Resetting workspace.
     breakpointRemoved(a.js, 10)
     Location disposed: a.js:10
     breakpointRemoved(a.js, 20)
@@ -199,6 +200,7 @@
 
   Navigating back to A.
   Resetting debugger.
+  Resetting workspace.
     breakpointRemoved(b.js, 3)
     Location disposed: b.js:3
   Resolving provisional breakpoint.
@@ -263,6 +265,7 @@
     breakpointAdded(a.js, 10, foo == bar, true)
     Location created: a.js:10
   Resetting debugger.
+  Resetting workspace.
     breakpointRemoved(a.js, 10)
     Location disposed: a.js:10
   Resolving provisional breakpoint.

Modified: trunk/LayoutTests/inspector/debugger/breakpoint-manager.html (125766 => 125767)


--- trunk/LayoutTests/inspector/debugger/breakpoint-manager.html	2012-08-16 10:53:07 UTC (rev 125766)
+++ trunk/LayoutTests/inspector/debugger/breakpoint-manager.html	2012-08-16 11:42:13 UTC (rev 125767)
@@ -94,7 +94,6 @@
         {
             InspectorTest.addResult("  Resetting debugger.");
             this._scripts = {};
-            this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.GlobalObjectCleared);
         },
 
         setSourceMapping: function(sourceMapping)
@@ -105,6 +104,27 @@
     }
     DebuggerModelMock.prototype.__proto__ = WebInspector.Object.prototype;
 
+    function WorkspaceMock()
+    {
+    }
+
+    WorkspaceMock.prototype = {
+        _addUISourceCode: function(url)
+        {
+            var uiSourceCode = new WebInspector._javascript_Source(url, null, null, defaultMapping, false);
+            uiSourceCodes[url] = uiSourceCode;
+            this.dispatchEventToListeners(WebInspector.UISourceCodeProvider.Events.UISourceCodeAdded, uiSourceCode);
+            return uiSourceCode;
+        },
+
+        reset: function()
+        {
+            InspectorTest.addResult("  Resetting workspace.");
+            this.dispatchEventToListeners(WebInspector.Workspace.Events.WorkspaceReset);
+        }
+    }
+    WorkspaceMock.prototype.__proto__ = WebInspector.Object.prototype;
+
     var dummySetting = {
         get: function() { return []; },
         set: function(breakpoints) { }
@@ -136,10 +156,7 @@
     {
         breakpointManager._debuggerModel._addScript(url, url);
         InspectorTest.addResult("  Adding UISourceCode: " + url + ")");
-        var uiSourceCode = new WebInspector._javascript_Source(url, null, null, defaultMapping, false);
-        uiSourceCodes[url] = uiSourceCode;
-        breakpointManager.restoreBreakpoints(uiSourceCode);
-        return uiSourceCode;
+        return breakpointManager._workspace._addUISourceCode(url);
     }
 
     function createBreakpoint(uiSourceCodeId, lineNumber, condition, enabled)
@@ -162,7 +179,8 @@
 
         var sourceMapping = sourceMapping || defaultMapping;
         var debuggerModel = new DebuggerModelMock(sourceMapping);
-        var breakpointManager = new WebInspector.BreakpointManager(setting, debuggerModel, sourceMapping);
+        var workspaceMock = new WorkspaceMock();
+        var breakpointManager = new WebInspector.BreakpointManager(setting, debuggerModel, workspaceMock);
         breakpointManager.addEventListener(WebInspector.BreakpointManager.Events.BreakpointAdded, breakpointAdded);
         breakpointManager.addEventListener(WebInspector.BreakpointManager.Events.BreakpointRemoved, breakpointRemoved);
         InspectorTest.addResult("  Created breakpoints manager");
@@ -289,10 +307,12 @@
 
             InspectorTest.addResult("\n  Navigating to B.");
             breakpointManager._debuggerModel.reset();
+            breakpointManager._workspace.reset();
             var uiSourceCodeB = addUISourceCode(breakpointManager, "b.js");
 
             InspectorTest.addResult("\n  Navigating back to A.");
             breakpointManager._debuggerModel.reset();
+            breakpointManager._workspace.reset();
             InspectorTest.addResult("  Resolving provisional breakpoint.");
             var eventData = { breakpointId: "a.js:10", location: { scriptId: "a.js", lineNumber: 11, columnNumber: 5 }};
             breakpointManager._debuggerModel.dispatchEventToListeners(WebInspector.DebuggerModel.Events.BreakpointResolved, eventData);
@@ -326,6 +346,7 @@
             var breakpointManager = createBreakpointManager(serializedBreakpoints);
             var uiSourceCode = addUISourceCode(breakpointManager, "a.js");
             breakpointManager._debuggerModel.reset();
+            breakpointManager._workspace.reset();
             InspectorTest.addResult("  Resolving provisional breakpoint.");
             var eventData = { breakpointId: "a.js:10", location: { scriptId: "a.js", lineNumber: 11, columnNumber: 5 }};
             breakpointManager._debuggerModel.dispatchEventToListeners(WebInspector.DebuggerModel.Events.BreakpointResolved, eventData);

Modified: trunk/Source/WebCore/ChangeLog (125766 => 125767)


--- trunk/Source/WebCore/ChangeLog	2012-08-16 10:53:07 UTC (rev 125766)
+++ trunk/Source/WebCore/ChangeLog	2012-08-16 11:42:13 UTC (rev 125767)
@@ -1,3 +1,21 @@
+2012-08-16  Vsevolod Vlasov  <[email protected]>
+
+        Web Inspector: Breakpoints are not correctly restored on reload.
+        https://bugs.webkit.org/show_bug.cgi?id=94209
+
+        Reviewed by Pavel Feldman.
+
+        BreakpointManager now resets uiLocations on workspace reset (was doing it on GlobalObjectCleared).
+        Breakpoint manager now calls restoreBreakpoints automatically when uiSourceCode is added to workspace.
+
+        * inspector/front-end/BreakpointManager.js:
+        (WebInspector.BreakpointManager):
+        (WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
+        (WebInspector.BreakpointManager.prototype._workspaceReset):
+        * inspector/front-end/UISourceCode.js:
+        (WebInspector.UISourceCode):
+        * inspector/front-end/inspector.js:
+
 2012-08-16  Pierre Rossi  <[email protected]>
 
         [Qt] Remove FontQt4, HAVE_QRAWFONT flag and the related dead code

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


--- trunk/Source/WebCore/inspector/front-end/BreakpointManager.js	2012-08-16 10:53:07 UTC (rev 125766)
+++ trunk/Source/WebCore/inspector/front-end/BreakpointManager.js	2012-08-16 11:42:13 UTC (rev 125767)
@@ -33,11 +33,13 @@
  * @extends {WebInspector.Object}
  * @param {WebInspector.Setting} breakpointStorage
  * @param {WebInspector.DebuggerModel} debuggerModel
+ * @param {WebInspector.Workspace} workspace
  */
-WebInspector.BreakpointManager = function(breakpointStorage, debuggerModel)
+WebInspector.BreakpointManager = function(breakpointStorage, debuggerModel, workspace)
 {
     this._storage = new WebInspector.BreakpointManager.Storage(this, breakpointStorage);
     this._debuggerModel = debuggerModel;
+    this._workspace = workspace;
 
     this._breakpoints = [];
     this._breakpointForDebuggerId = {};
@@ -45,7 +47,8 @@
     this._sourceFilesWithRestoredBreakpoints = {};
 
     this._debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.BreakpointResolved, this._breakpointResolved, this);
-    this._debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.GlobalObjectCleared, this._debuggerReset, this);
+    this._workspace.addEventListener(WebInspector.Workspace.Events.WorkspaceReset, this._workspaceReset, this);
+    this._workspace.addEventListener(WebInspector.UISourceCodeProvider.Events.UISourceCodeAdded, this._uiSourceCodeAdded, this);
 }
 
 WebInspector.BreakpointManager.Events = {
@@ -76,6 +79,16 @@
     },
 
     /**
+     * @param {WebInspector.Event} event
+     */
+    _uiSourceCodeAdded: function(event)
+    {
+        var uiSourceCode = /** @type {WebInspector.UISourceCode} */ event.data;
+        if (uiSourceCode instanceof WebInspector._javascript_Source)
+            this.restoreBreakpoints(uiSourceCode);
+    },
+
+    /**
      * @param {WebInspector.UISourceCode} uiSourceCode
      * @param {number} lineNumber
      * @param {string} condition
@@ -170,7 +183,7 @@
         this._sourceFilesWithRestoredBreakpoints = {};
     },
 
-    _debuggerReset: function()
+    _workspaceReset: function()
     {
         var breakpoints = this._breakpoints.slice();
         for (var i = 0; i < breakpoints.length; ++i) {

Modified: trunk/Source/WebCore/inspector/front-end/UISourceCode.js (125766 => 125767)


--- trunk/Source/WebCore/inspector/front-end/UISourceCode.js	2012-08-16 10:53:07 UTC (rev 125766)
+++ trunk/Source/WebCore/inspector/front-end/UISourceCode.js	2012-08-16 11:42:13 UTC (rev 125767)
@@ -65,9 +65,6 @@
     this.history = [];
     this._restoreRevisionHistory();
     this._formatterMapping = new WebInspector.IdentityFormatterSourceMapping();
-
-    // FIXME: postpone formattedChanged call to after the mapping has been established.
-    setTimeout(this.formattedChanged.bind(this), 0);
 }
 
 WebInspector.UISourceCode.Events = {

Modified: trunk/Source/WebCore/inspector/front-end/inspector.js (125766 => 125767)


--- trunk/Source/WebCore/inspector/front-end/inspector.js	2012-08-16 10:53:07 UTC (rev 125766)
+++ trunk/Source/WebCore/inspector/front-end/inspector.js	2012-08-16 11:42:13 UTC (rev 125767)
@@ -456,7 +456,6 @@
     this.console.addEventListener(WebInspector.ConsoleModel.Events.RepeatCountUpdated, this._updateErrorAndWarningCounts, this);
 
     this.debuggerModel = new WebInspector.DebuggerModel();
-    this.breakpointManager = new WebInspector.BreakpointManager(WebInspector.settings.breakpoints, this.debuggerModel);
 
     WebInspector.CSSCompletions.requestCSSNameCompletions();
 
@@ -495,6 +494,7 @@
     this.openAnchorLocationRegistry.registerHandler(autoselectPanel, function() { return false; });
 
     this.workspace = new WebInspector.Workspace();
+    this.breakpointManager = new WebInspector.BreakpointManager(WebInspector.settings.breakpoints, this.debuggerModel, this.workspace);
 
     this._createPanels();
     this._createGlobalStatusBarItems();
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to