JSGlobalObjectInspectorController::JSGlobalObjectInspectorController(JSGlobalObject& globalObject) : m_globalObject(globalObject) , m_injectedScriptManager(std::make_unique<InjectedScriptManager>(*this, InjectedScriptHost::create())) , m_frontendChannel(nullptr) , m_executionStopwatch(Stopwatch::create()) , m_includeNativeCallStackWithExceptions(true) , m_isAutomaticInspection(false) #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS) , m_augmentingClient(nullptr) #endif { auto inspectorAgent = std::make_unique<InspectorAgent>(*this); auto runtimeAgent = std::make_unique<JSGlobalObjectRuntimeAgent>(m_injectedScriptManager.get(), m_globalObject); auto consoleAgent = std::make_unique<JSGlobalObjectConsoleAgent>(m_injectedScriptManager.get()); auto debuggerAgent = std::make_unique<JSGlobalObjectDebuggerAgent>(m_injectedScriptManager.get(), m_globalObject, consoleAgent.get()); m_inspectorAgent = inspectorAgent.get(); m_debuggerAgent = debuggerAgent.get(); m_consoleAgent = consoleAgent.get(); m_consoleClient = std::make_unique<JSGlobalObjectConsoleClient>(m_consoleAgent); runtimeAgent->setScriptDebugServer(&debuggerAgent->scriptDebugServer()); m_agents.append(WTF::move(inspectorAgent)); m_agents.append(WTF::move(runtimeAgent)); m_agents.append(WTF::move(consoleAgent)); m_agents.append(WTF::move(debuggerAgent)); m_executionStopwatch->start(); }
JSGlobalObjectInspectorController::JSGlobalObjectInspectorController(JSGlobalObject& globalObject) : m_globalObject(globalObject) , m_injectedScriptManager(std::make_unique<InjectedScriptManager>(*this, InjectedScriptHost::create())) , m_inspectorFrontendChannel(nullptr) , m_includeNativeCallStackWithExceptions(true) { auto runtimeAgent = std::make_unique<JSGlobalObjectRuntimeAgent>(m_injectedScriptManager.get(), m_globalObject); auto consoleAgent = std::make_unique<JSGlobalObjectConsoleAgent>(m_injectedScriptManager.get()); auto debuggerAgent = std::make_unique<JSGlobalObjectDebuggerAgent>(m_injectedScriptManager.get(), m_globalObject, consoleAgent.get()); auto profilerAgent = std::make_unique<JSGlobalObjectProfilerAgent>(m_globalObject); m_consoleAgent = consoleAgent.get(); m_consoleClient = std::make_unique<JSConsoleClient>(m_consoleAgent, profilerAgent.get()); runtimeAgent->setScriptDebugServer(&debuggerAgent->scriptDebugServer()); profilerAgent->setScriptDebugServer(&debuggerAgent->scriptDebugServer()); m_agents.append(std::make_unique<InspectorAgent>()); m_agents.append(std::move(runtimeAgent)); m_agents.append(std::move(consoleAgent)); m_agents.append(std::move(debuggerAgent)); }
JSGlobalObjectInspectorController::JSGlobalObjectInspectorController(JSGlobalObject& globalObject) : m_globalObject(globalObject) , m_injectedScriptManager(std::make_unique<InjectedScriptManager>(*this, InjectedScriptHost::create())) , m_executionStopwatch(Stopwatch::create()) , m_frontendRouter(FrontendRouter::create()) , m_backendDispatcher(BackendDispatcher::create(m_frontendRouter.copyRef())) { AgentContext baseContext = { *this, *m_injectedScriptManager, m_frontendRouter.get(), m_backendDispatcher.get() }; JSAgentContext context = { baseContext, globalObject }; auto inspectorAgent = std::make_unique<InspectorAgent>(context); auto runtimeAgent = std::make_unique<JSGlobalObjectRuntimeAgent>(context); auto consoleAgent = std::make_unique<JSGlobalObjectConsoleAgent>(context); auto debuggerAgent = std::make_unique<JSGlobalObjectDebuggerAgent>(context, consoleAgent.get()); auto heapAgent = std::make_unique<InspectorHeapAgent>(context); m_inspectorAgent = inspectorAgent.get(); m_debuggerAgent = debuggerAgent.get(); m_heapAgent = heapAgent.get(); m_consoleAgent = consoleAgent.get(); m_consoleClient = std::make_unique<JSGlobalObjectConsoleClient>(m_consoleAgent); runtimeAgent->setScriptDebugServer(&debuggerAgent->scriptDebugServer()); m_agents.append(WTF::move(inspectorAgent)); m_agents.append(WTF::move(runtimeAgent)); m_agents.append(WTF::move(consoleAgent)); m_agents.append(WTF::move(debuggerAgent)); m_agents.append(WTF::move(heapAgent)); m_executionStopwatch->start(); }
WorkerInspectorController::WorkerInspectorController(WorkerGlobalScope& workerGlobalScope) : m_workerGlobalScope(workerGlobalScope) , m_instrumentingAgents(InstrumentingAgents::create(*this)) , m_injectedScriptManager(std::make_unique<WebInjectedScriptManager>(*this, WebInjectedScriptHost::create())) , m_runtimeAgent(nullptr) { auto runtimeAgent = std::make_unique<WorkerRuntimeAgent>(m_injectedScriptManager.get(), &workerGlobalScope); m_runtimeAgent = runtimeAgent.get(); m_instrumentingAgents->setWorkerRuntimeAgent(m_runtimeAgent); m_agents.append(std::move(runtimeAgent)); auto consoleAgent = std::make_unique<WorkerConsoleAgent>(m_injectedScriptManager.get()); m_instrumentingAgents->setWebConsoleAgent(consoleAgent.get()); auto debuggerAgent = std::make_unique<WorkerDebuggerAgent>(m_injectedScriptManager.get(), m_instrumentingAgents.get(), &workerGlobalScope); m_runtimeAgent->setScriptDebugServer(&debuggerAgent->scriptDebugServer()); m_agents.append(std::move(debuggerAgent)); auto profilerAgent = std::make_unique<WorkerProfilerAgent>(m_instrumentingAgents.get(), &workerGlobalScope); profilerAgent->setScriptDebugServer(&debuggerAgent->scriptDebugServer()); m_agents.append(std::move(profilerAgent)); m_agents.append(std::make_unique<InspectorTimelineAgent>(m_instrumentingAgents.get(), nullptr, InspectorTimelineAgent::WorkerInspector, nullptr)); m_agents.append(std::move(consoleAgent)); if (CommandLineAPIHost* commandLineAPIHost = m_injectedScriptManager->commandLineAPIHost()) { commandLineAPIHost->init(nullptr , nullptr , nullptr , nullptr #if ENABLE(SQL_DATABASE) , nullptr #endif ); } }