/* * Copyright (c) 2018-2021, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include #include #include #include #include #include namespace WebContent { class ClientConnection final : public IPC::ClientConnection { C_OBJECT(ClientConnection); public: ~ClientConnection() override; virtual void die() override; void initialize_js_console(Badge); private: explicit ClientConnection(NonnullOwnPtr); Web::Page& page(); const Web::Page& page() const; virtual void update_system_theme(Core::AnonymousBuffer const&) override; virtual void update_system_fonts(String const&, String const&) override; virtual void update_screen_rects(Vector const&, u32) override; virtual void load_url(URL const&) override; virtual void load_html(String const&, URL const&) override; virtual void paint(Gfx::IntRect const&, i32) override; virtual void set_viewport_rect(Gfx::IntRect const&) override; virtual void mouse_down(Gfx::IntPoint const&, unsigned, unsigned, unsigned) override; virtual void mouse_move(Gfx::IntPoint const&, unsigned, unsigned, unsigned) override; virtual void mouse_up(Gfx::IntPoint const&, unsigned, unsigned, unsigned) override; virtual void mouse_wheel(Gfx::IntPoint const&, unsigned, unsigned, unsigned, i32, i32) override; virtual void key_down(i32, unsigned, u32) override; virtual void key_up(i32, unsigned, u32) override; virtual void add_backing_store(i32, Gfx::ShareableBitmap const&) override; virtual void remove_backing_store(i32) override; virtual void debug_request(String const&, String const&) override; virtual void get_source() override; virtual void inspect_dom_tree() override; virtual Messages::WebContentServer::InspectDomNodeResponse inspect_dom_node(i32) override; virtual Messages::WebContentServer::GetHoveredNodeIdResponse get_hovered_node_id() override; virtual Messages::WebContentServer::DumpLayoutTreeResponse dump_layout_tree() override; virtual void set_content_filters(Vector const&) override; virtual void set_preferred_color_scheme(Web::CSS::PreferredColorScheme const&) override; virtual void js_console_input(String const&) override; virtual void run_javascript(String const&) override; virtual void js_console_request_messages(i32) override; virtual Messages::WebContentServer::GetSelectedTextResponse get_selected_text() override; virtual void select_all() override; void flush_pending_paint_requests(); NonnullOwnPtr m_page_host; struct PaintRequest { Gfx::IntRect content_rect; NonnullRefPtr bitmap; i32 bitmap_id { -1 }; }; Vector m_pending_paint_requests; RefPtr m_paint_flush_timer; HashMap> m_backing_stores; WeakPtr m_interpreter; OwnPtr m_console_client; JS::Handle m_console_global_object; }; }