Web Inspector: add compiler UNLIKELY hints when checking if developer extras are enabled
https://bugs.webkit.org/show_bug.cgi?id=204875
Reviewed by Joseph Pecoraro.
Source/JavaScriptCore:
Move the check for whether developer extras are enabled from the agent to the client so that
when inspecting a webpage, we don't check for it twice, since `InspectorInstrumentation`
already checks for it too.
* inspector/agents/InspectorConsoleAgent.h:
* inspector/agents/InspectorConsoleAgent.cpp:
(Inspector::InspectorConsoleAgent::developerExtrasEnabled const): Added.
(Inspector::InspectorConsoleAgent::addMessageToConsole):
(Inspector::InspectorConsoleAgent::startTiming):
(Inspector::InspectorConsoleAgent::logTiming):
(Inspector::InspectorConsoleAgent::stopTiming):
(Inspector::InspectorConsoleAgent::takeHeapSnapshot):
(Inspector::InspectorConsoleAgent::count):
(Inspector::InspectorConsoleAgent::countReset):
(Inspector::InspectorConsoleAgent::addConsoleMessage):
* inspector/JSGlobalObjectConsoleClient.cpp:
(Inspector::JSGlobalObjectConsoleClient::messageWithTypeAndLevel):
(Inspector::JSGlobalObjectConsoleClient::count):
(Inspector::JSGlobalObjectConsoleClient::countReset):
(Inspector::JSGlobalObjectConsoleClient::profile):
(Inspector::JSGlobalObjectConsoleClient::profileEnd):
(Inspector::JSGlobalObjectConsoleClient::takeHeapSnapshot):
(Inspector::JSGlobalObjectConsoleClient::time):
(Inspector::JSGlobalObjectConsoleClient::timeLog):
(Inspector::JSGlobalObjectConsoleClient::timeEnd):
(Inspector::JSGlobalObjectConsoleClient::timeStamp):
(Inspector::JSGlobalObjectConsoleClient::record):
(Inspector::JSGlobalObjectConsoleClient::recordEnd):
(Inspector::JSGlobalObjectConsoleClient::screenshot):
Source/WebCore:
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::consoleStartRecordingCanvas):
(WebCore::InspectorInstrumentation::consoleStopRecordingCanvas): Added.
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::frameWindowDiscardedImpl):
(WebCore::InspectorInstrumentation::didReceiveResourceResponseImpl):
(WebCore::InspectorInstrumentation::didFailLoadingImpl):
(WebCore::InspectorInstrumentation::didCommitLoadImpl):
(WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
(WebCore::InspectorInstrumentation::consoleCountImpl):
(WebCore::InspectorInstrumentation::consoleCountResetImpl):
(WebCore::InspectorInstrumentation::startConsoleTimingImpl):
(WebCore::InspectorInstrumentation::logConsoleTimingImpl):
(WebCore::InspectorInstrumentation::stopConsoleTimingImpl):
(WebCore::InspectorInstrumentation::consoleStopRecordingCanvasImpl): Added.
* inspector/agents/WebConsoleAgent.cpp:
(WebCore::WebConsoleAgent::frameWindowDiscarded):
(WebCore::WebConsoleAgent::didReceiveResponse):
(WebCore::WebConsoleAgent::didFailLoading):
Remove the redundant check for whether developer extras are enabled since it's already
checked by `InspectorInstrumentation`.
* page/PageConsoleClient.cpp:
(WebCore::PageConsoleClient::record):
(WebCore::PageConsoleClient::recordEnd):
* inspector/agents/InspectorCanvasAgent.h:
* inspector/agents/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::consoleStopRecordingCanvas): Added.
Add checks for `InspectorInstrumentation::hasFrontends()` to avoid doing extra work when Web
Inspector isn't open.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@253226 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog
index 5b9fa70..ff56a72 100644
--- a/Source/JavaScriptCore/ChangeLog
+++ b/Source/JavaScriptCore/ChangeLog
@@ -1,3 +1,41 @@
+2019-12-06 Devin Rousso <drousso@apple.com>
+
+ Web Inspector: add compiler UNLIKELY hints when checking if developer extras are enabled
+ https://bugs.webkit.org/show_bug.cgi?id=204875
+
+ Reviewed by Joseph Pecoraro.
+
+ Move the check for whether developer extras are enabled from the agent to the client so that
+ when inspecting a webpage, we don't check for it twice, since `InspectorInstrumentation`
+ already checks for it too.
+
+ * inspector/agents/InspectorConsoleAgent.h:
+ * inspector/agents/InspectorConsoleAgent.cpp:
+ (Inspector::InspectorConsoleAgent::developerExtrasEnabled const): Added.
+ (Inspector::InspectorConsoleAgent::addMessageToConsole):
+ (Inspector::InspectorConsoleAgent::startTiming):
+ (Inspector::InspectorConsoleAgent::logTiming):
+ (Inspector::InspectorConsoleAgent::stopTiming):
+ (Inspector::InspectorConsoleAgent::takeHeapSnapshot):
+ (Inspector::InspectorConsoleAgent::count):
+ (Inspector::InspectorConsoleAgent::countReset):
+ (Inspector::InspectorConsoleAgent::addConsoleMessage):
+
+ * inspector/JSGlobalObjectConsoleClient.cpp:
+ (Inspector::JSGlobalObjectConsoleClient::messageWithTypeAndLevel):
+ (Inspector::JSGlobalObjectConsoleClient::count):
+ (Inspector::JSGlobalObjectConsoleClient::countReset):
+ (Inspector::JSGlobalObjectConsoleClient::profile):
+ (Inspector::JSGlobalObjectConsoleClient::profileEnd):
+ (Inspector::JSGlobalObjectConsoleClient::takeHeapSnapshot):
+ (Inspector::JSGlobalObjectConsoleClient::time):
+ (Inspector::JSGlobalObjectConsoleClient::timeLog):
+ (Inspector::JSGlobalObjectConsoleClient::timeEnd):
+ (Inspector::JSGlobalObjectConsoleClient::timeStamp):
+ (Inspector::JSGlobalObjectConsoleClient::record):
+ (Inspector::JSGlobalObjectConsoleClient::recordEnd):
+ (Inspector::JSGlobalObjectConsoleClient::screenshot):
+
2019-12-06 Keith Miller <keith_miller@apple.com>
Remove various .order files.
diff --git a/Source/JavaScriptCore/inspector/JSGlobalObjectConsoleClient.cpp b/Source/JavaScriptCore/inspector/JSGlobalObjectConsoleClient.cpp
index 011cd71..8def7e2 100644
--- a/Source/JavaScriptCore/inspector/JSGlobalObjectConsoleClient.cpp
+++ b/Source/JavaScriptCore/inspector/JSGlobalObjectConsoleClient.cpp
@@ -65,6 +65,9 @@
if (JSGlobalObjectConsoleClient::logToSystemConsole())
ConsoleClient::printConsoleMessageWithArguments(MessageSource::ConsoleAPI, type, level, globalObject, arguments.copyRef());
+ if (LIKELY(!m_consoleAgent->developerExtrasEnabled()))
+ return;
+
String message;
arguments->getFirstArgumentAsString(message);
m_consoleAgent->addMessageToConsole(makeUnique<ConsoleMessage>(MessageSource::ConsoleAPI, type, level, message, WTFMove(arguments), globalObject));
@@ -77,17 +80,23 @@
void JSGlobalObjectConsoleClient::count(JSGlobalObject* globalObject, const String& label)
{
+ if (LIKELY(!m_consoleAgent->developerExtrasEnabled()))
+ return;
+
m_consoleAgent->count(globalObject, label);
}
void JSGlobalObjectConsoleClient::countReset(JSGlobalObject* globalObject, const String& label)
{
+ if (LIKELY(!m_consoleAgent->developerExtrasEnabled()))
+ return;
+
m_consoleAgent->countReset(globalObject, label);
}
void JSGlobalObjectConsoleClient::profile(JSC::JSGlobalObject*, const String& title)
{
- if (!m_consoleAgent->enabled())
+ if (LIKELY(!m_consoleAgent->enabled()))
return;
// Allow duplicate unnamed profiles. Disallow duplicate named profiles.
@@ -108,7 +117,7 @@
void JSGlobalObjectConsoleClient::profileEnd(JSC::JSGlobalObject*, const String& title)
{
- if (!m_consoleAgent->enabled())
+ if (LIKELY(!m_consoleAgent->enabled()))
return;
// Stop profiles in reverse order. If the title is empty, then stop the last profile.
@@ -155,35 +164,65 @@
void JSGlobalObjectConsoleClient::takeHeapSnapshot(JSC::JSGlobalObject*, const String& title)
{
+ if (LIKELY(!m_consoleAgent->developerExtrasEnabled()))
+ return;
+
m_consoleAgent->takeHeapSnapshot(title);
}
void JSGlobalObjectConsoleClient::time(JSGlobalObject* globalObject, const String& label)
{
+ if (LIKELY(!m_consoleAgent->developerExtrasEnabled()))
+ return;
+
m_consoleAgent->startTiming(globalObject, label);
}
void JSGlobalObjectConsoleClient::timeLog(JSGlobalObject* globalObject, const String& label, Ref<ScriptArguments>&& arguments)
{
+ if (LIKELY(!m_consoleAgent->developerExtrasEnabled()))
+ return;
+
m_consoleAgent->logTiming(globalObject, label, WTFMove(arguments));
}
void JSGlobalObjectConsoleClient::timeEnd(JSGlobalObject* globalObject, const String& label)
{
+ if (LIKELY(!m_consoleAgent->developerExtrasEnabled()))
+ return;
+
m_consoleAgent->stopTiming(globalObject, label);
}
void JSGlobalObjectConsoleClient::timeStamp(JSGlobalObject*, Ref<ScriptArguments>&&)
{
- // FIXME: JSContext inspection needs a timeline.
+ if (LIKELY(!m_consoleAgent->developerExtrasEnabled()))
+ return;
+
warnUnimplemented("console.timeStamp"_s);
}
-void JSGlobalObjectConsoleClient::record(JSGlobalObject*, Ref<ScriptArguments>&&) { }
-void JSGlobalObjectConsoleClient::recordEnd(JSGlobalObject*, Ref<ScriptArguments>&&) { }
+void JSGlobalObjectConsoleClient::record(JSGlobalObject*, Ref<ScriptArguments>&&)
+{
+ if (LIKELY(!m_consoleAgent->developerExtrasEnabled()))
+ return;
+
+ warnUnimplemented("console.record"_s);
+}
+
+void JSGlobalObjectConsoleClient::recordEnd(JSGlobalObject*, Ref<ScriptArguments>&&)
+{
+ if (LIKELY(!m_consoleAgent->developerExtrasEnabled()))
+ return;
+
+ warnUnimplemented("console.recordEnd"_s);
+}
void JSGlobalObjectConsoleClient::screenshot(JSGlobalObject*, Ref<ScriptArguments>&&)
{
+ if (LIKELY(!m_consoleAgent->developerExtrasEnabled()))
+ return;
+
warnUnimplemented("console.screenshot"_s);
}
diff --git a/Source/JavaScriptCore/inspector/agents/InspectorConsoleAgent.cpp b/Source/JavaScriptCore/inspector/agents/InspectorConsoleAgent.cpp
index e18b865..26814fe 100644
--- a/Source/JavaScriptCore/inspector/agents/InspectorConsoleAgent.cpp
+++ b/Source/JavaScriptCore/inspector/agents/InspectorConsoleAgent.cpp
@@ -106,6 +106,11 @@
m_frontendDispatcher->messagesCleared();
}
+bool InspectorConsoleAgent::developerExtrasEnabled() const
+{
+ return m_injectedScriptManager.inspectorEnvironment().developerExtrasEnabled();
+}
+
void InspectorConsoleAgent::reset()
{
ErrorString ignored;
@@ -117,9 +122,6 @@
void InspectorConsoleAgent::addMessageToConsole(std::unique_ptr<ConsoleMessage> message)
{
- if (!m_injectedScriptManager.inspectorEnvironment().developerExtrasEnabled())
- return;
-
if (message->type() == MessageType::Clear) {
ErrorString ignored;
clearMessages(ignored);
@@ -130,9 +132,6 @@
void InspectorConsoleAgent::startTiming(JSC::JSGlobalObject* globalObject, const String& label)
{
- if (!m_injectedScriptManager.inspectorEnvironment().developerExtrasEnabled())
- return;
-
ASSERT(!label.isNull());
if (label.isNull())
return;
@@ -148,9 +147,6 @@
void InspectorConsoleAgent::logTiming(JSC::JSGlobalObject* globalObject, const String& label, Ref<ScriptArguments>&& arguments)
{
- if (!m_injectedScriptManager.inspectorEnvironment().developerExtrasEnabled())
- return;
-
ASSERT(!label.isNull());
if (label.isNull())
return;
@@ -173,9 +169,6 @@
void InspectorConsoleAgent::stopTiming(JSC::JSGlobalObject* globalObject, const String& label)
{
- if (!m_injectedScriptManager.inspectorEnvironment().developerExtrasEnabled())
- return;
-
ASSERT(!label.isNull());
if (label.isNull())
return;
@@ -200,9 +193,6 @@
void InspectorConsoleAgent::takeHeapSnapshot(const String& title)
{
- if (!m_injectedScriptManager.inspectorEnvironment().developerExtrasEnabled())
- return;
-
if (!m_heapAgent)
return;
@@ -216,9 +206,6 @@
void InspectorConsoleAgent::count(JSC::JSGlobalObject* globalObject, const String& label)
{
- if (!m_injectedScriptManager.inspectorEnvironment().developerExtrasEnabled())
- return;
-
auto result = m_counts.add(label, 1);
if (!result.isNewEntry)
result.iterator->value += 1;
@@ -231,9 +218,6 @@
void InspectorConsoleAgent::countReset(JSC::JSGlobalObject* globalObject, const String& label)
{
- if (!m_injectedScriptManager.inspectorEnvironment().developerExtrasEnabled())
- return;
-
auto it = m_counts.find(label);
if (it == m_counts.end()) {
// FIXME: Send an enum to the frontend for localization?
@@ -256,9 +240,6 @@
void InspectorConsoleAgent::addConsoleMessage(std::unique_ptr<ConsoleMessage> consoleMessage)
{
- if (!m_injectedScriptManager.inspectorEnvironment().developerExtrasEnabled())
- return;
-
ASSERT_ARG(consoleMessage, consoleMessage);
ConsoleMessage* previousMessage = m_consoleMessages.isEmpty() ? nullptr : m_consoleMessages.last().get();
diff --git a/Source/JavaScriptCore/inspector/agents/InspectorConsoleAgent.h b/Source/JavaScriptCore/inspector/agents/InspectorConsoleAgent.h
index 0d10609..f8ba2f2 100644
--- a/Source/JavaScriptCore/inspector/agents/InspectorConsoleAgent.h
+++ b/Source/JavaScriptCore/inspector/agents/InspectorConsoleAgent.h
@@ -70,6 +70,7 @@
void setInspectorHeapAgent(InspectorHeapAgent* agent) { m_heapAgent = agent; }
bool enabled() const { return m_enabled; }
+ bool developerExtrasEnabled() const;
void reset();
void addMessageToConsole(std::unique_ptr<ConsoleMessage>);
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 293ff55..cc99f0d 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,42 @@
+2019-12-06 Devin Rousso <drousso@apple.com>
+
+ Web Inspector: add compiler UNLIKELY hints when checking if developer extras are enabled
+ https://bugs.webkit.org/show_bug.cgi?id=204875
+
+ Reviewed by Joseph Pecoraro.
+
+ * inspector/InspectorInstrumentation.h:
+ (WebCore::InspectorInstrumentation::consoleStartRecordingCanvas):
+ (WebCore::InspectorInstrumentation::consoleStopRecordingCanvas): Added.
+ * inspector/InspectorInstrumentation.cpp:
+ (WebCore::InspectorInstrumentation::frameWindowDiscardedImpl):
+ (WebCore::InspectorInstrumentation::didReceiveResourceResponseImpl):
+ (WebCore::InspectorInstrumentation::didFailLoadingImpl):
+ (WebCore::InspectorInstrumentation::didCommitLoadImpl):
+ (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
+ (WebCore::InspectorInstrumentation::consoleCountImpl):
+ (WebCore::InspectorInstrumentation::consoleCountResetImpl):
+ (WebCore::InspectorInstrumentation::startConsoleTimingImpl):
+ (WebCore::InspectorInstrumentation::logConsoleTimingImpl):
+ (WebCore::InspectorInstrumentation::stopConsoleTimingImpl):
+ (WebCore::InspectorInstrumentation::consoleStopRecordingCanvasImpl): Added.
+
+ * inspector/agents/WebConsoleAgent.cpp:
+ (WebCore::WebConsoleAgent::frameWindowDiscarded):
+ (WebCore::WebConsoleAgent::didReceiveResponse):
+ (WebCore::WebConsoleAgent::didFailLoading):
+ Remove the redundant check for whether developer extras are enabled since it's already
+ checked by `InspectorInstrumentation`.
+
+ * page/PageConsoleClient.cpp:
+ (WebCore::PageConsoleClient::record):
+ (WebCore::PageConsoleClient::recordEnd):
+ * inspector/agents/InspectorCanvasAgent.h:
+ * inspector/agents/InspectorCanvasAgent.cpp:
+ (WebCore::InspectorCanvasAgent::consoleStopRecordingCanvas): Added.
+ Add checks for `InspectorInstrumentation::hasFrontends()` to avoid doing extra work when Web
+ Inspector isn't open.
+
2019-12-06 Zalan Bujtas <zalan@apple.com>
[LFC][IFC] Use explicit 0_lu value instead of LayoutUnit { }
diff --git a/Source/WebCore/inspector/InspectorInstrumentation.cpp b/Source/WebCore/inspector/InspectorInstrumentation.cpp
index 0ad193c..4f18b58 100644
--- a/Source/WebCore/inspector/InspectorInstrumentation.cpp
+++ b/Source/WebCore/inspector/InspectorInstrumentation.cpp
@@ -222,7 +222,7 @@
void InspectorInstrumentation::frameWindowDiscardedImpl(InstrumentingAgents& instrumentingAgents, DOMWindow* window)
{
- if (!instrumentingAgents.inspectorEnvironment().developerExtrasEnabled())
+ if (LIKELY(!instrumentingAgents.inspectorEnvironment().developerExtrasEnabled()))
return;
if (WebConsoleAgent* consoleAgent = instrumentingAgents.webConsoleAgent())
@@ -586,7 +586,7 @@
void InspectorInstrumentation::didReceiveResourceResponseImpl(InstrumentingAgents& instrumentingAgents, unsigned long identifier, DocumentLoader* loader, const ResourceResponse& response, ResourceLoader* resourceLoader)
{
- if (!instrumentingAgents.inspectorEnvironment().developerExtrasEnabled())
+ if (LIKELY(!instrumentingAgents.inspectorEnvironment().developerExtrasEnabled()))
return;
if (InspectorNetworkAgent* networkAgent = instrumentingAgents.inspectorNetworkAgent())
@@ -615,7 +615,7 @@
void InspectorInstrumentation::didFailLoadingImpl(InstrumentingAgents& instrumentingAgents, unsigned long identifier, DocumentLoader* loader, const ResourceError& error)
{
- if (!instrumentingAgents.inspectorEnvironment().developerExtrasEnabled())
+ if (LIKELY(!instrumentingAgents.inspectorEnvironment().developerExtrasEnabled()))
return;
if (InspectorNetworkAgent* networkAgent = instrumentingAgents.inspectorNetworkAgent())
@@ -680,7 +680,7 @@
void InspectorInstrumentation::didCommitLoadImpl(InstrumentingAgents& instrumentingAgents, Frame& frame, DocumentLoader* loader)
{
- if (!instrumentingAgents.inspectorEnvironment().developerExtrasEnabled())
+ if (LIKELY(!instrumentingAgents.inspectorEnvironment().developerExtrasEnabled()))
return;
if (!frame.page())
@@ -831,7 +831,7 @@
void InspectorInstrumentation::addMessageToConsoleImpl(InstrumentingAgents& instrumentingAgents, std::unique_ptr<ConsoleMessage> message)
{
- if (!instrumentingAgents.inspectorEnvironment().developerExtrasEnabled())
+ if (LIKELY(!instrumentingAgents.inspectorEnvironment().developerExtrasEnabled()))
return;
MessageSource source = message->source();
@@ -849,12 +849,18 @@
void InspectorInstrumentation::consoleCountImpl(InstrumentingAgents& instrumentingAgents, JSC::JSGlobalObject* state, const String& label)
{
+ if (LIKELY(!instrumentingAgents.inspectorEnvironment().developerExtrasEnabled()))
+ return;
+
if (auto* consoleAgent = instrumentingAgents.webConsoleAgent())
consoleAgent->count(state, label);
}
void InspectorInstrumentation::consoleCountResetImpl(InstrumentingAgents& instrumentingAgents, JSC::JSGlobalObject* state, const String& label)
{
+ if (LIKELY(!instrumentingAgents.inspectorEnvironment().developerExtrasEnabled()))
+ return;
+
if (auto* consoleAgent = instrumentingAgents.webConsoleAgent())
consoleAgent->countReset(state, label);
}
@@ -867,7 +873,7 @@
void InspectorInstrumentation::startConsoleTimingImpl(InstrumentingAgents& instrumentingAgents, Frame& frame, JSC::JSGlobalObject* exec, const String& label)
{
- if (!instrumentingAgents.inspectorEnvironment().developerExtrasEnabled())
+ if (LIKELY(!instrumentingAgents.inspectorEnvironment().developerExtrasEnabled()))
return;
if (auto* timelineAgent = instrumentingAgents.trackingInspectorTimelineAgent())
@@ -878,7 +884,7 @@
void InspectorInstrumentation::startConsoleTimingImpl(InstrumentingAgents& instrumentingAgents, JSC::JSGlobalObject* exec, const String& label)
{
- if (!instrumentingAgents.inspectorEnvironment().developerExtrasEnabled())
+ if (LIKELY(!instrumentingAgents.inspectorEnvironment().developerExtrasEnabled()))
return;
if (auto* consoleAgent = instrumentingAgents.webConsoleAgent())
@@ -887,7 +893,7 @@
void InspectorInstrumentation::logConsoleTimingImpl(InstrumentingAgents& instrumentingAgents, JSC::JSGlobalObject* exec, const String& label, Ref<Inspector::ScriptArguments>&& arguments)
{
- if (!instrumentingAgents.inspectorEnvironment().developerExtrasEnabled())
+ if (LIKELY(!instrumentingAgents.inspectorEnvironment().developerExtrasEnabled()))
return;
if (auto* consoleAgent = instrumentingAgents.webConsoleAgent())
@@ -896,7 +902,7 @@
void InspectorInstrumentation::stopConsoleTimingImpl(InstrumentingAgents& instrumentingAgents, Frame& frame, JSC::JSGlobalObject* exec, const String& label)
{
- if (!instrumentingAgents.inspectorEnvironment().developerExtrasEnabled())
+ if (LIKELY(!instrumentingAgents.inspectorEnvironment().developerExtrasEnabled()))
return;
if (auto* consoleAgent = instrumentingAgents.webConsoleAgent())
@@ -907,7 +913,7 @@
void InspectorInstrumentation::stopConsoleTimingImpl(InstrumentingAgents& instrumentingAgents, JSC::JSGlobalObject* exec, const String& label)
{
- if (!instrumentingAgents.inspectorEnvironment().developerExtrasEnabled())
+ if (LIKELY(!instrumentingAgents.inspectorEnvironment().developerExtrasEnabled()))
return;
if (auto* consoleAgent = instrumentingAgents.webConsoleAgent())
@@ -941,6 +947,12 @@
canvasAgent->consoleStartRecordingCanvas(context, exec, options);
}
+void InspectorInstrumentation::consoleStopRecordingCanvasImpl(InstrumentingAgents& instrumentingAgents, CanvasRenderingContext& context)
+{
+ if (auto* canvasAgent = instrumentingAgents.inspectorCanvasAgent())
+ canvasAgent->consoleStopRecordingCanvas(context);
+}
+
void InspectorInstrumentation::didOpenDatabaseImpl(InstrumentingAgents& instrumentingAgents, Database& database)
{
if (auto* databaseAgent = instrumentingAgents.inspectorDatabaseAgent())
diff --git a/Source/WebCore/inspector/InspectorInstrumentation.h b/Source/WebCore/inspector/InspectorInstrumentation.h
index 6698431..dbf8220 100644
--- a/Source/WebCore/inspector/InspectorInstrumentation.h
+++ b/Source/WebCore/inspector/InspectorInstrumentation.h
@@ -254,6 +254,7 @@
static void startProfiling(Page&, JSC::JSGlobalObject*, const String& title);
static void stopProfiling(Page&, JSC::JSGlobalObject*, const String& title);
static void consoleStartRecordingCanvas(CanvasRenderingContext&, JSC::JSGlobalObject&, JSC::JSObject* options);
+ static void consoleStopRecordingCanvas(CanvasRenderingContext&);
static void didRequestAnimationFrame(Document&, int callbackId);
static void didCancelAnimationFrame(Document&, int callbackId);
@@ -449,6 +450,7 @@
static void startProfilingImpl(InstrumentingAgents&, JSC::JSGlobalObject*, const String& title);
static void stopProfilingImpl(InstrumentingAgents&, JSC::JSGlobalObject*, const String& title);
static void consoleStartRecordingCanvasImpl(InstrumentingAgents&, CanvasRenderingContext&, JSC::JSGlobalObject&, JSC::JSObject* options);
+ static void consoleStopRecordingCanvasImpl(InstrumentingAgents&, CanvasRenderingContext&);
static void didRequestAnimationFrameImpl(InstrumentingAgents&, int callbackId, Document&);
static void didCancelAnimationFrameImpl(InstrumentingAgents&, int callbackId, Document&);
@@ -1582,11 +1584,16 @@
inline void InspectorInstrumentation::consoleStartRecordingCanvas(CanvasRenderingContext& context, JSC::JSGlobalObject& exec, JSC::JSObject* options)
{
- FAST_RETURN_IF_NO_FRONTENDS(void());
if (InstrumentingAgents* instrumentingAgents = instrumentingAgentsForContext(context.canvasBase().scriptExecutionContext()))
consoleStartRecordingCanvasImpl(*instrumentingAgents, context, exec, options);
}
+inline void InspectorInstrumentation::consoleStopRecordingCanvas(CanvasRenderingContext& context)
+{
+ if (auto* instrumentingAgents = instrumentingAgentsForContext(context.canvasBase().scriptExecutionContext()))
+ consoleStopRecordingCanvasImpl(*instrumentingAgents, context);
+}
+
inline void InspectorInstrumentation::didRequestAnimationFrame(Document& document, int callbackId)
{
FAST_RETURN_IF_NO_FRONTENDS(void());
diff --git a/Source/WebCore/inspector/agents/InspectorCanvasAgent.cpp b/Source/WebCore/inspector/agents/InspectorCanvasAgent.cpp
index 7568290..1d398c5 100644
--- a/Source/WebCore/inspector/agents/InspectorCanvasAgent.cpp
+++ b/Source/WebCore/inspector/agents/InspectorCanvasAgent.cpp
@@ -568,6 +568,11 @@
startRecording(*inspectorCanvas, Inspector::Protocol::Recording::Initiator::Console, WTFMove(recordingOptions));
}
+void InspectorCanvasAgent::consoleStopRecordingCanvas(CanvasRenderingContext& context)
+{
+ didFinishRecordingCanvasFrame(context, true);
+}
+
#if ENABLE(WEBGL)
void InspectorCanvasAgent::didEnableExtension(WebGLRenderingContextBase& context, const String& extension)
{
diff --git a/Source/WebCore/inspector/agents/InspectorCanvasAgent.h b/Source/WebCore/inspector/agents/InspectorCanvasAgent.h
index 283efda..ff9a533 100644
--- a/Source/WebCore/inspector/agents/InspectorCanvasAgent.h
+++ b/Source/WebCore/inspector/agents/InspectorCanvasAgent.h
@@ -97,6 +97,7 @@
void recordCanvasAction(CanvasRenderingContext&, const String&, std::initializer_list<RecordCanvasActionVariant>&& = { });
void didFinishRecordingCanvasFrame(CanvasRenderingContext&, bool forceDispatch = false);
void consoleStartRecordingCanvas(CanvasRenderingContext&, JSC::JSGlobalObject&, JSC::JSObject* options);
+ void consoleStopRecordingCanvas(CanvasRenderingContext&);
#if ENABLE(WEBGL)
void didEnableExtension(WebGLRenderingContextBase&, const String&);
void didCreateWebGLProgram(WebGLRenderingContextBase&, WebGLProgram&);
diff --git a/Source/WebCore/inspector/agents/WebConsoleAgent.cpp b/Source/WebCore/inspector/agents/WebConsoleAgent.cpp
index e9d351b..32994a3 100644
--- a/Source/WebCore/inspector/agents/WebConsoleAgent.cpp
+++ b/Source/WebCore/inspector/agents/WebConsoleAgent.cpp
@@ -52,9 +52,6 @@
void WebConsoleAgent::frameWindowDiscarded(DOMWindow* window)
{
- if (!m_injectedScriptManager.inspectorEnvironment().developerExtrasEnabled())
- return;
-
for (auto& message : m_consoleMessages) {
JSC::JSGlobalObject* lexicalGlobalObject = message->globalObject();
if (!lexicalGlobalObject)
@@ -69,9 +66,6 @@
void WebConsoleAgent::didReceiveResponse(unsigned long requestIdentifier, const ResourceResponse& response)
{
- if (!m_injectedScriptManager.inspectorEnvironment().developerExtrasEnabled())
- return;
-
if (response.httpStatusCode() >= 400) {
String message = makeString("Failed to load resource: the server responded with a status of ", response.httpStatusCode(), " (", response.httpStatusText(), ')');
addMessageToConsole(makeUnique<ConsoleMessage>(MessageSource::Network, MessageType::Log, MessageLevel::Error, message, response.url().string(), 0, 0, nullptr, requestIdentifier));
@@ -80,9 +74,6 @@
void WebConsoleAgent::didFailLoading(unsigned long requestIdentifier, const ResourceError& error)
{
- if (!m_injectedScriptManager.inspectorEnvironment().developerExtrasEnabled())
- return;
-
// Report failures only.
if (error.isCancellation())
return;
diff --git a/Source/WebCore/page/PageConsoleClient.cpp b/Source/WebCore/page/PageConsoleClient.cpp
index 41023d9..4c35330 100644
--- a/Source/WebCore/page/PageConsoleClient.cpp
+++ b/Source/WebCore/page/PageConsoleClient.cpp
@@ -272,6 +272,9 @@
void PageConsoleClient::record(JSC::JSGlobalObject* lexicalGlobalObject, Ref<ScriptArguments>&& arguments)
{
+ if (LIKELY(!InspectorInstrumentation::hasFrontends()))
+ return;
+
if (auto* target = objectArgumentAt(arguments, 0)) {
if (auto* context = canvasRenderingContext(lexicalGlobalObject->vm(), target))
InspectorInstrumentation::consoleStartRecordingCanvas(*context, *lexicalGlobalObject, objectArgumentAt(arguments, 1));
@@ -280,9 +283,12 @@
void PageConsoleClient::recordEnd(JSC::JSGlobalObject* lexicalGlobalObject, Ref<ScriptArguments>&& arguments)
{
+ if (LIKELY(!InspectorInstrumentation::hasFrontends()))
+ return;
+
if (auto* target = objectArgumentAt(arguments, 0)) {
if (auto* context = canvasRenderingContext(lexicalGlobalObject->vm(), target))
- InspectorInstrumentation::didFinishRecordingCanvasFrame(*context, true);
+ InspectorInstrumentation::consoleStopRecordingCanvas(*context);
}
}