#ifndef JSConsoleClient_h
#define JSConsoleClient_h
#include "ConsoleClient.h"
namespace Inspector {
class InspectorConsoleAgent;
class InspectorProfilerAgent;
class JSConsoleClient final : public JSC::ConsoleClient {
WTF_MAKE_FAST_ALLOCATED;
public:
explicit JSConsoleClient(InspectorConsoleAgent*, InspectorProfilerAgent*);
virtual ~JSConsoleClient() { }
static bool logToSystemConsole();
static void setLogToSystemConsole(bool);
static void initializeLogToSystemConsole();
protected:
virtual void messageWithTypeAndLevel(MessageType, MessageLevel, JSC::ExecState*, PassRefPtr<ScriptArguments>) override;
virtual void count(JSC::ExecState*, PassRefPtr<ScriptArguments>) override;
virtual void profile(JSC::ExecState*, const String& title) override;
virtual void profileEnd(JSC::ExecState*, const String& title) override;
virtual void time(JSC::ExecState*, const String& title) override;
virtual void timeEnd(JSC::ExecState*, const String& title) override;
virtual void timeStamp(JSC::ExecState*, PassRefPtr<ScriptArguments>) override;
private:
void warnUnimplemented(const String& method);
void internalAddMessage(MessageType, MessageLevel, JSC::ExecState*, PassRefPtr<ScriptArguments>);
InspectorConsoleAgent* m_consoleAgent;
InspectorProfilerAgent* m_profilerAgent;
};
}
#endif // !defined(JSConsoleClient_h)