summaryrefslogtreecommitdiff
path: root/Source/WebCore/inspector/InspectorInstrumentation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/inspector/InspectorInstrumentation.cpp')
-rw-r--r--Source/WebCore/inspector/InspectorInstrumentation.cpp1151
1 files changed, 572 insertions, 579 deletions
diff --git a/Source/WebCore/inspector/InspectorInstrumentation.cpp b/Source/WebCore/inspector/InspectorInstrumentation.cpp
index df1357227..87f0d93ff 100644
--- a/Source/WebCore/inspector/InspectorInstrumentation.cpp
+++ b/Source/WebCore/inspector/InspectorInstrumentation.cpp
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2011 Google Inc. All rights reserved.
+* Copyright (C) 2014-2017 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
@@ -31,12 +32,6 @@
#include "config.h"
#include "InspectorInstrumentation.h"
-#if ENABLE(INSPECTOR)
-
-#include "CSSRule.h"
-#include "CSSStyleRule.h"
-#include "ConsoleAPITypes.h"
-#include "ConsoleTypes.h"
#include "DOMWindow.h"
#include "DOMWrapperWorld.h"
#include "Database.h"
@@ -45,38 +40,37 @@
#include "EventDispatcher.h"
#include "InspectorApplicationCacheAgent.h"
#include "InspectorCSSAgent.h"
-#include "InspectorCanvasAgent.h"
-#include "InspectorConsoleAgent.h"
#include "InspectorDOMAgent.h"
#include "InspectorDOMDebuggerAgent.h"
#include "InspectorDOMStorageAgent.h"
#include "InspectorDatabaseAgent.h"
-#include "InspectorHeapProfilerAgent.h"
#include "InspectorLayerTreeAgent.h"
+#include "InspectorMemoryAgent.h"
+#include "InspectorNetworkAgent.h"
#include "InspectorPageAgent.h"
-#include "InspectorProfilerAgent.h"
-#include "InspectorResourceAgent.h"
#include "InspectorTimelineAgent.h"
#include "InspectorWorkerAgent.h"
#include "InstrumentingAgents.h"
#include "MainFrame.h"
#include "PageDebuggerAgent.h"
+#include "PageHeapAgent.h"
#include "PageRuntimeAgent.h"
#include "RenderObject.h"
#include "RenderView.h"
-#include "ScriptArguments.h"
-#include "ScriptCallStack.h"
#include "ScriptController.h"
-#include "ScriptProfile.h"
-#include "StyleResolver.h"
-#include "StyleRule.h"
-#include "WorkerGlobalScope.h"
-#include "WorkerRuntimeAgent.h"
-#include "WorkerThread.h"
-#include "XMLHttpRequest.h"
+#include "WebConsoleAgent.h"
+#include "WebSocketFrame.h"
+#include <inspector/ConsoleMessage.h>
+#include <inspector/ScriptArguments.h>
+#include <inspector/ScriptCallStack.h>
#include <inspector/agents/InspectorDebuggerAgent.h>
+#include <runtime/ConsoleTypes.h>
#include <wtf/StdLibExtras.h>
-#include <wtf/text/CString.h>
+
+#if ENABLE(WEB_REPLAY)
+#include "InspectorReplayAgent.h"
+#include "ReplayController.h"
+#endif
using namespace Inspector;
@@ -89,276 +83,312 @@ static const char* const setTimerEventName = "setTimer";
static const char* const clearTimerEventName = "clearTimer";
static const char* const timerFiredEventName = "timerFired";
+enum AsyncCallType {
+ AsyncCallTypeRequestAnimationFrame,
+ AsyncCallTypeTimer,
+};
+
namespace {
-static HashSet<InstrumentingAgents*>* instrumentingAgentsSet = nullptr;
+static HashSet<InstrumentingAgents*>* s_instrumentingAgentsSet = nullptr;
}
int InspectorInstrumentation::s_frontendCounter = 0;
+static void didScheduleAsyncCall(InstrumentingAgents& instrumentingAgents, AsyncCallType type, int callbackId, ScriptExecutionContext& context, bool singleShot)
+{
+ if (InspectorDebuggerAgent* debuggerAgent = instrumentingAgents.inspectorDebuggerAgent()) {
+ JSC::ExecState* scriptState = context.execState();
+ if (!scriptState)
+ return;
+
+ debuggerAgent->didScheduleAsyncCall(scriptState, type, callbackId, singleShot);
+ }
+}
+
static Frame* frameForScriptExecutionContext(ScriptExecutionContext* context)
{
Frame* frame = nullptr;
- if (context->isDocument())
- frame = toDocument(context)->frame();
+ if (is<Document>(*context))
+ frame = downcast<Document>(*context).frame();
+ return frame;
+}
+
+static Frame* frameForScriptExecutionContext(ScriptExecutionContext& context)
+{
+ Frame* frame = nullptr;
+ if (is<Document>(context))
+ frame = downcast<Document>(context).frame();
return frame;
}
-void InspectorInstrumentation::didClearWindowObjectInWorldImpl(InstrumentingAgents* instrumentingAgents, Frame* frame, DOMWrapperWorld& world)
+void InspectorInstrumentation::didClearWindowObjectInWorldImpl(InstrumentingAgents& instrumentingAgents, Frame& frame, DOMWrapperWorld& world)
{
- InspectorPageAgent* pageAgent = instrumentingAgents->inspectorPageAgent();
+ InspectorPageAgent* pageAgent = instrumentingAgents.inspectorPageAgent();
if (pageAgent)
- pageAgent->didClearWindowObjectInWorld(frame, world);
- if (PageDebuggerAgent* debuggerAgent = instrumentingAgents->pageDebuggerAgent()) {
- if (pageAgent && &world == &mainThreadNormalWorld() && frame == pageAgent->mainFrame())
+ pageAgent->didClearWindowObjectInWorld(&frame, world);
+ if (PageDebuggerAgent* debuggerAgent = instrumentingAgents.pageDebuggerAgent()) {
+ if (pageAgent && &world == &mainThreadNormalWorld() && &frame == &pageAgent->mainFrame())
debuggerAgent->didClearMainFrameWindowObject();
}
- if (PageRuntimeAgent* pageRuntimeAgent = instrumentingAgents->pageRuntimeAgent()) {
+ if (PageRuntimeAgent* pageRuntimeAgent = instrumentingAgents.pageRuntimeAgent()) {
if (&world == &mainThreadNormalWorld())
pageRuntimeAgent->didCreateMainWorldContext(frame);
}
}
-bool InspectorInstrumentation::isDebuggerPausedImpl(InstrumentingAgents* instrumentingAgents)
+bool InspectorInstrumentation::isDebuggerPausedImpl(InstrumentingAgents& instrumentingAgents)
{
- if (InspectorDebuggerAgent* debuggerAgent = instrumentingAgents->inspectorDebuggerAgent())
+ if (InspectorDebuggerAgent* debuggerAgent = instrumentingAgents.inspectorDebuggerAgent())
return debuggerAgent->isPaused();
return false;
}
-void InspectorInstrumentation::willInsertDOMNodeImpl(InstrumentingAgents* instrumentingAgents, Node* parent)
+void InspectorInstrumentation::willInsertDOMNodeImpl(InstrumentingAgents& instrumentingAgents, Node& parent)
{
- if (InspectorDOMDebuggerAgent* domDebuggerAgent = instrumentingAgents->inspectorDOMDebuggerAgent())
+ if (InspectorDOMDebuggerAgent* domDebuggerAgent = instrumentingAgents.inspectorDOMDebuggerAgent())
domDebuggerAgent->willInsertDOMNode(parent);
}
-void InspectorInstrumentation::didInsertDOMNodeImpl(InstrumentingAgents* instrumentingAgents, Node* node)
+void InspectorInstrumentation::didInsertDOMNodeImpl(InstrumentingAgents& instrumentingAgents, Node& node)
{
- if (InspectorDOMAgent* domAgent = instrumentingAgents->inspectorDOMAgent())
+ if (InspectorDOMAgent* domAgent = instrumentingAgents.inspectorDOMAgent())
domAgent->didInsertDOMNode(node);
- if (InspectorDOMDebuggerAgent* domDebuggerAgent = instrumentingAgents->inspectorDOMDebuggerAgent())
+ if (InspectorDOMDebuggerAgent* domDebuggerAgent = instrumentingAgents.inspectorDOMDebuggerAgent())
domDebuggerAgent->didInsertDOMNode(node);
}
-void InspectorInstrumentation::willRemoveDOMNodeImpl(InstrumentingAgents* instrumentingAgents, Node* node)
+void InspectorInstrumentation::willRemoveDOMNodeImpl(InstrumentingAgents& instrumentingAgents, Node& node)
{
- if (InspectorDOMDebuggerAgent* domDebuggerAgent = instrumentingAgents->inspectorDOMDebuggerAgent())
+ if (InspectorDOMDebuggerAgent* domDebuggerAgent = instrumentingAgents.inspectorDOMDebuggerAgent())
domDebuggerAgent->willRemoveDOMNode(node);
}
-void InspectorInstrumentation::didRemoveDOMNodeImpl(InstrumentingAgents* instrumentingAgents, Node* node)
+void InspectorInstrumentation::didRemoveDOMNodeImpl(InstrumentingAgents& instrumentingAgents, Node& node)
{
- if (InspectorDOMDebuggerAgent* domDebuggerAgent = instrumentingAgents->inspectorDOMDebuggerAgent())
+ if (InspectorDOMDebuggerAgent* domDebuggerAgent = instrumentingAgents.inspectorDOMDebuggerAgent())
domDebuggerAgent->didRemoveDOMNode(node);
- if (InspectorDOMAgent* domAgent = instrumentingAgents->inspectorDOMAgent())
+ if (InspectorDOMAgent* domAgent = instrumentingAgents.inspectorDOMAgent())
domAgent->didRemoveDOMNode(node);
}
-void InspectorInstrumentation::willModifyDOMAttrImpl(InstrumentingAgents* instrumentingAgents, Element* element, const AtomicString& oldValue, const AtomicString& newValue)
+void InspectorInstrumentation::willModifyDOMAttrImpl(InstrumentingAgents& instrumentingAgents, Element& element, const AtomicString& oldValue, const AtomicString& newValue)
{
- if (InspectorDOMDebuggerAgent* domDebuggerAgent = instrumentingAgents->inspectorDOMDebuggerAgent())
+ if (InspectorDOMDebuggerAgent* domDebuggerAgent = instrumentingAgents.inspectorDOMDebuggerAgent())
domDebuggerAgent->willModifyDOMAttr(element);
- if (InspectorDOMAgent* domAgent = instrumentingAgents->inspectorDOMAgent())
+ if (InspectorDOMAgent* domAgent = instrumentingAgents.inspectorDOMAgent())
domAgent->willModifyDOMAttr(element, oldValue, newValue);
}
-void InspectorInstrumentation::didModifyDOMAttrImpl(InstrumentingAgents* instrumentingAgents, Element* element, const AtomicString& name, const AtomicString& value)
+void InspectorInstrumentation::didModifyDOMAttrImpl(InstrumentingAgents& instrumentingAgents, Element& element, const AtomicString& name, const AtomicString& value)
{
- if (InspectorDOMAgent* domAgent = instrumentingAgents->inspectorDOMAgent())
+ if (InspectorDOMAgent* domAgent = instrumentingAgents.inspectorDOMAgent())
domAgent->didModifyDOMAttr(element, name, value);
}
-void InspectorInstrumentation::didRemoveDOMAttrImpl(InstrumentingAgents* instrumentingAgents, Element* element, const AtomicString& name)
+void InspectorInstrumentation::didRemoveDOMAttrImpl(InstrumentingAgents& instrumentingAgents, Element& element, const AtomicString& name)
{
- if (InspectorDOMAgent* domAgent = instrumentingAgents->inspectorDOMAgent())
+ if (InspectorDOMAgent* domAgent = instrumentingAgents.inspectorDOMAgent())
domAgent->didRemoveDOMAttr(element, name);
}
-void InspectorInstrumentation::didInvalidateStyleAttrImpl(InstrumentingAgents* instrumentingAgents, Node* node)
+void InspectorInstrumentation::didInvalidateStyleAttrImpl(InstrumentingAgents& instrumentingAgents, Node& node)
{
- if (InspectorDOMAgent* domAgent = instrumentingAgents->inspectorDOMAgent())
+ if (InspectorDOMAgent* domAgent = instrumentingAgents.inspectorDOMAgent())
domAgent->didInvalidateStyleAttr(node);
- if (InspectorDOMDebuggerAgent* domDebuggerAgent = instrumentingAgents->inspectorDOMDebuggerAgent())
+ if (InspectorDOMDebuggerAgent* domDebuggerAgent = instrumentingAgents.inspectorDOMDebuggerAgent())
domDebuggerAgent->didInvalidateStyleAttr(node);
}
-void InspectorInstrumentation::frameWindowDiscardedImpl(InstrumentingAgents* instrumentingAgents, DOMWindow* window)
+void InspectorInstrumentation::documentDetachedImpl(InstrumentingAgents& instrumentingAgents, Document& document)
{
- if (InspectorConsoleAgent* consoleAgent = instrumentingAgents->inspectorConsoleAgent())
+ if (InspectorCSSAgent* cssAgent = instrumentingAgents.inspectorCSSAgent())
+ cssAgent->documentDetached(document);
+}
+
+void InspectorInstrumentation::frameWindowDiscardedImpl(InstrumentingAgents& instrumentingAgents, DOMWindow* window)
+{
+ if (WebConsoleAgent* consoleAgent = instrumentingAgents.webConsoleAgent())
consoleAgent->frameWindowDiscarded(window);
}
-void InspectorInstrumentation::mediaQueryResultChangedImpl(InstrumentingAgents* instrumentingAgents)
+void InspectorInstrumentation::mediaQueryResultChangedImpl(InstrumentingAgents& instrumentingAgents)
{
- if (InspectorCSSAgent* cssAgent = instrumentingAgents->inspectorCSSAgent())
+ if (InspectorCSSAgent* cssAgent = instrumentingAgents.inspectorCSSAgent())
cssAgent->mediaQueryResultChanged();
}
-void InspectorInstrumentation::didPushShadowRootImpl(InstrumentingAgents* instrumentingAgents, Element* host, ShadowRoot* root)
+void InspectorInstrumentation::activeStyleSheetsUpdatedImpl(InstrumentingAgents& instrumentingAgents, Document& document)
+{
+ if (InspectorCSSAgent* cssAgent = instrumentingAgents.inspectorCSSAgent())
+ cssAgent->activeStyleSheetsUpdated(document);
+}
+
+void InspectorInstrumentation::didPushShadowRootImpl(InstrumentingAgents& instrumentingAgents, Element& host, ShadowRoot& root)
{
- if (InspectorDOMAgent* domAgent = instrumentingAgents->inspectorDOMAgent())
+ if (InspectorDOMAgent* domAgent = instrumentingAgents.inspectorDOMAgent())
domAgent->didPushShadowRoot(host, root);
}
-void InspectorInstrumentation::willPopShadowRootImpl(InstrumentingAgents* instrumentingAgents, Element* host, ShadowRoot* root)
+void InspectorInstrumentation::willPopShadowRootImpl(InstrumentingAgents& instrumentingAgents, Element& host, ShadowRoot& root)
{
- if (InspectorDOMAgent* domAgent = instrumentingAgents->inspectorDOMAgent())
+ if (InspectorDOMAgent* domAgent = instrumentingAgents.inspectorDOMAgent())
domAgent->willPopShadowRoot(host, root);
}
-void InspectorInstrumentation::didCreateNamedFlowImpl(InstrumentingAgents* instrumentingAgents, Document* document, WebKitNamedFlow* namedFlow)
+void InspectorInstrumentation::didChangeCustomElementStateImpl(InstrumentingAgents& instrumentingAgents, Element& element)
{
- if (InspectorCSSAgent* cssAgent = instrumentingAgents->inspectorCSSAgent())
- cssAgent->didCreateNamedFlow(document, namedFlow);
+ if (InspectorDOMAgent* domAgent = instrumentingAgents.inspectorDOMAgent())
+ domAgent->didChangeCustomElementState(element);
}
-void InspectorInstrumentation::willRemoveNamedFlowImpl(InstrumentingAgents* instrumentingAgents, Document* document, WebKitNamedFlow* namedFlow)
+void InspectorInstrumentation::pseudoElementCreatedImpl(InstrumentingAgents& instrumentingAgents, PseudoElement& pseudoElement)
{
- if (InspectorCSSAgent* cssAgent = instrumentingAgents->inspectorCSSAgent())
- cssAgent->willRemoveNamedFlow(document, namedFlow);
+ if (InspectorDOMAgent* domAgent = instrumentingAgents.inspectorDOMAgent())
+ domAgent->pseudoElementCreated(pseudoElement);
+}
+
+void InspectorInstrumentation::pseudoElementDestroyedImpl(InstrumentingAgents& instrumentingAgents, PseudoElement& pseudoElement)
+{
+ if (InspectorDOMAgent* domAgent = instrumentingAgents.inspectorDOMAgent())
+ domAgent->pseudoElementDestroyed(pseudoElement);
+ if (InspectorLayerTreeAgent* layerTreeAgent = instrumentingAgents.inspectorLayerTreeAgent())
+ layerTreeAgent->pseudoElementDestroyed(pseudoElement);
}
-void InspectorInstrumentation::didUpdateRegionLayoutImpl(InstrumentingAgents* instrumentingAgents, Document* document, WebKitNamedFlow* namedFlow)
+void InspectorInstrumentation::didCreateNamedFlowImpl(InstrumentingAgents& instrumentingAgents, Document* document, WebKitNamedFlow& namedFlow)
{
- if (InspectorCSSAgent* cssAgent = instrumentingAgents->inspectorCSSAgent())
- cssAgent->didUpdateRegionLayout(document, namedFlow);
+ if (!document)
+ return;
+
+ if (InspectorCSSAgent* cssAgent = instrumentingAgents.inspectorCSSAgent())
+ cssAgent->didCreateNamedFlow(*document, namedFlow);
+}
+
+void InspectorInstrumentation::willRemoveNamedFlowImpl(InstrumentingAgents& instrumentingAgents, Document* document, WebKitNamedFlow& namedFlow)
+{
+ if (!document)
+ return;
+
+ if (InspectorCSSAgent* cssAgent = instrumentingAgents.inspectorCSSAgent())
+ cssAgent->willRemoveNamedFlow(*document, namedFlow);
}
-void InspectorInstrumentation::didChangeRegionOversetImpl(InstrumentingAgents* instrumentingAgents, Document* document, WebKitNamedFlow* namedFlow)
+void InspectorInstrumentation::didChangeRegionOversetImpl(InstrumentingAgents& instrumentingAgents, Document& document, WebKitNamedFlow& namedFlow)
{
- if (InspectorCSSAgent* cssAgent = instrumentingAgents->inspectorCSSAgent())
+ if (InspectorCSSAgent* cssAgent = instrumentingAgents.inspectorCSSAgent())
cssAgent->didChangeRegionOverset(document, namedFlow);
}
-void InspectorInstrumentation::didRegisterNamedFlowContentElementImpl(InstrumentingAgents* instrumentingAgents, Document* document, WebKitNamedFlow* namedFlow, Node* contentElement, Node* nextContentElement)
+void InspectorInstrumentation::didRegisterNamedFlowContentElementImpl(InstrumentingAgents& instrumentingAgents, Document& document, WebKitNamedFlow& namedFlow, Node& contentElement, Node* nextContentElement)
{
- if (InspectorCSSAgent* cssAgent = instrumentingAgents->inspectorCSSAgent())
+ if (InspectorCSSAgent* cssAgent = instrumentingAgents.inspectorCSSAgent())
cssAgent->didRegisterNamedFlowContentElement(document, namedFlow, contentElement, nextContentElement);
}
-void InspectorInstrumentation::didUnregisterNamedFlowContentElementImpl(InstrumentingAgents* instrumentingAgents, Document* document, WebKitNamedFlow* namedFlow, Node* contentElement)
+void InspectorInstrumentation::didUnregisterNamedFlowContentElementImpl(InstrumentingAgents& instrumentingAgents, Document& document, WebKitNamedFlow& namedFlow, Node& contentElement)
{
- if (InspectorCSSAgent* cssAgent = instrumentingAgents->inspectorCSSAgent())
+ if (InspectorCSSAgent* cssAgent = instrumentingAgents.inspectorCSSAgent())
cssAgent->didUnregisterNamedFlowContentElement(document, namedFlow, contentElement);
}
-void InspectorInstrumentation::mouseDidMoveOverElementImpl(InstrumentingAgents* instrumentingAgents, const HitTestResult& result, unsigned modifierFlags)
+void InspectorInstrumentation::mouseDidMoveOverElementImpl(InstrumentingAgents& instrumentingAgents, const HitTestResult& result, unsigned modifierFlags)
{
- if (InspectorDOMAgent* domAgent = instrumentingAgents->inspectorDOMAgent())
+ if (InspectorDOMAgent* domAgent = instrumentingAgents.inspectorDOMAgent())
domAgent->mouseDidMoveOverElement(result, modifierFlags);
}
-void InspectorInstrumentation::didScrollImpl(InstrumentingAgents* instrumentingAgents)
+void InspectorInstrumentation::didScrollImpl(InstrumentingAgents& instrumentingAgents)
{
- if (InspectorPageAgent* pageAgent = instrumentingAgents->inspectorPageAgent())
+ if (InspectorPageAgent* pageAgent = instrumentingAgents.inspectorPageAgent())
pageAgent->didScroll();
}
-bool InspectorInstrumentation::handleTouchEventImpl(InstrumentingAgents* instrumentingAgents, Node* node)
+bool InspectorInstrumentation::handleTouchEventImpl(InstrumentingAgents& instrumentingAgents, Node& node)
{
- if (InspectorDOMAgent* domAgent = instrumentingAgents->inspectorDOMAgent())
+ if (InspectorDOMAgent* domAgent = instrumentingAgents.inspectorDOMAgent())
return domAgent->handleTouchEvent(node);
return false;
}
-bool InspectorInstrumentation::handleMousePressImpl(InstrumentingAgents* instrumentingAgents)
+bool InspectorInstrumentation::handleMousePressImpl(InstrumentingAgents& instrumentingAgents)
{
- if (InspectorDOMAgent* domAgent = instrumentingAgents->inspectorDOMAgent())
+ if (InspectorDOMAgent* domAgent = instrumentingAgents.inspectorDOMAgent())
return domAgent->handleMousePress();
return false;
}
-bool InspectorInstrumentation::forcePseudoStateImpl(InstrumentingAgents* instrumentingAgents, Element* element, CSSSelector::PseudoType pseudoState)
+bool InspectorInstrumentation::forcePseudoStateImpl(InstrumentingAgents& instrumentingAgents, const Element& element, CSSSelector::PseudoClassType pseudoState)
{
- if (InspectorCSSAgent* cssAgent = instrumentingAgents->inspectorCSSAgent())
+ if (InspectorCSSAgent* cssAgent = instrumentingAgents.inspectorCSSAgent())
return cssAgent->forcePseudoState(element, pseudoState);
return false;
}
-void InspectorInstrumentation::characterDataModifiedImpl(InstrumentingAgents* instrumentingAgents, CharacterData* characterData)
+void InspectorInstrumentation::characterDataModifiedImpl(InstrumentingAgents& instrumentingAgents, CharacterData& characterData)
{
- if (InspectorDOMAgent* domAgent = instrumentingAgents->inspectorDOMAgent())
+ if (InspectorDOMAgent* domAgent = instrumentingAgents.inspectorDOMAgent())
domAgent->characterDataModified(characterData);
}
-void InspectorInstrumentation::willSendXMLHttpRequestImpl(InstrumentingAgents* instrumentingAgents, const String& url)
+void InspectorInstrumentation::willSendXMLHttpRequestImpl(InstrumentingAgents& instrumentingAgents, const String& url)
{
- if (InspectorDOMDebuggerAgent* domDebuggerAgent = instrumentingAgents->inspectorDOMDebuggerAgent())
+ if (InspectorDOMDebuggerAgent* domDebuggerAgent = instrumentingAgents.inspectorDOMDebuggerAgent())
domDebuggerAgent->willSendXMLHttpRequest(url);
}
-void InspectorInstrumentation::didScheduleResourceRequestImpl(InstrumentingAgents* instrumentingAgents, const String& url, Frame* frame)
-{
- if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent())
- timelineAgent->didScheduleResourceRequest(url, frame);
-}
-
-void InspectorInstrumentation::didInstallTimerImpl(InstrumentingAgents* instrumentingAgents, int timerId, int timeout, bool singleShot, ScriptExecutionContext* context)
+void InspectorInstrumentation::didInstallTimerImpl(InstrumentingAgents& instrumentingAgents, int timerId, std::chrono::milliseconds timeout, bool singleShot, ScriptExecutionContext& context)
{
pauseOnNativeEventIfNeeded(instrumentingAgents, false, setTimerEventName, true);
- if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent())
+ didScheduleAsyncCall(instrumentingAgents, AsyncCallTypeTimer, timerId, context, singleShot);
+
+ if (InspectorTimelineAgent* timelineAgent = instrumentingAgents.inspectorTimelineAgent())
timelineAgent->didInstallTimer(timerId, timeout, singleShot, frameForScriptExecutionContext(context));
}
-void InspectorInstrumentation::didRemoveTimerImpl(InstrumentingAgents* instrumentingAgents, int timerId, ScriptExecutionContext* context)
+void InspectorInstrumentation::didRemoveTimerImpl(InstrumentingAgents& instrumentingAgents, int timerId, ScriptExecutionContext& context)
{
pauseOnNativeEventIfNeeded(instrumentingAgents, false, clearTimerEventName, true);
- if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent())
+
+ if (InspectorDebuggerAgent* debuggerAgent = instrumentingAgents.inspectorDebuggerAgent())
+ debuggerAgent->didCancelAsyncCall(AsyncCallTypeTimer, timerId);
+ if (InspectorTimelineAgent* timelineAgent = instrumentingAgents.inspectorTimelineAgent())
timelineAgent->didRemoveTimer(timerId, frameForScriptExecutionContext(context));
}
-InspectorInstrumentationCookie InspectorInstrumentation::willCallFunctionImpl(InstrumentingAgents* instrumentingAgents, const String& scriptName, int scriptLine, ScriptExecutionContext* context)
+InspectorInstrumentationCookie InspectorInstrumentation::willCallFunctionImpl(InstrumentingAgents& instrumentingAgents, const String& scriptName, int scriptLine, ScriptExecutionContext* context)
{
int timelineAgentId = 0;
- if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent()) {
+ if (InspectorTimelineAgent* timelineAgent = instrumentingAgents.inspectorTimelineAgent()) {
timelineAgent->willCallFunction(scriptName, scriptLine, frameForScriptExecutionContext(context));
timelineAgentId = timelineAgent->id();
}
return InspectorInstrumentationCookie(instrumentingAgents, timelineAgentId);
}
-void InspectorInstrumentation::didCallFunctionImpl(const InspectorInstrumentationCookie& cookie)
-{
- if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(cookie))
- timelineAgent->didCallFunction();
-}
-
-InspectorInstrumentationCookie InspectorInstrumentation::willDispatchXHRReadyStateChangeEventImpl(InstrumentingAgents* instrumentingAgents, XMLHttpRequest* request, ScriptExecutionContext* context)
-{
- int timelineAgentId = 0;
- InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent();
- if (timelineAgent && request->hasEventListeners(eventNames().readystatechangeEvent)) {
- timelineAgent->willDispatchXHRReadyStateChangeEvent(request->url().string(), request->readyState(), frameForScriptExecutionContext(context));
- timelineAgentId = timelineAgent->id();
- }
- return InspectorInstrumentationCookie(instrumentingAgents, timelineAgentId);
-}
-
-void InspectorInstrumentation::didDispatchXHRReadyStateChangeEventImpl(const InspectorInstrumentationCookie& cookie)
+void InspectorInstrumentation::didCallFunctionImpl(const InspectorInstrumentationCookie& cookie, ScriptExecutionContext* context)
{
if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(cookie))
- timelineAgent->didDispatchXHRReadyStateChangeEvent();
+ timelineAgent->didCallFunction(frameForScriptExecutionContext(context));
}
-InspectorInstrumentationCookie InspectorInstrumentation::willDispatchEventImpl(InstrumentingAgents* instrumentingAgents, const Event& event, bool hasEventListeners, Document* document)
+InspectorInstrumentationCookie InspectorInstrumentation::willDispatchEventImpl(InstrumentingAgents& instrumentingAgents, Document& document, const Event& event, bool hasEventListeners)
{
int timelineAgentId = 0;
- InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent();
+ InspectorTimelineAgent* timelineAgent = instrumentingAgents.inspectorTimelineAgent();
if (timelineAgent && hasEventListeners) {
- timelineAgent->willDispatchEvent(event, document->frame());
+ timelineAgent->willDispatchEvent(event, document.frame());
timelineAgentId = timelineAgent->id();
}
+#if ENABLE(WEB_REPLAY)
+ if (InspectorReplayAgent* replayAgent = instrumentingAgents.inspectorReplayAgent())
+ replayAgent->willDispatchEvent(event, document.frame());
+#endif
return InspectorInstrumentationCookie(instrumentingAgents, timelineAgentId);
}
-InspectorInstrumentationCookie InspectorInstrumentation::willHandleEventImpl(InstrumentingAgents* instrumentingAgents, Event* event)
-{
- pauseOnNativeEventIfNeeded(instrumentingAgents, true, event->type(), false);
- return InspectorInstrumentationCookie(instrumentingAgents, 0);
-}
-
-void InspectorInstrumentation::didHandleEventImpl(const InspectorInstrumentationCookie& cookie)
+void InspectorInstrumentation::willHandleEventImpl(InstrumentingAgents& instrumentingAgents, const Event& event)
{
- cancelPauseOnNativeEvent(cookie.instrumentingAgents());
+ pauseOnNativeEventIfNeeded(instrumentingAgents, true, event.type(), false);
}
void InspectorInstrumentation::didDispatchEventImpl(const InspectorInstrumentationCookie& cookie)
@@ -367,14 +397,18 @@ void InspectorInstrumentation::didDispatchEventImpl(const InspectorInstrumentati
timelineAgent->didDispatchEvent();
}
-InspectorInstrumentationCookie InspectorInstrumentation::willDispatchEventOnWindowImpl(InstrumentingAgents* instrumentingAgents, const Event& event, DOMWindow* window)
+InspectorInstrumentationCookie InspectorInstrumentation::willDispatchEventOnWindowImpl(InstrumentingAgents& instrumentingAgents, const Event& event, DOMWindow& window)
{
int timelineAgentId = 0;
- InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent();
- if (timelineAgent && window->hasEventListeners(event.type())) {
- timelineAgent->willDispatchEvent(event, window ? window->frame() : nullptr);
+ InspectorTimelineAgent* timelineAgent = instrumentingAgents.inspectorTimelineAgent();
+ if (timelineAgent && window.hasEventListeners(event.type())) {
+ timelineAgent->willDispatchEvent(event, window.frame());
timelineAgentId = timelineAgent->id();
}
+#if ENABLE(WEB_REPLAY)
+ if (InspectorReplayAgent* replayAgent = instrumentingAgents.inspectorReplayAgent())
+ replayAgent->willDispatchEvent(event, window.frame());
+#endif
return InspectorInstrumentationCookie(instrumentingAgents, timelineAgentId);
}
@@ -384,40 +418,31 @@ void InspectorInstrumentation::didDispatchEventOnWindowImpl(const InspectorInstr
timelineAgent->didDispatchEvent();
}
-InspectorInstrumentationCookie InspectorInstrumentation::willEvaluateScriptImpl(InstrumentingAgents* instrumentingAgents, const String& url, int lineNumber, Frame* frame)
+InspectorInstrumentationCookie InspectorInstrumentation::willEvaluateScriptImpl(InstrumentingAgents& instrumentingAgents, Frame& frame, const String& url, int lineNumber)
{
int timelineAgentId = 0;
- if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent()) {
+ if (InspectorTimelineAgent* timelineAgent = instrumentingAgents.inspectorTimelineAgent()) {
timelineAgent->willEvaluateScript(url, lineNumber, frame);
timelineAgentId = timelineAgent->id();
}
return InspectorInstrumentationCookie(instrumentingAgents, timelineAgentId);
}
-void InspectorInstrumentation::didEvaluateScriptImpl(const InspectorInstrumentationCookie& cookie)
+void InspectorInstrumentation::didEvaluateScriptImpl(const InspectorInstrumentationCookie& cookie, Frame& frame)
{
if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(cookie))
- timelineAgent->didEvaluateScript();
-}
-
-void InspectorInstrumentation::scriptsEnabledImpl(InstrumentingAgents* instrumentingAgents, bool isEnabled)
-{
- if (InspectorPageAgent* pageAgent = instrumentingAgents->inspectorPageAgent())
- pageAgent->scriptsEnabled(isEnabled);
+ timelineAgent->didEvaluateScript(frame);
}
-void InspectorInstrumentation::didCreateIsolatedContextImpl(InstrumentingAgents* instrumentingAgents, Frame* frame, JSC::ExecState* scriptState, SecurityOrigin* origin)
-{
- if (PageRuntimeAgent* runtimeAgent = instrumentingAgents->pageRuntimeAgent())
- runtimeAgent->didCreateIsolatedContext(frame, scriptState, origin);
-}
-
-InspectorInstrumentationCookie InspectorInstrumentation::willFireTimerImpl(InstrumentingAgents* instrumentingAgents, int timerId, ScriptExecutionContext* context)
+InspectorInstrumentationCookie InspectorInstrumentation::willFireTimerImpl(InstrumentingAgents& instrumentingAgents, int timerId, ScriptExecutionContext& context)
{
pauseOnNativeEventIfNeeded(instrumentingAgents, false, timerFiredEventName, false);
+ if (InspectorDebuggerAgent* debuggerAgent = instrumentingAgents.inspectorDebuggerAgent())
+ debuggerAgent->willDispatchAsyncCall(AsyncCallTypeTimer, timerId);
+
int timelineAgentId = 0;
- if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent()) {
+ if (InspectorTimelineAgent* timelineAgent = instrumentingAgents.inspectorTimelineAgent()) {
timelineAgent->willFireTimer(timerId, frameForScriptExecutionContext(context));
timelineAgentId = timelineAgent->id();
}
@@ -426,29 +451,29 @@ InspectorInstrumentationCookie InspectorInstrumentation::willFireTimerImpl(Instr
void InspectorInstrumentation::didFireTimerImpl(const InspectorInstrumentationCookie& cookie)
{
- cancelPauseOnNativeEvent(cookie.instrumentingAgents());
-
+ if (InspectorDebuggerAgent* debuggerAgent = cookie.instrumentingAgents()->inspectorDebuggerAgent())
+ debuggerAgent->didDispatchAsyncCall();
if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(cookie))
timelineAgent->didFireTimer();
}
-void InspectorInstrumentation::didInvalidateLayoutImpl(InstrumentingAgents* instrumentingAgents, Frame* frame)
+void InspectorInstrumentation::didInvalidateLayoutImpl(InstrumentingAgents& instrumentingAgents, Frame& frame)
{
- if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent())
+ if (InspectorTimelineAgent* timelineAgent = instrumentingAgents.inspectorTimelineAgent())
timelineAgent->didInvalidateLayout(frame);
}
-InspectorInstrumentationCookie InspectorInstrumentation::willLayoutImpl(InstrumentingAgents* instrumentingAgents, Frame* frame)
+InspectorInstrumentationCookie InspectorInstrumentation::willLayoutImpl(InstrumentingAgents& instrumentingAgents, Frame& frame)
{
int timelineAgentId = 0;
- if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent()) {
+ if (InspectorTimelineAgent* timelineAgent = instrumentingAgents.inspectorTimelineAgent()) {
timelineAgent->willLayout(frame);
timelineAgentId = timelineAgent->id();
}
return InspectorInstrumentationCookie(instrumentingAgents, timelineAgentId);
}
-void InspectorInstrumentation::didLayoutImpl(const InspectorInstrumentationCookie& cookie, RenderObject* root)
+void InspectorInstrumentation::didLayoutImpl(const InspectorInstrumentationCookie& cookie, RenderObject& root)
{
if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(cookie))
timelineAgent->didLayout(root);
@@ -457,353 +482,314 @@ void InspectorInstrumentation::didLayoutImpl(const InspectorInstrumentationCooki
pageAgent->didLayout();
}
-InspectorInstrumentationCookie InspectorInstrumentation::willDispatchXHRLoadEventImpl(InstrumentingAgents* instrumentingAgents, XMLHttpRequest* request, ScriptExecutionContext* context)
+void InspectorInstrumentation::willCompositeImpl(InstrumentingAgents& instrumentingAgents, Frame& frame)
{
- int timelineAgentId = 0;
- InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent();
- if (timelineAgent && request->hasEventListeners(eventNames().loadEvent)) {
- timelineAgent->willDispatchXHRLoadEvent(request->url(), frameForScriptExecutionContext(context));
- timelineAgentId = timelineAgent->id();
- }
- return InspectorInstrumentationCookie(instrumentingAgents, timelineAgentId);
+ if (InspectorTimelineAgent* timelineAgent = instrumentingAgents.inspectorTimelineAgent())
+ timelineAgent->willComposite(frame);
}
-void InspectorInstrumentation::didDispatchXHRLoadEventImpl(const InspectorInstrumentationCookie& cookie)
+void InspectorInstrumentation::didCompositeImpl(InstrumentingAgents& instrumentingAgents)
{
- if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(cookie))
- timelineAgent->didDispatchXHRLoadEvent();
+ if (InspectorTimelineAgent* timelineAgent = instrumentingAgents.inspectorTimelineAgent())
+ timelineAgent->didComposite();
}
-void InspectorInstrumentation::willPaintImpl(InstrumentingAgents* instrumentingAgents, RenderObject* renderer)
+void InspectorInstrumentation::willPaintImpl(InstrumentingAgents& instrumentingAgents, RenderObject& renderer)
{
- if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent())
- timelineAgent->willPaint(&renderer->frame());
+ if (InspectorTimelineAgent* timelineAgent = instrumentingAgents.inspectorTimelineAgent())
+ timelineAgent->willPaint(renderer.frame());
}
-void InspectorInstrumentation::didPaintImpl(InstrumentingAgents* instrumentingAgents, RenderObject* renderer, GraphicsContext* context, const LayoutRect& rect)
+void InspectorInstrumentation::didPaintImpl(InstrumentingAgents& instrumentingAgents, RenderObject& renderer, const LayoutRect& rect)
{
- if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent())
+ if (InspectorTimelineAgent* timelineAgent = instrumentingAgents.inspectorTimelineAgent())
timelineAgent->didPaint(renderer, rect);
- if (InspectorPageAgent* pageAgent = instrumentingAgents->inspectorPageAgent())
- pageAgent->didPaint(context, rect);
-}
-void InspectorInstrumentation::willScrollLayerImpl(InstrumentingAgents* instrumentingAgents, Frame* frame)
-{
- if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent())
- timelineAgent->willScroll(frame);
-}
-
-void InspectorInstrumentation::didScrollLayerImpl(InstrumentingAgents* instrumentingAgents)
-{
- if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent())
- timelineAgent->didScroll();
+ if (InspectorPageAgent* pageAgent = instrumentingAgents.inspectorPageAgent())
+ pageAgent->didPaint(renderer, rect);
}
-InspectorInstrumentationCookie InspectorInstrumentation::willRecalculateStyleImpl(InstrumentingAgents* instrumentingAgents, Frame* frame)
+InspectorInstrumentationCookie InspectorInstrumentation::willRecalculateStyleImpl(InstrumentingAgents& instrumentingAgents, Document& document)
{
int timelineAgentId = 0;
- if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent()) {
- timelineAgent->willRecalculateStyle(frame);
+ if (InspectorTimelineAgent* timelineAgent = instrumentingAgents.inspectorTimelineAgent()) {
+ timelineAgent->willRecalculateStyle(document.frame());
timelineAgentId = timelineAgent->id();
}
- if (InspectorResourceAgent* resourceAgent = instrumentingAgents->inspectorResourceAgent())
- resourceAgent->willRecalculateStyle();
+ if (InspectorNetworkAgent* networkAgent = instrumentingAgents.inspectorNetworkAgent())
+ networkAgent->willRecalculateStyle();
return InspectorInstrumentationCookie(instrumentingAgents, timelineAgentId);
}
void InspectorInstrumentation::didRecalculateStyleImpl(const InspectorInstrumentationCookie& cookie)
{
+ if (!cookie.isValid())
+ return;
+
+ InstrumentingAgents& instrumentingAgents = *cookie.instrumentingAgents();
+
if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(cookie))
timelineAgent->didRecalculateStyle();
- InstrumentingAgents* instrumentingAgents = cookie.instrumentingAgents();
- if (InspectorResourceAgent* resourceAgent = instrumentingAgents->inspectorResourceAgent())
- resourceAgent->didRecalculateStyle();
- if (InspectorPageAgent* pageAgent = instrumentingAgents->inspectorPageAgent())
+ if (InspectorNetworkAgent* networkAgent = instrumentingAgents.inspectorNetworkAgent())
+ networkAgent->didRecalculateStyle();
+ if (InspectorPageAgent* pageAgent = instrumentingAgents.inspectorPageAgent())
pageAgent->didRecalculateStyle();
}
-void InspectorInstrumentation::didScheduleStyleRecalculationImpl(InstrumentingAgents* instrumentingAgents, Document* document)
+void InspectorInstrumentation::didScheduleStyleRecalculationImpl(InstrumentingAgents& instrumentingAgents, Document& document)
{
- if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent())
- timelineAgent->didScheduleStyleRecalculation(document->frame());
- if (InspectorResourceAgent* resourceAgent = instrumentingAgents->inspectorResourceAgent())
- resourceAgent->didScheduleStyleRecalculation(document);
+ if (InspectorTimelineAgent* timelineAgent = instrumentingAgents.inspectorTimelineAgent())
+ timelineAgent->didScheduleStyleRecalculation(document.frame());
+ if (InspectorNetworkAgent* networkAgent = instrumentingAgents.inspectorNetworkAgent())
+ networkAgent->didScheduleStyleRecalculation(document);
}
-void InspectorInstrumentation::applyEmulatedMediaImpl(InstrumentingAgents* instrumentingAgents, String* media)
+void InspectorInstrumentation::applyEmulatedMediaImpl(InstrumentingAgents& instrumentingAgents, String& media)
{
- if (InspectorPageAgent* pageAgent = instrumentingAgents->inspectorPageAgent())
+ if (InspectorPageAgent* pageAgent = instrumentingAgents.inspectorPageAgent())
pageAgent->applyEmulatedMedia(media);
}
-void InspectorInstrumentation::willSendRequestImpl(InstrumentingAgents* instrumentingAgents, unsigned long identifier, DocumentLoader* loader, ResourceRequest& request, const ResourceResponse& redirectResponse)
+void InspectorInstrumentation::willSendRequestImpl(InstrumentingAgents& instrumentingAgents, unsigned long identifier, DocumentLoader* loader, ResourceRequest& request, const ResourceResponse& redirectResponse)
{
- if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent())
- timelineAgent->willSendResourceRequest(identifier, request, loader->frame());
- if (InspectorResourceAgent* resourceAgent = instrumentingAgents->inspectorResourceAgent())
- resourceAgent->willSendRequest(identifier, loader, request, redirectResponse);
+ if (!loader)
+ return;
+
+ if (InspectorNetworkAgent* networkAgent = instrumentingAgents.inspectorNetworkAgent())
+ networkAgent->willSendRequest(identifier, *loader, request, redirectResponse);
}
-void InspectorInstrumentation::continueAfterPingLoaderImpl(InstrumentingAgents* instrumentingAgents, unsigned long identifier, DocumentLoader* loader, ResourceRequest& request, const ResourceResponse& response)
+void InspectorInstrumentation::continueAfterPingLoaderImpl(InstrumentingAgents& instrumentingAgents, unsigned long identifier, DocumentLoader* loader, ResourceRequest& request, const ResourceResponse& response)
{
willSendRequestImpl(instrumentingAgents, identifier, loader, request, response);
}
-void InspectorInstrumentation::markResourceAsCachedImpl(InstrumentingAgents* instrumentingAgents, unsigned long identifier)
+void InspectorInstrumentation::markResourceAsCachedImpl(InstrumentingAgents& instrumentingAgents, unsigned long identifier)
{
- if (InspectorResourceAgent* resourceAgent = instrumentingAgents->inspectorResourceAgent())
- resourceAgent->markResourceAsCached(identifier);
+ if (InspectorNetworkAgent* networkAgent = instrumentingAgents.inspectorNetworkAgent())
+ networkAgent->markResourceAsCached(identifier);
}
-void InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl(InstrumentingAgents* instrumentingAgents, DocumentLoader* loader, CachedResource* cachedResource)
+void InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl(InstrumentingAgents& instrumentingAgents, DocumentLoader* loader, CachedResource* cachedResource)
{
- if (!instrumentingAgents->inspectorEnvironment().developerExtrasEnabled())
+ if (!instrumentingAgents.inspectorEnvironment().developerExtrasEnabled())
+ return;
+
+ if (!loader || !cachedResource)
return;
- if (InspectorResourceAgent* resourceAgent = instrumentingAgents->inspectorResourceAgent())
- resourceAgent->didLoadResourceFromMemoryCache(loader, cachedResource);
-}
-
-InspectorInstrumentationCookie InspectorInstrumentation::willReceiveResourceDataImpl(InstrumentingAgents* instrumentingAgents, unsigned long identifier, Frame* frame, int length)
-{
- int timelineAgentId = 0;
- if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent()) {
- timelineAgent->willReceiveResourceData(identifier, frame, length);
- timelineAgentId = timelineAgent->id();
- }
- return InspectorInstrumentationCookie(instrumentingAgents, timelineAgentId);
-}
-
-void InspectorInstrumentation::didReceiveResourceDataImpl(const InspectorInstrumentationCookie& cookie)
-{
- if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(cookie))
- timelineAgent->didReceiveResourceData();
-}
-InspectorInstrumentationCookie InspectorInstrumentation::willReceiveResourceResponseImpl(InstrumentingAgents* instrumentingAgents, unsigned long identifier, const ResourceResponse& response, Frame* frame)
-{
- int timelineAgentId = 0;
- InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent();
- if (timelineAgent) {
- timelineAgent->willReceiveResourceResponse(identifier, response, frame);
- timelineAgentId = timelineAgent->id();
- }
- return InspectorInstrumentationCookie(instrumentingAgents, timelineAgentId);
+ if (InspectorNetworkAgent* networkAgent = instrumentingAgents.inspectorNetworkAgent())
+ networkAgent->didLoadResourceFromMemoryCache(*loader, *cachedResource);
}
-void InspectorInstrumentation::didReceiveResourceResponseImpl(const InspectorInstrumentationCookie& cookie, unsigned long identifier, DocumentLoader* loader, const ResourceResponse& response, ResourceLoader* resourceLoader)
+void InspectorInstrumentation::didReceiveResourceResponseImpl(InstrumentingAgents& instrumentingAgents, unsigned long identifier, DocumentLoader* loader, const ResourceResponse& response, ResourceLoader* resourceLoader)
{
- if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(cookie))
- timelineAgent->didReceiveResourceResponse();
if (!loader)
return;
- InstrumentingAgents* instrumentingAgents = cookie.instrumentingAgents();
- if (InspectorResourceAgent* resourceAgent = instrumentingAgents->inspectorResourceAgent())
- resourceAgent->didReceiveResponse(identifier, loader, response, resourceLoader);
- if (InspectorConsoleAgent* consoleAgent = instrumentingAgents->inspectorConsoleAgent())
- consoleAgent->didReceiveResponse(identifier, response); // This should come AFTER resource notification, front-end relies on this.
-}
-void InspectorInstrumentation::didReceiveResourceResponseButCanceledImpl(Frame* frame, DocumentLoader* loader, unsigned long identifier, const ResourceResponse& r)
-{
- InspectorInstrumentationCookie cookie = InspectorInstrumentation::willReceiveResourceResponse(frame, identifier, r);
- InspectorInstrumentation::didReceiveResourceResponse(cookie, identifier, loader, r, nullptr);
+ if (InspectorNetworkAgent* networkAgent = instrumentingAgents.inspectorNetworkAgent())
+ networkAgent->didReceiveResponse(identifier, *loader, response, resourceLoader);
+ if (WebConsoleAgent* consoleAgent = instrumentingAgents.webConsoleAgent())
+ consoleAgent->didReceiveResponse(identifier, response); // This should come AFTER resource notification, front-end relies on this.
}
-void InspectorInstrumentation::continueAfterXFrameOptionsDeniedImpl(Frame* frame, DocumentLoader* loader, unsigned long identifier, const ResourceResponse& r)
+void InspectorInstrumentation::didReceiveThreadableLoaderResponseImpl(InstrumentingAgents& instrumentingAgents, DocumentThreadableLoader& documentThreadableLoader, unsigned long identifier)
{
- didReceiveResourceResponseButCanceledImpl(frame, loader, identifier, r);
+ if (InspectorNetworkAgent* networkAgent = instrumentingAgents.inspectorNetworkAgent())
+ networkAgent->didReceiveThreadableLoaderResponse(identifier, documentThreadableLoader);
}
-void InspectorInstrumentation::continueWithPolicyDownloadImpl(Frame* frame, DocumentLoader* loader, unsigned long identifier, const ResourceResponse& r)
+void InspectorInstrumentation::didReceiveDataImpl(InstrumentingAgents& instrumentingAgents, unsigned long identifier, const char* data, int dataLength, int encodedDataLength)
{
- didReceiveResourceResponseButCanceledImpl(frame, loader, identifier, r);
+ if (InspectorNetworkAgent* networkAgent = instrumentingAgents.inspectorNetworkAgent())
+ networkAgent->didReceiveData(identifier, data, dataLength, encodedDataLength);
}
-void InspectorInstrumentation::continueWithPolicyIgnoreImpl(Frame* frame, DocumentLoader* loader, unsigned long identifier, const ResourceResponse& r)
+void InspectorInstrumentation::didFinishLoadingImpl(InstrumentingAgents& instrumentingAgents, unsigned long identifier, DocumentLoader* loader, double finishTime)
{
- didReceiveResourceResponseButCanceledImpl(frame, loader, identifier, r);
-}
+ if (!loader)
+ return;
-void InspectorInstrumentation::didReceiveDataImpl(InstrumentingAgents* instrumentingAgents, unsigned long identifier, const char* data, int dataLength, int encodedDataLength)
-{
- if (InspectorResourceAgent* resourceAgent = instrumentingAgents->inspectorResourceAgent())
- resourceAgent->didReceiveData(identifier, data, dataLength, encodedDataLength);
+ if (InspectorNetworkAgent* networkAgent = instrumentingAgents.inspectorNetworkAgent())
+ networkAgent->didFinishLoading(identifier, *loader, finishTime);
}
-void InspectorInstrumentation::didFinishLoadingImpl(InstrumentingAgents* instrumentingAgents, unsigned long identifier, DocumentLoader* loader, double finishTime)
+void InspectorInstrumentation::didFailLoadingImpl(InstrumentingAgents& instrumentingAgents, unsigned long identifier, DocumentLoader* loader, const ResourceError& error)
{
- if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent())
- timelineAgent->didFinishLoadingResource(identifier, false, finishTime, loader->frame());
- if (InspectorResourceAgent* resourceAgent = instrumentingAgents->inspectorResourceAgent())
- resourceAgent->didFinishLoading(identifier, loader, finishTime);
-}
+ if (!loader)
+ return;
-void InspectorInstrumentation::didFailLoadingImpl(InstrumentingAgents* instrumentingAgents, unsigned long identifier, DocumentLoader* loader, const ResourceError& error)
-{
- if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent())
- timelineAgent->didFinishLoadingResource(identifier, true, 0, loader->frame());
- if (InspectorResourceAgent* resourceAgent = instrumentingAgents->inspectorResourceAgent())
- resourceAgent->didFailLoading(identifier, loader, error);
- if (InspectorConsoleAgent* consoleAgent = instrumentingAgents->inspectorConsoleAgent())
+ if (InspectorNetworkAgent* networkAgent = instrumentingAgents.inspectorNetworkAgent())
+ networkAgent->didFailLoading(identifier, *loader, error);
+ if (WebConsoleAgent* consoleAgent = instrumentingAgents.webConsoleAgent())
consoleAgent->didFailLoading(identifier, error); // This should come AFTER resource notification, front-end relies on this.
}
-void InspectorInstrumentation::documentThreadableLoaderStartedLoadingForClientImpl(InstrumentingAgents* instrumentingAgents, unsigned long identifier, ThreadableLoaderClient* client)
-{
- if (InspectorResourceAgent* resourceAgent = instrumentingAgents->inspectorResourceAgent())
- resourceAgent->documentThreadableLoaderStartedLoadingForClient(identifier, client);
-}
-
-void InspectorInstrumentation::willLoadXHRImpl(InstrumentingAgents* instrumentingAgents, ThreadableLoaderClient* client, const String& method, const URL& url, bool async, PassRefPtr<FormData> formData, const HTTPHeaderMap& headers, bool includeCredentials)
+void InspectorInstrumentation::didFinishXHRLoadingImpl(InstrumentingAgents& instrumentingAgents, unsigned long identifier, std::optional<String> decodedText, const String& url, const String& sendURL, unsigned sendLineNumber, unsigned sendColumnNumber)
{
- if (InspectorResourceAgent* resourceAgent = instrumentingAgents->inspectorResourceAgent())
- resourceAgent->willLoadXHR(client, method, url, async, formData, headers, includeCredentials);
-}
-
-void InspectorInstrumentation::didFailXHRLoadingImpl(InstrumentingAgents* instrumentingAgents, ThreadableLoaderClient* client)
-{
- if (InspectorResourceAgent* resourceAgent = instrumentingAgents->inspectorResourceAgent())
- resourceAgent->didFailXHRLoading(client);
-}
-
-void InspectorInstrumentation::didFinishXHRLoadingImpl(InstrumentingAgents* instrumentingAgents, ThreadableLoaderClient* client, unsigned long identifier, const String& sourceString, const String& url, const String& sendURL, unsigned sendLineNumber, unsigned sendColumnNumber)
-{
- if (InspectorConsoleAgent* consoleAgent = instrumentingAgents->inspectorConsoleAgent())
+ if (WebConsoleAgent* consoleAgent = instrumentingAgents.webConsoleAgent())
consoleAgent->didFinishXHRLoading(identifier, url, sendURL, sendLineNumber, sendColumnNumber);
- if (InspectorResourceAgent* resourceAgent = instrumentingAgents->inspectorResourceAgent())
- resourceAgent->didFinishXHRLoading(client, identifier, sourceString);
-}
-
-void InspectorInstrumentation::didReceiveXHRResponseImpl(InstrumentingAgents* instrumentingAgents, unsigned long identifier)
-{
- if (InspectorResourceAgent* resourceAgent = instrumentingAgents->inspectorResourceAgent())
- resourceAgent->didReceiveXHRResponse(identifier);
+ if (InspectorNetworkAgent* networkAgent = instrumentingAgents.inspectorNetworkAgent()) {
+ if (decodedText)
+ networkAgent->didFinishXHRLoading(identifier, *decodedText);
+ }
}
-void InspectorInstrumentation::willLoadXHRSynchronouslyImpl(InstrumentingAgents* instrumentingAgents)
+void InspectorInstrumentation::willLoadXHRSynchronouslyImpl(InstrumentingAgents& instrumentingAgents)
{
- if (InspectorResourceAgent* resourceAgent = instrumentingAgents->inspectorResourceAgent())
- resourceAgent->willLoadXHRSynchronously();
+ if (InspectorNetworkAgent* networkAgent = instrumentingAgents.inspectorNetworkAgent())
+ networkAgent->willLoadXHRSynchronously();
}
-void InspectorInstrumentation::didLoadXHRSynchronouslyImpl(InstrumentingAgents* instrumentingAgents)
+void InspectorInstrumentation::didLoadXHRSynchronouslyImpl(InstrumentingAgents& instrumentingAgents)
{
- if (InspectorResourceAgent* resourceAgent = instrumentingAgents->inspectorResourceAgent())
- resourceAgent->didLoadXHRSynchronously();
+ if (InspectorNetworkAgent* networkAgent = instrumentingAgents.inspectorNetworkAgent())
+ networkAgent->didLoadXHRSynchronously();
}
-void InspectorInstrumentation::scriptImportedImpl(InstrumentingAgents* instrumentingAgents, unsigned long identifier, const String& sourceString)
+void InspectorInstrumentation::scriptImportedImpl(InstrumentingAgents& instrumentingAgents, unsigned long identifier, const String& sourceString)
{
- if (InspectorResourceAgent* resourceAgent = instrumentingAgents->inspectorResourceAgent())
- resourceAgent->setInitialScriptContent(identifier, sourceString);
+ if (InspectorNetworkAgent* networkAgent = instrumentingAgents.inspectorNetworkAgent())
+ networkAgent->setInitialScriptContent(identifier, sourceString);
}
-void InspectorInstrumentation::scriptExecutionBlockedByCSPImpl(InstrumentingAgents* instrumentingAgents, const String& directiveText)
+void InspectorInstrumentation::scriptExecutionBlockedByCSPImpl(InstrumentingAgents& instrumentingAgents, const String& directiveText)
{
- if (InspectorDebuggerAgent* debuggerAgent = instrumentingAgents->inspectorDebuggerAgent())
+ if (InspectorDebuggerAgent* debuggerAgent = instrumentingAgents.inspectorDebuggerAgent())
debuggerAgent->scriptExecutionBlockedByCSP(directiveText);
}
-void InspectorInstrumentation::didReceiveScriptResponseImpl(InstrumentingAgents* instrumentingAgents, unsigned long identifier)
+void InspectorInstrumentation::didReceiveScriptResponseImpl(InstrumentingAgents& instrumentingAgents, unsigned long identifier)
{
- if (InspectorResourceAgent* resourceAgent = instrumentingAgents->inspectorResourceAgent())
- resourceAgent->didReceiveScriptResponse(identifier);
+ if (InspectorNetworkAgent* networkAgent = instrumentingAgents.inspectorNetworkAgent())
+ networkAgent->didReceiveScriptResponse(identifier);
}
-void InspectorInstrumentation::domContentLoadedEventFiredImpl(InstrumentingAgents* instrumentingAgents, Frame* frame)
+void InspectorInstrumentation::domContentLoadedEventFiredImpl(InstrumentingAgents& instrumentingAgents, Frame& frame)
{
- if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent())
- timelineAgent->didMarkDOMContentEvent(frame);
-
- if (&frame->page()->mainFrame() != frame)
+ if (!frame.isMainFrame())
return;
- if (InspectorDOMAgent* domAgent = instrumentingAgents->inspectorDOMAgent())
+ if (InspectorDOMAgent* domAgent = instrumentingAgents.inspectorDOMAgent())
domAgent->mainFrameDOMContentLoaded();
- if (InspectorPageAgent* pageAgent = instrumentingAgents->inspectorPageAgent())
+ if (InspectorPageAgent* pageAgent = instrumentingAgents.inspectorPageAgent())
pageAgent->domContentEventFired();
}
-void InspectorInstrumentation::loadEventFiredImpl(InstrumentingAgents* instrumentingAgents, Frame* frame)
+void InspectorInstrumentation::loadEventFiredImpl(InstrumentingAgents& instrumentingAgents, Frame* frame)
{
- if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent())
- timelineAgent->didMarkLoadEvent(frame);
-
- if (&frame->page()->mainFrame() != frame)
+ if (!frame || !frame->isMainFrame())
return;
- if (InspectorPageAgent* pageAgent = instrumentingAgents->inspectorPageAgent())
+ if (InspectorPageAgent* pageAgent = instrumentingAgents.inspectorPageAgent())
pageAgent->loadEventFired();
}
-void InspectorInstrumentation::frameDetachedFromParentImpl(InstrumentingAgents* instrumentingAgents, Frame* frame)
+void InspectorInstrumentation::frameDetachedFromParentImpl(InstrumentingAgents& instrumentingAgents, Frame& frame)
{
- if (InspectorCanvasAgent* canvasAgent = instrumentingAgents->inspectorCanvasAgent())
- canvasAgent->frameDetached(frame);
- if (InspectorPageAgent* pageAgent = instrumentingAgents->inspectorPageAgent())
+ if (InspectorPageAgent* pageAgent = instrumentingAgents.inspectorPageAgent())
pageAgent->frameDetached(frame);
+
+#if ENABLE(WEB_REPLAY)
+ if (!frame.isMainFrame())
+ return;
+
+ if (InspectorReplayAgent* replayAgent = instrumentingAgents.inspectorReplayAgent())
+ replayAgent->frameDetached(frame);
+#endif
}
-void InspectorInstrumentation::didCommitLoadImpl(InstrumentingAgents* instrumentingAgents, Page* page, DocumentLoader* loader)
+void InspectorInstrumentation::didCommitLoadImpl(InstrumentingAgents& instrumentingAgents, Frame& frame, DocumentLoader* loader)
{
- if (!instrumentingAgents->inspectorEnvironment().developerExtrasEnabled())
+ if (!instrumentingAgents.inspectorEnvironment().developerExtrasEnabled())
+ return;
+
+ if (!frame.page())
+ return;
+
+ if (!loader)
return;
- if (loader->frame()->isMainFrame()) {
- if (InspectorConsoleAgent* consoleAgent = instrumentingAgents->inspectorConsoleAgent())
+ ASSERT(loader->frame() == &frame);
+
+ if (frame.isMainFrame()) {
+ if (WebConsoleAgent* consoleAgent = instrumentingAgents.webConsoleAgent())
consoleAgent->reset();
- if (InspectorResourceAgent* resourceAgent = instrumentingAgents->inspectorResourceAgent())
- resourceAgent->mainFrameNavigated(loader);
- if (InspectorProfilerAgent* profilerAgent = instrumentingAgents->inspectorProfilerAgent())
- profilerAgent->resetState();
- if (InspectorHeapProfilerAgent* heapProfilerAgent = instrumentingAgents->inspectorHeapProfilerAgent())
- heapProfilerAgent->resetState();
- if (InspectorCSSAgent* cssAgent = instrumentingAgents->inspectorCSSAgent())
+ if (InspectorNetworkAgent* networkAgent = instrumentingAgents.inspectorNetworkAgent())
+ networkAgent->mainFrameNavigated(*loader);
+
+ if (InspectorCSSAgent* cssAgent = instrumentingAgents.inspectorCSSAgent())
cssAgent->reset();
-#if ENABLE(SQL_DATABASE)
- if (InspectorDatabaseAgent* databaseAgent = instrumentingAgents->inspectorDatabaseAgent())
+
+ if (InspectorDatabaseAgent* databaseAgent = instrumentingAgents.inspectorDatabaseAgent())
databaseAgent->clearResources();
-#endif
- if (InspectorDOMAgent* domAgent = instrumentingAgents->inspectorDOMAgent())
- domAgent->setDocument(page->mainFrame().document());
-#if USE(ACCELERATED_COMPOSITING)
- if (InspectorLayerTreeAgent* layerTreeAgent = instrumentingAgents->inspectorLayerTreeAgent())
+
+ if (InspectorDOMAgent* domAgent = instrumentingAgents.inspectorDOMAgent())
+ domAgent->setDocument(frame.document());
+
+ if (InspectorLayerTreeAgent* layerTreeAgent = instrumentingAgents.inspectorLayerTreeAgent())
layerTreeAgent->reset();
-#endif
+
+ if (PageDebuggerAgent* pageDebuggerAgent = instrumentingAgents.pageDebuggerAgent())
+ pageDebuggerAgent->mainFrameNavigated();
+
+ if (PageHeapAgent* pageHeapAgent = instrumentingAgents.pageHeapAgent())
+ pageHeapAgent->mainFrameNavigated();
}
- if (InspectorDOMAgent* domAgent = instrumentingAgents->inspectorDOMAgent())
- domAgent->didCommitLoad(loader->frame()->document());
- if (InspectorCanvasAgent* canvasAgent = instrumentingAgents->inspectorCanvasAgent())
- canvasAgent->frameNavigated(loader->frame());
- if (InspectorPageAgent* pageAgent = instrumentingAgents->inspectorPageAgent())
- pageAgent->frameNavigated(loader);
+
+ if (InspectorDOMAgent* domAgent = instrumentingAgents.inspectorDOMAgent())
+ domAgent->didCommitLoad(frame.document());
+
+ if (InspectorPageAgent* pageAgent = instrumentingAgents.inspectorPageAgent())
+ pageAgent->frameNavigated(frame);
+
+ if (frame.isMainFrame()) {
+ if (InspectorTimelineAgent* timelineAgent = instrumentingAgents.inspectorTimelineAgent())
+ timelineAgent->mainFrameNavigated();
+ }
+
+#if ENABLE(WEB_REPLAY)
+ if (InspectorReplayAgent* replayAgent = instrumentingAgents.inspectorReplayAgent())
+ replayAgent->frameNavigated(frame);
+#endif
}
-void InspectorInstrumentation::frameDocumentUpdatedImpl(InstrumentingAgents* instrumentingAgents, Frame* frame)
+void InspectorInstrumentation::frameDocumentUpdatedImpl(InstrumentingAgents& instrumentingAgents, Frame& frame)
{
- if (!instrumentingAgents->inspectorEnvironment().developerExtrasEnabled())
+ if (!instrumentingAgents.inspectorEnvironment().developerExtrasEnabled())
return;
- if (InspectorDOMAgent* domAgent = instrumentingAgents->inspectorDOMAgent())
+ if (InspectorDOMAgent* domAgent = instrumentingAgents.inspectorDOMAgent())
domAgent->frameDocumentUpdated(frame);
}
-void InspectorInstrumentation::loaderDetachedFromFrameImpl(InstrumentingAgents* instrumentingAgents, DocumentLoader* loader)
+void InspectorInstrumentation::loaderDetachedFromFrameImpl(InstrumentingAgents& instrumentingAgents, DocumentLoader& loader)
{
- if (InspectorPageAgent* inspectorPageAgent = instrumentingAgents->inspectorPageAgent())
+ if (InspectorPageAgent* inspectorPageAgent = instrumentingAgents.inspectorPageAgent())
inspectorPageAgent->loaderDetachedFromFrame(loader);
}
void InspectorInstrumentation::frameStartedLoadingImpl(InstrumentingAgents& instrumentingAgents, Frame& frame)
{
+ if (frame.isMainFrame()) {
+ if (PageDebuggerAgent* pageDebuggerAgent = instrumentingAgents.pageDebuggerAgent())
+ pageDebuggerAgent->mainFrameStartedLoading();
+ if (InspectorTimelineAgent* timelineAgent = instrumentingAgents.persistentInspectorTimelineAgent())
+ timelineAgent->mainFrameStartedLoading();
+ }
+
if (InspectorPageAgent* inspectorPageAgent = instrumentingAgents.inspectorPageAgent())
inspectorPageAgent->frameStartedLoading(frame);
}
void InspectorInstrumentation::frameStoppedLoadingImpl(InstrumentingAgents& instrumentingAgents, Frame& frame)
{
+ if (frame.isMainFrame()) {
+ if (PageDebuggerAgent* pageDebuggerAgent = instrumentingAgents.pageDebuggerAgent())
+ pageDebuggerAgent->mainFrameStoppedLoading();
+ }
+
if (InspectorPageAgent* inspectorPageAgent = instrumentingAgents.inspectorPageAgent())
inspectorPageAgent->frameStoppedLoading(frame);
}
@@ -820,261 +806,283 @@ void InspectorInstrumentation::frameClearedScheduledNavigationImpl(Instrumenting
inspectorPageAgent->frameClearedScheduledNavigation(frame);
}
-InspectorInstrumentationCookie InspectorInstrumentation::willRunJavaScriptDialogImpl(InstrumentingAgents* instrumentingAgents, const String& message)
-{
- if (InspectorPageAgent* inspectorPageAgent = instrumentingAgents->inspectorPageAgent())
- inspectorPageAgent->willRunJavaScriptDialog(message);
- return InspectorInstrumentationCookie(instrumentingAgents, 0);
-}
-
-void InspectorInstrumentation::didRunJavaScriptDialogImpl(const InspectorInstrumentationCookie& cookie)
-{
- if (InspectorPageAgent* inspectorPageAgent = cookie.instrumentingAgents()->inspectorPageAgent())
- inspectorPageAgent->didRunJavaScriptDialog();
-}
-
-void InspectorInstrumentation::willDestroyCachedResourceImpl(CachedResource* cachedResource)
+void InspectorInstrumentation::willDestroyCachedResourceImpl(CachedResource& cachedResource)
{
- if (!instrumentingAgentsSet)
+ if (!s_instrumentingAgentsSet)
return;
- HashSet<InstrumentingAgents*>::iterator end = instrumentingAgentsSet->end();
- for (HashSet<InstrumentingAgents*>::iterator it = instrumentingAgentsSet->begin(); it != end; ++it) {
- InstrumentingAgents* instrumentingAgents = *it;
- if (InspectorResourceAgent* inspectorResourceAgent = instrumentingAgents->inspectorResourceAgent())
- inspectorResourceAgent->willDestroyCachedResource(cachedResource);
- }
-}
-InspectorInstrumentationCookie InspectorInstrumentation::willWriteHTMLImpl(InstrumentingAgents* instrumentingAgents, unsigned startLine, Frame* frame)
-{
- int timelineAgentId = 0;
- if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent()) {
- timelineAgent->willWriteHTML(startLine, frame);
- timelineAgentId = timelineAgent->id();
+ for (auto* instrumentingAgent : *s_instrumentingAgentsSet) {
+ if (InspectorNetworkAgent* inspectorNetworkAgent = instrumentingAgent->inspectorNetworkAgent())
+ inspectorNetworkAgent->willDestroyCachedResource(cachedResource);
}
- return InspectorInstrumentationCookie(instrumentingAgents, timelineAgentId);
-}
-
-void InspectorInstrumentation::didWriteHTMLImpl(const InspectorInstrumentationCookie& cookie, unsigned endLine)
-{
- if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(cookie))
- timelineAgent->didWriteHTML(endLine);
}
// JavaScriptCore InspectorDebuggerAgent should know Console MessageTypes.
static bool isConsoleAssertMessage(MessageSource source, MessageType type)
{
- return source == ConsoleAPIMessageSource && type == AssertMessageType;
+ return source == MessageSource::ConsoleAPI && type == MessageType::Assert;
}
-// FIXME: Drop this once we no longer generate stacks outside of Inspector.
-void InspectorInstrumentation::addMessageToConsoleImpl(InstrumentingAgents* instrumentingAgents, MessageSource source, MessageType type, MessageLevel level, const String& message, PassRefPtr<ScriptCallStack> callStack, unsigned long requestIdentifier)
+void InspectorInstrumentation::addMessageToConsoleImpl(InstrumentingAgents& instrumentingAgents, std::unique_ptr<ConsoleMessage> message)
{
- if (InspectorConsoleAgent* consoleAgent = instrumentingAgents->inspectorConsoleAgent())
- consoleAgent->addMessageToConsole(source, type, level, message, callStack, requestIdentifier);
+ MessageSource source = message->source();
+ MessageType type = message->type();
+ String messageText = message->message();
+
+ if (WebConsoleAgent* consoleAgent = instrumentingAgents.webConsoleAgent())
+ consoleAgent->addMessageToConsole(WTFMove(message));
// FIXME: This should just pass the message on to the debugger agent. JavaScriptCore InspectorDebuggerAgent should know Console MessageTypes.
- if (InspectorDebuggerAgent* debuggerAgent = instrumentingAgents->inspectorDebuggerAgent()) {
+ if (InspectorDebuggerAgent* debuggerAgent = instrumentingAgents.inspectorDebuggerAgent()) {
if (isConsoleAssertMessage(source, type))
- debuggerAgent->handleConsoleAssert();
+ debuggerAgent->handleConsoleAssert(messageText);
}
}
-void InspectorInstrumentation::addMessageToConsoleImpl(InstrumentingAgents* instrumentingAgents, MessageSource source, MessageType type, MessageLevel level, const String& message, JSC::ExecState* state, PassRefPtr<ScriptArguments> arguments, unsigned long requestIdentifier)
+void InspectorInstrumentation::consoleCountImpl(InstrumentingAgents& instrumentingAgents, JSC::ExecState* state, Ref<ScriptArguments>&& arguments)
{
- if (InspectorConsoleAgent* consoleAgent = instrumentingAgents->inspectorConsoleAgent())
- consoleAgent->addMessageToConsole(source, type, level, message, state, arguments, requestIdentifier);
- // FIXME: This should just pass the message on to the debugger agent. JavaScriptCore InspectorDebuggerAgent should know Console MessageTypes.
- if (InspectorDebuggerAgent* debuggerAgent = instrumentingAgents->inspectorDebuggerAgent()) {
- if (isConsoleAssertMessage(source, type))
- debuggerAgent->handleConsoleAssert();
- }
+ if (WebConsoleAgent* consoleAgent = instrumentingAgents.webConsoleAgent())
+ consoleAgent->count(state, WTFMove(arguments));
}
-void InspectorInstrumentation::addMessageToConsoleImpl(InstrumentingAgents* instrumentingAgents, MessageSource source, MessageType type, MessageLevel level, const String& message, const String& scriptID, unsigned lineNumber, unsigned columnNumber, JSC::ExecState* state, unsigned long requestIdentifier)
+void InspectorInstrumentation::takeHeapSnapshotImpl(InstrumentingAgents& instrumentingAgents, const String& title)
{
- if (InspectorConsoleAgent* consoleAgent = instrumentingAgents->inspectorConsoleAgent())
- consoleAgent->addMessageToConsole(source, type, level, message, scriptID, lineNumber, columnNumber, state, requestIdentifier);
+ if (WebConsoleAgent* consoleAgent = instrumentingAgents.webConsoleAgent())
+ consoleAgent->takeHeapSnapshot(title);
}
-void InspectorInstrumentation::consoleCountImpl(InstrumentingAgents* instrumentingAgents, JSC::ExecState* state, PassRefPtr<ScriptArguments> arguments)
+void InspectorInstrumentation::startConsoleTimingImpl(InstrumentingAgents& instrumentingAgents, Frame& frame, const String& title)
{
- if (InspectorConsoleAgent* consoleAgent = instrumentingAgents->inspectorConsoleAgent())
- consoleAgent->count(state, arguments);
+ if (InspectorTimelineAgent* timelineAgent = instrumentingAgents.inspectorTimelineAgent())
+ timelineAgent->time(frame, title);
+ if (WebConsoleAgent* consoleAgent = instrumentingAgents.webConsoleAgent())
+ consoleAgent->startTiming(title);
}
-void InspectorInstrumentation::startConsoleTimingImpl(InstrumentingAgents* instrumentingAgents, Frame* frame, const String& title)
+void InspectorInstrumentation::startConsoleTimingImpl(InstrumentingAgents& instrumentingAgents, const String& title)
{
- if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent())
- timelineAgent->time(frame, title);
- if (InspectorConsoleAgent* consoleAgent = instrumentingAgents->inspectorConsoleAgent())
+ if (WebConsoleAgent* consoleAgent = instrumentingAgents.webConsoleAgent())
consoleAgent->startTiming(title);
}
-void InspectorInstrumentation::stopConsoleTimingImpl(InstrumentingAgents* instrumentingAgents, Frame* frame, const String& title, PassRefPtr<ScriptCallStack> stack)
+void InspectorInstrumentation::stopConsoleTimingImpl(InstrumentingAgents& instrumentingAgents, Frame& frame, const String& title, Ref<ScriptCallStack>&& stack)
{
- if (InspectorConsoleAgent* consoleAgent = instrumentingAgents->inspectorConsoleAgent())
- consoleAgent->stopTiming(title, stack);
- if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent())
+ if (WebConsoleAgent* consoleAgent = instrumentingAgents.webConsoleAgent())
+ consoleAgent->stopTiming(title, WTFMove(stack));
+ if (InspectorTimelineAgent* timelineAgent = instrumentingAgents.inspectorTimelineAgent())
timelineAgent->timeEnd(frame, title);
}
-void InspectorInstrumentation::consoleTimeStampImpl(InstrumentingAgents* instrumentingAgents, Frame* frame, PassRefPtr<ScriptArguments> arguments)
+void InspectorInstrumentation::stopConsoleTimingImpl(InstrumentingAgents& instrumentingAgents, const String& title, Ref<ScriptCallStack>&& stack)
+{
+ if (WebConsoleAgent* consoleAgent = instrumentingAgents.webConsoleAgent())
+ consoleAgent->stopTiming(title, WTFMove(stack));
+}
+
+void InspectorInstrumentation::consoleTimeStampImpl(InstrumentingAgents& instrumentingAgents, Frame& frame, Ref<ScriptArguments>&& arguments)
{
- if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent()) {
+ if (InspectorTimelineAgent* timelineAgent = instrumentingAgents.inspectorTimelineAgent()) {
String message;
arguments->getFirstArgumentAsString(message);
timelineAgent->didTimeStamp(frame, message);
}
}
-void InspectorInstrumentation::addStartProfilingMessageToConsoleImpl(InstrumentingAgents* instrumentingAgents, const String& title, unsigned lineNumber, unsigned columnNumber, const String& sourceURL)
+void InspectorInstrumentation::startProfilingImpl(InstrumentingAgents& instrumentingAgents, JSC::ExecState* exec, const String& title)
{
- if (InspectorProfilerAgent* profilerAgent = instrumentingAgents->inspectorProfilerAgent())
- profilerAgent->addStartProfilingMessageToConsole(title, lineNumber, columnNumber, sourceURL);
+ if (InspectorTimelineAgent* timelineAgent = instrumentingAgents.persistentInspectorTimelineAgent())
+ timelineAgent->startFromConsole(exec, title);
}
-void InspectorInstrumentation::addProfileImpl(InstrumentingAgents* instrumentingAgents, RefPtr<ScriptProfile> profile, PassRefPtr<ScriptCallStack> callStack)
+void InspectorInstrumentation::stopProfilingImpl(InstrumentingAgents& instrumentingAgents, JSC::ExecState* exec, const String& title)
{
- if (InspectorProfilerAgent* profilerAgent = instrumentingAgents->inspectorProfilerAgent()) {
- const ScriptCallFrame& lastCaller = callStack->at(0);
- profilerAgent->addProfile(profile, lastCaller.lineNumber(), lastCaller.columnNumber(), lastCaller.sourceURL());
- }
+ if (InspectorTimelineAgent* timelineAgent = instrumentingAgents.persistentInspectorTimelineAgent())
+ timelineAgent->stopFromConsole(exec, title);
}
-String InspectorInstrumentation::getCurrentUserInitiatedProfileNameImpl(InstrumentingAgents* instrumentingAgents, bool incrementProfileNumber)
+void InspectorInstrumentation::didOpenDatabaseImpl(InstrumentingAgents& instrumentingAgents, RefPtr<Database>&& database, const String& domain, const String& name, const String& version)
{
- if (InspectorProfilerAgent* profilerAgent = instrumentingAgents->inspectorProfilerAgent())
- return profilerAgent->getCurrentUserInitiatedProfileName(incrementProfileNumber);
- return "";
+ if (!instrumentingAgents.inspectorEnvironment().developerExtrasEnabled())
+ return;
+ if (InspectorDatabaseAgent* dbAgent = instrumentingAgents.inspectorDatabaseAgent())
+ dbAgent->didOpenDatabase(WTFMove(database), domain, name, version);
}
-bool InspectorInstrumentation::profilerEnabledImpl(InstrumentingAgents* instrumentingAgents)
+void InspectorInstrumentation::didDispatchDOMStorageEventImpl(InstrumentingAgents& instrumentingAgents, const String& key, const String& oldValue, const String& newValue, StorageType storageType, SecurityOrigin* securityOrigin)
{
- if (InspectorProfilerAgent* profilerAgent = instrumentingAgents->inspectorProfilerAgent())
- return profilerAgent->enabled();
+ if (InspectorDOMStorageAgent* domStorageAgent = instrumentingAgents.inspectorDOMStorageAgent())
+ domStorageAgent->didDispatchDOMStorageEvent(key, oldValue, newValue, storageType, securityOrigin);
+}
+
+bool InspectorInstrumentation::shouldWaitForDebuggerOnStartImpl(InstrumentingAgents& instrumentingAgents)
+{
+ if (InspectorWorkerAgent* workerAgent = instrumentingAgents.inspectorWorkerAgent())
+ return workerAgent->shouldWaitForDebuggerOnStart();
return false;
}
-#if ENABLE(SQL_DATABASE)
-void InspectorInstrumentation::didOpenDatabaseImpl(InstrumentingAgents* instrumentingAgents, PassRefPtr<Database> database, const String& domain, const String& name, const String& version)
+void InspectorInstrumentation::workerStartedImpl(InstrumentingAgents& instrumentingAgents, WorkerInspectorProxy* proxy, const URL& url)
+{
+ if (InspectorWorkerAgent* workerAgent = instrumentingAgents.inspectorWorkerAgent())
+ workerAgent->workerStarted(proxy, url);
+}
+
+void InspectorInstrumentation::workerTerminatedImpl(InstrumentingAgents& instrumentingAgents, WorkerInspectorProxy* proxy)
+{
+ if (InspectorWorkerAgent* workerAgent = instrumentingAgents.inspectorWorkerAgent())
+ workerAgent->workerTerminated(proxy);
+}
+
+#if ENABLE(WEB_SOCKETS)
+void InspectorInstrumentation::didCreateWebSocketImpl(InstrumentingAgents& instrumentingAgents, unsigned long identifier, const URL& requestURL)
{
- if (!instrumentingAgents->inspectorEnvironment().developerExtrasEnabled())
+ if (!instrumentingAgents.inspectorEnvironment().developerExtrasEnabled())
return;
- if (InspectorDatabaseAgent* dbAgent = instrumentingAgents->inspectorDatabaseAgent())
- dbAgent->didOpenDatabase(database, domain, name, version);
+
+ if (InspectorNetworkAgent* networkAgent = instrumentingAgents.inspectorNetworkAgent())
+ networkAgent->didCreateWebSocket(identifier, requestURL);
+}
+
+void InspectorInstrumentation::willSendWebSocketHandshakeRequestImpl(InstrumentingAgents& instrumentingAgents, unsigned long identifier, const ResourceRequest& request)
+{
+ if (InspectorNetworkAgent* networkAgent = instrumentingAgents.inspectorNetworkAgent())
+ networkAgent->willSendWebSocketHandshakeRequest(identifier, request);
+}
+
+void InspectorInstrumentation::didReceiveWebSocketHandshakeResponseImpl(InstrumentingAgents& instrumentingAgents, unsigned long identifier, const ResourceResponse& response)
+{
+ if (InspectorNetworkAgent* networkAgent = instrumentingAgents.inspectorNetworkAgent())
+ networkAgent->didReceiveWebSocketHandshakeResponse(identifier, response);
+}
+
+void InspectorInstrumentation::didCloseWebSocketImpl(InstrumentingAgents& instrumentingAgents, unsigned long identifier)
+{
+ if (InspectorNetworkAgent* networkAgent = instrumentingAgents.inspectorNetworkAgent())
+ networkAgent->didCloseWebSocket(identifier);
+}
+
+void InspectorInstrumentation::didReceiveWebSocketFrameImpl(InstrumentingAgents& instrumentingAgents, unsigned long identifier, const WebSocketFrame& frame)
+{
+ if (InspectorNetworkAgent* networkAgent = instrumentingAgents.inspectorNetworkAgent())
+ networkAgent->didReceiveWebSocketFrame(identifier, frame);
+}
+
+void InspectorInstrumentation::didReceiveWebSocketFrameErrorImpl(InstrumentingAgents& instrumentingAgents, unsigned long identifier, const String& errorMessage)
+{
+ if (InspectorNetworkAgent* networkAgent = instrumentingAgents.inspectorNetworkAgent())
+ networkAgent->didReceiveWebSocketFrameError(identifier, errorMessage);
+}
+
+void InspectorInstrumentation::didSendWebSocketFrameImpl(InstrumentingAgents& instrumentingAgents, unsigned long identifier, const WebSocketFrame& frame)
+{
+ if (InspectorNetworkAgent* networkAgent = instrumentingAgents.inspectorNetworkAgent())
+ networkAgent->didSendWebSocketFrame(identifier, frame);
}
#endif
-void InspectorInstrumentation::didDispatchDOMStorageEventImpl(InstrumentingAgents* instrumentingAgents, const String& key, const String& oldValue, const String& newValue, StorageType storageType, SecurityOrigin* securityOrigin, Page* page)
+#if ENABLE(WEB_REPLAY)
+void InspectorInstrumentation::sessionCreatedImpl(InstrumentingAgents& instrumentingAgents, RefPtr<ReplaySession>&& session)
{
- if (InspectorDOMStorageAgent* domStorageAgent = instrumentingAgents->inspectorDOMStorageAgent())
- domStorageAgent->didDispatchDOMStorageEvent(key, oldValue, newValue, storageType, securityOrigin, page);
+ if (InspectorReplayAgent* replayAgent = instrumentingAgents.inspectorReplayAgent())
+ replayAgent->sessionCreated(WTFMove(session));
}
-bool InspectorInstrumentation::shouldPauseDedicatedWorkerOnStartImpl(InstrumentingAgents* instrumentingAgents)
+void InspectorInstrumentation::sessionLoadedImpl(InstrumentingAgents& instrumentingAgents, RefPtr<ReplaySession>&& session)
{
- if (InspectorWorkerAgent* workerAgent = instrumentingAgents->inspectorWorkerAgent())
- return workerAgent->shouldPauseDedicatedWorkerOnStart();
- return false;
+ if (InspectorReplayAgent* replayAgent = instrumentingAgents.inspectorReplayAgent())
+ replayAgent->sessionLoaded(WTFMove(session));
}
-void InspectorInstrumentation::didStartWorkerGlobalScopeImpl(InstrumentingAgents* instrumentingAgents, WorkerGlobalScopeProxy* workerGlobalScopeProxy, const URL& url)
+void InspectorInstrumentation::sessionModifiedImpl(InstrumentingAgents& instrumentingAgents, RefPtr<ReplaySession>&& session)
{
- if (InspectorWorkerAgent* workerAgent = instrumentingAgents->inspectorWorkerAgent())
- workerAgent->didStartWorkerGlobalScope(workerGlobalScopeProxy, url);
+ if (InspectorReplayAgent* replayAgent = instrumentingAgents.inspectorReplayAgent())
+ replayAgent->sessionModified(WTFMove(session));
}
-void InspectorInstrumentation::willEvaluateWorkerScript(WorkerGlobalScope* workerGlobalScope, int workerThreadStartMode)
+void InspectorInstrumentation::segmentCreatedImpl(InstrumentingAgents& instrumentingAgents, RefPtr<ReplaySessionSegment>&& segment)
{
- if (workerThreadStartMode != PauseWorkerGlobalScopeOnStart)
- return;
- InstrumentingAgents* instrumentingAgents = instrumentationForWorkerGlobalScope(workerGlobalScope);
- if (!instrumentingAgents)
- return;
- if (WorkerRuntimeAgent* runtimeAgent = instrumentingAgents->workerRuntimeAgent())
- runtimeAgent->pauseWorkerGlobalScope(workerGlobalScope);
+ if (InspectorReplayAgent* replayAgent = instrumentingAgents.inspectorReplayAgent())
+ replayAgent->segmentCreated(WTFMove(segment));
}
-void InspectorInstrumentation::workerGlobalScopeTerminatedImpl(InstrumentingAgents* instrumentingAgents, WorkerGlobalScopeProxy* proxy)
+void InspectorInstrumentation::segmentCompletedImpl(InstrumentingAgents& instrumentingAgents, RefPtr<ReplaySessionSegment>&& segment)
{
- if (InspectorWorkerAgent* workerAgent = instrumentingAgents->inspectorWorkerAgent())
- workerAgent->workerGlobalScopeTerminated(proxy);
+ if (InspectorReplayAgent* replayAgent = instrumentingAgents.inspectorReplayAgent())
+ replayAgent->segmentCompleted(WTFMove(segment));
}
-#if ENABLE(WEB_SOCKETS)
-void InspectorInstrumentation::didCreateWebSocketImpl(InstrumentingAgents* instrumentingAgents, unsigned long identifier, const URL& requestURL, const URL&, const String& protocol, Document* document)
+void InspectorInstrumentation::segmentLoadedImpl(InstrumentingAgents& instrumentingAgents, RefPtr<ReplaySessionSegment>&& segment)
{
- if (!instrumentingAgents->inspectorEnvironment().developerExtrasEnabled())
- return;
- if (InspectorResourceAgent* resourceAgent = instrumentingAgents->inspectorResourceAgent())
- resourceAgent->didCreateWebSocket(identifier, requestURL);
- if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent())
- timelineAgent->didCreateWebSocket(identifier, requestURL, protocol, document->frame());
+ if (InspectorReplayAgent* replayAgent = instrumentingAgents.inspectorReplayAgent())
+ replayAgent->segmentLoaded(WTFMove(segment));
}
-void InspectorInstrumentation::willSendWebSocketHandshakeRequestImpl(InstrumentingAgents* instrumentingAgents, unsigned long identifier, const ResourceRequest& request, Document* document)
+void InspectorInstrumentation::segmentUnloadedImpl(InstrumentingAgents& instrumentingAgents)
{
- if (InspectorResourceAgent* resourceAgent = instrumentingAgents->inspectorResourceAgent())
- resourceAgent->willSendWebSocketHandshakeRequest(identifier, request);
- if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent())
- timelineAgent->willSendWebSocketHandshakeRequest(identifier, document->frame());
+ if (InspectorReplayAgent* replayAgent = instrumentingAgents.inspectorReplayAgent())
+ replayAgent->segmentUnloaded();
}
-void InspectorInstrumentation::didReceiveWebSocketHandshakeResponseImpl(InstrumentingAgents* instrumentingAgents, unsigned long identifier, const ResourceResponse& response, Document* document)
+void InspectorInstrumentation::captureStartedImpl(InstrumentingAgents& instrumentingAgents)
{
- if (InspectorResourceAgent* resourceAgent = instrumentingAgents->inspectorResourceAgent())
- resourceAgent->didReceiveWebSocketHandshakeResponse(identifier, response);
- if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent())
- timelineAgent->didReceiveWebSocketHandshakeResponse(identifier, document->frame());
+ if (InspectorReplayAgent* replayAgent = instrumentingAgents.inspectorReplayAgent())
+ replayAgent->captureStarted();
}
-void InspectorInstrumentation::didCloseWebSocketImpl(InstrumentingAgents* instrumentingAgents, unsigned long identifier, Document* document)
+void InspectorInstrumentation::captureStoppedImpl(InstrumentingAgents& instrumentingAgents)
{
- if (InspectorResourceAgent* resourceAgent = instrumentingAgents->inspectorResourceAgent())
- resourceAgent->didCloseWebSocket(identifier);
- if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent())
- timelineAgent->didDestroyWebSocket(identifier, document->frame());
+ if (InspectorReplayAgent* replayAgent = instrumentingAgents.inspectorReplayAgent())
+ replayAgent->captureStopped();
}
-void InspectorInstrumentation::didReceiveWebSocketFrameImpl(InstrumentingAgents* instrumentingAgents, unsigned long identifier, const WebSocketFrame& frame)
+void InspectorInstrumentation::playbackStartedImpl(InstrumentingAgents& instrumentingAgents)
{
- if (InspectorResourceAgent* resourceAgent = instrumentingAgents->inspectorResourceAgent())
- resourceAgent->didReceiveWebSocketFrame(identifier, frame);
+ if (InspectorReplayAgent* replayAgent = instrumentingAgents.inspectorReplayAgent())
+ replayAgent->playbackStarted();
}
-void InspectorInstrumentation::didReceiveWebSocketFrameErrorImpl(InstrumentingAgents* instrumentingAgents, unsigned long identifier, const String& errorMessage)
+
+void InspectorInstrumentation::playbackPausedImpl(InstrumentingAgents& instrumentingAgents, const ReplayPosition& position)
{
- if (InspectorResourceAgent* resourceAgent = instrumentingAgents->inspectorResourceAgent())
- resourceAgent->didReceiveWebSocketFrameError(identifier, errorMessage);
+ if (InspectorReplayAgent* replayAgent = instrumentingAgents.inspectorReplayAgent())
+ replayAgent->playbackPaused(position);
}
-void InspectorInstrumentation::didSendWebSocketFrameImpl(InstrumentingAgents* instrumentingAgents, unsigned long identifier, const WebSocketFrame& frame)
+
+void InspectorInstrumentation::playbackHitPositionImpl(InstrumentingAgents& instrumentingAgents, const ReplayPosition& position)
+{
+ if (InspectorReplayAgent* replayAgent = instrumentingAgents.inspectorReplayAgent())
+ replayAgent->playbackHitPosition(position);
+}
+
+void InspectorInstrumentation::playbackFinishedImpl(InstrumentingAgents& instrumentingAgents)
{
- if (InspectorResourceAgent* resourceAgent = instrumentingAgents->inspectorResourceAgent())
- resourceAgent->didSendWebSocketFrame(identifier, frame);
+ if (InspectorReplayAgent* replayAgent = instrumentingAgents.inspectorReplayAgent())
+ replayAgent->playbackFinished();
}
#endif
-void InspectorInstrumentation::networkStateChangedImpl(InstrumentingAgents* instrumentingAgents)
+#if ENABLE(RESOURCE_USAGE)
+void InspectorInstrumentation::didHandleMemoryPressureImpl(InstrumentingAgents& instrumentingAgents, Critical critical)
{
- if (InspectorApplicationCacheAgent* applicationCacheAgent = instrumentingAgents->inspectorApplicationCacheAgent())
- applicationCacheAgent->networkStateChanged();
+ if (InspectorMemoryAgent* memoryAgent = instrumentingAgents.inspectorMemoryAgent())
+ memoryAgent->didHandleMemoryPressure(critical);
}
+#endif
-void InspectorInstrumentation::updateApplicationCacheStatusImpl(InstrumentingAgents* instrumentingAgents, Frame* frame)
+void InspectorInstrumentation::networkStateChangedImpl(InstrumentingAgents& instrumentingAgents)
{
- if (InspectorApplicationCacheAgent* applicationCacheAgent = instrumentingAgents->inspectorApplicationCacheAgent())
- applicationCacheAgent->updateApplicationCacheStatus(frame);
+ if (InspectorApplicationCacheAgent* applicationCacheAgent = instrumentingAgents.inspectorApplicationCacheAgent())
+ applicationCacheAgent->networkStateChanged();
}
-bool InspectorInstrumentation::canvasAgentEnabled(ScriptExecutionContext* scriptExecutionContext)
+void InspectorInstrumentation::updateApplicationCacheStatusImpl(InstrumentingAgents& instrumentingAgents, Frame& frame)
{
- InstrumentingAgents* instrumentingAgents = instrumentingAgentsForContext(scriptExecutionContext);
- return instrumentingAgents && instrumentingAgents->inspectorCanvasAgent();
+ if (auto* applicationCacheAgent = instrumentingAgents.inspectorApplicationCacheAgent())
+ applicationCacheAgent->updateApplicationCacheStatus(&frame);
}
bool InspectorInstrumentation::consoleAgentEnabled(ScriptExecutionContext* scriptExecutionContext)
{
InstrumentingAgents* instrumentingAgents = instrumentingAgentsForContext(scriptExecutionContext);
- InspectorConsoleAgent* consoleAgent = instrumentingAgents ? instrumentingAgents->inspectorConsoleAgent() : nullptr;
+ InspectorConsoleAgent* consoleAgent = instrumentingAgents ? instrumentingAgents->webConsoleAgent() : nullptr;
return consoleAgent && consoleAgent->enabled();
}
@@ -1084,40 +1092,51 @@ bool InspectorInstrumentation::timelineAgentEnabled(ScriptExecutionContext* scri
return instrumentingAgents && instrumentingAgents->inspectorTimelineAgent();
}
-void InspectorInstrumentation::pauseOnNativeEventIfNeeded(InstrumentingAgents* instrumentingAgents, bool isDOMEvent, const String& eventName, bool synchronous)
+bool InspectorInstrumentation::replayAgentEnabled(ScriptExecutionContext* scriptExecutionContext)
{
- if (InspectorDOMDebuggerAgent* domDebuggerAgent = instrumentingAgents->inspectorDOMDebuggerAgent())
- domDebuggerAgent->pauseOnNativeEventIfNeeded(isDOMEvent, eventName, synchronous);
+#if ENABLE(WEB_REPLAY)
+ InstrumentingAgents* instrumentingAgents = instrumentingAgentsForContext(scriptExecutionContext);
+ return instrumentingAgents && instrumentingAgents->inspectorReplayAgent();
+#else
+ UNUSED_PARAM(scriptExecutionContext);
+ return false;
+#endif
}
-void InspectorInstrumentation::cancelPauseOnNativeEvent(InstrumentingAgents* instrumentingAgents)
+void InspectorInstrumentation::pauseOnNativeEventIfNeeded(InstrumentingAgents& instrumentingAgents, bool isDOMEvent, const String& eventName, bool synchronous)
{
- if (InspectorDebuggerAgent* debuggerAgent = instrumentingAgents->inspectorDebuggerAgent())
- debuggerAgent->cancelPauseOnNextStatement();
+ if (InspectorDOMDebuggerAgent* domDebuggerAgent = instrumentingAgents.inspectorDOMDebuggerAgent())
+ domDebuggerAgent->pauseOnNativeEventIfNeeded(isDOMEvent, eventName, synchronous);
}
-void InspectorInstrumentation::didRequestAnimationFrameImpl(InstrumentingAgents* instrumentingAgents, int callbackId, Frame* frame)
+void InspectorInstrumentation::didRequestAnimationFrameImpl(InstrumentingAgents& instrumentingAgents, int callbackId, Frame* frame)
{
pauseOnNativeEventIfNeeded(instrumentingAgents, false, requestAnimationFrameEventName, true);
+ didScheduleAsyncCall(instrumentingAgents, AsyncCallTypeRequestAnimationFrame, callbackId, *frame->document(), true);
- if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent())
+ if (InspectorTimelineAgent* timelineAgent = instrumentingAgents.inspectorTimelineAgent())
timelineAgent->didRequestAnimationFrame(callbackId, frame);
}
-void InspectorInstrumentation::didCancelAnimationFrameImpl(InstrumentingAgents* instrumentingAgents, int callbackId, Frame* frame)
+void InspectorInstrumentation::didCancelAnimationFrameImpl(InstrumentingAgents& instrumentingAgents, int callbackId, Frame* frame)
{
pauseOnNativeEventIfNeeded(instrumentingAgents, false, cancelAnimationFrameEventName, true);
- if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent())
+ if (InspectorDebuggerAgent* debuggerAgent = instrumentingAgents.inspectorDebuggerAgent())
+ debuggerAgent->didCancelAsyncCall(AsyncCallTypeRequestAnimationFrame, callbackId);
+ if (InspectorTimelineAgent* timelineAgent = instrumentingAgents.inspectorTimelineAgent())
timelineAgent->didCancelAnimationFrame(callbackId, frame);
}
-InspectorInstrumentationCookie InspectorInstrumentation::willFireAnimationFrameImpl(InstrumentingAgents* instrumentingAgents, int callbackId, Frame* frame)
+InspectorInstrumentationCookie InspectorInstrumentation::willFireAnimationFrameImpl(InstrumentingAgents& instrumentingAgents, int callbackId, Frame* frame)
{
pauseOnNativeEventIfNeeded(instrumentingAgents, false, animationFrameFiredEventName, false);
+ if (InspectorDebuggerAgent* debuggerAgent = instrumentingAgents.inspectorDebuggerAgent())
+ debuggerAgent->willDispatchAsyncCall(AsyncCallTypeRequestAnimationFrame, callbackId);
+
int timelineAgentId = 0;
- if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent()) {
+ if (InspectorTimelineAgent* timelineAgent = instrumentingAgents.inspectorTimelineAgent()) {
timelineAgent->willFireAnimationFrame(callbackId, frame);
timelineAgentId = timelineAgent->id();
}
@@ -1126,84 +1145,58 @@ InspectorInstrumentationCookie InspectorInstrumentation::willFireAnimationFrameI
void InspectorInstrumentation::didFireAnimationFrameImpl(const InspectorInstrumentationCookie& cookie)
{
+ if (InspectorDebuggerAgent* debuggerAgent = cookie.instrumentingAgents()->inspectorDebuggerAgent())
+ debuggerAgent->didDispatchAsyncCall();
if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(cookie))
timelineAgent->didFireAnimationFrame();
}
-void InspectorInstrumentation::registerInstrumentingAgents(InstrumentingAgents* instrumentingAgents)
+void InspectorInstrumentation::registerInstrumentingAgents(InstrumentingAgents& instrumentingAgents)
{
- if (!instrumentingAgentsSet)
- instrumentingAgentsSet = new HashSet<InstrumentingAgents*>();
- instrumentingAgentsSet->add(instrumentingAgents);
+ if (!s_instrumentingAgentsSet)
+ s_instrumentingAgentsSet = new HashSet<InstrumentingAgents*>();
+
+ s_instrumentingAgentsSet->add(&instrumentingAgents);
}
-void InspectorInstrumentation::unregisterInstrumentingAgents(InstrumentingAgents* instrumentingAgents)
+void InspectorInstrumentation::unregisterInstrumentingAgents(InstrumentingAgents& instrumentingAgents)
{
- if (!instrumentingAgentsSet)
+ if (!s_instrumentingAgentsSet)
return;
- instrumentingAgentsSet->remove(instrumentingAgents);
- if (instrumentingAgentsSet->isEmpty()) {
- delete instrumentingAgentsSet;
- instrumentingAgentsSet = nullptr;
+
+ s_instrumentingAgentsSet->remove(&instrumentingAgents);
+ if (s_instrumentingAgentsSet->isEmpty()) {
+ delete s_instrumentingAgentsSet;
+ s_instrumentingAgentsSet = nullptr;
}
}
InspectorTimelineAgent* InspectorInstrumentation::retrieveTimelineAgent(const InspectorInstrumentationCookie& cookie)
{
- if (!cookie.instrumentingAgents())
+ if (!cookie.isValid())
return nullptr;
+
InspectorTimelineAgent* timelineAgent = cookie.instrumentingAgents()->inspectorTimelineAgent();
if (timelineAgent && cookie.hasMatchingTimelineAgentId(timelineAgent->id()))
return timelineAgent;
return nullptr;
}
-InstrumentingAgents* InspectorInstrumentation::instrumentingAgentsForPage(Page* page)
+InstrumentingAgents* InspectorInstrumentation::instrumentingAgentsForRenderer(RenderObject& renderer)
{
- if (!page)
- return nullptr;
- return instrumentationForPage(page);
+ return instrumentingAgentsForFrame(renderer.frame());
}
-InstrumentingAgents* InspectorInstrumentation::instrumentingAgentsForRenderer(RenderObject* renderer)
+void InspectorInstrumentation::layerTreeDidChangeImpl(InstrumentingAgents& instrumentingAgents)
{
- return instrumentingAgentsForFrame(&renderer->frame());
-}
-
-InstrumentingAgents* InspectorInstrumentation::instrumentingAgentsForWorkerGlobalScope(WorkerGlobalScope* workerGlobalScope)
-{
- if (!workerGlobalScope)
- return nullptr;
- return instrumentationForWorkerGlobalScope(workerGlobalScope);
-}
-
-InstrumentingAgents* InspectorInstrumentation::instrumentingAgentsForNonDocumentContext(ScriptExecutionContext* context)
-{
- if (context->isWorkerGlobalScope())
- return instrumentationForWorkerGlobalScope(static_cast<WorkerGlobalScope*>(context));
- return nullptr;
-}
-
-#if USE(ACCELERATED_COMPOSITING)
-void InspectorInstrumentation::layerTreeDidChangeImpl(InstrumentingAgents* instrumentingAgents)
-{
- if (InspectorLayerTreeAgent* layerTreeAgent = instrumentingAgents->inspectorLayerTreeAgent())
+ if (InspectorLayerTreeAgent* layerTreeAgent = instrumentingAgents.inspectorLayerTreeAgent())
layerTreeAgent->layerTreeDidChange();
}
-void InspectorInstrumentation::renderLayerDestroyedImpl(InstrumentingAgents* instrumentingAgents, const RenderLayer* renderLayer)
+void InspectorInstrumentation::renderLayerDestroyedImpl(InstrumentingAgents& instrumentingAgents, const RenderLayer& renderLayer)
{
- if (InspectorLayerTreeAgent* layerTreeAgent = instrumentingAgents->inspectorLayerTreeAgent())
+ if (InspectorLayerTreeAgent* layerTreeAgent = instrumentingAgents.inspectorLayerTreeAgent())
layerTreeAgent->renderLayerDestroyed(renderLayer);
}
-void InspectorInstrumentation::pseudoElementDestroyedImpl(InstrumentingAgents* instrumentingAgents, PseudoElement* pseudoElement)
-{
- if (InspectorLayerTreeAgent* layerTreeAgent = instrumentingAgents->inspectorLayerTreeAgent())
- layerTreeAgent->pseudoElementDestroyed(pseudoElement);
-}
-#endif
-
} // namespace WebCore
-
-#endif // !ENABLE(INSPECTOR)