PageDebuggerAgent.cpp [plain text]
#include "config.h"
#if ENABLE(JAVASCRIPT_DEBUGGER) && ENABLE(INSPECTOR)
#include "PageDebuggerAgent.h"
#include "InspectorOverlay.h"
#include "InspectorPageAgent.h"
#include "InstrumentingAgents.h"
#include "Page.h"
#include "PageConsole.h"
#include "PageScriptDebugServer.h"
namespace WebCore {
PassOwnPtr<PageDebuggerAgent> PageDebuggerAgent::create(InstrumentingAgents* instrumentingAgents, InspectorCompositeState* inspectorState, InspectorPageAgent* pageAgent, InjectedScriptManager* injectedScriptManager, InspectorOverlay* overlay)
{
return adoptPtr(new PageDebuggerAgent(instrumentingAgents, inspectorState, pageAgent, injectedScriptManager, overlay));
}
PageDebuggerAgent::PageDebuggerAgent(InstrumentingAgents* instrumentingAgents, InspectorCompositeState* inspectorState, InspectorPageAgent* pageAgent, InjectedScriptManager* injectedScriptManager, InspectorOverlay* overlay)
: InspectorDebuggerAgent(instrumentingAgents, inspectorState, injectedScriptManager)
, m_pageAgent(pageAgent)
, m_overlay(overlay)
{
}
PageDebuggerAgent::~PageDebuggerAgent()
{
}
void PageDebuggerAgent::enable()
{
InspectorDebuggerAgent::enable();
m_instrumentingAgents->setPageDebuggerAgent(this);
}
void PageDebuggerAgent::disable()
{
InspectorDebuggerAgent::disable();
m_instrumentingAgents->setPageDebuggerAgent(0);
}
void PageDebuggerAgent::startListeningScriptDebugServer()
{
scriptDebugServer().addListener(this, m_pageAgent->page());
}
void PageDebuggerAgent::stopListeningScriptDebugServer()
{
scriptDebugServer().removeListener(this, m_pageAgent->page());
}
PageScriptDebugServer& PageDebuggerAgent::scriptDebugServer()
{
return PageScriptDebugServer::shared();
}
void PageDebuggerAgent::muteConsole()
{
PageConsole::mute();
}
void PageDebuggerAgent::unmuteConsole()
{
PageConsole::unmute();
}
InjectedScript PageDebuggerAgent::injectedScriptForEval(ErrorString* errorString, const int* executionContextId)
{
if (!executionContextId) {
ScriptState* scriptState = mainWorldScriptState(m_pageAgent->mainFrame());
return injectedScriptManager()->injectedScriptFor(scriptState);
}
InjectedScript injectedScript = injectedScriptManager()->injectedScriptForId(*executionContextId);
if (injectedScript.hasNoValue())
*errorString = "Execution context with given id not found.";
return injectedScript;
}
void PageDebuggerAgent::setOverlayMessage(ErrorString*, const String* message)
{
m_overlay->setPausedInDebuggerMessage(message);
}
void PageDebuggerAgent::didClearMainFrameWindowObject()
{
reset();
scriptDebugServer().setScriptPreprocessor(m_pageAgent->scriptPreprocessor());
}
}
#endif // ENABLE(JAVASCRIPT_DEBUGGER) && ENABLE(INSPECTOR)