Index: Source/devtools/front_end/sdk/BreakpointManager.js |
diff --git a/Source/devtools/front_end/sdk/BreakpointManager.js b/Source/devtools/front_end/sdk/BreakpointManager.js |
index e2fc7ed2ecf9e19492051a563e5a93c844530d4d..af33ae529a5bc48d3bfed6959dcc04cad805907f 100644 |
--- a/Source/devtools/front_end/sdk/BreakpointManager.js |
+++ b/Source/devtools/front_end/sdk/BreakpointManager.js |
@@ -31,6 +31,7 @@ |
/** |
* @constructor |
* @extends {WebInspector.Object} |
+ * @implements {WebInspector.TargetManager.Observer} |
* @param {!WebInspector.Setting} breakpointStorage |
* @param {!WebInspector.Workspace} workspace |
* @param {!WebInspector.TargetManager} targetManager |
@@ -41,6 +42,7 @@ WebInspector.BreakpointManager = function(breakpointStorage, workspace, targetMa |
this._workspace = workspace; |
this._targetManager = targetManager; |
+ this._breakpointsActive = true; |
this._breakpointsForUISourceCode = new Map(); |
this._breakpointsForPrimaryUISourceCode = new Map(); |
/** @type {!StringMultimap.<!WebInspector.BreakpointManager.Breakpoint>} */ |
@@ -53,7 +55,8 @@ WebInspector.BreakpointManager = function(breakpointStorage, workspace, targetMa |
WebInspector.BreakpointManager.Events = { |
BreakpointAdded: "breakpoint-added", |
- BreakpointRemoved: "breakpoint-removed" |
+ BreakpointRemoved: "breakpoint-removed", |
+ BreakpointsActiveStateChanged: "BreakpointsActiveStateChanged" |
} |
WebInspector.BreakpointManager._sourceFileId = function(uiSourceCode) |
@@ -79,6 +82,20 @@ WebInspector.BreakpointManager._breakpointStorageId = function(sourceFileId, lin |
WebInspector.BreakpointManager.prototype = { |
/** |
+ * @param {!WebInspector.Target} target |
+ */ |
+ targetAdded: function(target) { |
+ if (!this._breakpointsActive) |
+ target.debuggerAgent().setBreakpointsActive(this._breakpointsActive); |
+ }, |
+ |
+ /** |
+ * @param {!WebInspector.Target} target |
+ */ |
+ targetRemoved: function(target) { }, |
+ |
+ |
+ /** |
* @param {string} sourceFileId |
* @return {!StringMap.<!WebInspector.BreakpointManager.Breakpoint>} |
*/ |
@@ -189,9 +206,7 @@ WebInspector.BreakpointManager.prototype = { |
*/ |
setBreakpoint: function(uiSourceCode, lineNumber, columnNumber, condition, enabled) |
{ |
- var targets = this._targetManager.targets(); |
- for (var i = 0; i < targets.length; ++i) |
- targets[i].debuggerModel.setBreakpointsActive(true); |
+ this.setBreakpointsActive(true); |
return this._innerSetBreakpoint(uiSourceCode, lineNumber, columnNumber, condition, enabled); |
}, |
@@ -403,6 +418,35 @@ WebInspector.BreakpointManager.prototype = { |
this.dispatchEventToListeners(WebInspector.BreakpointManager.Events.BreakpointRemoved, {breakpoint: breakpoint, uiLocation: uiLocation}); |
}, |
+ /** |
+ * @param {boolean} active |
+ */ |
+ setBreakpointsActive: function(active) |
+ { |
+ if (this._breakpointsActive === active) |
+ return; |
+ |
+ this._breakpointsActive = active; |
+ var targets = WebInspector.targetManager.targets(); |
+ for (var i = 0; i < targets.length; ++i) |
+ targets[i].debuggerAgent().setBreakpointsActive(active); |
+ |
+ this.dispatchEventToListeners(WebInspector.BreakpointManager.Events.BreakpointsActiveStateChanged, active); |
+ }, |
+ |
+ toggleBreakpointsActive: function() |
+ { |
+ this.setBreakpointsActive(!this._breakpointsActive); |
+ }, |
+ |
+ /** |
+ * @return {boolean} |
+ */ |
+ breakpointsActive: function() |
+ { |
+ return this._breakpointsActive; |
+ }, |
+ |
__proto__: WebInspector.Object.prototype |
} |