Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1948)

Unified Diff: Source/devtools/front_end/sdk/DebuggerModel.js

Issue 310463003: DevTools: introduce TargetBreakpoints as a presentation of breakpoint and its state within target (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix quadratic complexity Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/devtools/front_end/sdk/DebuggerModel.js
diff --git a/Source/devtools/front_end/sdk/DebuggerModel.js b/Source/devtools/front_end/sdk/DebuggerModel.js
index eb3c6fb42801249a54453207186efec3a9f7a88b..f5d45387a51d801c079178560ba270e850409fcc 100644
--- a/Source/devtools/front_end/sdk/DebuggerModel.js
+++ b/Source/devtools/front_end/sdk/DebuggerModel.js
@@ -48,6 +48,8 @@ WebInspector.DebuggerModel = function(target)
this._scriptsBySourceURL = new StringMap();
this._breakpointsActive = true;
+ /** @type {!StringMap.<!WebInspector.DebuggerModel.BreakpointListener>} */
+ this._breakpointListenerById = new StringMap();
vsevik 2014/06/05 15:48:29 Let's have this._breakpointResolvedEventTarget = n
sergeyv 2014/06/06 11:44:53 Done.
WebInspector.settings.pauseOnExceptionEnabled.addChangeListener(this._pauseOnExceptionStateChanged, this);
WebInspector.settings.pauseOnCaughtException.addChangeListener(this._pauseOnExceptionStateChanged, this);
@@ -80,7 +82,6 @@ WebInspector.DebuggerModel.Events = {
DebuggerResumed: "DebuggerResumed",
ParsedScriptSource: "ParsedScriptSource",
FailedToParseScriptSource: "FailedToParseScriptSource",
- BreakpointResolved: "BreakpointResolved",
GlobalObjectCleared: "GlobalObjectCleared",
CallFrameSelected: "CallFrameSelected",
ConsoleCommandEvaluatedInSelectedCallFrame: "ConsoleCommandEvaluatedInSelectedCallFrame",
@@ -330,7 +331,11 @@ WebInspector.DebuggerModel.prototype = {
*/
_breakpointResolved: function(breakpointId, location)
{
- this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.BreakpointResolved, {breakpointId: breakpointId, location: WebInspector.DebuggerModel.Location.fromPayload(this.target(), location)});
+ var breakpointListener = this._breakpointListenerById.get(breakpointId);
+ if (breakpointListener) {
+ var debuggerLocation = WebInspector.DebuggerModel.Location.fromPayload(this.target(), location);
+ breakpointListener.breakpointResolved(debuggerLocation)
+ }
},
_globalObjectCleared: function()
@@ -706,6 +711,23 @@ WebInspector.DebuggerModel.prototype = {
}
},
+ /**
+ * @param {!DebuggerAgent.BreakpointId} breakpointId
+ * @param {!WebInspector.DebuggerModel.BreakpointListener} listener
+ */
+ registerBreakpointListenerForId: function(breakpointId, listener)
+ {
+ this._breakpointListenerById.put(breakpointId, listener);
+ },
+
+ /**
+ * @param {!DebuggerAgent.BreakpointId} breakpointId
+ */
+ unregisterBreakpointListenerForId: function(breakpointId)
+ {
+ this._breakpointListenerById.remove(breakpointId);
+ },
+
__proto__: WebInspector.TargetAwareObject.prototype
}
@@ -792,6 +814,21 @@ WebInspector.DebuggerDispatcher.prototype = {
}
/**
+ * @interface
+ */
+WebInspector.DebuggerModel.BreakpointListener = function() {
+}
+
+WebInspector.DebuggerModel.BreakpointListener.prototype = {
+
+ /**
+ * @param {!WebInspector.DebuggerModel.Location} location
+ */
+ breakpointResolved: function(location) { }
+
+}
+
+/**
* @constructor
* @implements {WebInspector.RawLocation}
* @extends {WebInspector.TargetAware}

Powered by Google App Engine
This is Rietveld 408576698