Title: [132680] trunk/Source/WebCore
Revision
132680
Author
[email protected]
Date
2012-10-26 11:47:29 -0700 (Fri, 26 Oct 2012)

Log Message

Web Inspector: Breakpoints are not managed correctly when editing uiSourceCode that was bound to ScriptFile after _javascript_SourceFrame creation.
https://bugs.webkit.org/show_bug.cgi?id=100535

Reviewed by Pavel Feldman.

Added SourceMappingChanged event to UISourceCode and made
_javascript_SourceFrame update ScriptFile events listeners on it.

* inspector/front-end/_javascript_SourceFrame.js:
(WebInspector._javascript_SourceFrame):
(WebInspector._javascript_SourceFrame.prototype._onSourceMappingChanged):
(WebInspector._javascript_SourceFrame.prototype._updateScriptFile):
* inspector/front-end/ResourceScriptMapping.js:
(WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode.prototype.setSourceMapping):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (132679 => 132680)


--- trunk/Source/WebCore/ChangeLog	2012-10-26 18:44:40 UTC (rev 132679)
+++ trunk/Source/WebCore/ChangeLog	2012-10-26 18:47:29 UTC (rev 132680)
@@ -1,3 +1,22 @@
+2012-10-26  Vsevolod Vlasov  <[email protected]>
+
+        Web Inspector: Breakpoints are not managed correctly when editing uiSourceCode that was bound to ScriptFile after _javascript_SourceFrame creation.
+        https://bugs.webkit.org/show_bug.cgi?id=100535
+
+        Reviewed by Pavel Feldman.
+
+        Added SourceMappingChanged event to UISourceCode and made
+        _javascript_SourceFrame update ScriptFile events listeners on it.
+
+        * inspector/front-end/_javascript_SourceFrame.js:
+        (WebInspector._javascript_SourceFrame):
+        (WebInspector._javascript_SourceFrame.prototype._onSourceMappingChanged):
+        (WebInspector._javascript_SourceFrame.prototype._updateScriptFile):
+        * inspector/front-end/ResourceScriptMapping.js:
+        (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
+        * inspector/front-end/UISourceCode.js:
+        (WebInspector.UISourceCode.prototype.setSourceMapping):
+
 2012-10-26  Vincent Scheib  <[email protected]>
 
         Unreviewed, rolling out r132644.

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


--- trunk/Source/WebCore/inspector/front-end/_javascript_SourceFrame.js	2012-10-26 18:44:40 UTC (rev 132679)
+++ trunk/Source/WebCore/inspector/front-end/_javascript_SourceFrame.js	2012-10-26 18:47:29 UTC (rev 132680)
@@ -39,7 +39,6 @@
     this._scriptsPanel = scriptsPanel;
     this._breakpointManager = WebInspector.breakpointManager;
     this._uiSourceCode = uiSourceCode;
-    this._scriptFile = this._uiSourceCode.scriptFile();
 
     var locations = this._breakpointManager.breakpointLocationsForUISourceCode(this._uiSourceCode);
     for (var i = 0; i < locations.length; ++i)
@@ -63,13 +62,9 @@
     this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.ConsoleMessageAdded, this._consoleMessageAdded, this);
     this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.ConsoleMessageRemoved, this._consoleMessageRemoved, this);
     this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.ConsoleMessagesCleared, this._consoleMessagesCleared, this);
-
-    if (this._scriptFile) {
-        this._scriptFile.addEventListener(WebInspector.ScriptFile.Events.WillMergeToVM, this._willMergeToVM, this);
-        this._scriptFile.addEventListener(WebInspector.ScriptFile.Events.DidMergeToVM, this._didMergeToVM, this);
-        this._scriptFile.addEventListener(WebInspector.ScriptFile.Events.WillDivergeFromVM, this._willDivergeFromVM, this);
-        this._scriptFile.addEventListener(WebInspector.ScriptFile.Events.DidDivergeFromVM, this._didDivergeFromVM, this);
-    }
+    this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.SourceMappingChanged, this._onSourceMappingChanged, this);
+    
+    this._updateScriptFile();
 }
 
 WebInspector._javascript_SourceFrame.prototype = {
@@ -551,6 +546,31 @@
         this.clearMessages();
     },
 
+    /**
+     * @param {WebInspector.Event} event
+     */
+    _onSourceMappingChanged: function(event)
+    {
+        this._updateScriptFile();
+    },
+
+    _updateScriptFile: function()
+    {
+        if (this._scriptFile) {
+            this._scriptFile.removeEventListener(WebInspector.ScriptFile.Events.WillMergeToVM, this._willMergeToVM, this);
+            this._scriptFile.removeEventListener(WebInspector.ScriptFile.Events.DidMergeToVM, this._didMergeToVM, this);
+            this._scriptFile.removeEventListener(WebInspector.ScriptFile.Events.WillDivergeFromVM, this._willDivergeFromVM, this);
+            this._scriptFile.removeEventListener(WebInspector.ScriptFile.Events.DidDivergeFromVM, this._didDivergeFromVM, this);
+        }
+        this._scriptFile = this._uiSourceCode.scriptFile();
+        if (this._scriptFile) {
+            this._scriptFile.addEventListener(WebInspector.ScriptFile.Events.WillMergeToVM, this._willMergeToVM, this);
+            this._scriptFile.addEventListener(WebInspector.ScriptFile.Events.DidMergeToVM, this._didMergeToVM, this);
+            this._scriptFile.addEventListener(WebInspector.ScriptFile.Events.WillDivergeFromVM, this._willDivergeFromVM, this);
+            this._scriptFile.addEventListener(WebInspector.ScriptFile.Events.DidDivergeFromVM, this._didDivergeFromVM, this);
+        }
+    },
+
     onTextEditorContentLoaded: function()
     {
         if (typeof this._executionLineNumber === "number")

Modified: trunk/Source/WebCore/inspector/front-end/ResourceScriptMapping.js (132679 => 132680)


--- trunk/Source/WebCore/inspector/front-end/ResourceScriptMapping.js	2012-10-26 18:44:40 UTC (rev 132679)
+++ trunk/Source/WebCore/inspector/front-end/ResourceScriptMapping.js	2012-10-26 18:47:29 UTC (rev 132680)
@@ -177,13 +177,13 @@
     _bindUISourceCodeToScripts: function(uiSourceCode, scripts)
     {
         console.assert(scripts.length);
-        for (var i = 0; i < scripts.length; ++i)
-            scripts[i].setSourceMapping(this);
-        uiSourceCode.setSourceMapping(this);
         if (uiSourceCode.isEditable()) {
             var scriptFile = new WebInspector.ResourceScriptFile(this, uiSourceCode);
             uiSourceCode.setScriptFile(scriptFile);
         }
+        for (var i = 0; i < scripts.length; ++i)
+            scripts[i].setSourceMapping(this);
+        uiSourceCode.setSourceMapping(this);
     },
 
     /**

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


--- trunk/Source/WebCore/inspector/front-end/UISourceCode.js	2012-10-26 18:44:40 UTC (rev 132679)
+++ trunk/Source/WebCore/inspector/front-end/UISourceCode.js	2012-10-26 18:47:29 UTC (rev 132680)
@@ -74,7 +74,8 @@
     TitleChanged: "TitleChanged",
     ConsoleMessageAdded: "ConsoleMessageAdded",
     ConsoleMessageRemoved: "ConsoleMessageRemoved",
-    ConsoleMessagesCleared: "ConsoleMessagesCleared"
+    ConsoleMessagesCleared: "ConsoleMessagesCleared",
+    SourceMappingChanged: "SourceMappingChanged",
 }
 
 WebInspector.UISourceCode.prototype = {
@@ -590,6 +591,7 @@
     setSourceMapping: function(sourceMapping)
     {
         this._sourceMapping = sourceMapping;
+        this.dispatchEventToListeners(WebInspector.UISourceCode.Events.SourceMappingChanged, null);
     },
 
     __proto__: WebInspector.Object.prototype
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to