/* * Copyright (c) 2018-2020, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include #include #include #include namespace WebContent { class ClientConnection final : public IPC::ClientConnection { C_OBJECT(ClientConnection); public: explicit ClientConnection(NonnullRefPtr, int client_id); ~ClientConnection() override; virtual void die() override; private: Web::Page& page(); const Web::Page& page() const; virtual void greet() override; virtual void update_system_theme(Core::AnonymousBuffer const&) override; virtual void update_screen_rect(Gfx::IntRect const&) 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) override; virtual void key_down(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 js_console_initialize() override; virtual void js_console_input(String const&) 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; }; }