summaryrefslogtreecommitdiff
path: root/Source/WebCore/inspector/PageDebuggerAgent.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/inspector/PageDebuggerAgent.cpp')
-rw-r--r--Source/WebCore/inspector/PageDebuggerAgent.cpp80
1 files changed, 43 insertions, 37 deletions
diff --git a/Source/WebCore/inspector/PageDebuggerAgent.cpp b/Source/WebCore/inspector/PageDebuggerAgent.cpp
index 67f4951ac..a86ed135b 100644
--- a/Source/WebCore/inspector/PageDebuggerAgent.cpp
+++ b/Source/WebCore/inspector/PageDebuggerAgent.cpp
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2011 Google Inc. All rights reserved.
+ * Copyright (C) 2015 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -31,25 +32,28 @@
#include "config.h"
#include "PageDebuggerAgent.h"
-#if ENABLE(INSPECTOR)
-
#include "CachedResource.h"
#include "InspectorOverlay.h"
#include "InspectorPageAgent.h"
#include "InstrumentingAgents.h"
+#include "MainFrame.h"
#include "Page.h"
-#include "PageConsole.h"
+#include "PageConsoleClient.h"
#include "PageScriptDebugServer.h"
#include "ScriptState.h"
#include <inspector/InjectedScript.h>
#include <inspector/InjectedScriptManager.h>
+#include <inspector/ScriptCallStack.h>
+#include <inspector/ScriptCallStackFactory.h>
+#include <wtf/NeverDestroyed.h>
using namespace Inspector;
namespace WebCore {
-PageDebuggerAgent::PageDebuggerAgent(InjectedScriptManager* injectedScriptManager, InstrumentingAgents* instrumentingAgents, InspectorPageAgent* pageAgent, InspectorOverlay* overlay)
- : WebDebuggerAgent(injectedScriptManager, instrumentingAgents)
+PageDebuggerAgent::PageDebuggerAgent(PageAgentContext& context, InspectorPageAgent* pageAgent, InspectorOverlay* overlay)
+ : WebDebuggerAgent(context)
+ , m_page(context.inspectedPage)
, m_pageAgent(pageAgent)
, m_overlay(overlay)
{
@@ -58,22 +62,22 @@ PageDebuggerAgent::PageDebuggerAgent(InjectedScriptManager* injectedScriptManage
void PageDebuggerAgent::enable()
{
WebDebuggerAgent::enable();
- m_instrumentingAgents->setPageDebuggerAgent(this);
+ m_instrumentingAgents.setPageDebuggerAgent(this);
}
void PageDebuggerAgent::disable(bool isBeingDestroyed)
{
WebDebuggerAgent::disable(isBeingDestroyed);
- m_instrumentingAgents->setPageDebuggerAgent(nullptr);
+ m_instrumentingAgents.setPageDebuggerAgent(nullptr);
}
String PageDebuggerAgent::sourceMapURLForScript(const Script& script)
{
- DEFINE_STATIC_LOCAL(String, sourceMapHTTPHeader, (ASCIILiteral("SourceMap")));
- DEFINE_STATIC_LOCAL(String, sourceMapHTTPHeaderDeprecated, (ASCIILiteral("X-SourceMap")));
+ static NeverDestroyed<String> sourceMapHTTPHeader(ASCIILiteral("SourceMap"));
+ static NeverDestroyed<String> sourceMapHTTPHeaderDeprecated(ASCIILiteral("X-SourceMap"));
if (!script.url.isEmpty()) {
- CachedResource* resource = m_pageAgent->cachedResource(m_pageAgent->mainFrame(), URL(ParsedURLString, script.url));
+ CachedResource* resource = m_pageAgent->cachedResource(&m_page.mainFrame(), URL(ParsedURLString, script.url));
if (resource) {
String sourceMapHeader = resource->response().httpHeaderField(sourceMapHTTPHeader);
if (!sourceMapHeader.isEmpty())
@@ -88,51 +92,36 @@ String PageDebuggerAgent::sourceMapURLForScript(const Script& script)
return InspectorDebuggerAgent::sourceMapURLForScript(script);
}
-void PageDebuggerAgent::startListeningScriptDebugServer()
-{
- scriptDebugServer().addListener(this, m_pageAgent->page());
-}
-
-void PageDebuggerAgent::stopListeningScriptDebugServer(bool isBeingDestroyed)
-{
- scriptDebugServer().removeListener(this, m_pageAgent->page(), isBeingDestroyed);
-}
-
-PageScriptDebugServer& PageDebuggerAgent::scriptDebugServer()
-{
- return PageScriptDebugServer::shared();
-}
-
void PageDebuggerAgent::muteConsole()
{
- PageConsole::mute();
+ PageConsoleClient::mute();
}
void PageDebuggerAgent::unmuteConsole()
{
- PageConsole::unmute();
+ PageConsoleClient::unmute();
}
-void PageDebuggerAgent::breakpointActionLog(JSC::ExecState*, const String& message)
+void PageDebuggerAgent::breakpointActionLog(JSC::ExecState& state, const String& message)
{
- m_pageAgent->page()->console().addMessage(JSMessageSource, LogMessageLevel, message);
+ m_pageAgent->page().console().addMessage(MessageSource::JS, MessageLevel::Log, message, createScriptCallStack(&state, ScriptCallStack::maxCallStackSizeToCapture));
}
-InjectedScript PageDebuggerAgent::injectedScriptForEval(ErrorString* errorString, const int* executionContextId)
+InjectedScript PageDebuggerAgent::injectedScriptForEval(ErrorString& errorString, const int* executionContextId)
{
if (!executionContextId) {
- JSC::ExecState* scriptState = mainWorldExecState(m_pageAgent->mainFrame());
- return injectedScriptManager()->injectedScriptFor(scriptState);
+ JSC::ExecState* scriptState = mainWorldExecState(&m_pageAgent->mainFrame());
+ return injectedScriptManager().injectedScriptFor(scriptState);
}
- InjectedScript injectedScript = injectedScriptManager()->injectedScriptForId(*executionContextId);
+ InjectedScript injectedScript = injectedScriptManager().injectedScriptForId(*executionContextId);
if (injectedScript.hasNoValue())
- *errorString = ASCIILiteral("Execution context with given id not found.");
+ errorString = ASCIILiteral("Execution context with given id not found.");
return injectedScript;
}
-void PageDebuggerAgent::setOverlayMessage(ErrorString*, const String* message)
+void PageDebuggerAgent::setOverlayMessage(ErrorString&, const String* message)
{
m_overlay->setPausedInDebuggerMessage(message);
}
@@ -142,6 +131,23 @@ void PageDebuggerAgent::didClearMainFrameWindowObject()
didClearGlobalObject();
}
-} // namespace WebCore
+void PageDebuggerAgent::mainFrameStartedLoading()
+{
+ if (isPaused()) {
+ setSuppressAllPauses(true);
+ ErrorString unused;
+ resume(unused);
+ }
+}
+
+void PageDebuggerAgent::mainFrameStoppedLoading()
+{
+ setSuppressAllPauses(false);
+}
-#endif // ENABLE(INSPECTOR)
+void PageDebuggerAgent::mainFrameNavigated()
+{
+ setSuppressAllPauses(false);
+}
+
+} // namespace WebCore