Changeset 96097 in webkit
- Timestamp:
- Sep 27, 2011 5:06:28 AM (13 years ago)
- Location:
- trunk
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r96096 r96097 1 2011-09-21 Pavel Podivilov <podivilov@chromium.org> 2 3 Web Inspector: migrate RawSourceCode clients to SourceMapping class. 4 https://bugs.webkit.org/show_bug.cgi?id=68524 5 6 Reviewed by Yury Semikhatsky. 7 8 * inspector/debugger/breakpoint-manager.html: 9 * inspector/debugger/raw-source-code.html: 10 1 11 2011-09-27 Vineet Chaudhary <vineet.chaudhary@motorola.com> 2 12 -
trunk/LayoutTests/inspector/debugger/breakpoint-manager.html
r94167 r96097 59 59 serializedBreakpoints.push(createBreakpoint("b.js", 3, "", true)); 60 60 61 var uiSourceCodeA = { 62 id: "a.js", 63 url: "a.js", 64 rawSourceCode: { 65 rawLocationToUILocation: function(rawLocation) { return rawLocation; }, 66 uiLocationToRawLocation: function(lineNumber, columnNumber) { return { scriptId: "a.js", lineNumber: lineNumber, columnNumber: columnNumber }; } 67 } 68 }; 69 var uiSourceCodeB = { 70 id: "b.js", 71 url: "b.js", 72 rawSourceCode: { 73 rawLocationToUILocation: function(rawLocation) { return rawLocation; }, 74 uiLocationToRawLocation: function(lineNumber, columnNumber) { return { scriptId: "b.js", lineNumber: lineNumber, columnNumber: columnNumber }; } 75 } 76 } 61 function createUISourceCode(id, url, rawLocationToUILocation, uiLocationToRawLocation) 62 { 63 return { 64 id: id, 65 url: url, 66 rawSourceCode: { sourceMapping : { rawLocationToUILocation: rawLocationToUILocation, uiLocationToRawLocation: uiLocationToRawLocation } } 67 }; 68 } 69 70 var uiSourceCodeA = createUISourceCode("a.js", "a.js", 71 function(rawLocation) { return rawLocation; }, 72 function(lineNumber, columnNumber) { return { scriptId: "a.js", lineNumber: lineNumber, columnNumber: columnNumber }; }); 73 var uiSourceCodeB = createUISourceCode("b.js", "b.js", 74 function(rawLocation) { return rawLocation; }, 75 function(lineNumber, columnNumber) { return { scriptId: "b.js", lineNumber: lineNumber, columnNumber: columnNumber }; }); 77 76 78 77 function createBreakpointManager(breakpoints) … … 205 204 { 206 205 var breakpointManager = createBreakpointManager([createBreakpoint("c.js", 4, "", true)]); 207 208 var uiSourceCodeC = { 209 id: "c.js", 210 url: "c.js", 211 rawSourceCode: { 212 rawLocationToUILocation: function(rawLocation) { return rawLocation; }, 213 uiLocationToRawLocation: function(lineNumber, columnNumber) { return { scriptId: "c.js", lineNumber: lineNumber, columnNumber: columnNumber }; } 214 } 215 }; 216 var uiSourceCodeCFormatted = { 217 id: "deobfuscated:c.js", 218 url: "c.js", 219 rawSourceCode: { 220 rawLocationToUILocation: function(rawLocation) { return { lineNumber: rawLocation.lineNumber * 2, columnNumber: rawLocation.columnNumber * 2 }; }, 221 uiLocationToRawLocation: function(lineNumber, columnNumber) { return { scriptId: "c.js", lineNumber: Math.floor(lineNumber / 2), columnNumber: Math.floor(columnNumber / 2) }; } 222 } 223 } 206 var uiSourceCodeC = createUISourceCode("c.js", "c.js", 207 function(rawLocation) { return rawLocation; }, 208 function(lineNumber, columnNumber) { return { scriptId: "c.js", lineNumber: lineNumber, columnNumber: columnNumber }; }); 209 var uiSourceCodeCFormatted = createUISourceCode("deobfuscated:c.js", "c.js", 210 function(rawLocation) { return { lineNumber: rawLocation.lineNumber * 2, columnNumber: rawLocation.columnNumber * 2 }; }, 211 function(lineNumber, columnNumber) { return { scriptId: "c.js", lineNumber: Math.floor(lineNumber / 2), columnNumber: Math.floor(columnNumber / 2) }; }); 224 212 225 213 breakpointManager.uiSourceCodeAdded(uiSourceCodeC); -
trunk/LayoutTests/inspector/debugger/raw-source-code.html
r94762 r96097 106 106 var rawSourceCode = createRawSourceCode(script, null); 107 107 108 InspectorTest.assertTrue(!!rawSourceCode.uiSourceCode);109 var uiSourceCode = rawSourceCode.uiSourceCode;108 var sourceMapping = rawSourceCode.sourceMapping; 109 var uiSourceCode = sourceMapping.uiSourceCode; 110 110 InspectorTest.assertEquals("foo.js", uiSourceCode.url); 111 111 InspectorTest.assertEquals(true, uiSourceCode.isContentScript); 112 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));113 checkUILocation(uiSourceCode, 0, 5, sourceMapping.rawLocationToUILocation(createRawLocation(0, 5))); 114 checkRawLocation(script, 0, 10, sourceMapping.uiLocationToRawLocation(0, 10)); 115 115 uiSourceCode.requestContent(didRequestContent); 116 116 … … 130 130 var rawSourceCode = createRawSourceCode(script1, resource); 131 131 132 InspectorTest.assertTrue(!rawSourceCode. uiSourceCode);132 InspectorTest.assertTrue(!rawSourceCode.sourceMapping); 133 133 waitForSourceMappingEvent(rawSourceCode, mappingReady); 134 134 resource.finish(); … … 137 137 { 138 138 InspectorTest.assertTrue(!event.data.oldSourceCode); 139 var uiSourceCode = rawSourceCode. uiSourceCode;139 var uiSourceCode = rawSourceCode.sourceMapping.uiSourceCode; 140 140 InspectorTest.assertEquals("index.html", uiSourceCode.url); 141 141 InspectorTest.assertEquals(false, uiSourceCode.isContentScript); … … 161 161 var rawSourceCode = createRawSourceCode(script1, resource); 162 162 163 InspectorTest.assertTrue(!!rawSourceCode.uiSourceCode);164 var uiSourceCode = rawSourceCode.uiSourceCode;163 var sourceMapping = rawSourceCode.sourceMapping; 164 var uiSourceCode = sourceMapping.uiSourceCode; 165 165 InspectorTest.assertEquals("index.html", uiSourceCode.url); 166 166 InspectorTest.assertEquals(false, uiSourceCode.isContentScript); … … 174 174 rawSourceCode.addScript(script2); 175 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));176 checkUILocation(uiSourceCode, 1, 20, sourceMapping.rawLocationToUILocation(createRawLocation(1, 20))); 177 checkRawLocation(script1, 1, 20, sourceMapping.uiLocationToRawLocation(1, 20)); 178 checkRawLocation(script2, 6, 2, sourceMapping.uiLocationToRawLocation(6, 2)); 179 179 180 180 next(); … … 188 188 var rawSourceCode = createRawSourceCode(script, resource); 189 189 190 InspectorTest.assertTrue(!!rawSourceCode.uiSourceCode); 191 rawSourceCode.uiSourceCode.requestContent(didRequestContent); 190 var sourceMapping = rawSourceCode.sourceMapping; 191 var uiSourceCode = sourceMapping.uiSourceCode; 192 uiSourceCode.requestContent(didRequestContent); 192 193 193 194 function didRequestContent(mimeType, content) … … 203 204 function mappingReadyAfterEdit() 204 205 { 205 rawSourceCode. uiSourceCode.requestContent(didRequestContentAfterEdit);206 rawSourceCode.sourceMapping.uiSourceCode.requestContent(didRequestContentAfterEdit); 206 207 } 207 208 … … 222 223 var rawSourceCode = createRawSourceCode(script1, resource); 223 224 224 InspectorTest.assertTrue(!rawSourceCode. uiSourceCode);225 InspectorTest.assertTrue(!rawSourceCode.sourceMapping); 225 226 waitForSourceMappingEvent(rawSourceCode, requestContent); 226 227 rawSourceCode.forceUpdateSourceMapping(); … … 228 229 function requestContent() 229 230 { 230 rawSourceCode. uiSourceCode.requestContent(didRequestContentOneScript);231 rawSourceCode.sourceMapping.uiSourceCode.requestContent(didRequestContentOneScript); 231 232 } 232 233 … … 244 245 function requestContentTwoScripts() 245 246 { 246 rawSourceCode. uiSourceCode.requestContent(didRequestContentTwoScripts);247 rawSourceCode.sourceMapping.uiSourceCode.requestContent(didRequestContentTwoScripts); 247 248 } 248 249 … … 259 260 function requestContentResource() 260 261 { 261 rawSourceCode. uiSourceCode.requestContent(didRequestContentResource);262 rawSourceCode.sourceMapping.uiSourceCode.requestContent(didRequestContentResource); 262 263 } 263 264 … … 280 281 var rawSourceCode = createRawSourceCode(script, resource, false); 281 282 282 InspectorTest.assertTrue(!!rawSourceCode.uiSourceCode);283 var uiSourceCode = rawSourceCode.uiSourceCode;284 checkUILocation(uiSourceCode, 1, 2, rawSourceCode.rawLocationToUILocation(createRawLocation(1, 2)));285 checkRawLocation(script, 1, 2, rawSourceCode.uiLocationToRawLocation(1, 2));283 var sourceMapping = rawSourceCode.sourceMapping; 284 var uiSourceCode = sourceMapping.uiSourceCode; 285 checkUILocation(uiSourceCode, 1, 2, sourceMapping.rawLocationToUILocation(createRawLocation(1, 2))); 286 checkRawLocation(script, 1, 2, sourceMapping.uiLocationToRawLocation(1, 2)); 286 287 uiSourceCode.requestContent(didRequestContent); 287 288 … … 298 299 function requestFormattedContent() 299 300 { 300 var uiSourceCode = rawSourceCode.uiSourceCode; 301 checkUILocation(uiSourceCode, 2, 4, rawSourceCode.rawLocationToUILocation(createRawLocation(1, 2))); 302 checkRawLocation(script, 1, 2, rawSourceCode.uiLocationToRawLocation(2, 4)); 301 var sourceMapping = rawSourceCode.sourceMapping; 302 var uiSourceCode = sourceMapping.uiSourceCode; 303 checkUILocation(uiSourceCode, 2, 4, sourceMapping.rawLocationToUILocation(createRawLocation(1, 2))); 304 checkRawLocation(script, 1, 2, sourceMapping.uiLocationToRawLocation(2, 4)); 303 305 uiSourceCode.requestContent(didRequestFormattedContent); 304 306 } … … 315 317 function requestNotFormattedContent() 316 318 { 317 var uiSourceCode = rawSourceCode.uiSourceCode; 318 checkUILocation(uiSourceCode, 1, 2, rawSourceCode.rawLocationToUILocation(createRawLocation(1, 2))); 319 checkRawLocation(script, 1, 2, rawSourceCode.uiLocationToRawLocation(1, 2)); 319 var sourceMapping = rawSourceCode.sourceMapping; 320 var uiSourceCode = sourceMapping.uiSourceCode; 321 checkUILocation(uiSourceCode, 1, 2, sourceMapping.rawLocationToUILocation(createRawLocation(1, 2))); 322 checkRawLocation(script, 1, 2, sourceMapping.uiLocationToRawLocation(1, 2)); 320 323 uiSourceCode.requestContent(didRequestNotFormattedContent); 321 324 } … … 336 339 var rawSourceCode = createRawSourceCode(script, resource, true); 337 340 338 InspectorTest.assertTrue(!rawSourceCode. uiSourceCode);341 InspectorTest.assertTrue(!rawSourceCode.sourceMapping); 339 342 resource.finish(); 340 343 waitForSourceMappingEvent(rawSourceCode, checkMapping); … … 343 346 function checkMapping() 344 347 { 345 var uiSourceCode = rawSourceCode.uiSourceCode; 346 checkUILocation(uiSourceCode, 2, 4, rawSourceCode.rawLocationToUILocation(createRawLocation(1, 2))); 347 checkRawLocation(script, 1, 2, rawSourceCode.uiLocationToRawLocation(2, 4)); 348 var sourceMapping = rawSourceCode.sourceMapping; 349 var uiSourceCode = sourceMapping.uiSourceCode; 350 checkUILocation(uiSourceCode, 2, 4, sourceMapping.rawLocationToUILocation(createRawLocation(1, 2))); 351 checkRawLocation(script, 1, 2, sourceMapping.uiLocationToRawLocation(2, 4)); 348 352 next(); 349 353 } -
trunk/Source/WebCore/ChangeLog
r96096 r96097 1 2011-09-21 Pavel Podivilov <podivilov@chromium.org> 2 3 Web Inspector: migrate RawSourceCode clients to SourceMapping class. 4 https://bugs.webkit.org/show_bug.cgi?id=68524 5 6 Clients should use uiSourceCode(), rawLocationToUILocation(), uiLocationToRawLocation() methods of SourceMapping class. 7 Initially, RawSourceCode may not have associated SourceMapping, so it is natural to extract this methods and associated state to a separate class. 8 9 Reviewed by Yury Semikhatsky. 10 11 * inspector/front-end/BreakpointManager.js: 12 (WebInspector.BreakpointManager.prototype._materializeBreakpoint): 13 (WebInspector.BreakpointManager.prototype._breakpointDebuggerLocationChanged): 14 * inspector/front-end/DebuggerPresentationModel.js: 15 (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation.updateAnchor): 16 (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation): 17 (WebInspector.DebuggerPresentationModel.prototype._addScript): 18 (WebInspector.DebuggerPresentationModel.prototype._updateSourceMapping): 19 (WebInspector.DebuggerPresentationModel.prototype._restoreBreakpoints): 20 (WebInspector.DebuggerPresentationModel.prototype._restoreConsoleMessages): 21 (WebInspector.DebuggerPresentationModel.prototype._consoleMessageAdded): 22 (WebInspector.DebuggerPresentationModel.prototype._createPresentationMessage): 23 (WebInspector.DebuggerPresentationModel.prototype.continueToLine): 24 (WebInspector.PresentationCallFrame.prototype.get url): 25 (WebInspector.PresentationCallFrame.prototype.sourceLine.sourceMappingUpdated): 26 (WebInspector.PresentationCallFrame.prototype.sourceLine): 27 (WebInspector.DebuggerPresentationModelResourceBinding.prototype.canSetContent): 28 (WebInspector.DebuggerPresentationModelResourceBinding.prototype.setContent): 29 * inspector/front-end/SourceFile.js: 30 (WebInspector.RawSourceCode.prototype.get sourceMapping): 31 1 32 2011-09-27 Vineet Chaudhary <vineet.chaudhary@motorola.com> 2 33 -
trunk/Source/WebCore/inspector/front-end/BreakpointManager.js
r94762 r96097 96 96 97 97 breakpoint._materialized = true; 98 var rawLocation = breakpoint.uiSourceCode.rawSourceCode. uiLocationToRawLocation(breakpoint.lineNumber, 0);98 var rawLocation = breakpoint.uiSourceCode.rawSourceCode.sourceMapping.uiLocationToRawLocation(breakpoint.lineNumber, 0); 99 99 this._setBreakpointInDebugger(breakpoint, rawLocation); 100 100 }, … … 104 104 if (!breakpoint.uiSourceCode) 105 105 return; 106 var uiLocation = breakpoint.uiSourceCode.rawSourceCode. rawLocationToUILocation(breakpoint._debuggerLocation);106 var uiLocation = breakpoint.uiSourceCode.rawSourceCode.sourceMapping.rawLocationToUILocation(breakpoint._debuggerLocation); 107 107 if (uiLocation.lineNumber === breakpoint.lineNumber) 108 108 return; -
trunk/Source/WebCore/inspector/front-end/DebuggerPresentationModel.js
r95538 r96097 81 81 function updateAnchor() 82 82 { 83 var uiLocation = rawSourceCode. rawLocationToUILocation({ lineNumber: lineNumber, columnNumber: columnNumber });83 var uiLocation = rawSourceCode.sourceMapping.rawLocationToUILocation({ lineNumber: lineNumber, columnNumber: columnNumber }); 84 84 anchor.textContent = WebInspector.formatLinkText(uiLocation.uiSourceCode.url, uiLocation.lineNumber); 85 85 anchor.setAttribute("preferred_panel", "scripts"); … … 87 87 anchor.lineNumber = uiLocation.lineNumber; 88 88 } 89 if (rawSourceCode. uiSourceCode)89 if (rawSourceCode.sourceMapping) 90 90 updateAnchor.call(this); 91 91 rawSourceCode.addEventListener(WebInspector.RawSourceCode.Events.SourceMappingUpdated, updateAnchor, this); … … 117 117 rawSourceCode = new WebInspector.RawSourceCode(rawSourceCodeId, script, resource, this._formatter, this._formatSource); 118 118 this._rawSourceCode[rawSourceCodeId] = rawSourceCode; 119 if (rawSourceCode. uiSourceCode)119 if (rawSourceCode.sourceMapping) 120 120 this._updateSourceMapping(rawSourceCode, null); 121 121 rawSourceCode.addEventListener(WebInspector.RawSourceCode.Events.SourceMappingUpdated, this._sourceMappingUpdated, this); … … 131 131 _updateSourceMapping: function(rawSourceCode, oldUISourceCode) 132 132 { 133 var uiSourceCode = rawSourceCode.uiSourceCode;134 135 133 if (oldUISourceCode) { 136 134 var breakpoints = this._breakpointManager.breakpointsForUISourceCode(oldUISourceCode); … … 142 140 } 143 141 144 this._restoreBreakpoints(uiSourceCode); 145 this._restoreConsoleMessages(uiSourceCode); 146 142 this._restoreBreakpoints(rawSourceCode); 143 this._restoreConsoleMessages(rawSourceCode); 144 145 var uiSourceCode = rawSourceCode.sourceMapping.uiSourceCode; 147 146 if (!oldUISourceCode) 148 147 this.dispatchEventToListeners(WebInspector.DebuggerPresentationModel.Events.UISourceCodeAdded, uiSourceCode); … … 153 152 }, 154 153 155 _restoreBreakpoints: function(uiSourceCode) 156 { 154 _restoreBreakpoints: function(rawSourceCode) 155 { 156 var uiSourceCode = rawSourceCode.sourceMapping.uiSourceCode; 157 157 this._breakpointManager.uiSourceCodeAdded(uiSourceCode); 158 158 var breakpoints = this._breakpointManager.breakpointsForUISourceCode(uiSourceCode); … … 161 161 }, 162 162 163 _restoreConsoleMessages: function( uiSourceCode)164 { 165 var messages = uiSourceCode.rawSourceCode.messages;163 _restoreConsoleMessages: function(rawSourceCode) 164 { 165 var messages = rawSourceCode.messages; 166 166 for (var i = 0; i < messages.length; ++i) 167 messages[i]._presentationMessage = this._createPresentationMessage(messages[i], uiSourceCode);167 messages[i]._presentationMessage = this._createPresentationMessage(messages[i], rawSourceCode.sourceMapping); 168 168 }, 169 169 … … 255 255 256 256 rawSourceCode.messages.push(message); 257 if (rawSourceCode. uiSourceCode) {258 message._presentationMessage = this._createPresentationMessage(message, rawSourceCode. uiSourceCode);257 if (rawSourceCode.sourceMapping) { 258 message._presentationMessage = this._createPresentationMessage(message, rawSourceCode.sourceMapping); 259 259 this.dispatchEventToListeners(WebInspector.DebuggerPresentationModel.Events.ConsoleMessageAdded, message._presentationMessage); 260 260 } 261 261 }, 262 262 263 _createPresentationMessage: function(message, uiSourceCode)263 _createPresentationMessage: function(message, sourceMapping) 264 264 { 265 265 // FIXME(62725): stack trace line/column numbers are one-based. 266 266 var lineNumber = message.stackTrace ? message.stackTrace[0].lineNumber - 1 : message.line - 1; 267 267 var columnNumber = message.stackTrace ? message.stackTrace[0].columnNumber - 1 : 0; 268 var uiLocation = uiSourceCode.rawSourceCode.rawLocationToUILocation({ lineNumber: lineNumber, columnNumber: columnNumber });268 var uiLocation = sourceMapping.rawLocationToUILocation({ lineNumber: lineNumber, columnNumber: columnNumber }); 269 269 var presentationMessage = {}; 270 270 presentationMessage.uiSourceCode = uiLocation.uiSourceCode; … … 283 283 continueToLine: function(uiSourceCode, lineNumber) 284 284 { 285 var rawLocation = uiSourceCode.rawSourceCode. uiLocationToRawLocation(lineNumber, 0);285 var rawLocation = uiSourceCode.rawSourceCode.sourceMapping.uiLocationToRawLocation(lineNumber, 0); 286 286 WebInspector.debuggerModel.continueToLocation(rawLocation); 287 287 }, … … 450 450 get url() 451 451 { 452 if (this._rawSourceCode && this._rawSourceCode. uiSourceCode)453 return this._rawSourceCode. uiSourceCode.url;452 if (this._rawSourceCode && this._rawSourceCode.sourceMapping) 453 return this._rawSourceCode.sourceMapping.uiSourceCode.url; 454 454 }, 455 455 … … 501 501 } 502 502 503 if (this._rawSourceCode. uiSourceCode) {504 var uiLocation = this._rawSourceCode. rawLocationToUILocation(rawLocation);503 if (this._rawSourceCode.sourceMapping) { 504 var uiLocation = this._rawSourceCode.sourceMapping.rawLocationToUILocation(rawLocation); 505 505 callback(uiLocation.uiSourceCode, uiLocation.lineNumber); 506 506 return; … … 510 510 { 511 511 this._rawSourceCode.removeEventListener(WebInspector.RawSourceCode.Events.SourceMappingUpdated, sourceMappingUpdated, this); 512 var uiLocation = this._rawSourceCode. rawLocationToUILocation(rawLocation);512 var uiLocation = this._rawSourceCode.sourceMapping.rawLocationToUILocation(rawLocation); 513 513 callback(uiLocation.uiSourceCode, uiLocation.lineNumber); 514 514 } … … 533 533 if (!rawSourceCode) 534 534 return false; 535 return this._presentationModel.canEditScriptSource(rawSourceCode. uiSourceCode);535 return this._presentationModel.canEditScriptSource(rawSourceCode.sourceMapping.uiSourceCode); 536 536 }, 537 537 … … 547 547 } 548 548 549 resource.requestContent(this._setContentWithInitialContent.bind(this, rawSourceCode. uiSourceCode, content, userCallback));549 resource.requestContent(this._setContentWithInitialContent.bind(this, rawSourceCode.sourceMapping.uiSourceCode, content, userCallback)); 550 550 }, 551 551 -
trunk/Source/WebCore/inspector/front-end/SourceFile.js
r95797 r96097 66 66 }, 67 67 68 get uiSourceCode() 69 { 70 // FIXME: clients should use sourceMapping directly. 71 return this._sourceMapping && this._sourceMapping.uiSourceCode; 68 get sourceMapping() 69 { 70 return this._sourceMapping; 72 71 }, 73 72 … … 89 88 this._useTemporaryContent = false; 90 89 this._updateSourceMapping(); 91 },92 93 rawLocationToUILocation: function(rawLocation)94 {95 // FIXME: clients should use sourceMapping directly.96 return this._sourceMapping.rawLocationToUILocation(rawLocation);97 },98 99 uiLocationToRawLocation: function(lineNumber, columnNumber)100 {101 // FIXME: clients should use sourceMapping directly.102 return this._sourceMapping.uiLocationToRawLocation(lineNumber, columnNumber);103 90 }, 104 91
Note: See TracChangeset
for help on using the changeset viewer.