Changeset 94762 in webkit
- Timestamp:
- Sep 8, 2011 9:38:22 AM (13 years ago)
- Location:
- trunk
- Files:
-
- 1 deleted
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r94761 r94762 1 2011-09-07 Pavel Podivilov <podivilov@chromium.org> 2 3 Web Inspector: get rid of RawSourceCode.createSourceMappingIfNeeded. 4 https://bugs.webkit.org/show_bug.cgi?id=67717 5 6 Merge source-file.html into raw-source-code.html. 7 8 Reviewed by Yury Semikhatsky. 9 10 * inspector/debugger/raw-source-code.html: 11 * inspector/debugger/source-file.html: Removed. 12 1 13 2011-09-08 Cary Clark <caryclark@google.com> 2 14 -
trunk/LayoutTests/inspector/debugger/raw-source-code.html
r94760 r94762 81 81 } 82 82 83 function createRawLocation(lineNumber, columnNumber) 84 { 85 return { lineNumber: lineNumber, columnNumber: columnNumber }; 86 } 87 88 function checkRawLocation(script, lineNumber, columnNumber, location) 89 { 90 InspectorTest.assertEquals(script.scriptId, location.scriptId); 91 InspectorTest.assertEquals(lineNumber, location.lineNumber); 92 InspectorTest.assertEquals(columnNumber, location.columnNumber); 93 } 94 95 function checkUILocation(uiSourceCode, lineNumber, columnNumber, location) 96 { 97 InspectorTest.assertEquals(uiSourceCode, location.uiSourceCode); 98 InspectorTest.assertEquals(lineNumber, location.lineNumber); 99 InspectorTest.assertEquals(columnNumber, location.columnNumber); 100 } 101 83 102 InspectorTest.runTestSuite([ 84 103 function testScriptWithoutResource(next) … … 92 111 InspectorTest.assertEquals(true, uiSourceCode.isContentScript); 93 112 InspectorTest.assertEquals(rawSourceCode, uiSourceCode.rawSourceCode); 113 checkUILocation(uiSourceCode, 0, 5, rawSourceCode.rawLocationToUILocation(createRawLocation(0, 5))); 114 checkRawLocation(script, 0, 10, rawSourceCode.uiLocationToRawLocation(0, 10)); 94 115 uiSourceCode.requestContent(didRequestContent); 95 116 … … 135 156 function testHTMLWithFinishedResource(next) 136 157 { 137 var script1 = createScriptMock("index.html", 0, 10, false, "<script source 1>");138 var script2 = createScriptMock("index.html", 0, 45, false, "<script source2>");158 var script1 = createScriptMock("index.html", 1, 10, false, "<script source 1>"); 159 var script2 = createScriptMock("index.html", 5, 45, false, "<script\nsource\n2>"); 139 160 var resource = createFinishedResourceMock("document", "<resource content>"); 140 161 var rawSourceCode = createRawSourceCode(script1, resource); … … 153 174 rawSourceCode.addScript(script2); 154 175 rawSourceCode.forceUpdateSourceMapping(); 176 checkUILocation(uiSourceCode, 1, 20, rawSourceCode.rawLocationToUILocation(createRawLocation(1, 20))); 177 checkRawLocation(script1, 1, 20, rawSourceCode.uiLocationToRawLocation(1, 20)); 178 checkRawLocation(script2, 6, 2, rawSourceCode.uiLocationToRawLocation(6, 2)); 179 155 180 next(); 156 181 } … … 257 282 InspectorTest.assertTrue(!!rawSourceCode.uiSourceCode); 258 283 var uiSourceCode = rawSourceCode.uiSourceCode; 259 var uiLocation = rawSourceCode.rawLocationToUILocation({ lineNumber : 1, columnNumber: 2 }); 260 InspectorTest.assertEquals(uiSourceCode, uiLocation.uiSourceCode); 261 InspectorTest.assertEquals(1, uiLocation.lineNumber); 262 InspectorTest.assertEquals(2, uiLocation.columnNumber); 284 checkUILocation(uiSourceCode, 1, 2, rawSourceCode.rawLocationToUILocation(createRawLocation(1, 2))); 285 checkRawLocation(script, 1, 2, rawSourceCode.uiLocationToRawLocation(1, 2)); 263 286 uiSourceCode.requestContent(didRequestContent); 264 287 … … 276 299 { 277 300 var uiSourceCode = rawSourceCode.uiSourceCode; 278 var uiLocation = rawSourceCode.rawLocationToUILocation({ lineNumber : 1, columnNumber: 2 }); 279 InspectorTest.assertEquals(uiSourceCode, uiLocation.uiSourceCode); 280 InspectorTest.assertEquals(2, uiLocation.lineNumber); 281 InspectorTest.assertEquals(4, uiLocation.columnNumber); 301 checkUILocation(uiSourceCode, 2, 4, rawSourceCode.rawLocationToUILocation(createRawLocation(1, 2))); 302 checkRawLocation(script, 1, 2, rawSourceCode.uiLocationToRawLocation(2, 4)); 282 303 uiSourceCode.requestContent(didRequestFormattedContent); 283 304 } … … 295 316 { 296 317 var uiSourceCode = rawSourceCode.uiSourceCode; 297 var uiLocation = rawSourceCode.rawLocationToUILocation({ lineNumber : 1, columnNumber: 2 }); 298 InspectorTest.assertEquals(uiSourceCode, uiLocation.uiSourceCode); 299 InspectorTest.assertEquals(1, uiLocation.lineNumber); 300 InspectorTest.assertEquals(2, uiLocation.columnNumber); 318 checkUILocation(uiSourceCode, 1, 2, rawSourceCode.rawLocationToUILocation(createRawLocation(1, 2))); 319 checkRawLocation(script, 1, 2, rawSourceCode.uiLocationToRawLocation(1, 2)); 301 320 uiSourceCode.requestContent(didRequestNotFormattedContent); 302 321 } … … 325 344 { 326 345 var uiSourceCode = rawSourceCode.uiSourceCode; 327 var uiLocation = rawSourceCode.rawLocationToUILocation({ lineNumber : 1, columnNumber: 2 }); 328 InspectorTest.assertEquals(uiSourceCode, uiLocation.uiSourceCode); 329 InspectorTest.assertEquals(2, uiLocation.lineNumber); 330 InspectorTest.assertEquals(4, uiLocation.columnNumber); 331 346 checkUILocation(uiSourceCode, 2, 4, rawSourceCode.rawLocationToUILocation(createRawLocation(1, 2))); 347 checkRawLocation(script, 1, 2, rawSourceCode.uiLocationToRawLocation(2, 4)); 332 348 next(); 333 349 } -
trunk/Source/WebCore/ChangeLog
r94760 r94762 1 2011-09-07 Pavel Podivilov <podivilov@chromium.org> 2 3 Web Inspector: get rid of RawSourceCode.createSourceMappingIfNeeded. 4 https://bugs.webkit.org/show_bug.cgi?id=67717 5 6 Listen to SourceMappingUpdated event instead of using createSourceMappingIfNeeded. 7 8 Reviewed by Yury Semikhatsky. 9 10 * inspector/front-end/DebuggerPresentationModel.js: 11 (WebInspector.DebuggerPresentationModel): 12 (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation.updateAnchor): 13 (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation): 14 (WebInspector.DebuggerPresentationModel.prototype._updateSourceMapping): 15 (WebInspector.DebuggerPresentationModel.prototype._restoreBreakpoints): 16 (WebInspector.DebuggerPresentationModel.prototype._restoreConsoleMessages): 17 (WebInspector.DebuggerPresentationModel.prototype.setFormatSource): 18 (WebInspector.DebuggerPresentationModel.prototype._consoleMessageAdded): 19 (WebInspector.DebuggerPresentationModel.prototype._createPresentationMessage): 20 (WebInspector.DebuggerPresentationModel.prototype._consoleCleared): 21 (WebInspector.DebuggerPresentationModel.prototype.continueToLine): 22 (WebInspector.DebuggerPresentationModel.prototype.messagesForUISourceCode): 23 (WebInspector.DebuggerPresentationModel.prototype._debuggerReset): 24 (WebInspector.PresentationCallFrame.prototype.sourceLine.sourceMappingUpdated): 25 (WebInspector.PresentationCallFrame.prototype.sourceLine): 26 * inspector/front-end/SourceFile.js: 27 1 28 2011-09-06 Pavel Podivilov <podivilov@chromium.org> 2 29 -
trunk/Source/WebCore/inspector/front-end/BreakpointManager.js
r94571 r94762 92 92 _materializeBreakpoint: function(breakpoint) 93 93 { 94 if (!breakpoint.enabled || breakpoint._debuggerId) 95 return; 96 94 if (!breakpoint.enabled || breakpoint._materialized) 95 return; 96 97 breakpoint._materialized = true; 97 98 var rawLocation = breakpoint.uiSourceCode.rawSourceCode.uiLocationToRawLocation(breakpoint.lineNumber, 0); 98 99 this._setBreakpointInDebugger(breakpoint, rawLocation); … … 216 217 { 217 218 this._removeBreakpointFromDebugger(breakpoint); 219 delete breakpoint._materialized; 218 220 } 219 221 this._forEachBreakpoint(resetBreakpoint.bind(this)); -
trunk/Source/WebCore/inspector/front-end/DebuggerPresentationModel.js
r94760 r94762 37 37 this._formatter = new WebInspector.ScriptFormatter(); 38 38 this._rawSourceCode = {}; 39 this._messages = [];40 41 39 this._presentationCallFrames = []; 42 40 this._selectedCallFrameIndex = 0; … … 69 67 70 68 WebInspector.DebuggerPresentationModel.prototype = { 71 _scriptLocationToUILocation: function(sourceURL, scriptId, lineNumber, columnNumber, callback)72 {73 var rawSourceCode = this._rawSourceCodeForScript(sourceURL, scriptId);74 75 function didCreateSourceMapping()76 {77 var uiLocation = rawSourceCode.rawLocationToUILocation({ lineNumber: lineNumber, columnNumber: columnNumber });78 callback(uiLocation.uiSourceCode, uiLocation.lineNumber);79 }80 // FIXME: force source formatting if needed. This will go away once formatting81 // is fully encapsulated in RawSourceCode class.82 rawSourceCode.createSourceMappingIfNeeded(didCreateSourceMapping);83 },84 85 _uiLocationToScriptLocation: function(uiSourceCode, lineNumber, callback)86 {87 var rawSourceCode = uiSourceCode.rawSourceCode;88 89 function didCreateSourceMapping()90 {91 var rawLocation = rawSourceCode.uiLocationToRawLocation(lineNumber, 0);92 callback(rawLocation);93 }94 // FIXME: force source formatting if needed. This will go away once formatting95 // is fully encapsulated in RawSourceCode class.96 rawSourceCode.createSourceMappingIfNeeded(didCreateSourceMapping);97 },98 99 69 linkifyLocation: function(sourceURL, lineNumber, columnNumber, classes) 100 70 { … … 111 81 function updateAnchor() 112 82 { 113 function didGetLocation(uiSourceCode, lineNumber) 114 { 115 anchor.textContent = WebInspector.formatLinkText(uiSourceCode.url, lineNumber); 116 anchor.setAttribute("preferred_panel", "scripts"); 117 anchor.uiSourceCode = uiSourceCode; 118 anchor.lineNumber = lineNumber; 119 } 120 this._scriptLocationToUILocation(sourceURL, null, lineNumber, columnNumber, didGetLocation.bind(this)); 121 } 122 updateAnchor.call(this); 83 var uiLocation = rawSourceCode.rawLocationToUILocation({ lineNumber: lineNumber, columnNumber: columnNumber }); 84 anchor.textContent = WebInspector.formatLinkText(uiLocation.uiSourceCode.url, uiLocation.lineNumber); 85 anchor.setAttribute("preferred_panel", "scripts"); 86 anchor.uiSourceCode = uiLocation.uiSourceCode; 87 anchor.lineNumber = uiLocation.lineNumber; 88 } 89 if (rawSourceCode.uiSourceCode) 90 updateAnchor.call(this); 123 91 rawSourceCode.addEventListener(WebInspector.RawSourceCode.Events.SourceMappingUpdated, updateAnchor, this); 124 92 return anchor; … … 165 133 var uiSourceCode = rawSourceCode.uiSourceCode; 166 134 167 if (!oldUISourceCode) 168 this.dispatchEventToListeners(WebInspector.DebuggerPresentationModel.Events.UISourceCodeAdded, uiSourceCode); 169 else { 135 if (oldUISourceCode) { 170 136 var breakpoints = this._breakpointManager.breakpointsForUISourceCode(oldUISourceCode); 171 137 for (var lineNumber in breakpoints) { … … 174 140 delete breakpoint.uiSourceCode; 175 141 } 142 } 143 144 this._restoreBreakpoints(uiSourceCode); 145 this._restoreConsoleMessages(uiSourceCode); 146 147 if (!oldUISourceCode) 148 this.dispatchEventToListeners(WebInspector.DebuggerPresentationModel.Events.UISourceCodeAdded, uiSourceCode); 149 else { 176 150 var eventData = { uiSourceCode: uiSourceCode, oldUISourceCode: oldUISourceCode }; 177 151 this.dispatchEventToListeners(WebInspector.DebuggerPresentationModel.Events.UISourceCodeReplaced, eventData); 178 152 } 179 153 }, 154 155 _restoreBreakpoints: function(uiSourceCode) 156 { 180 157 this._breakpointManager.uiSourceCodeAdded(uiSourceCode); 181 158 var breakpoints = this._breakpointManager.breakpointsForUISourceCode(uiSourceCode); 182 159 for (var lineNumber in breakpoints) 183 160 this._breakpointAdded(breakpoints[lineNumber]); 161 }, 162 163 _restoreConsoleMessages: function(uiSourceCode) 164 { 165 var messages = uiSourceCode.rawSourceCode.messages; 166 for (var i = 0; i < messages.length; ++i) 167 messages[i]._presentationMessage = this._createPresentationMessage(messages[i], uiSourceCode); 184 168 }, 185 169 … … 252 236 253 237 this._formatSource = formatSource; 254 255 238 this._breakpointManager.reset(); 256 257 for (var id in this._rawSourceCode) { 258 this._rawSourceCode[id].messages = []; 239 for (var id in this._rawSourceCode) 259 240 this._rawSourceCode[id].setFormatted(this._formatSource); 260 }261 262 var messages = this._messages;263 this._messages = [];264 for (var i = 0; i < messages.length; ++i)265 this._addConsoleMessage(messages[i]);266 241 267 242 if (WebInspector.debuggerModel.callFrames) … … 272 247 { 273 248 var message = event.data; 274 if (message.url && message.isErrorOrWarning() && message.message) 275 this._addConsoleMessage(message); 276 }, 277 278 _addConsoleMessage: function(message) 279 { 280 this._messages.push(message); 249 if (!message.url || !message.isErrorOrWarning() || !message.message) 250 return; 281 251 282 252 var rawSourceCode = this._rawSourceCodeForScript(message.url); … … 284 254 return; 285 255 286 function didGetUILocation(uiSourceCode, lineNumber)287 {288 var presentationMessage = {};289 presentationMessage.uiSourceCode = uiSourceCode;290 presentationMessage.lineNumber = lineNumber;291 presentationMessage.originalMessage = message;292 rawSourceCode.messages.push(presentationMessage); 293 this.dispatchEventToListeners(WebInspector.DebuggerPresentationModel.Events.ConsoleMessageAdded, presentationMessage);294 }256 rawSourceCode.messages.push(message); 257 if (rawSourceCode.uiSourceCode) { 258 message._presentationMessage = this._createPresentationMessage(message, rawSourceCode.uiSourceCode); 259 this.dispatchEventToListeners(WebInspector.DebuggerPresentationModel.Events.ConsoleMessageAdded, message._presentationMessage); 260 } 261 }, 262 263 _createPresentationMessage: function(message, uiSourceCode) 264 { 295 265 // FIXME(62725): stack trace line/column numbers are one-based. 296 266 var lineNumber = message.stackTrace ? message.stackTrace[0].lineNumber - 1 : message.line - 1; 297 267 var columnNumber = message.stackTrace ? message.stackTrace[0].columnNumber - 1 : 0; 298 this._scriptLocationToUILocation(message.url, null, lineNumber, columnNumber, didGetUILocation.bind(this)); 268 var uiLocation = uiSourceCode.rawSourceCode.rawLocationToUILocation({ lineNumber: lineNumber, columnNumber: columnNumber }); 269 var presentationMessage = {}; 270 presentationMessage.uiSourceCode = uiLocation.uiSourceCode; 271 presentationMessage.lineNumber = uiLocation.lineNumber; 272 presentationMessage.originalMessage = message; 273 return presentationMessage; 299 274 }, 300 275 301 276 _consoleCleared: function() 302 277 { 303 this._messages = [];304 278 for (var id in this._rawSourceCode) 305 279 this._rawSourceCode[id].messages = []; … … 309 283 continueToLine: function(uiSourceCode, lineNumber) 310 284 { 311 function didGetScriptLocation(location) 312 { 313 WebInspector.debuggerModel.continueToLocation(location); 314 } 315 this._uiLocationToScriptLocation(uiSourceCode, lineNumber, didGetScriptLocation); 285 var rawLocation = uiSourceCode.rawSourceCode.uiLocationToRawLocation(lineNumber, 0); 286 WebInspector.debuggerModel.continueToLocation(rawLocation); 316 287 }, 317 288 … … 328 299 { 329 300 var rawSourceCode = uiSourceCode.rawSourceCode; 330 return rawSourceCode.messages; 301 var messages = []; 302 for (var i = 0; i < rawSourceCode.messages.length; ++i) 303 messages.push(rawSourceCode.messages[i]._presentationMessage); 304 return messages; 331 305 }, 332 306 … … 438 412 { 439 413 this._rawSourceCode = {}; 440 this._messages = [];441 414 this._presentationCallFrames = []; 442 415 this._selectedCallFrameIndex = 0; … … 522 495 sourceLine: function(callback) 523 496 { 524 var location = this._callFrame.location; 525 if (!this.isInternalScript) 526 this._model._scriptLocationToUILocation(null, location.scriptId, location.lineNumber, location.columnNumber, callback); 527 else 528 callback(undefined, location.lineNumber); 497 var rawLocation = this._callFrame.location; 498 if (!this._rawSourceCode) { 499 callback(undefined, rawLocation.lineNumber); 500 return; 501 } 502 503 if (this._rawSourceCode.uiSourceCode) { 504 var uiLocation = this._rawSourceCode.rawLocationToUILocation(rawLocation); 505 callback(uiLocation.uiSourceCode, uiLocation.lineNumber); 506 return; 507 } 508 509 function sourceMappingUpdated() 510 { 511 this._rawSourceCode.removeEventListener(WebInspector.RawSourceCode.Events.SourceMappingUpdated, sourceMappingUpdated, this); 512 var uiLocation = this._rawSourceCode.rawLocationToUILocation(rawLocation); 513 callback(uiLocation.uiSourceCode, uiLocation.lineNumber); 514 } 515 this._rawSourceCode.addEventListener(WebInspector.RawSourceCode.Events.SourceMappingUpdated, sourceMappingUpdated, this); 529 516 } 530 517 } -
trunk/Source/WebCore/inspector/front-end/SourceFile.js
r94760 r94762 119 119 }, 120 120 121 createSourceMappingIfNeeded: function(callback)122 {123 // FIXME: remove createSourceMappingIfNeeded, client should listen to SourceMappingUpdated event instead.124 if (this._uiSourceCode && !this._updatingSourceMapping) {125 callback();126 return;127 }128 129 function sourceMappingUpdated()130 {131 this.removeEventListener(WebInspector.RawSourceCode.Events.SourceMappingUpdated, sourceMappingUpdated, this);132 callback();133 }134 this.addEventListener(WebInspector.RawSourceCode.Events.SourceMappingUpdated, sourceMappingUpdated, this);135 },136 137 121 forceUpdateSourceMapping: function(script) 138 122 {
Note: See TracChangeset
for help on using the changeset viewer.