/* * Copyright (c) 2025, Tim Flynn * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include #include #include #include namespace DevTools { class DEVTOOLS_API FrameActor final : public Actor { public: static constexpr auto base_name = "frame"sv; static NonnullRefPtr create(DevToolsServer&, String name, WeakPtr, WeakPtr, WeakPtr, WeakPtr, WeakPtr, WeakPtr, WeakPtr); virtual ~FrameActor() override; void send_frame_update_message(); JsonObject serialize_target() const; private: FrameActor(DevToolsServer&, String name, WeakPtr, WeakPtr, WeakPtr, WeakPtr, WeakPtr, WeakPtr, WeakPtr); void style_sheets_available(JsonObject& response, Vector style_sheets); virtual void handle_message(Message const&) override; void on_console_message(WebView::ConsoleOutput); void on_network_request_started(DevToolsDelegate::NetworkRequestData); void on_network_response_headers_received(DevToolsDelegate::NetworkResponseData); void on_network_response_body_received(u64 request_id, ByteBuffer data); void on_network_request_finished(DevToolsDelegate::NetworkRequestCompleteData); void on_navigation_started(String url); void on_navigation_finished(String url, String title); WeakPtr m_tab; WeakPtr m_css_properties; WeakPtr m_console; WeakPtr m_inspector; WeakPtr m_style_sheets; WeakPtr m_thread; WeakPtr m_accessibility; HashMap> m_network_events; }; }