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

Unified Diff: third_party/WebKit/Source/platform/v8_inspector/V8InspectorImpl.h

Issue 2205913002: [DevTools] Split a part of V8Inspector into V8Debugger. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@v8-inspector-rename
Patch Set: context scope! Created 4 years, 4 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: 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

Powered by Google App Engine
This is Rietveld 408576698