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