1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 12:28:12 +00:00
serenity/Userland/Services/WebContent/WebContentServer.ipc
Timothy Flynn d8fa226a8f Ladybird+LibWebView+WebContent: Make the screenshot IPCs async
These IPCs are different than other IPCs in that we can't just set up a
callback function to be invoked when WebContent sends us the screenshot
data. There are multiple places that would set that callback, and they
would step on each other's toes.

Instead, the screenshot APIs on ViewImplementation now return a Promise
which callers can interact with to receive the screenshot (or an error).
2024-01-01 10:11:45 +01:00

104 lines
4.3 KiB
Text

#include <AK/URL.h>
#include <LibIPC/File.h>
#include <LibCore/AnonymousBuffer.h>
#include <LibGfx/Rect.h>
#include <LibGfx/ShareableBitmap.h>
#include <LibWeb/CSS/PreferredColorScheme.h>
#include <LibWeb/CSS/Selector.h>
#include <LibWeb/WebDriver/ExecuteScript.h>
#include <LibWebView/Attribute.h>
endpoint WebContentServer
{
get_window_handle() => (String handle)
set_window_handle(String handle) =|
connect_to_webdriver(ByteString webdriver_ipc_path) =|
update_system_theme(Core::AnonymousBuffer theme_buffer) =|
update_system_fonts(ByteString default_font_query, ByteString fixed_width_font_query, ByteString window_title_font_query) =|
update_screen_rects(Vector<Web::DevicePixelRect> rects, u32 main_screen_index) =|
load_url(URL url) =|
load_html(ByteString html) =|
add_backing_store(i32 front_bitmap_id, Gfx::ShareableBitmap front_bitmap, i32 back_bitmap_id, Gfx::ShareableBitmap back_bitmap) =|
set_viewport_rect(Web::DevicePixelRect rect) =|
mouse_down(Web::DevicePixelPoint position, Web::DevicePixelPoint screen_position, unsigned button, unsigned buttons, unsigned modifiers) =|
mouse_move(Web::DevicePixelPoint position, Web::DevicePixelPoint screen_position, unsigned button, unsigned buttons, unsigned modifiers) =|
mouse_up(Web::DevicePixelPoint position, Web::DevicePixelPoint screen_position, unsigned button, unsigned buttons, unsigned modifiers) =|
mouse_wheel(Web::DevicePixelPoint position, Web::DevicePixelPoint screen_position, unsigned button, unsigned buttons, unsigned modifiers, Web::DevicePixels wheel_delta_x, Web::DevicePixels wheel_delta_y) =|
doubleclick(Web::DevicePixelPoint position, Web::DevicePixelPoint screen_position, unsigned button, unsigned buttons, unsigned modifiers) =|
key_down(i32 key, unsigned modifiers, u32 code_point) =|
key_up(i32 key, unsigned modifiers, u32 code_point) =|
debug_request(ByteString request, ByteString argument) =|
get_source() =|
inspect_dom_tree() =|
inspect_dom_node(i32 node_id, Optional<Web::CSS::Selector::PseudoElement::Type> pseudo_element) =|
inspect_accessibility_tree() =|
get_hovered_node_id() =|
js_console_input(ByteString js_source) =|
js_console_request_messages(i32 start_index) =|
set_dom_node_text(i32 node_id, String text) =|
set_dom_node_tag(i32 node_id, String name) =|
add_dom_node_attributes(i32 node_id, Vector<WebView::Attribute> attributes) =|
replace_dom_node_attribute(i32 node_id, String name, Vector<WebView::Attribute> replacement_attributes) =|
create_child_element(i32 node_id) =|
create_child_text_node(i32 node_id) =|
clone_dom_node(i32 node_id) =|
remove_dom_node(i32 node_id) =|
get_dom_node_html(i32 node_id) =|
take_document_screenshot() =|
take_dom_node_screenshot(i32 node_id) =|
dump_gc_graph() => (String json)
run_javascript(ByteString js_source) =|
dump_layout_tree() => (ByteString dump)
dump_paint_tree() => (ByteString dump)
dump_text() => (ByteString dump)
get_selected_text() => (ByteString selection)
select_all() =|
set_content_filters(Vector<String> filters) =|
set_autoplay_allowed_on_all_websites() =|
set_autoplay_allowlist(Vector<String> allowlist) =|
set_proxy_mappings(Vector<ByteString> proxies, HashMap<ByteString,size_t> mappings) =|
set_preferred_color_scheme(Web::CSS::PreferredColorScheme color_scheme) =|
set_has_focus(bool has_focus) =|
set_is_scripting_enabled(bool is_scripting_enabled) =|
set_device_pixels_per_css_pixel(float device_pixels_per_css_pixel) =|
set_window_position(Web::DevicePixelPoint position) =|
set_window_size(Web::DevicePixelSize size) =|
get_local_storage_entries() => (OrderedHashMap<String,String> entries)
get_session_storage_entries() => (OrderedHashMap<String,String> entries)
handle_file_return(i32 error, Optional<IPC::File> file, i32 request_id) =|
set_system_visibility_state(bool visible) =|
alert_closed() =|
confirm_closed(bool accepted) =|
prompt_closed(Optional<String> response) =|
color_picker_closed(Optional<Color> picked_color) =|
select_dropdown_closed(Optional<String> value) =|
toggle_media_play_state() =|
toggle_media_mute_state() =|
toggle_media_loop_state() =|
toggle_media_controls_state() =|
set_user_style(String source) =|
enable_inspector_prototype() =|
}