summaryrefslogtreecommitdiff
path: root/Source/WebCore/inspector/InspectorController.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/inspector/InspectorController.h')
-rw-r--r--Source/WebCore/inspector/InspectorController.h140
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