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