diff options
Diffstat (limited to 'Source/WebCore/inspector/InspectorController.h')
-rw-r--r-- | Source/WebCore/inspector/InspectorController.h | 140 |
1 files changed, 57 insertions, 83 deletions
diff --git a/Source/WebCore/inspector/InspectorController.h b/Source/WebCore/inspector/InspectorController.h index 07bd72dbf..fd9693a9b 100644 --- a/Source/WebCore/inspector/InspectorController.h +++ b/Source/WebCore/inspector/InspectorController.h @@ -1,5 +1,6 @@ /* * Copyright (C) 2011 Google Inc. All rights reserved. + * Copyright (C) 2015 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 @@ -28,26 +29,27 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef InspectorController_h -#define InspectorController_h +#pragma once -#if ENABLE(INSPECTOR) - -#include "InspectorInstrumentationCookie.h" +#include "InspectorOverlay.h" +#include "PageScriptDebugServer.h" #include <inspector/InspectorAgentRegistry.h> #include <inspector/InspectorEnvironment.h> #include <wtf/Forward.h> -#include <wtf/HashMap.h> #include <wtf/Noncopyable.h> -#include <wtf/Vector.h> #include <wtf/text/WTFString.h> namespace Inspector { +class BackendDispatcher; +class FrontendChannel; +class FrontendRouter; class InspectorAgent; -class InspectorBackendDispatcher; -class InspectorDebuggerAgent; -class InspectorFrontendChannel; -class InspectorObject; + +namespace Protocol { +namespace OverlayTypes { +class NodeHighlightData; +} +} } namespace WebCore { @@ -55,23 +57,15 @@ namespace WebCore { class DOMWrapperWorld; class Frame; class GraphicsContext; -class InspectorApplicationCacheAgent; class InspectorClient; class InspectorDOMAgent; -class InspectorDOMDebuggerAgent; class InspectorFrontendClient; -class InspectorMemoryAgent; -class InspectorOverlay; +class InspectorInstrumentation; class InspectorPageAgent; -class InspectorProfilerAgent; -class InspectorResourceAgent; class InstrumentingAgents; -class IntSize; -class Page; -class PageInjectedScriptManager; class Node; - -struct Highlight; +class Page; +class WebInjectedScriptManager; class InspectorController final : public Inspector::InspectorEnvironment { WTF_MAKE_NONCOPYABLE(InspectorController); @@ -85,94 +79,74 @@ public: bool enabled() const; Page& inspectedPage() const; - void show(); - void close(); + WEBCORE_EXPORT void show(); - void setInspectorFrontendClient(std::unique_ptr<InspectorFrontendClient>); - bool hasInspectorFrontendClient() const; - void didClearWindowObjectInWorld(Frame*, DOMWrapperWorld&); + WEBCORE_EXPORT void setInspectorFrontendClient(InspectorFrontendClient*); + unsigned inspectionLevel() const; + void didClearWindowObjectInWorld(Frame&, DOMWrapperWorld&); - void dispatchMessageFromFrontend(const String& message); + WEBCORE_EXPORT void dispatchMessageFromFrontend(const String& message); - bool hasFrontend() const { return !!m_inspectorFrontendChannel; } bool hasLocalFrontend() const; bool hasRemoteFrontend() const; - void connectFrontend(Inspector::InspectorFrontendChannel*); - void disconnectFrontend(Inspector::InspectorDisconnectReason); + WEBCORE_EXPORT void connectFrontend(Inspector::FrontendChannel*, bool isAutomaticInspection = false); + WEBCORE_EXPORT void disconnectFrontend(Inspector::FrontendChannel*); + WEBCORE_EXPORT void disconnectAllFrontends(); void setProcessId(long); -#if ENABLE(REMOTE_INSPECTOR) - void setHasRemoteFrontend(bool hasRemote) { m_hasRemoteFrontend = hasRemote; } -#endif - void inspect(Node*); - void drawHighlight(GraphicsContext&) const; - void getHighlight(Highlight*) const; + WEBCORE_EXPORT void drawHighlight(GraphicsContext&) const; + WEBCORE_EXPORT void getHighlight(Highlight&, InspectorOverlay::CoordinateSystem) const; void hideHighlight(); Node* highlightedNode() const; void setIndicating(bool); - PassRefPtr<Inspector::InspectorObject> buildObjectForHighlightedNode() const; + WEBCORE_EXPORT Ref<Inspector::Protocol::Array<Inspector::Protocol::OverlayTypes::NodeHighlightData>> buildObjectForHighlightedNodes() const; - bool isUnderTest(); - void evaluateForTestInFrontend(long callId, const String& script); + WEBCORE_EXPORT void didComposite(Frame&); - bool profilerEnabled() const; - void setProfilerEnabled(bool); - - void resume(); - - void setResourcesDataSizeLimitsFromInternals(int maximumResourcesContentSize, int maximumSingleResourceContentSize); + bool isUnderTest() const { return m_isUnderTest; } + WEBCORE_EXPORT void setIsUnderTest(bool); + WEBCORE_EXPORT void evaluateForTestInFrontend(const String& script); InspectorClient* inspectorClient() const { return m_inspectorClient; } + InspectorFrontendClient* inspectorFrontendClient() const { return m_inspectorFrontendClient; } InspectorPageAgent* pageAgent() const { return m_pageAgent; } - void didBeginFrame(); - void didCancelFrame(); - void willComposite(); - void didComposite(); - - virtual bool developerExtrasEnabled() const override; - virtual bool canAccessInspectedScriptState(JSC::ExecState*) const override; - 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; + bool canAccessInspectedScriptState(JSC::ExecState*) const override; + Inspector::InspectorFunctionCallHandler functionCallHandler() const override; + Inspector::InspectorEvaluateHandler evaluateHandler() const override; + void frontendInitialized() override; + Ref<WTF::Stopwatch> executionStopwatch() override; + PageScriptDebugServer& scriptDebugServer() override; + JSC::VM& vm() override; private: - friend InstrumentingAgents* instrumentationForPage(Page*); + friend class InspectorInstrumentation; - RefPtr<InstrumentingAgents> m_instrumentingAgents; - std::unique_ptr<PageInjectedScriptManager> m_injectedScriptManager; + Ref<InstrumentingAgents> m_instrumentingAgents; + std::unique_ptr<WebInjectedScriptManager> m_injectedScriptManager; + Ref<Inspector::FrontendRouter> m_frontendRouter; + Ref<Inspector::BackendDispatcher> m_backendDispatcher; std::unique_ptr<InspectorOverlay> m_overlay; + Ref<WTF::Stopwatch> m_executionStopwatch; + PageScriptDebugServer m_scriptDebugServer; + Inspector::AgentRegistry m_agents; - Inspector::InspectorAgent* m_inspectorAgent; - InspectorDOMAgent* m_domAgent; - InspectorResourceAgent* m_resourceAgent; - InspectorPageAgent* m_pageAgent; - InspectorMemoryAgent* m_memoryAgent; - Inspector::InspectorDebuggerAgent* m_debuggerAgent; - InspectorDOMDebuggerAgent* m_domDebuggerAgent; - InspectorProfilerAgent* m_profilerAgent; - - RefPtr<Inspector::InspectorBackendDispatcher> m_inspectorBackendDispatcher; - std::unique_ptr<InspectorFrontendClient> m_inspectorFrontendClient; - Inspector::InspectorFrontendChannel* m_inspectorFrontendChannel; Page& m_page; InspectorClient* m_inspectorClient; - Inspector::InspectorAgentRegistry m_agents; - Vector<InspectorInstrumentationCookie, 2> m_injectedScriptInstrumentationCookies; - bool m_isUnderTest; + InspectorFrontendClient* m_inspectorFrontendClient { nullptr }; -#if ENABLE(REMOTE_INSPECTOR) - bool m_hasRemoteFrontend; -#endif -}; + Inspector::InspectorAgent* m_inspectorAgent { nullptr }; + InspectorDOMAgent* m_domAgent { nullptr }; + InspectorPageAgent* m_pageAgent { nullptr }; -} - -#endif // ENABLE(INSPECTOR) + bool m_isUnderTest { false }; + bool m_isAutomaticInspection { false }; +}; -#endif // !defined(InspectorController_h) +} // namespace WebCore |