Index: third_party/WebKit/Source/platform/v8_inspector/V8InspectorImpl.h |
diff --git a/third_party/WebKit/Source/platform/v8_inspector/V8InspectorImpl.h b/third_party/WebKit/Source/platform/v8_inspector/V8InspectorImpl.h |
index dda3ff75c8c9d0b4d2d19ef420d0db2c8f2f0271..a27675f0b173180af7f4ad9c512ffa9837be9a90 100644 |
--- a/third_party/WebKit/Source/platform/v8_inspector/V8InspectorImpl.h |
+++ b/third_party/WebKit/Source/platform/v8_inspector/V8InspectorImpl.h |
@@ -31,12 +31,9 @@ |
#ifndef V8InspectorImpl_h |
#define V8InspectorImpl_h |
+#include "platform/inspector_protocol/Allocator.h" |
#include "platform/inspector_protocol/Collections.h" |
-#include "platform/inspector_protocol/Maybe.h" |
#include "platform/inspector_protocol/Platform.h" |
-#include "platform/v8_inspector/JavaScriptCallFrame.h" |
-#include "platform/v8_inspector/V8DebuggerScript.h" |
-#include "platform/v8_inspector/protocol/Debugger.h" |
#include "platform/v8_inspector/public/V8Inspector.h" |
#include <v8-debug.h> |
@@ -45,11 +42,9 @@ |
namespace blink { |
-using protocol::Maybe; |
- |
-struct ScriptBreakpoint; |
class InspectedContext; |
class V8ConsoleMessageStorage; |
+class V8Debugger; |
class V8DebuggerAgentImpl; |
class V8InspectorSessionImpl; |
class V8RuntimeAgentImpl; |
@@ -61,53 +56,9 @@ public: |
V8InspectorImpl(v8::Isolate*, V8InspectorClient*); |
~V8InspectorImpl() override; |
- static int contextId(v8::Local<v8::Context>); |
- static int getGroupId(v8::Local<v8::Context>); |
- |
- bool enabled() const; |
- |
- String16 setBreakpoint(const String16& sourceID, const ScriptBreakpoint&, int* actualLineNumber, int* actualColumnNumber, bool interstatementLocation); |
- void removeBreakpoint(const String16& breakpointId); |
- void setBreakpointsActivated(bool); |
- bool breakpointsActivated() const { return m_breakpointsActivated; } |
- |
- enum PauseOnExceptionsState { |
- DontPauseOnExceptions, |
- PauseOnAllExceptions, |
- PauseOnUncaughtExceptions |
- }; |
- PauseOnExceptionsState getPauseOnExceptionsState(); |
- void setPauseOnExceptionsState(PauseOnExceptionsState); |
- void setPauseOnNextStatement(bool); |
- bool canBreakProgram(); |
- void breakProgram(); |
- void continueProgram(); |
- void stepIntoStatement(); |
- void stepOverStatement(); |
- void stepOutOfFunction(); |
- void clearStepping(); |
- |
- bool setScriptSource(const String16& sourceID, v8::Local<v8::String> newSource, bool preview, ErrorString*, Maybe<protocol::Runtime::ExceptionDetails>*, JavaScriptCallFrames* newCallFrames, Maybe<bool>* stackChanged); |
- JavaScriptCallFrames currentCallFrames(int limit = 0); |
- |
- // Each script inherits debug data from v8::Context where it has been compiled. |
- // Only scripts whose debug data matches |contextGroupId| will be reported. |
- // Passing 0 will result in reporting all scripts. |
- void getCompiledScripts(int contextGroupId, std::vector<std::unique_ptr<V8DebuggerScript>>&); |
- void debuggerAgentEnabled(); |
- void debuggerAgentDisabled(); |
- |
- bool isPaused(); |
- v8::Local<v8::Context> pausedContext() { return m_pausedContext; } |
- int maxAsyncCallChainDepth() { return m_maxAsyncCallStackDepth; } |
- V8StackTraceImpl* currentAsyncCallChain(); |
- void setAsyncCallStackDepth(V8DebuggerAgentImpl*, int); |
- |
- v8::MaybeLocal<v8::Value> functionScopes(v8::Local<v8::Function>); |
- v8::MaybeLocal<v8::Array> internalProperties(v8::Local<v8::Context>, v8::Local<v8::Value>); |
- |
v8::Isolate* isolate() const { return m_isolate; } |
V8InspectorClient* client() { return m_client; } |
+ V8Debugger* debugger() { return m_debugger.get(); } |
v8::MaybeLocal<v8::Value> runCompiledScript(v8::Local<v8::Context>, v8::Local<v8::Script>); |
v8::MaybeLocal<v8::Value> callFunction(v8::Local<v8::Function>, v8::Local<v8::Context>, v8::Local<v8::Value> receiver, int argc, v8::Local<v8::Value> info[]); |
@@ -115,13 +66,7 @@ public: |
v8::Local<v8::Script> compileScript(v8::Local<v8::Context>, v8::Local<v8::String>, const String16& fileName, bool markAsInternal); |
v8::Local<v8::Context> regexContext(); |
- void enableStackCapturingIfNeeded(); |
- void disableStackCapturingIfNeeded(); |
- V8ConsoleMessageStorage* ensureConsoleMessageStorage(int contextGroupId); |
- std::unique_ptr<V8StackTraceImpl> createStackTraceImpl(v8::Local<v8::StackTrace>); |
- std::unique_ptr<V8StackTraceImpl> captureStackTraceImpl(bool fullStack); |
- |
- // V8Debugger implementation |
+ // V8Inspector implementation. |
std::unique_ptr<V8InspectorSession> connect(int contextGroupId, protocol::FrontendChannel*, V8InspectorSessionClient*, const String16* state) override; |
void contextCreated(const V8ContextInfo&) override; |
void contextDestroyed(v8::Local<v8::Context>) override; |
@@ -140,65 +85,34 @@ public: |
void asyncTaskFinished(void* task) override; |
void allAsyncTasksCanceled() override; |
+ void enableStackCapturingIfNeeded(); |
+ void disableStackCapturingIfNeeded(); |
+ V8ConsoleMessageStorage* ensureConsoleMessageStorage(int contextGroupId); |
using ContextByIdMap = protocol::HashMap<int, std::unique_ptr<InspectedContext>>; |
void discardInspectedContext(int contextGroupId, int contextId); |
const ContextByIdMap* contextGroup(int contextGroupId); |
void disconnect(V8InspectorSessionImpl*); |
V8InspectorSessionImpl* sessionForContextGroup(int contextGroupId); |
InspectedContext* getContext(int groupId, int contextId) const; |
+ V8DebuggerAgentImpl* enabledDebuggerAgentForGroup(int contextGroupId); |
+ V8RuntimeAgentImpl* enabledRuntimeAgentForGroup(int contextGroupId); |
private: |
- void enable(); |
- void disable(); |
- V8DebuggerAgentImpl* findEnabledDebuggerAgent(int contextGroupId); |
- V8DebuggerAgentImpl* findEnabledDebuggerAgent(v8::Local<v8::Context>); |
- |
- void compileDebuggerScript(); |
- v8::MaybeLocal<v8::Value> callDebuggerMethod(const char* functionName, int argc, v8::Local<v8::Value> argv[]); |
- v8::Local<v8::Context> debuggerContext() const; |
- void clearBreakpoints(); |
- |
- static void breakProgramCallback(const v8::FunctionCallbackInfo<v8::Value>&); |
- void handleProgramBreak(v8::Local<v8::Context> pausedContext, v8::Local<v8::Object> executionState, v8::Local<v8::Value> exception, v8::Local<v8::Array> hitBreakpoints, bool isPromiseRejection = false); |
- static void v8DebugEventCallback(const v8::Debug::EventDetails&); |
- v8::Local<v8::Value> callInternalGetterFunction(v8::Local<v8::Object>, const char* functionName); |
- void handleV8DebugEvent(const v8::Debug::EventDetails&); |
- |
- v8::Local<v8::String> v8InternalizedString(const char*) const; |
- |
- void handleV8AsyncTaskEvent(v8::Local<v8::Context>, v8::Local<v8::Object> executionState, v8::Local<v8::Object> eventData); |
- |
- using ContextsByGroupMap = protocol::HashMap<int, std::unique_ptr<ContextByIdMap>>; |
- |
- v8::Local<v8::Value> collectionEntries(v8::Local<v8::Context>, v8::Local<v8::Object>); |
- v8::Local<v8::Value> generatorObjectLocation(v8::Local<v8::Object>); |
- v8::Local<v8::Value> functionLocation(v8::Local<v8::Context>, v8::Local<v8::Function>); |
- |
v8::Isolate* m_isolate; |
V8InspectorClient* m_client; |
+ std::unique_ptr<V8Debugger> m_debugger; |
+ v8::Global<v8::Context> m_regexContext; |
+ int m_capturingStackTracesCount; |
+ unsigned m_lastExceptionId; |
+ |
+ using ContextsByGroupMap = protocol::HashMap<int, std::unique_ptr<ContextByIdMap>>; |
ContextsByGroupMap m_contexts; |
+ |
using SessionMap = protocol::HashMap<int, V8InspectorSessionImpl*>; |
SessionMap m_sessions; |
+ |
using ConsoleStorageMap = protocol::HashMap<int, std::unique_ptr<V8ConsoleMessageStorage>>; |
ConsoleStorageMap m_consoleStorageMap; |
- int m_capturingStackTracesCount; |
- unsigned m_lastExceptionId; |
- int m_enabledAgentsCount; |
- bool m_breakpointsActivated; |
- v8::Global<v8::Object> m_debuggerScript; |
- v8::Global<v8::Context> m_debuggerContext; |
- v8::Local<v8::Object> m_executionState; |
- v8::Local<v8::Context> m_pausedContext; |
- bool m_runningNestedMessageLoop; |
- v8::Global<v8::Context> m_regexContext; |
- |
- using AsyncTaskToStackTrace = protocol::HashMap<void*, std::unique_ptr<V8StackTraceImpl>>; |
- AsyncTaskToStackTrace m_asyncTaskStacks; |
- protocol::HashSet<void*> m_recurringTasks; |
- int m_maxAsyncCallStackDepth; |
- std::vector<void*> m_currentTasks; |
- std::vector<std::unique_ptr<V8StackTraceImpl>> m_currentStacks; |
- protocol::HashMap<V8DebuggerAgentImpl*, int> m_maxAsyncCallStackDepthMap; |
}; |
} // namespace blink |