OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 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 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 this._scripts = {}; | 46 this._scripts = {}; |
47 /** @type {!StringMap.<!Array.<!WebInspector.Script>>} */ | 47 /** @type {!StringMap.<!Array.<!WebInspector.Script>>} */ |
48 this._scriptsBySourceURL = new StringMap(); | 48 this._scriptsBySourceURL = new StringMap(); |
49 | 49 |
50 /** @type {!WebInspector.Object} */ | 50 /** @type {!WebInspector.Object} */ |
51 this._breakpointResolvedEventTarget = new WebInspector.Object(); | 51 this._breakpointResolvedEventTarget = new WebInspector.Object(); |
52 | 52 |
53 this._isPausing = false; | 53 this._isPausing = false; |
54 WebInspector.settings.pauseOnExceptionEnabled.addChangeListener(this._pauseO
nExceptionStateChanged, this); | 54 WebInspector.settings.pauseOnExceptionEnabled.addChangeListener(this._pauseO
nExceptionStateChanged, this); |
55 WebInspector.settings.pauseOnCaughtException.addChangeListener(this._pauseOn
ExceptionStateChanged, this); | 55 WebInspector.settings.pauseOnCaughtException.addChangeListener(this._pauseOn
ExceptionStateChanged, this); |
56 | 56 WebInspector.settings.enableAsyncStackTraces.addChangeListener(this.asyncSta
ckTracesStateChanged, this); |
57 WebInspector.settings.enableAsyncStackTraces.addChangeListener(this._asyncSt
ackTracesStateChanged, this); | 57 WebInspector.settings.skipStackFramesPattern.addChangeListener(this._applySk
ipStackFrameSettings, this); |
58 WebInspector.profilingLock().addEventListener(WebInspector.Lock.Events.State
Changed, this._profilingStateChanged, this); | 58 WebInspector.settings.skipContentScripts.addChangeListener(this._applySkipSt
ackFrameSettings, this); |
59 | 59 |
60 this.enableDebugger(); | 60 this.enableDebugger(); |
61 | 61 |
62 WebInspector.settings.skipStackFramesPattern.addChangeListener(this._applySk
ipStackFrameSettings, this); | |
63 WebInspector.settings.skipContentScripts.addChangeListener(this._applySkipSt
ackFrameSettings, this); | |
64 this._applySkipStackFrameSettings(); | 62 this._applySkipStackFrameSettings(); |
65 } | 63 } |
66 | 64 |
67 /** @typedef {{location: ?WebInspector.DebuggerModel.Location, sourceURL: ?strin
g, functionName: string, scopeChain: (Array.<!DebuggerAgent.Scope>|null)}} */ | 65 /** @typedef {{location: ?WebInspector.DebuggerModel.Location, sourceURL: ?strin
g, functionName: string, scopeChain: (Array.<!DebuggerAgent.Scope>|null)}} */ |
68 WebInspector.DebuggerModel.FunctionDetails; | 66 WebInspector.DebuggerModel.FunctionDetails; |
69 | 67 |
70 /** | 68 /** |
71 * Keep these in sync with WebCore::ScriptDebugServer | 69 * Keep these in sync with WebCore::ScriptDebugServer |
72 * | 70 * |
73 * @enum {string} | 71 * @enum {string} |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 return !!this._debuggerEnabled; | 108 return !!this._debuggerEnabled; |
111 }, | 109 }, |
112 | 110 |
113 enableDebugger: function() | 111 enableDebugger: function() |
114 { | 112 { |
115 if (this._debuggerEnabled) | 113 if (this._debuggerEnabled) |
116 return; | 114 return; |
117 this._agent.enable(); | 115 this._agent.enable(); |
118 this._debuggerEnabled = true; | 116 this._debuggerEnabled = true; |
119 this._pauseOnExceptionStateChanged(); | 117 this._pauseOnExceptionStateChanged(); |
120 this._asyncStackTracesStateChanged(); | 118 this.asyncStackTracesStateChanged(); |
121 this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.Debugger
WasEnabled); | 119 this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.Debugger
WasEnabled); |
122 }, | 120 }, |
123 | 121 |
124 disableDebugger: function() | 122 disableDebugger: function() |
125 { | 123 { |
126 if (!this._debuggerEnabled) | 124 if (!this._debuggerEnabled) |
127 return; | 125 return; |
128 | 126 |
129 this._agent.disable(); | 127 this._agent.disable(); |
130 this._debuggerEnabled = false; | 128 this._debuggerEnabled = false; |
131 this._isPausing = false; | 129 this._isPausing = false; |
| 130 this.asyncStackTracesStateChanged(); |
132 this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.Debugger
WasDisabled); | 131 this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.Debugger
WasDisabled); |
133 }, | 132 }, |
134 | 133 |
135 /** | 134 /** |
136 * @param {boolean} skip | 135 * @param {boolean} skip |
137 * @param {boolean=} untilReload | 136 * @param {boolean=} untilReload |
138 */ | 137 */ |
139 skipAllPauses: function(skip, untilReload) | 138 skipAllPauses: function(skip, untilReload) |
140 { | 139 { |
141 if (this._skipAllPausesTimeout) { | 140 if (this._skipAllPausesTimeout) { |
(...skipping 21 matching lines...) Expand all Loading... |
163 if (!WebInspector.settings.pauseOnExceptionEnabled.get()) { | 162 if (!WebInspector.settings.pauseOnExceptionEnabled.get()) { |
164 state = WebInspector.DebuggerModel.PauseOnExceptionsState.DontPauseO
nExceptions; | 163 state = WebInspector.DebuggerModel.PauseOnExceptionsState.DontPauseO
nExceptions; |
165 } else if (WebInspector.settings.pauseOnCaughtException.get()) { | 164 } else if (WebInspector.settings.pauseOnCaughtException.get()) { |
166 state = WebInspector.DebuggerModel.PauseOnExceptionsState.PauseOnAll
Exceptions; | 165 state = WebInspector.DebuggerModel.PauseOnExceptionsState.PauseOnAll
Exceptions; |
167 } else { | 166 } else { |
168 state = WebInspector.DebuggerModel.PauseOnExceptionsState.PauseOnUnc
aughtExceptions; | 167 state = WebInspector.DebuggerModel.PauseOnExceptionsState.PauseOnUnc
aughtExceptions; |
169 } | 168 } |
170 this._agent.setPauseOnExceptions(state); | 169 this._agent.setPauseOnExceptions(state); |
171 }, | 170 }, |
172 | 171 |
173 _profilingStateChanged: function() | 172 suspendModel: function() |
174 { | 173 { |
175 if (Runtime.experiments.isEnabled("disableAgentsWhenProfile")) { | 174 this.disableDebugger(); |
176 if (WebInspector.profilingLock().isAcquired()) | |
177 this.disableDebugger(); | |
178 else | |
179 this.enableDebugger(); | |
180 } | |
181 this._asyncStackTracesStateChanged(); | |
182 }, | 175 }, |
183 | 176 |
184 _asyncStackTracesStateChanged: function() | 177 resumeModel: function() |
| 178 { |
| 179 this.enableDebugger(); |
| 180 }, |
| 181 |
| 182 asyncStackTracesStateChanged: function() |
185 { | 183 { |
186 const maxAsyncStackChainDepth = 4; | 184 const maxAsyncStackChainDepth = 4; |
187 var enabled = WebInspector.settings.enableAsyncStackTraces.get() && !Web
Inspector.profilingLock().isAcquired(); | 185 var enabled = WebInspector.settings.enableAsyncStackTraces.get() && !Web
Inspector.targetManager.allTargetsSuspended(); |
188 this._agent.setAsyncCallStackDepth(enabled ? maxAsyncStackChainDepth : 0
); | 186 this._agent.setAsyncCallStackDepth(enabled ? maxAsyncStackChainDepth : 0
); |
189 }, | 187 }, |
190 | 188 |
191 stepInto: function() | 189 stepInto: function() |
192 { | 190 { |
193 /** | 191 /** |
194 * @this {WebInspector.DebuggerModel} | 192 * @this {WebInspector.DebuggerModel} |
195 */ | 193 */ |
196 function callback() | 194 function callback() |
197 { | 195 { |
(...skipping 520 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
718 { | 716 { |
719 this._breakpointResolvedEventTarget.removeEventListener(breakpointId, li
stener, thisObject); | 717 this._breakpointResolvedEventTarget.removeEventListener(breakpointId, li
stener, thisObject); |
720 }, | 718 }, |
721 | 719 |
722 dispose: function() | 720 dispose: function() |
723 { | 721 { |
724 WebInspector.settings.pauseOnExceptionEnabled.removeChangeListener(this.
_pauseOnExceptionStateChanged, this); | 722 WebInspector.settings.pauseOnExceptionEnabled.removeChangeListener(this.
_pauseOnExceptionStateChanged, this); |
725 WebInspector.settings.pauseOnCaughtException.removeChangeListener(this._
pauseOnExceptionStateChanged, this); | 723 WebInspector.settings.pauseOnCaughtException.removeChangeListener(this._
pauseOnExceptionStateChanged, this); |
726 WebInspector.settings.skipStackFramesPattern.removeChangeListener(this._
applySkipStackFrameSettings, this); | 724 WebInspector.settings.skipStackFramesPattern.removeChangeListener(this._
applySkipStackFrameSettings, this); |
727 WebInspector.settings.skipContentScripts.removeChangeListener(this._appl
ySkipStackFrameSettings, this); | 725 WebInspector.settings.skipContentScripts.removeChangeListener(this._appl
ySkipStackFrameSettings, this); |
728 WebInspector.settings.enableAsyncStackTraces.removeChangeListener(this._
asyncStackTracesStateChanged, this); | 726 WebInspector.settings.enableAsyncStackTraces.removeChangeListener(this.a
syncStackTracesStateChanged, this); |
729 }, | 727 }, |
730 | 728 |
731 __proto__: WebInspector.SDKModel.prototype | 729 __proto__: WebInspector.SDKModel.prototype |
732 } | 730 } |
733 | 731 |
734 WebInspector.DebuggerEventTypes = { | 732 WebInspector.DebuggerEventTypes = { |
735 JavaScriptPause: 0, | 733 JavaScriptPause: 0, |
736 JavaScriptBreakpoint: 1, | 734 JavaScriptBreakpoint: 1, |
737 NativeBreakpoint: 2 | 735 NativeBreakpoint: 2 |
738 }; | 736 }; |
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1103 return this.target().runtimeModel.createRemoteObject(/** @type {!Runtime
Agent.RemoteObject} */(this.auxData)); | 1101 return this.target().runtimeModel.createRemoteObject(/** @type {!Runtime
Agent.RemoteObject} */(this.auxData)); |
1104 }, | 1102 }, |
1105 | 1103 |
1106 __proto__: WebInspector.SDKObject.prototype | 1104 __proto__: WebInspector.SDKObject.prototype |
1107 } | 1105 } |
1108 | 1106 |
1109 /** | 1107 /** |
1110 * @type {!WebInspector.DebuggerModel} | 1108 * @type {!WebInspector.DebuggerModel} |
1111 */ | 1109 */ |
1112 WebInspector.debuggerModel; | 1110 WebInspector.debuggerModel; |
OLD | NEW |