/* * Copyright (c) 2025, Tim Flynn * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include #include namespace WebView { struct ConsoleLog { JS::Console::LogLevel level; Vector arguments; }; struct StackFrame { Optional function; Optional file; Optional line; Optional column; }; struct ConsoleError { String name; String message; Vector trace; bool inside_promise { false }; }; struct ConsoleOutput { UnixDateTime timestamp; Variant output; }; } namespace IPC { template<> ErrorOr encode(Encoder&, WebView::ConsoleLog const&); template<> ErrorOr decode(Decoder&); template<> ErrorOr encode(Encoder&, WebView::StackFrame const&); template<> ErrorOr decode(Decoder&); template<> ErrorOr encode(Encoder&, WebView::ConsoleError const&); template<> ErrorOr decode(Decoder&); template<> ErrorOr encode(Encoder&, WebView::ConsoleOutput const&); template<> ErrorOr decode(Decoder&); }