diff options
Diffstat (limited to 'Source/WebCore/inspector/WorkerInspectorController.h')
-rw-r--r-- | Source/WebCore/inspector/WorkerInspectorController.h | 110 |
1 files changed, 50 insertions, 60 deletions
diff --git a/Source/WebCore/inspector/WorkerInspectorController.h b/Source/WebCore/inspector/WorkerInspectorController.h index 7984088b1..f92d5efec 100644 --- a/Source/WebCore/inspector/WorkerInspectorController.h +++ b/Source/WebCore/inspector/WorkerInspectorController.h @@ -1,94 +1,84 @@ /* - * Copyright (C) 2011 Google Inc. All rights reserved. + * Copyright (C) 2016 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef WorkerInspectorController_h -#define WorkerInspectorController_h - -#if ENABLE(INSPECTOR) +#pragma once -#include "InspectorInstrumentationCookie.h" -#include "InspectorWebAgentBase.h" +#include "WorkerScriptDebugServer.h" #include <inspector/InspectorAgentRegistry.h> #include <inspector/InspectorEnvironment.h> -#include <wtf/FastMalloc.h> #include <wtf/Forward.h> #include <wtf/Noncopyable.h> -#include <wtf/RefPtr.h> -#include <wtf/Vector.h> +#include <wtf/Stopwatch.h> namespace Inspector { -class InspectorBackendDispatcher; -} +class FrontendChannel; +class FrontendRouter; +}; namespace WebCore { -class InspectorInstrumentation; class InstrumentingAgents; -class PageInjectedScriptManager; +class WebInjectedScriptManager; class WorkerGlobalScope; -class WorkerRuntimeAgent; class WorkerInspectorController final : public Inspector::InspectorEnvironment { WTF_MAKE_NONCOPYABLE(WorkerInspectorController); WTF_MAKE_FAST_ALLOCATED; public: explicit WorkerInspectorController(WorkerGlobalScope&); - ~WorkerInspectorController(); + virtual ~WorkerInspectorController(); + + void workerTerminating(); void connectFrontend(); - void disconnectFrontend(Inspector::InspectorDisconnectReason); + void disconnectFrontend(Inspector::DisconnectReason); + void dispatchMessageFromFrontend(const String&); - void resume(); - virtual bool developerExtrasEnabled() const override { return true; } - virtual bool canAccessInspectedScriptState(JSC::ExecState*) const override { return true; } - virtual Inspector::InspectorFunctionCallHandler functionCallHandler() const override; - virtual Inspector::InspectorEvaluateHandler evaluateHandler() const override; - virtual void willCallInjectedScriptFunction(JSC::ExecState*, const String& scriptName, int scriptLine) override; - virtual void didCallInjectedScriptFunction() override; + // InspectorEnvironment + bool developerExtrasEnabled() const override { return true; } + bool canAccessInspectedScriptState(JSC::ExecState*) const override { return true; } + Inspector::InspectorFunctionCallHandler functionCallHandler() const override; + Inspector::InspectorEvaluateHandler evaluateHandler() const override; + void frontendInitialized() override { } + Ref<WTF::Stopwatch> executionStopwatch() override { return m_executionStopwatch.copyRef(); } + WorkerScriptDebugServer& scriptDebugServer() override { return m_scriptDebugServer; } + JSC::VM& vm() override; private: - friend InstrumentingAgents* instrumentationForWorkerGlobalScope(WorkerGlobalScope*); + friend class InspectorInstrumentation; + Ref<InstrumentingAgents> m_instrumentingAgents; + std::unique_ptr<WebInjectedScriptManager> m_injectedScriptManager; + Ref<Inspector::FrontendRouter> m_frontendRouter; + Ref<Inspector::BackendDispatcher> m_backendDispatcher; + Ref<WTF::Stopwatch> m_executionStopwatch; + WorkerScriptDebugServer m_scriptDebugServer; + Inspector::AgentRegistry m_agents; WorkerGlobalScope& m_workerGlobalScope; - RefPtr<InstrumentingAgents> m_instrumentingAgents; - std::unique_ptr<PageInjectedScriptManager> m_injectedScriptManager; - WorkerRuntimeAgent* m_runtimeAgent; - Inspector::InspectorAgentRegistry m_agents; - std::unique_ptr<InspectorFrontendChannel> m_frontendChannel; - RefPtr<Inspector::InspectorBackendDispatcher> m_backendDispatcher; - Vector<InspectorInstrumentationCookie, 2> m_injectedScriptInstrumentationCookies; + std::unique_ptr<Inspector::FrontendChannel> m_forwardingChannel; }; -} - -#endif // ENABLE(INSPECTOR) - -#endif // !defined(WorkerInspectorController_h) +} // namespace WebCore |