Changeset 112266 in webkit
- Timestamp:
- Mar 27, 2012 7:43:46 AM (12 years ago)
- Location:
- trunk
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r112262 r112266 1 2012-03-27 Pavel Podivilov <podivilov@chromium.org> 2 3 Web Inspector: dispatch breakpoint-added and breakpoint-removed events on UISourceCode. 4 https://bugs.webkit.org/show_bug.cgi?id=82318 5 6 Reviewed by Vsevolod Vlasov. 7 8 * inspector/debugger/breakpoint-manager.html: 9 1 10 2012-03-27 Alexei Filippov <alexeif@chromium.org> 2 11 -
trunk/LayoutTests/inspector/debugger/breakpoint-manager.html
r112236 r112266 14 14 15 15 var uiBreakpoints = {}; 16 function breakpointAdded(breakpoint) 17 { 16 function breakpointAdded(event) 17 { 18 var breakpoint = event.data; 18 19 InspectorTest.addResult("breakpointAdded(" + [breakpoint.uiSourceCode.id, breakpoint.lineNumber, breakpoint.condition, breakpoint.enabled].join(", ") + ")"); 19 20 var breakpointId = breakpoint.uiSourceCode.id + ":" + breakpoint.lineNumber; … … 21 22 uiBreakpoints[breakpointId] = breakpoint.condition + "|" + breakpoint.enabled; 22 23 } 23 function breakpointRemoved(breakpoint) 24 { 24 function breakpointRemoved(event) 25 { 26 var breakpoint = event.data; 25 27 InspectorTest.addResult("breakpointRemoved(" + [breakpoint.uiSourceCode.id, breakpoint.lineNumber].join(", ") + ")"); 26 28 var breakpointId = breakpoint.uiSourceCode.id + ":" + breakpoint.lineNumber; … … 60 62 61 63 function createUISourceCode(id, url) { return new WebInspector.UISourceCodeImpl(id, url, null); } 62 var uiSourceCodeA = createUISourceCode("a.js", "a.js");63 var uiSourceCodeB = createUISourceCode("b.js", "b.js");64 64 65 65 var scriptMapping = {}; … … 67 67 scriptMapping.uiLocationToRawLocation = function(uiSourceCode, lineNumber) 68 68 { 69 scriptId = uiSourceCode === uiSourceCodeA ? "a.js" : "b.js"; 70 return { scriptId: scriptId, lineNumber: lineNumber, columnNumber: 0 }; 69 return { scriptId: uiSourceCode.id, lineNumber: lineNumber, columnNumber: 0 }; 71 70 } 72 71 … … 77 76 debuggerBreakpoints = {}; 78 77 debuggerModel.removeAllListeners(); 79 return new WebInspector.BreakpointManager(breakpointStorage, breakpointAdded, breakpointRemoved, debuggerModel, scriptMapping); 78 return new WebInspector.BreakpointManager(breakpointStorage, debuggerModel, scriptMapping); 79 } 80 81 function addUISourceCode(breakpointManager, uiSourceCode) 82 { 83 uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.BreakpointAdded, breakpointAdded); 84 uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.BreakpointRemoved, breakpointRemoved); 85 breakpointManager.uiSourceCodeAdded(uiSourceCode); 80 86 } 81 87 … … 84 90 { 85 91 var breakpointManager = createBreakpointManager(serializedBreakpoints, scriptMapping); 86 87 breakpointManager.uiSourceCodeAdded(uiSourceCodeA);92 var uiSourceCode = createUISourceCode("a.js", "a.js"); 93 addUISourceCode(breakpointManager, uiSourceCode); 88 94 setTimeout(checkResults, 0); 89 95 … … 99 105 { 100 106 var breakpointManager = createBreakpointManager(serializedBreakpoints, scriptMapping); 101 102 breakpointManager.uiSourceCodeAdded(uiSourceCodeA);107 var uiSourceCode = createUISourceCode("a.js", "a.js"); 108 addUISourceCode(breakpointManager, uiSourceCode); 103 109 setTimeout(setAndRemove, 0); 104 110 105 111 function setAndRemove() 106 112 { 107 breakpointManager.setBreakpoint(uiSourceCode A, 30, "", true);113 breakpointManager.setBreakpoint(uiSourceCode, 30, "", true); 108 114 // Remove breakpoint immediately, breakpoint should be removed correctly from both debugger model and UI. 109 breakpointManager.removeBreakpoint(uiSourceCode A, 30);110 111 breakpointManager.removeBreakpoint(uiSourceCode A, 10);112 breakpointManager.removeBreakpoint(uiSourceCode A, 20);115 breakpointManager.removeBreakpoint(uiSourceCode, 30); 116 117 breakpointManager.removeBreakpoint(uiSourceCode, 10); 118 breakpointManager.removeBreakpoint(uiSourceCode, 20); 113 119 setTimeout(checkResults, 0); 114 120 } … … 125 131 { 126 132 var breakpointManager = createBreakpointManager([], scriptMapping); 127 128 breakpointManager.uiSourceCodeAdded(uiSourceCodeA);133 var uiSourceCode = createUISourceCode("a.js", "a.js"); 134 addUISourceCode(breakpointManager, uiSourceCode); 129 135 130 136 debuggerModel.actualLocations = [{ lineNumber: 16, columnNumber: 0 }]; 131 breakpointManager.setBreakpoint(uiSourceCode A, 15, "", true);137 breakpointManager.setBreakpoint(uiSourceCode, 15, "", true); 132 138 setTimeout(checkResults, 0); 133 139 function checkResults() … … 141 147 { 142 148 var breakpointManager = createBreakpointManager([], scriptMapping); 143 144 breakpointManager.uiSourceCodeAdded(uiSourceCodeA);149 var uiSourceCode = createUISourceCode("a.js", "a.js"); 150 addUISourceCode(breakpointManager, uiSourceCode); 145 151 146 152 debuggerModel.actualLocations = []; 147 breakpointManager.setBreakpoint(uiSourceCode A, 15, "", true);153 breakpointManager.setBreakpoint(uiSourceCode, 15, "", true); 148 154 setTimeout(checkResults, 0); 149 155 function checkResults() … … 157 163 { 158 164 var breakpointManager = createBreakpointManager(serializedBreakpoints, scriptMapping); 159 160 breakpointManager.uiSourceCodeAdded(uiSourceCodeA);165 var uiSourceCodeA = createUISourceCode("a.js", "a.js"); 166 addUISourceCode(breakpointManager, uiSourceCodeA); 161 167 setTimeout(navigateToB, 0); 162 168 … … 168 174 breakpointManager.debuggerReset(); 169 175 170 breakpointManager.uiSourceCodeAdded(uiSourceCodeB); 176 var uiSourceCodeB = createUISourceCode("b.js", "b.js"); 177 addUISourceCode(breakpointManager, uiSourceCodeB); 171 178 setTimeout(navigateToA, 0); 172 179 } … … 182 189 var eventData = { breakpointId: "a.js:10:0", location: { scriptId: "a.js", lineNumber: 11, columnNumber: 5 }}; 183 190 debuggerModel.dispatchEventToListeners(WebInspector.DebuggerModel.Events.BreakpointResolved, eventData); 184 breakpointManager.uiSourceCodeAdded(uiSourceCodeA); 191 var uiSourceCodeA = createUISourceCode("a.js", "a.js"); 192 addUISourceCode(breakpointManager, uiSourceCodeA); 185 193 setTimeout(checkResults, 0); 186 194 } … … 208 216 scriptMapping.uiLocationToRawLocation = function(uiSourceCode, lineNumber) { return { scriptId: "c.js", lineNumber: lineNumber, columnNumber: 0 }; }; 209 217 210 breakpointManager.uiSourceCodeAdded(originalUISourceCode);218 addUISourceCode(breakpointManager, originalUISourceCode); 211 219 setTimeout(format, 0); 212 220 … … 223 231 scriptMapping.uiLocationToRawLocation = function(uiSourceCode, lineNumber) { return { scriptId: "c.js", lineNumber: Math.floor(lineNumber / 2), columnNumber: 0 }; }; 224 232 225 breakpointManager.uiSourceCodeAdded(formattedUISourceCode);233 addUISourceCode(breakpointManager, formattedUISourceCode); 226 234 breakpointManager.setBreakpoint(formattedUISourceCode, 4, "", true); 227 235 breakpointManager.setBreakpoint(formattedUISourceCode, 8, "", false); … … 246 254 breakpointManager.debuggerReset(); 247 255 248 breakpointManager.uiSourceCodeAdded(formattedUISourceCode); 256 var formattedUISourceCode = createUISourceCode("deobfuscated:c.js", "c.js"); 257 addUISourceCode(breakpointManager, formattedUISourceCode); 249 258 var eventData = { breakpointId: "c.js:2:0", location: { scriptId: "c.js", lineNumber: 3, columnNumber: 0 }}; 250 259 debuggerModel.dispatchEventToListeners(WebInspector.DebuggerModel.Events.BreakpointResolved, eventData); -
trunk/Source/WebCore/ChangeLog
r112264 r112266 1 2012-03-27 Pavel Podivilov <podivilov@chromium.org> 2 3 Web Inspector: dispatch breakpoint-added and breakpoint-removed events on UISourceCode. 4 https://bugs.webkit.org/show_bug.cgi?id=82318 5 6 Reviewed by Vsevolod Vlasov. 7 8 Breakpoint-added and breakpoint-removed events are always related to specific UISourceCode. 9 See bug 82224 for more details. 10 11 * inspector/front-end/BreakpointManager.js: 12 (WebInspector.BreakpointManager.prototype._addBreakpointToUI): 13 (WebInspector.BreakpointManager.prototype._removeBreakpointFromUI): 14 * inspector/front-end/DebuggerPresentationModel.js: 15 (WebInspector.DebuggerPresentationModel): 16 (WebInspector.UISourceCodeImpl.prototype.breakpointAdded): 17 (WebInspector.UISourceCodeImpl.prototype.breakpointRemoved): 18 * inspector/front-end/ScriptsPanel.js: 19 (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded): 20 (WebInspector.ScriptsPanel.prototype._uiSourceCodeRemoved): 21 (WebInspector.ScriptsPanel.prototype._addBreakpointListeners): 22 (WebInspector.ScriptsPanel.prototype._removeBreakpointListeners): 23 (WebInspector.ScriptsPanel.prototype._uiSourceCodeReplaced): 24 * inspector/front-end/UISourceCode.js: 25 1 26 2012-03-27 Jason Liu <jason.liu@torchmobile.com.cn> 2 27 -
trunk/Source/WebCore/inspector/front-end/BreakpointManager.js
r112236 r112266 32 32 * @constructor 33 33 * @param {WebInspector.Setting} breakpointStorage 34 * @param {function(WebInspector.UIBreakpoint)} breakpointAddedDelegate35 * @param {function(WebInspector.UIBreakpoint)} breakpointRemovedDelegate36 34 * @param {WebInspector.DebuggerModel} debuggerModel 37 35 * @param {WebInspector.MainScriptMapping} scriptMapping 38 36 */ 39 WebInspector.BreakpointManager = function(breakpointStorage, breakpointAddedDelegate, breakpointRemovedDelegate,debuggerModel, scriptMapping)37 WebInspector.BreakpointManager = function(breakpointStorage, debuggerModel, scriptMapping) 40 38 { 41 39 this._breakpointStorage = breakpointStorage; 42 this._breakpointAddedDelegate = breakpointAddedDelegate;43 this._breakpointRemovedDelegate = breakpointRemovedDelegate;44 40 45 41 /** … … 199 195 { 200 196 var uiBreakpoint = breakpoint.createUIBreakpoint(uiSourceCode); 201 console.assert(!uiSourceCode.breakpoints()[uiBreakpoint.lineNumber]);202 197 uiSourceCode.breakpointAdded(uiBreakpoint.lineNumber, uiBreakpoint); 203 this._breakpointAddedDelegate(uiBreakpoint);204 198 }, 205 199 … … 214 208 uiSourceCode.breakpointRemoved(lineNumber); 215 209 uiBreakpoint.breakpoint.removeUIBreakpoint(); 216 this._breakpointRemovedDelegate(uiBreakpoint);217 210 }, 218 211 -
trunk/Source/WebCore/inspector/front-end/DebuggerPresentationModel.js
r112236 r112266 40 40 this._presentationCallFrames = []; 41 41 42 this._breakpointManager = new WebInspector.BreakpointManager(WebInspector.settings.breakpoints, this._breakpointAdded.bind(this), this._breakpointRemoved.bind(this),WebInspector.debuggerModel, this._scriptMapping);42 this._breakpointManager = new WebInspector.BreakpointManager(WebInspector.settings.breakpoints, WebInspector.debuggerModel, this._scriptMapping); 43 43 44 44 this._pendingConsoleMessages = {}; … … 64 64 ConsoleMessageAdded: "console-message-added", 65 65 ConsoleMessagesCleared: "console-messages-cleared", 66 UIBreakpointAdded: "ui-breakpoint-added",67 UIBreakpointRemoved: "ui-breakpoint-removed",68 66 DebuggerPaused: "debugger-paused", 69 67 DebuggerResumed: "debugger-resumed", … … 437 435 }, 438 436 439 /**440 * @param {WebInspector.UIBreakpoint} uiBreakpoint441 */442 _breakpointAdded: function(uiBreakpoint)443 {444 this.dispatchEventToListeners(WebInspector.DebuggerPresentationModel.Events.UIBreakpointAdded, uiBreakpoint);445 },446 447 /**448 * @param {WebInspector.UIBreakpoint} uiBreakpoint449 */450 _breakpointRemoved: function(uiBreakpoint)451 {452 this.dispatchEventToListeners(WebInspector.DebuggerPresentationModel.Events.UIBreakpointRemoved, uiBreakpoint);453 },454 455 437 _debuggerPaused: function() 456 438 { … … 597 579 breakpointAdded: function(lineNumber, breakpoint) 598 580 { 581 console.assert(!this._breakpoints[lineNumber]); 599 582 this._breakpoints[lineNumber] = breakpoint; 583 this.dispatchEventToListeners(WebInspector.UISourceCode.Events.BreakpointAdded, breakpoint); 600 584 }, 601 585 602 586 breakpointRemoved: function(lineNumber) 603 587 { 588 var breakpoint = this._breakpoints[lineNumber]; 604 589 delete this._breakpoints[lineNumber]; 605 } 590 this.dispatchEventToListeners(WebInspector.UISourceCode.Events.BreakpointRemoved, breakpoint); 591 }, 606 592 } 607 593 -
trunk/Source/WebCore/inspector/front-end/ScriptsPanel.js
r111682 r112266 178 178 this._presentationModel.addEventListener(WebInspector.DebuggerPresentationModel.Events.ConsoleMessageAdded, this._consoleMessageAdded, this); 179 179 this._presentationModel.addEventListener(WebInspector.DebuggerPresentationModel.Events.ConsoleMessagesCleared, this._consoleMessagesCleared, this); 180 this._presentationModel.addEventListener(WebInspector.DebuggerPresentationModel.Events.UIBreakpointAdded, this._uiBreakpointAdded, this);181 this._presentationModel.addEventListener(WebInspector.DebuggerPresentationModel.Events.UIBreakpointRemoved, this._uiBreakpointRemoved, this);182 180 this._presentationModel.addEventListener(WebInspector.DebuggerPresentationModel.Events.DebuggerPaused, this._debuggerPaused, this); 183 181 this._presentationModel.addEventListener(WebInspector.DebuggerPresentationModel.Events.DebuggerResumed, this._debuggerResumed, this); … … 259 257 { 260 258 var uiSourceCode = /** @type {WebInspector.UISourceCode} */ event.data; 259 this._addBreakpointListeners(uiSourceCode); 261 260 262 261 if (!uiSourceCode.url || uiSourceCode.isSnippetEvaluation) { … … 281 280 var uiSourceCode = /** @type {WebInspector.UISourceCode} */ event.data; 282 281 this._removeSourceFrame(uiSourceCode); 282 this._removeBreakpointListeners(uiSourceCode); 283 }, 284 285 /** 286 * @param {WebInspector.UISourceCode} uiSourceCode 287 */ 288 _addBreakpointListeners: function(uiSourceCode) 289 { 290 uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.BreakpointAdded, this._uiBreakpointAdded, this); 291 uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.BreakpointRemoved, this._uiBreakpointRemoved, this); 292 }, 293 294 /** 295 * @param {WebInspector.UISourceCode} uiSourceCode 296 */ 297 _removeBreakpointListeners: function(uiSourceCode) 298 { 299 uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events.BreakpointAdded, this._uiBreakpointAdded, this); 300 uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events.BreakpointRemoved, this._uiBreakpointRemoved, this); 283 301 }, 284 302 … … 574 592 for (var i = 0; i < oldUISourceCodeList.length; ++i) 575 593 this._removeSourceFrame(oldUISourceCodeList[i]); 594 595 for (var i = 0; i < oldUISourceCodeList.length; ++i) 596 this._removeBreakpointListeners(oldUISourceCodeList[i]); 597 for (var i = 0; i < uiSourceCodeList.length; ++i) 598 this._addBreakpointListeners(uiSourceCodeList[i]); 576 599 }, 577 600 -
trunk/Source/WebCore/inspector/front-end/UISourceCode.js
r112236 r112266 50 50 51 51 WebInspector.UISourceCode.Events = { 52 ContentChanged: "content-changed" 52 ContentChanged: "content-changed", 53 BreakpointAdded: "breakpoint-added", 54 BreakpointRemoved: "breakpoint-removed" 53 55 } 54 56 … … 208 210 }, 209 211 212 /** 213 * @return {Array.<WebInspector.UIBreakpoint>} 214 */ 210 215 breakpoints: function() {} 211 216 }
Note: See TracChangeset
for help on using the changeset viewer.