| 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 |