| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 29 */ | 29 */ |
| 30 | 30 |
| 31 /** | 31 /** |
| 32 * @constructor | 32 * @constructor |
| 33 * @extends {WebInspector.Object} | 33 * @extends {WebInspector.Object} |
| 34 * @implements {WebInspector.TargetManager.Observer} |
| 34 * @param {!WebInspector.Setting} breakpointStorage | 35 * @param {!WebInspector.Setting} breakpointStorage |
| 35 * @param {!WebInspector.Workspace} workspace | 36 * @param {!WebInspector.Workspace} workspace |
| 36 * @param {!WebInspector.TargetManager} targetManager | 37 * @param {!WebInspector.TargetManager} targetManager |
| 37 */ | 38 */ |
| 38 WebInspector.BreakpointManager = function(breakpointStorage, workspace, targetMa
nager) | 39 WebInspector.BreakpointManager = function(breakpointStorage, workspace, targetMa
nager) |
| 39 { | 40 { |
| 40 this._storage = new WebInspector.BreakpointManager.Storage(this, breakpointS
torage); | 41 this._storage = new WebInspector.BreakpointManager.Storage(this, breakpointS
torage); |
| 41 this._workspace = workspace; | 42 this._workspace = workspace; |
| 42 this._targetManager = targetManager; | 43 this._targetManager = targetManager; |
| 43 | 44 |
| 45 this._breakpointsActive = true; |
| 44 this._breakpointsForUISourceCode = new Map(); | 46 this._breakpointsForUISourceCode = new Map(); |
| 45 this._breakpointsForPrimaryUISourceCode = new Map(); | 47 this._breakpointsForPrimaryUISourceCode = new Map(); |
| 46 /** @type {!StringMultimap.<!WebInspector.BreakpointManager.Breakpoint>} */ | 48 /** @type {!StringMultimap.<!WebInspector.BreakpointManager.Breakpoint>} */ |
| 47 this._provisionalBreakpoints = new StringMultimap(); | 49 this._provisionalBreakpoints = new StringMultimap(); |
| 48 | 50 |
| 49 this._workspace.addEventListener(WebInspector.Workspace.Events.ProjectRemove
d, this._projectRemoved, this); | 51 this._workspace.addEventListener(WebInspector.Workspace.Events.ProjectRemove
d, this._projectRemoved, this); |
| 50 this._workspace.addEventListener(WebInspector.Workspace.Events.UISourceCodeA
dded, this._uiSourceCodeAdded, this); | 52 this._workspace.addEventListener(WebInspector.Workspace.Events.UISourceCodeA
dded, this._uiSourceCodeAdded, this); |
| 51 this._workspace.addEventListener(WebInspector.Workspace.Events.UISourceCodeR
emoved, this._uiSourceCodeRemoved, this); | 53 this._workspace.addEventListener(WebInspector.Workspace.Events.UISourceCodeR
emoved, this._uiSourceCodeRemoved, this); |
| 52 } | 54 } |
| 53 | 55 |
| 54 WebInspector.BreakpointManager.Events = { | 56 WebInspector.BreakpointManager.Events = { |
| 55 BreakpointAdded: "breakpoint-added", | 57 BreakpointAdded: "breakpoint-added", |
| 56 BreakpointRemoved: "breakpoint-removed" | 58 BreakpointRemoved: "breakpoint-removed", |
| 59 BreakpointsActiveStateChanged: "BreakpointsActiveStateChanged" |
| 57 } | 60 } |
| 58 | 61 |
| 59 WebInspector.BreakpointManager._sourceFileId = function(uiSourceCode) | 62 WebInspector.BreakpointManager._sourceFileId = function(uiSourceCode) |
| 60 { | 63 { |
| 61 if (!uiSourceCode.url) | 64 if (!uiSourceCode.url) |
| 62 return ""; | 65 return ""; |
| 63 return uiSourceCode.uri(); | 66 return uiSourceCode.uri(); |
| 64 } | 67 } |
| 65 | 68 |
| 66 /** | 69 /** |
| 67 * @param {string} sourceFileId | 70 * @param {string} sourceFileId |
| 68 * @param {number} lineNumber | 71 * @param {number} lineNumber |
| 69 * @param {number} columnNumber | 72 * @param {number} columnNumber |
| 70 * @return {string} | 73 * @return {string} |
| 71 */ | 74 */ |
| 72 WebInspector.BreakpointManager._breakpointStorageId = function(sourceFileId, lin
eNumber, columnNumber) | 75 WebInspector.BreakpointManager._breakpointStorageId = function(sourceFileId, lin
eNumber, columnNumber) |
| 73 { | 76 { |
| 74 if (!sourceFileId) | 77 if (!sourceFileId) |
| 75 return ""; | 78 return ""; |
| 76 return sourceFileId + ":" + lineNumber + ":" + columnNumber; | 79 return sourceFileId + ":" + lineNumber + ":" + columnNumber; |
| 77 } | 80 } |
| 78 | 81 |
| 79 WebInspector.BreakpointManager.prototype = { | 82 WebInspector.BreakpointManager.prototype = { |
| 80 | 83 |
| 81 /** | 84 /** |
| 85 * @param {!WebInspector.Target} target |
| 86 */ |
| 87 targetAdded: function(target) { |
| 88 if (!this._breakpointsActive) |
| 89 target.debuggerAgent().setBreakpointsActive(this._breakpointsActive)
; |
| 90 }, |
| 91 |
| 92 /** |
| 93 * @param {!WebInspector.Target} target |
| 94 */ |
| 95 targetRemoved: function(target) { }, |
| 96 |
| 97 |
| 98 /** |
| 82 * @param {string} sourceFileId | 99 * @param {string} sourceFileId |
| 83 * @return {!StringMap.<!WebInspector.BreakpointManager.Breakpoint>} | 100 * @return {!StringMap.<!WebInspector.BreakpointManager.Breakpoint>} |
| 84 */ | 101 */ |
| 85 _provisionalBreakpointsForSourceFileId: function(sourceFileId) | 102 _provisionalBreakpointsForSourceFileId: function(sourceFileId) |
| 86 { | 103 { |
| 87 var result = new StringMap(); | 104 var result = new StringMap(); |
| 88 var breakpoints = this._provisionalBreakpoints.get(sourceFileId).values(
); | 105 var breakpoints = this._provisionalBreakpoints.get(sourceFileId).values(
); |
| 89 for (var i = 0; i < breakpoints.length; ++i) | 106 for (var i = 0; i < breakpoints.length; ++i) |
| 90 result.put(breakpoints[i]._breakpointStorageId(), breakpoints[i]); | 107 result.put(breakpoints[i]._breakpointStorageId(), breakpoints[i]); |
| 91 return result; | 108 return result; |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 182 /** | 199 /** |
| 183 * @param {!WebInspector.UISourceCode} uiSourceCode | 200 * @param {!WebInspector.UISourceCode} uiSourceCode |
| 184 * @param {number} lineNumber | 201 * @param {number} lineNumber |
| 185 * @param {number} columnNumber | 202 * @param {number} columnNumber |
| 186 * @param {string} condition | 203 * @param {string} condition |
| 187 * @param {boolean} enabled | 204 * @param {boolean} enabled |
| 188 * @return {!WebInspector.BreakpointManager.Breakpoint} | 205 * @return {!WebInspector.BreakpointManager.Breakpoint} |
| 189 */ | 206 */ |
| 190 setBreakpoint: function(uiSourceCode, lineNumber, columnNumber, condition, e
nabled) | 207 setBreakpoint: function(uiSourceCode, lineNumber, columnNumber, condition, e
nabled) |
| 191 { | 208 { |
| 192 var targets = this._targetManager.targets(); | 209 this.setBreakpointsActive(true); |
| 193 for (var i = 0; i < targets.length; ++i) | |
| 194 targets[i].debuggerModel.setBreakpointsActive(true); | |
| 195 return this._innerSetBreakpoint(uiSourceCode, lineNumber, columnNumber,
condition, enabled); | 210 return this._innerSetBreakpoint(uiSourceCode, lineNumber, columnNumber,
condition, enabled); |
| 196 }, | 211 }, |
| 197 | 212 |
| 198 /** | 213 /** |
| 199 * @param {!WebInspector.UISourceCode} uiSourceCode | 214 * @param {!WebInspector.UISourceCode} uiSourceCode |
| 200 * @param {number} lineNumber | 215 * @param {number} lineNumber |
| 201 * @param {number} columnNumber | 216 * @param {number} columnNumber |
| 202 * @param {string} condition | 217 * @param {string} condition |
| 203 * @param {boolean} enabled | 218 * @param {boolean} enabled |
| 204 * @return {!WebInspector.BreakpointManager.Breakpoint} | 219 * @return {!WebInspector.BreakpointManager.Breakpoint} |
| (...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 396 columnBreakpoints.remove(breakpoint); | 411 columnBreakpoints.remove(breakpoint); |
| 397 if (!columnBreakpoints.length) | 412 if (!columnBreakpoints.length) |
| 398 lineBreakpoints.remove(String(uiLocation.columnNumber)); | 413 lineBreakpoints.remove(String(uiLocation.columnNumber)); |
| 399 if (!lineBreakpoints.size()) | 414 if (!lineBreakpoints.size()) |
| 400 breakpoints.remove(String(uiLocation.lineNumber)); | 415 breakpoints.remove(String(uiLocation.lineNumber)); |
| 401 if (!breakpoints.size()) | 416 if (!breakpoints.size()) |
| 402 this._breakpointsForUISourceCode.remove(uiLocation.uiSourceCode); | 417 this._breakpointsForUISourceCode.remove(uiLocation.uiSourceCode); |
| 403 this.dispatchEventToListeners(WebInspector.BreakpointManager.Events.Brea
kpointRemoved, {breakpoint: breakpoint, uiLocation: uiLocation}); | 418 this.dispatchEventToListeners(WebInspector.BreakpointManager.Events.Brea
kpointRemoved, {breakpoint: breakpoint, uiLocation: uiLocation}); |
| 404 }, | 419 }, |
| 405 | 420 |
| 421 /** |
| 422 * @param {boolean} active |
| 423 */ |
| 424 setBreakpointsActive: function(active) |
| 425 { |
| 426 if (this._breakpointsActive === active) |
| 427 return; |
| 428 |
| 429 this._breakpointsActive = active; |
| 430 var targets = WebInspector.targetManager.targets(); |
| 431 for (var i = 0; i < targets.length; ++i) |
| 432 targets[i].debuggerAgent().setBreakpointsActive(active); |
| 433 |
| 434 this.dispatchEventToListeners(WebInspector.BreakpointManager.Events.Brea
kpointsActiveStateChanged, active); |
| 435 }, |
| 436 |
| 437 toggleBreakpointsActive: function() |
| 438 { |
| 439 this.setBreakpointsActive(!this._breakpointsActive); |
| 440 }, |
| 441 |
| 442 /** |
| 443 * @return {boolean} |
| 444 */ |
| 445 breakpointsActive: function() |
| 446 { |
| 447 return this._breakpointsActive; |
| 448 }, |
| 449 |
| 406 __proto__: WebInspector.Object.prototype | 450 __proto__: WebInspector.Object.prototype |
| 407 } | 451 } |
| 408 | 452 |
| 409 /** | 453 /** |
| 410 * @constructor | 454 * @constructor |
| 411 * @implements {WebInspector.TargetManager.Observer} | 455 * @implements {WebInspector.TargetManager.Observer} |
| 412 * @param {!WebInspector.BreakpointManager} breakpointManager | 456 * @param {!WebInspector.BreakpointManager} breakpointManager |
| 413 * @param {string} projectId | 457 * @param {string} projectId |
| 414 * @param {string} path | 458 * @param {string} path |
| 415 * @param {string} sourceFileId | 459 * @param {string} sourceFileId |
| (...skipping 474 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 890 { | 934 { |
| 891 this.sourceFileId = breakpoint._sourceFileId; | 935 this.sourceFileId = breakpoint._sourceFileId; |
| 892 this.lineNumber = breakpoint.lineNumber(); | 936 this.lineNumber = breakpoint.lineNumber(); |
| 893 this.columnNumber = breakpoint.columnNumber(); | 937 this.columnNumber = breakpoint.columnNumber(); |
| 894 this.condition = breakpoint.condition(); | 938 this.condition = breakpoint.condition(); |
| 895 this.enabled = breakpoint.enabled(); | 939 this.enabled = breakpoint.enabled(); |
| 896 } | 940 } |
| 897 | 941 |
| 898 /** @type {!WebInspector.BreakpointManager} */ | 942 /** @type {!WebInspector.BreakpointManager} */ |
| 899 WebInspector.breakpointManager; | 943 WebInspector.breakpointManager; |
| OLD | NEW |