OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8DebuggerAgentImpl_h | 5 #ifndef V8DebuggerAgentImpl_h |
6 #define V8DebuggerAgentImpl_h | 6 #define V8DebuggerAgentImpl_h |
7 | 7 |
8 #include "platform/inspector_protocol/Collections.h" | 8 #include "platform/inspector_protocol/Collections.h" |
9 #include "platform/inspector_protocol/Dispatcher.h" | 9 #include "platform/inspector_protocol/Dispatcher.h" |
10 #include "platform/inspector_protocol/Frontend.h" | 10 #include "platform/inspector_protocol/Frontend.h" |
| 11 #include "platform/inspector_protocol/String16.h" |
11 #include "platform/v8_inspector/ScriptBreakpoint.h" | 12 #include "platform/v8_inspector/ScriptBreakpoint.h" |
12 #include "platform/v8_inspector/V8DebuggerImpl.h" | 13 #include "platform/v8_inspector/V8DebuggerImpl.h" |
13 #include "platform/v8_inspector/public/V8DebuggerAgent.h" | 14 #include "platform/v8_inspector/public/V8DebuggerAgent.h" |
14 #include "wtf/text/StringHash.h" | |
15 | 15 |
16 namespace blink { | 16 namespace blink { |
17 | 17 |
18 class DevToolsFunctionInfo; | 18 class DevToolsFunctionInfo; |
19 class InjectedScript; | 19 class InjectedScript; |
20 class InjectedScriptManager; | 20 class InjectedScriptManager; |
21 class JavaScriptCallFrame; | 21 class JavaScriptCallFrame; |
22 class PromiseTracker; | 22 class PromiseTracker; |
23 class RemoteCallFrameId; | 23 class RemoteCallFrameId; |
24 class ScriptRegexp; | 24 class ScriptRegexp; |
25 class V8AsyncCallTracker; | 25 class V8AsyncCallTracker; |
26 class V8StackTraceImpl; | 26 class V8StackTraceImpl; |
27 | 27 |
28 namespace protocol { | 28 namespace protocol { |
29 class DictionaryValue; | 29 class DictionaryValue; |
30 } | 30 } |
31 | 31 |
32 typedef String ErrorString; | |
33 | 32 |
34 using protocol::Maybe; | 33 using protocol::Maybe; |
35 | 34 |
36 class V8DebuggerAgentImpl : public V8DebuggerAgent { | 35 class V8DebuggerAgentImpl : public V8DebuggerAgent { |
37 PROTOCOL_DISALLOW_COPY(V8DebuggerAgentImpl); | 36 PROTOCOL_DISALLOW_COPY(V8DebuggerAgentImpl); |
38 public: | 37 public: |
39 enum SkipPauseRequest { | 38 enum SkipPauseRequest { |
40 RequestNoSkip, | 39 RequestNoSkip, |
41 RequestContinue, | 40 RequestContinue, |
42 RequestStepInto, | 41 RequestStepInto, |
(...skipping 18 matching lines...) Expand all Loading... |
61 | 60 |
62 bool isPaused() override; | 61 bool isPaused() override; |
63 | 62 |
64 // Part of the protocol. | 63 // Part of the protocol. |
65 void enable(ErrorString*) override; | 64 void enable(ErrorString*) override; |
66 void setBreakpointsActive(ErrorString*, bool active) override; | 65 void setBreakpointsActive(ErrorString*, bool active) override; |
67 void setSkipAllPauses(ErrorString*, bool skipped) override; | 66 void setSkipAllPauses(ErrorString*, bool skipped) override; |
68 | 67 |
69 void setBreakpointByUrl(ErrorString*, | 68 void setBreakpointByUrl(ErrorString*, |
70 int lineNumber, | 69 int lineNumber, |
71 const Maybe<String>& optionalURL, | 70 const Maybe<String16>& optionalURL, |
72 const Maybe<String>& optionalURLRegex, | 71 const Maybe<String16>& optionalURLRegex, |
73 const Maybe<int>& optionalColumnNumber, | 72 const Maybe<int>& optionalColumnNumber, |
74 const Maybe<String>& optionalCondition, | 73 const Maybe<String16>& optionalCondition, |
75 protocol::Debugger::BreakpointId*, | 74 String16*, |
76 OwnPtr<protocol::Array<protocol::Debugger::Location>>* locations) overri
de; | 75 OwnPtr<protocol::Array<protocol::Debugger::Location>>* locations) overri
de; |
77 void setBreakpoint(ErrorString*, | 76 void setBreakpoint(ErrorString*, |
78 PassOwnPtr<protocol::Debugger::Location>, | 77 PassOwnPtr<protocol::Debugger::Location>, |
79 const Maybe<String>& optionalCondition, | 78 const Maybe<String16>& optionalCondition, |
80 protocol::Debugger::BreakpointId*, | 79 String16*, |
81 OwnPtr<protocol::Debugger::Location>* actualLocation) override; | 80 OwnPtr<protocol::Debugger::Location>* actualLocation) override; |
82 void removeBreakpoint(ErrorString*, const String& breakpointId) override; | 81 void removeBreakpoint(ErrorString*, const String16& breakpointId) override; |
83 void continueToLocation(ErrorString*, | 82 void continueToLocation(ErrorString*, |
84 PassOwnPtr<protocol::Debugger::Location>, | 83 PassOwnPtr<protocol::Debugger::Location>, |
85 const Maybe<bool>& interstateLocationOpt) override; | 84 const Maybe<bool>& interstateLocationOpt) override; |
86 void getStepInPositions(ErrorString*, | 85 void getStepInPositions(ErrorString*, |
87 const String& callFrameId, | 86 const String16& callFrameId, |
88 Maybe<protocol::Array<protocol::Debugger::Location>>* positions) overrid
e; | 87 Maybe<protocol::Array<protocol::Debugger::Location>>* positions) overrid
e; |
89 void getBacktrace(ErrorString*, | 88 void getBacktrace(ErrorString*, |
90 OwnPtr<protocol::Array<protocol::Debugger::CallFrame>>*, | 89 OwnPtr<protocol::Array<protocol::Debugger::CallFrame>>*, |
91 Maybe<protocol::Runtime::StackTrace>*) override; | 90 Maybe<protocol::Runtime::StackTrace>*) override; |
92 void searchInContent(ErrorString*, | 91 void searchInContent(ErrorString*, |
93 const String& scriptId, | 92 const String16& scriptId, |
94 const String& query, | 93 const String16& query, |
95 const Maybe<bool>& optionalCaseSensitive, | 94 const Maybe<bool>& optionalCaseSensitive, |
96 const Maybe<bool>& optionalIsRegex, | 95 const Maybe<bool>& optionalIsRegex, |
97 OwnPtr<protocol::Array<protocol::Debugger::SearchMatch>>*) override; | 96 OwnPtr<protocol::Array<protocol::Debugger::SearchMatch>>*) override; |
98 void canSetScriptSource(ErrorString*, bool* result) override { *result = tru
e; } | 97 void canSetScriptSource(ErrorString*, bool* result) override { *result = tru
e; } |
99 void setScriptSource(ErrorString*, | 98 void setScriptSource(ErrorString*, |
100 const String& inScriptId, | 99 const String16& inScriptId, |
101 const String& inScriptSource, | 100 const String16& inScriptSource, |
102 const Maybe<bool>& inPreview, | 101 const Maybe<bool>& inPreview, |
103 Maybe<protocol::Array<protocol::Debugger::CallFrame>>* optOutCallFrames, | 102 Maybe<protocol::Array<protocol::Debugger::CallFrame>>* optOutCallFrames, |
104 Maybe<bool>* optOutStackChanged, | 103 Maybe<bool>* optOutStackChanged, |
105 Maybe<protocol::Runtime::StackTrace>* optOutAsyncStackTrace, | 104 Maybe<protocol::Runtime::StackTrace>* optOutAsyncStackTrace, |
106 Maybe<protocol::Debugger::SetScriptSourceError>* optOutCompileError) ove
rride; | 105 Maybe<protocol::Debugger::SetScriptSourceError>* optOutCompileError) ove
rride; |
107 void restartFrame(ErrorString*, | 106 void restartFrame(ErrorString*, |
108 const String& callFrameId, | 107 const String16& callFrameId, |
109 OwnPtr<protocol::Array<protocol::Debugger::CallFrame>>* newCallFrames, | 108 OwnPtr<protocol::Array<protocol::Debugger::CallFrame>>* newCallFrames, |
110 Maybe<protocol::Runtime::StackTrace>* asyncStackTrace) override; | 109 Maybe<protocol::Runtime::StackTrace>* asyncStackTrace) override; |
111 void getScriptSource(ErrorString*, const String& scriptId, String* scriptSou
rce) override; | 110 void getScriptSource(ErrorString*, const String16& scriptId, String16* scrip
tSource) override; |
112 void getFunctionDetails(ErrorString*, | 111 void getFunctionDetails(ErrorString*, |
113 const String& functionId, | 112 const String16& functionId, |
114 OwnPtr<protocol::Debugger::FunctionDetails>*) override; | 113 OwnPtr<protocol::Debugger::FunctionDetails>*) override; |
115 void getGeneratorObjectDetails(ErrorString*, | 114 void getGeneratorObjectDetails(ErrorString*, |
116 const String& objectId, | 115 const String16& objectId, |
117 OwnPtr<protocol::Debugger::GeneratorObjectDetails>*) override; | 116 OwnPtr<protocol::Debugger::GeneratorObjectDetails>*) override; |
118 void getCollectionEntries(ErrorString*, | 117 void getCollectionEntries(ErrorString*, |
119 const String& objectId, | 118 const String16& objectId, |
120 OwnPtr<protocol::Array<protocol::Debugger::CollectionEntry>>*) override; | 119 OwnPtr<protocol::Array<protocol::Debugger::CollectionEntry>>*) override; |
121 void pause(ErrorString*) override; | 120 void pause(ErrorString*) override; |
122 void resume(ErrorString*) override; | 121 void resume(ErrorString*) override; |
123 void stepOver(ErrorString*) override; | 122 void stepOver(ErrorString*) override; |
124 void stepInto(ErrorString*) override; | 123 void stepInto(ErrorString*) override; |
125 void stepOut(ErrorString*) override; | 124 void stepOut(ErrorString*) override; |
126 void stepIntoAsync(ErrorString*) override; | 125 void stepIntoAsync(ErrorString*) override; |
127 void setPauseOnExceptions(ErrorString*, const String& pauseState) override; | 126 void setPauseOnExceptions(ErrorString*, const String16& pauseState) override
; |
128 void evaluateOnCallFrame(ErrorString*, | 127 void evaluateOnCallFrame(ErrorString*, |
129 const String& callFrameId, | 128 const String16& callFrameId, |
130 const String& expression, | 129 const String16& expression, |
131 const Maybe<String>& objectGroup, | 130 const Maybe<String16>& objectGroup, |
132 const Maybe<bool>& includeCommandLineAPI, | 131 const Maybe<bool>& includeCommandLineAPI, |
133 const Maybe<bool>& doNotPauseOnExceptionsAndMuteConsole, | 132 const Maybe<bool>& doNotPauseOnExceptionsAndMuteConsole, |
134 const Maybe<bool>& returnByValue, | 133 const Maybe<bool>& returnByValue, |
135 const Maybe<bool>& generatePreview, | 134 const Maybe<bool>& generatePreview, |
136 OwnPtr<protocol::Runtime::RemoteObject>* result, | 135 OwnPtr<protocol::Runtime::RemoteObject>* result, |
137 Maybe<bool>* wasThrown, | 136 Maybe<bool>* wasThrown, |
138 Maybe<protocol::Runtime::ExceptionDetails>*) override; | 137 Maybe<protocol::Runtime::ExceptionDetails>*) override; |
139 void setVariableValue(ErrorString*, | 138 void setVariableValue(ErrorString*, |
140 int scopeNumber, | 139 int scopeNumber, |
141 const String& variableName, | 140 const String16& variableName, |
142 PassOwnPtr<protocol::Runtime::CallArgument> newValue, | 141 PassOwnPtr<protocol::Runtime::CallArgument> newValue, |
143 const Maybe<String>& callFrame, | 142 const Maybe<String16>& callFrame, |
144 const Maybe<String>& functionObjectId) override; | 143 const Maybe<String16>& functionObjectId) override; |
145 void setAsyncCallStackDepth(ErrorString*, int depth) override; | 144 void setAsyncCallStackDepth(ErrorString*, int depth) override; |
146 void enablePromiseTracker(ErrorString*, | 145 void enablePromiseTracker(ErrorString*, |
147 const Maybe<bool>& captureStacks) override; | 146 const Maybe<bool>& captureStacks) override; |
148 void disablePromiseTracker(ErrorString*) override; | 147 void disablePromiseTracker(ErrorString*) override; |
149 void getPromiseById(ErrorString*, | 148 void getPromiseById(ErrorString*, |
150 int promiseId, | 149 int promiseId, |
151 const Maybe<String>& objectGroup, | 150 const Maybe<String16>& objectGroup, |
152 OwnPtr<protocol::Runtime::RemoteObject>* promise) override; | 151 OwnPtr<protocol::Runtime::RemoteObject>* promise) override; |
153 void flushAsyncOperationEvents(ErrorString*) override; | 152 void flushAsyncOperationEvents(ErrorString*) override; |
154 void setAsyncOperationBreakpoint(ErrorString*, int operationId) override; | 153 void setAsyncOperationBreakpoint(ErrorString*, int operationId) override; |
155 void removeAsyncOperationBreakpoint(ErrorString*, int operationId) override; | 154 void removeAsyncOperationBreakpoint(ErrorString*, int operationId) override; |
156 void setBlackboxedRanges(ErrorString*, | 155 void setBlackboxedRanges(ErrorString*, |
157 const String& scriptId, | 156 const String16& scriptId, |
158 PassOwnPtr<protocol::Array<protocol::Debugger::ScriptPosition>> position
s) override; | 157 PassOwnPtr<protocol::Array<protocol::Debugger::ScriptPosition>> position
s) override; |
159 | 158 |
160 void schedulePauseOnNextStatement(const String& breakReason, PassOwnPtr<prot
ocol::DictionaryValue> data) override; | 159 void schedulePauseOnNextStatement(const String16& breakReason, PassOwnPtr<pr
otocol::DictionaryValue> data) override; |
161 void cancelPauseOnNextStatement() override; | 160 void cancelPauseOnNextStatement() override; |
162 bool canBreakProgram() override; | 161 bool canBreakProgram() override; |
163 void breakProgram(const String& breakReason, PassOwnPtr<protocol::Dictionary
Value> data) override; | 162 void breakProgram(const String16& breakReason, PassOwnPtr<protocol::Dictiona
ryValue> data) override; |
164 void breakProgramOnException(const String& breakReason, PassOwnPtr<protocol:
:DictionaryValue> data) override; | 163 void breakProgramOnException(const String16& breakReason, PassOwnPtr<protoco
l::DictionaryValue> data) override; |
165 void willExecuteScript(int scriptId) override; | 164 void willExecuteScript(int scriptId) override; |
166 void didExecuteScript() override; | 165 void didExecuteScript() override; |
167 | 166 |
168 bool enabled() override; | 167 bool enabled() override; |
169 V8DebuggerImpl& debugger() override { return *m_debugger; } | 168 V8DebuggerImpl& debugger() override { return *m_debugger; } |
170 | 169 |
171 void setBreakpointAt(const String& scriptId, int lineNumber, int columnNumbe
r, BreakpointSource, const String& condition = String()); | 170 void setBreakpointAt(const String16& scriptId, int lineNumber, int columnNum
ber, BreakpointSource, const String16& condition = String16()); |
172 void removeBreakpointAt(const String& scriptId, int lineNumber, int columnNu
mber, BreakpointSource); | 171 void removeBreakpointAt(const String16& scriptId, int lineNumber, int column
Number, BreakpointSource); |
173 | 172 |
174 // Async call stacks implementation | 173 // Async call stacks implementation |
175 int traceAsyncOperationStarting(const String& description) override; | 174 int traceAsyncOperationStarting(const String16& description) override; |
176 void traceAsyncCallbackStarting(int operationId) override; | 175 void traceAsyncCallbackStarting(int operationId) override; |
177 void traceAsyncCallbackCompleted() override; | 176 void traceAsyncCallbackCompleted() override; |
178 void traceAsyncOperationCompleted(int operationId) override; | 177 void traceAsyncOperationCompleted(int operationId) override; |
179 bool trackingAsyncCalls() const override { return m_maxAsyncCallStackDepth;
} | 178 bool trackingAsyncCalls() const override { return m_maxAsyncCallStackDepth;
} |
180 | 179 |
181 void didUpdatePromise(const String& eventType, PassOwnPtr<protocol::Debugger
::PromiseDetails>); | 180 void didUpdatePromise(const String16& eventType, PassOwnPtr<protocol::Debugg
er::PromiseDetails>); |
182 void reset() override; | 181 void reset() override; |
183 | 182 |
184 // Interface for V8DebuggerImpl | 183 // Interface for V8DebuggerImpl |
185 SkipPauseRequest didPause(v8::Local<v8::Context>, v8::Local<v8::Object> call
Frames, v8::Local<v8::Value> exception, const protocol::Vector<String>& hitBreak
points, bool isPromiseRejection); | 184 SkipPauseRequest didPause(v8::Local<v8::Context>, v8::Local<v8::Object> call
Frames, v8::Local<v8::Value> exception, const protocol::Vector<String16>& hitBre
akpoints, bool isPromiseRejection); |
186 void didContinue(); | 185 void didContinue(); |
187 void didParseSource(const V8DebuggerParsedScript&); | 186 void didParseSource(const V8DebuggerParsedScript&); |
188 bool v8AsyncTaskEventsEnabled() const; | 187 bool v8AsyncTaskEventsEnabled() const; |
189 void didReceiveV8AsyncTaskEvent(v8::Local<v8::Context>, const String& eventT
ype, const String& eventName, int id); | 188 void didReceiveV8AsyncTaskEvent(v8::Local<v8::Context>, const String16& even
tType, const String16& eventName, int id); |
190 bool v8PromiseEventsEnabled() const; | 189 bool v8PromiseEventsEnabled() const; |
191 void didReceiveV8PromiseEvent(v8::Local<v8::Context>, v8::Local<v8::Object>
promise, v8::Local<v8::Value> parentPromise, int status); | 190 void didReceiveV8PromiseEvent(v8::Local<v8::Context>, v8::Local<v8::Object>
promise, v8::Local<v8::Value> parentPromise, int status); |
192 | 191 |
193 v8::Isolate* isolate() { return m_isolate; } | 192 v8::Isolate* isolate() { return m_isolate; } |
194 PassOwnPtr<V8StackTraceImpl> currentAsyncStackTraceForRuntime(); | 193 PassOwnPtr<V8StackTraceImpl> currentAsyncStackTraceForRuntime(); |
195 | 194 |
196 private: | 195 private: |
197 bool checkEnabled(ErrorString*); | 196 bool checkEnabled(ErrorString*); |
198 void enable(); | 197 void enable(); |
199 | 198 |
200 SkipPauseRequest shouldSkipExceptionPause(); | 199 SkipPauseRequest shouldSkipExceptionPause(); |
201 SkipPauseRequest shouldSkipStepPause(); | 200 SkipPauseRequest shouldSkipStepPause(); |
202 | 201 |
203 void schedulePauseOnNextStatementIfSteppingInto(); | 202 void schedulePauseOnNextStatementIfSteppingInto(); |
204 | 203 |
205 PassOwnPtr<protocol::Array<protocol::Debugger::CallFrame>> currentCallFrames
(); | 204 PassOwnPtr<protocol::Array<protocol::Debugger::CallFrame>> currentCallFrames
(); |
206 PassOwnPtr<protocol::Runtime::StackTrace> currentAsyncStackTrace(); | 205 PassOwnPtr<protocol::Runtime::StackTrace> currentAsyncStackTrace(); |
207 | 206 |
208 void clearCurrentAsyncOperation(); | 207 void clearCurrentAsyncOperation(); |
209 void resetAsyncCallTracker(); | 208 void resetAsyncCallTracker(); |
210 | 209 |
211 void changeJavaScriptRecursionLevel(int step); | 210 void changeJavaScriptRecursionLevel(int step); |
212 | 211 |
213 void setPauseOnExceptionsImpl(ErrorString*, int); | 212 void setPauseOnExceptionsImpl(ErrorString*, int); |
214 | 213 |
215 PassOwnPtr<protocol::Debugger::Location> resolveBreakpoint(const String& bre
akpointId, const String& scriptId, const ScriptBreakpoint&, BreakpointSource); | 214 PassOwnPtr<protocol::Debugger::Location> resolveBreakpoint(const String16& b
reakpointId, const String16& scriptId, const ScriptBreakpoint&, BreakpointSource
); |
216 void removeBreakpoint(const String& breakpointId); | 215 void removeBreakpoint(const String16& breakpointId); |
217 void clearStepIntoAsync(); | 216 void clearStepIntoAsync(); |
218 bool assertPaused(ErrorString*); | 217 bool assertPaused(ErrorString*); |
219 void clearBreakDetails(); | 218 void clearBreakDetails(); |
220 | 219 |
221 bool isCallStackEmptyOrBlackboxed(); | 220 bool isCallStackEmptyOrBlackboxed(); |
222 bool isTopCallFrameBlackboxed(); | 221 bool isTopCallFrameBlackboxed(); |
223 bool isCallFrameWithUnknownScriptOrBlackboxed(JavaScriptCallFrame*); | 222 bool isCallFrameWithUnknownScriptOrBlackboxed(JavaScriptCallFrame*); |
224 | 223 |
225 void internalSetAsyncCallStackDepth(int); | 224 void internalSetAsyncCallStackDepth(int); |
226 void increaseCachedSkipStackGeneration(); | 225 void increaseCachedSkipStackGeneration(); |
227 | 226 |
228 using ScriptsMap = protocol::HashMap<String, V8DebuggerScript>; | 227 using ScriptsMap = protocol::HashMap<String16, V8DebuggerScript>; |
229 using BreakpointIdToDebuggerBreakpointIdsMap = protocol::HashMap<String, pro
tocol::Vector<String>>; | 228 using BreakpointIdToDebuggerBreakpointIdsMap = protocol::HashMap<String16, p
rotocol::Vector<String16>>; |
230 using DebugServerBreakpointToBreakpointIdAndSourceMap = protocol::HashMap<St
ring, std::pair<String, BreakpointSource>>; | 229 using DebugServerBreakpointToBreakpointIdAndSourceMap = protocol::HashMap<St
ring16, std::pair<String16, BreakpointSource>>; |
231 using MuteBreakpoins = protocol::HashMap<String, std::pair<String, int>>; | 230 using MuteBreakpoins = protocol::HashMap<String16, std::pair<String16, int>>
; |
232 | 231 |
233 enum DebuggerStep { | 232 enum DebuggerStep { |
234 NoStep = 0, | 233 NoStep = 0, |
235 StepInto, | 234 StepInto, |
236 StepOver, | 235 StepOver, |
237 StepOut | 236 StepOut |
238 }; | 237 }; |
239 | 238 |
240 InjectedScriptManager* m_injectedScriptManager; | 239 InjectedScriptManager* m_injectedScriptManager; |
241 V8DebuggerImpl* m_debugger; | 240 V8DebuggerImpl* m_debugger; |
242 int m_contextGroupId; | 241 int m_contextGroupId; |
243 bool m_enabled; | 242 bool m_enabled; |
244 protocol::DictionaryValue* m_state; | 243 protocol::DictionaryValue* m_state; |
245 protocol::Frontend::Debugger* m_frontend; | 244 protocol::Frontend::Debugger* m_frontend; |
246 v8::Isolate* m_isolate; | 245 v8::Isolate* m_isolate; |
247 v8::Global<v8::Context> m_pausedContext; | 246 v8::Global<v8::Context> m_pausedContext; |
248 v8::Global<v8::Object> m_currentCallStack; | 247 v8::Global<v8::Object> m_currentCallStack; |
249 ScriptsMap m_scripts; | 248 ScriptsMap m_scripts; |
250 BreakpointIdToDebuggerBreakpointIdsMap m_breakpointIdToDebuggerBreakpointIds
; | 249 BreakpointIdToDebuggerBreakpointIdsMap m_breakpointIdToDebuggerBreakpointIds
; |
251 DebugServerBreakpointToBreakpointIdAndSourceMap m_serverBreakpoints; | 250 DebugServerBreakpointToBreakpointIdAndSourceMap m_serverBreakpoints; |
252 String m_continueToLocationBreakpointId; | 251 String16 m_continueToLocationBreakpointId; |
253 String m_breakReason; | 252 String16 m_breakReason; |
254 OwnPtr<protocol::DictionaryValue> m_breakAuxData; | 253 OwnPtr<protocol::DictionaryValue> m_breakAuxData; |
255 DebuggerStep m_scheduledDebuggerStep; | 254 DebuggerStep m_scheduledDebuggerStep; |
256 bool m_skipNextDebuggerStepOut; | 255 bool m_skipNextDebuggerStepOut; |
257 bool m_javaScriptPauseScheduled; | 256 bool m_javaScriptPauseScheduled; |
258 bool m_steppingFromFramework; | 257 bool m_steppingFromFramework; |
259 bool m_pausingOnNativeEvent; | 258 bool m_pausingOnNativeEvent; |
260 bool m_pausingOnAsyncOperation; | 259 bool m_pausingOnAsyncOperation; |
261 | 260 |
262 int m_skippedStepFrameCount; | 261 int m_skippedStepFrameCount; |
263 int m_recursionLevelForStepOut; | 262 int m_recursionLevelForStepOut; |
264 int m_recursionLevelForStepFrame; | 263 int m_recursionLevelForStepFrame; |
265 bool m_skipAllPauses; | 264 bool m_skipAllPauses; |
266 | 265 |
267 // This field must be destroyed before the listeners set above. | 266 // This field must be destroyed before the listeners set above. |
268 OwnPtr<V8AsyncCallTracker> m_v8AsyncCallTracker; | 267 OwnPtr<V8AsyncCallTracker> m_v8AsyncCallTracker; |
269 OwnPtr<PromiseTracker> m_promiseTracker; | 268 OwnPtr<PromiseTracker> m_promiseTracker; |
270 | 269 |
271 using AsyncOperationIdToStackTrace = protocol::HashMap<int, OwnPtr<V8StackTr
aceImpl>>; | 270 using AsyncOperationIdToStackTrace = protocol::HashMap<int, OwnPtr<V8StackTr
aceImpl>>; |
272 AsyncOperationIdToStackTrace m_asyncOperations; | 271 AsyncOperationIdToStackTrace m_asyncOperations; |
273 int m_lastAsyncOperationId; | 272 int m_lastAsyncOperationId; |
274 protocol::HashSet<int> m_asyncOperationNotifications; | 273 protocol::HashSet<int> m_asyncOperationNotifications; |
275 protocol::HashSet<int> m_asyncOperationBreakpoints; | 274 protocol::HashSet<int> m_asyncOperationBreakpoints; |
276 protocol::HashSet<int> m_pausingAsyncOperations; | 275 protocol::HashSet<int> m_pausingAsyncOperations; |
277 unsigned m_maxAsyncCallStackDepth; | 276 unsigned m_maxAsyncCallStackDepth; |
278 OwnPtr<V8StackTraceImpl> m_currentAsyncCallChain; | 277 OwnPtr<V8StackTraceImpl> m_currentAsyncCallChain; |
279 unsigned m_nestedAsyncCallCount; | 278 unsigned m_nestedAsyncCallCount; |
280 int m_currentAsyncOperationId; | 279 int m_currentAsyncOperationId; |
281 bool m_pendingTraceAsyncOperationCompleted; | 280 bool m_pendingTraceAsyncOperationCompleted; |
282 bool m_startingStepIntoAsync; | 281 bool m_startingStepIntoAsync; |
283 protocol::HashMap<String, protocol::Vector<std::pair<int, int>>> m_blackboxe
dPositions; | 282 protocol::HashMap<String16, protocol::Vector<std::pair<int, int>>> m_blackbo
xedPositions; |
284 }; | 283 }; |
285 | 284 |
286 } // namespace blink | 285 } // namespace blink |
287 | 286 |
288 | 287 |
289 #endif // V8DebuggerAgentImpl_h | 288 #endif // V8DebuggerAgentImpl_h |
OLD | NEW |