/* * Copyright (c) 2025, Tim Flynn * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include #include #include namespace WebContent { class DevToolsConsoleClient final : public WebContentConsoleClient { GC_CELL(DevToolsConsoleClient, WebContentConsoleClient); GC_DECLARE_ALLOCATOR(DevToolsConsoleClient); public: static GC::Ref create(JS::Realm&, JS::Console&, PageClient&); virtual ~DevToolsConsoleClient() override; private: DevToolsConsoleClient(JS::Realm&, JS::Console&, PageClient&, ConsoleGlobalEnvironmentExtensions&); virtual void handle_result(JS::Value) override; virtual void report_exception(JS::Error const&, bool) override; virtual void end_group() override { } virtual void clear() override { } virtual void send_messages(i32 start_index) override; virtual JS::ThrowCompletionOr printer(JS::Console::LogLevel, PrinterArguments) override; Vector m_console_output; }; }