InspectorRuntimeAgent.h [plain text]
#ifndef InspectorRuntimeAgent_h
#define InspectorRuntimeAgent_h
#if ENABLE(INSPECTOR)
#include "InspectorBaseAgent.h"
#include "ScriptState.h"
#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
namespace WebCore {
class InjectedScript;
class InjectedScriptManager;
class InspectorArray;
class InspectorFrontend;
class InspectorObject;
class InspectorValue;
class InstrumentingAgents;
class ScriptDebugServer;
class WorkerContext;
typedef String ErrorString;
class InspectorRuntimeAgent : public InspectorBaseAgent<InspectorRuntimeAgent>, public InspectorBackendDispatcher::RuntimeCommandHandler {
WTF_MAKE_NONCOPYABLE(InspectorRuntimeAgent);
public:
virtual ~InspectorRuntimeAgent();
bool enabled() { return m_enabled; }
virtual void enable(ErrorString*) { m_enabled = true; }
virtual void disable(ErrorString*) { m_enabled = false; }
virtual void parse(ErrorString*, const String& expression, TypeBuilder::Runtime::SyntaxErrorType::Enum* result, TypeBuilder::OptOutput<String>* message, RefPtr<TypeBuilder::Runtime::ErrorRange>&);
virtual void evaluate(ErrorString*,
const String& expression,
const String* objectGroup,
const bool* includeCommandLineAPI,
const bool* doNotPauseOnExceptionsAndMuteConsole,
const int* executionContextId,
const bool* returnByValue,
const bool* generatePreview,
RefPtr<TypeBuilder::Runtime::RemoteObject>& result,
TypeBuilder::OptOutput<bool>* wasThrown);
virtual void callFunctionOn(ErrorString*,
const String& objectId,
const String& expression,
const RefPtr<InspectorArray>* optionalArguments,
const bool* doNotPauseOnExceptionsAndMuteConsole,
const bool* returnByValue,
const bool* generatePreview,
RefPtr<TypeBuilder::Runtime::RemoteObject>& result,
TypeBuilder::OptOutput<bool>* wasThrown);
virtual void releaseObject(ErrorString*, const String& objectId);
virtual void getProperties(ErrorString*, const String& objectId, const bool* ownProperties, RefPtr<TypeBuilder::Array<TypeBuilder::Runtime::PropertyDescriptor> >& result, RefPtr<TypeBuilder::Array<TypeBuilder::Runtime::InternalPropertyDescriptor> >& internalProperties);
virtual void releaseObjectGroup(ErrorString*, const String& objectGroup);
virtual void run(ErrorString*);
#if ENABLE(JAVASCRIPT_DEBUGGER)
void setScriptDebugServer(ScriptDebugServer*);
#endif
protected:
InspectorRuntimeAgent(InstrumentingAgents*, InspectorCompositeState*, InjectedScriptManager*);
virtual InjectedScript injectedScriptForEval(ErrorString*, const int* executionContextId) = 0;
virtual void muteConsole() = 0;
virtual void unmuteConsole() = 0;
InjectedScriptManager* injectedScriptManager() { return m_injectedScriptManager; }
bool m_enabled;
private:
InjectedScriptManager* m_injectedScriptManager;
#if ENABLE(JAVASCRIPT_DEBUGGER)
ScriptDebugServer* m_scriptDebugServer;
#endif
};
}
#endif // ENABLE(INSPECTOR)
#endif // InspectorRuntimeAgent_h