LibDevTools+LibWebView: Take advantage of IPC encoding improvements

This commit is contained in:
Timothy Flynn 2025-03-08 11:00:03 -05:00 committed by Tim Flynn
parent 62912b985a
commit 5f76324af5
Notes: github-actions[bot] 2025-03-09 15:15:42 +00:00
9 changed files with 55 additions and 55 deletions

View file

@ -131,7 +131,7 @@ void NodeActor::handle_message(StringView type, JsonObject const& message)
};
if (attribute_to_replace.has_value()) {
devtools().delegate().replace_dom_node_attribute(dom_node->tab->description(), dom_node->identifier.id, attribute_to_replace.release_value(), move(replacement_attributes), move(on_complete));
devtools().delegate().replace_dom_node_attribute(dom_node->tab->description(), dom_node->identifier.id, *attribute_to_replace, move(replacement_attributes), move(on_complete));
} else {
devtools().delegate().add_dom_node_attributes(dom_node->tab->description(), dom_node->identifier.id, move(replacement_attributes), move(on_complete));
}
@ -151,7 +151,7 @@ void NodeActor::handle_message(StringView type, JsonObject const& message)
auto block_token = block_responses();
devtools().delegate().set_dom_node_text(
dom_node->tab->description(), dom_node->identifier.id, value.release_value(),
dom_node->tab->description(), dom_node->identifier.id, *value,
[weak_self = make_weak_ptr<NodeActor>(), block_token = move(block_token)](ErrorOr<Web::UniqueNodeID> node_id) mutable {
if (node_id.is_error()) {
dbgln_if(DEVTOOLS_DEBUG, "Unable to edit DOM node: {}", node_id.error());

View file

@ -117,7 +117,7 @@ void WalkerActor::handle_message(StringView type, JsonObject const& message)
auto block_token = block_responses();
devtools().delegate().set_dom_node_tag(
dom_node->tab->description(), dom_node->identifier.id, tag_name.release_value(),
dom_node->tab->description(), dom_node->identifier.id, *tag_name,
[weak_self = make_weak_ptr<WalkerActor>(), block_token = move(block_token)](ErrorOr<Web::UniqueNodeID> node_id) mutable {
if (node_id.is_error()) {
dbgln_if(DEVTOOLS_DEBUG, "Unable to edit DOM node: {}", node_id.error());

View file

@ -42,16 +42,16 @@ public:
virtual void stop_listening_for_dom_mutations(TabDescription const&) const { }
using OnDOMNodeEditComplete = Function<void(ErrorOr<Web::UniqueNodeID>)>;
virtual void set_dom_node_text(TabDescription const&, Web::UniqueNodeID, String, OnDOMNodeEditComplete) const { }
virtual void set_dom_node_tag(TabDescription const&, Web::UniqueNodeID, String, OnDOMNodeEditComplete) const { }
virtual void add_dom_node_attributes(TabDescription const&, Web::UniqueNodeID, Vector<WebView::Attribute>, OnDOMNodeEditComplete) const { }
virtual void replace_dom_node_attribute(TabDescription const&, Web::UniqueNodeID, String, Vector<WebView::Attribute>, OnDOMNodeEditComplete) const { }
virtual void set_dom_node_text(TabDescription const&, Web::UniqueNodeID, String const&, OnDOMNodeEditComplete) const { }
virtual void set_dom_node_tag(TabDescription const&, Web::UniqueNodeID, String const&, OnDOMNodeEditComplete) const { }
virtual void add_dom_node_attributes(TabDescription const&, Web::UniqueNodeID, ReadonlySpan<WebView::Attribute>, OnDOMNodeEditComplete) const { }
virtual void replace_dom_node_attribute(TabDescription const&, Web::UniqueNodeID, String const&, ReadonlySpan<WebView::Attribute>, OnDOMNodeEditComplete) const { }
virtual void create_child_element(TabDescription const&, Web::UniqueNodeID, OnDOMNodeEditComplete) const { }
virtual void clone_dom_node(TabDescription const&, Web::UniqueNodeID, OnDOMNodeEditComplete) const { }
virtual void remove_dom_node(TabDescription const&, Web::UniqueNodeID, OnDOMNodeEditComplete) const { }
using OnScriptEvaluationComplete = Function<void(ErrorOr<JsonValue>)>;
virtual void evaluate_javascript(TabDescription const&, String, OnScriptEvaluationComplete) const { }
virtual void evaluate_javascript(TabDescription const&, String const&, OnScriptEvaluationComplete) const { }
using OnConsoleMessageAvailable = Function<void(i32 message_id)>;
using OnReceivedConsoleMessages = Function<void(i32 start_index, Vector<WebView::ConsoleOutput>)>;

View file

@ -458,31 +458,31 @@ static void edit_dom_node(DevTools::TabDescription const& description, Applicati
edit(*view);
}
void Application::set_dom_node_text(DevTools::TabDescription const& description, Web::UniqueNodeID node_id, String value, OnDOMNodeEditComplete on_complete) const
void Application::set_dom_node_text(DevTools::TabDescription const& description, Web::UniqueNodeID node_id, String const& value, OnDOMNodeEditComplete on_complete) const
{
edit_dom_node(description, move(on_complete), [&](auto& view) {
view.set_dom_node_text(node_id, move(value));
view.set_dom_node_text(node_id, value);
});
}
void Application::set_dom_node_tag(DevTools::TabDescription const& description, Web::UniqueNodeID node_id, String value, OnDOMNodeEditComplete on_complete) const
void Application::set_dom_node_tag(DevTools::TabDescription const& description, Web::UniqueNodeID node_id, String const& value, OnDOMNodeEditComplete on_complete) const
{
edit_dom_node(description, move(on_complete), [&](auto& view) {
view.set_dom_node_tag(node_id, move(value));
view.set_dom_node_tag(node_id, value);
});
}
void Application::add_dom_node_attributes(DevTools::TabDescription const& description, Web::UniqueNodeID node_id, Vector<Attribute> replacement_attributes, OnDOMNodeEditComplete on_complete) const
void Application::add_dom_node_attributes(DevTools::TabDescription const& description, Web::UniqueNodeID node_id, ReadonlySpan<Attribute> replacement_attributes, OnDOMNodeEditComplete on_complete) const
{
edit_dom_node(description, move(on_complete), [&](auto& view) {
view.add_dom_node_attributes(node_id, move(replacement_attributes));
view.add_dom_node_attributes(node_id, replacement_attributes);
});
}
void Application::replace_dom_node_attribute(DevTools::TabDescription const& description, Web::UniqueNodeID node_id, String name, Vector<Attribute> replacement_attributes, OnDOMNodeEditComplete on_complete) const
void Application::replace_dom_node_attribute(DevTools::TabDescription const& description, Web::UniqueNodeID node_id, String const& name, ReadonlySpan<Attribute> replacement_attributes, OnDOMNodeEditComplete on_complete) const
{
edit_dom_node(description, move(on_complete), [&](auto& view) {
view.replace_dom_node_attribute(node_id, move(name), move(replacement_attributes));
view.replace_dom_node_attribute(node_id, name, replacement_attributes);
});
}
@ -507,7 +507,7 @@ void Application::remove_dom_node(DevTools::TabDescription const& description, W
});
}
void Application::evaluate_javascript(DevTools::TabDescription const& description, String script, OnScriptEvaluationComplete on_complete) const
void Application::evaluate_javascript(DevTools::TabDescription const& description, String const& script, OnScriptEvaluationComplete on_complete) const
{
auto view = ViewImplementation::find_view_by_id(description.id);
if (!view.has_value()) {
@ -520,7 +520,7 @@ void Application::evaluate_javascript(DevTools::TabDescription const& descriptio
on_complete(move(result));
};
view->js_console_input(move(script));
view->js_console_input(script);
}
void Application::listen_for_console_messages(DevTools::TabDescription const& description, OnConsoleMessageAvailable on_console_message_available, OnReceivedConsoleMessages on_received_console_output) const

View file

@ -98,14 +98,14 @@ private:
virtual void clear_highlighted_dom_node(DevTools::TabDescription const&) const override;
virtual void listen_for_dom_mutations(DevTools::TabDescription const&, OnDOMMutationReceived) const override;
virtual void stop_listening_for_dom_mutations(DevTools::TabDescription const&) const override;
virtual void set_dom_node_text(DevTools::TabDescription const&, Web::UniqueNodeID, String, OnDOMNodeEditComplete) const override;
virtual void set_dom_node_tag(DevTools::TabDescription const&, Web::UniqueNodeID, String, OnDOMNodeEditComplete) const override;
virtual void add_dom_node_attributes(DevTools::TabDescription const&, Web::UniqueNodeID, Vector<Attribute>, OnDOMNodeEditComplete) const override;
virtual void replace_dom_node_attribute(DevTools::TabDescription const&, Web::UniqueNodeID, String, Vector<Attribute>, OnDOMNodeEditComplete) const override;
virtual void set_dom_node_text(DevTools::TabDescription const&, Web::UniqueNodeID, String const&, OnDOMNodeEditComplete) const override;
virtual void set_dom_node_tag(DevTools::TabDescription const&, Web::UniqueNodeID, String const&, OnDOMNodeEditComplete) const override;
virtual void add_dom_node_attributes(DevTools::TabDescription const&, Web::UniqueNodeID, ReadonlySpan<Attribute>, OnDOMNodeEditComplete) const override;
virtual void replace_dom_node_attribute(DevTools::TabDescription const&, Web::UniqueNodeID, String const&, ReadonlySpan<Attribute>, OnDOMNodeEditComplete) const override;
virtual void create_child_element(DevTools::TabDescription const&, Web::UniqueNodeID, OnDOMNodeEditComplete) const override;
virtual void clone_dom_node(DevTools::TabDescription const&, Web::UniqueNodeID, OnDOMNodeEditComplete) const override;
virtual void remove_dom_node(DevTools::TabDescription const&, Web::UniqueNodeID, OnDOMNodeEditComplete) const override;
virtual void evaluate_javascript(DevTools::TabDescription const&, String, OnScriptEvaluationComplete) const override;
virtual void evaluate_javascript(DevTools::TabDescription const&, String const&, OnScriptEvaluationComplete) const override;
virtual void listen_for_console_messages(DevTools::TabDescription const&, OnConsoleMessageAvailable, OnReceivedConsoleMessages) const override;
virtual void stop_listening_for_console_messages(DevTools::TabDescription const&) const override;
virtual void request_console_messages(DevTools::TabDescription const&, i32) const override;

View file

@ -196,7 +196,7 @@ void ViewImplementation::enqueue_input_event(Web::InputEvent event)
auto cloned_event = event.clone_without_chrome_data();
cloned_event.files = move(event.files);
client().async_drag_event(m_client_state.page_index, move(cloned_event));
client().async_drag_event(m_client_state.page_index, cloned_event);
});
}
@ -236,9 +236,9 @@ void ViewImplementation::set_preferred_motion(Web::CSS::PreferredMotion motion)
client().async_set_preferred_motion(page_id(), motion);
}
void ViewImplementation::set_preferred_languages(Vector<String> preferred_languages)
void ViewImplementation::set_preferred_languages(ReadonlySpan<String> preferred_languages)
{
client().async_set_preferred_languages(page_id(), move(preferred_languages));
client().async_set_preferred_languages(page_id(), preferred_languages);
}
void ViewImplementation::set_enable_do_not_track(bool enable)
@ -315,7 +315,7 @@ void ViewImplementation::get_hovered_node_id()
void ViewImplementation::inspect_dom_node(Web::UniqueNodeID node_id, Optional<Web::CSS::Selector::PseudoElement::Type> pseudo_element)
{
client().async_inspect_dom_node(page_id(), node_id, move(pseudo_element));
client().async_inspect_dom_node(page_id(), node_id, pseudo_element);
}
void ViewImplementation::clear_inspected_dom_node()
@ -325,7 +325,7 @@ void ViewImplementation::clear_inspected_dom_node()
void ViewImplementation::highlight_dom_node(Web::UniqueNodeID node_id, Optional<Web::CSS::Selector::PseudoElement::Type> pseudo_element)
{
client().async_highlight_dom_node(page_id(), node_id, move(pseudo_element));
client().async_highlight_dom_node(page_id(), node_id, pseudo_element);
}
void ViewImplementation::clear_highlighted_dom_node()
@ -338,24 +338,24 @@ void ViewImplementation::set_listen_for_dom_mutations(bool listen_for_dom_mutati
client().async_set_listen_for_dom_mutations(page_id(), listen_for_dom_mutations);
}
void ViewImplementation::set_dom_node_text(Web::UniqueNodeID node_id, String text)
void ViewImplementation::set_dom_node_text(Web::UniqueNodeID node_id, String const& text)
{
client().async_set_dom_node_text(page_id(), node_id, move(text));
client().async_set_dom_node_text(page_id(), node_id, text);
}
void ViewImplementation::set_dom_node_tag(Web::UniqueNodeID node_id, String name)
void ViewImplementation::set_dom_node_tag(Web::UniqueNodeID node_id, String const& name)
{
client().async_set_dom_node_tag(page_id(), node_id, move(name));
client().async_set_dom_node_tag(page_id(), node_id, name);
}
void ViewImplementation::add_dom_node_attributes(Web::UniqueNodeID node_id, Vector<Attribute> attributes)
void ViewImplementation::add_dom_node_attributes(Web::UniqueNodeID node_id, ReadonlySpan<Attribute> attributes)
{
client().async_add_dom_node_attributes(page_id(), node_id, move(attributes));
client().async_add_dom_node_attributes(page_id(), node_id, attributes);
}
void ViewImplementation::replace_dom_node_attribute(Web::UniqueNodeID node_id, String name, Vector<Attribute> replacement_attributes)
void ViewImplementation::replace_dom_node_attribute(Web::UniqueNodeID node_id, String const& name, ReadonlySpan<Attribute> replacement_attributes)
{
client().async_replace_dom_node_attribute(page_id(), node_id, move(name), move(replacement_attributes));
client().async_replace_dom_node_attribute(page_id(), node_id, name, replacement_attributes);
}
void ViewImplementation::create_child_element(Web::UniqueNodeID node_id)
@ -398,14 +398,14 @@ void ViewImplementation::debug_request(ByteString const& request, ByteString con
client().async_debug_request(page_id(), request, argument);
}
void ViewImplementation::run_javascript(String js_source)
void ViewImplementation::run_javascript(String const& js_source)
{
client().async_run_javascript(page_id(), move(js_source));
client().async_run_javascript(page_id(), js_source);
}
void ViewImplementation::js_console_input(String js_source)
void ViewImplementation::js_console_input(String const& js_source)
{
client().async_js_console_input(page_id(), move(js_source));
client().async_js_console_input(page_id(), js_source);
}
void ViewImplementation::js_console_request_messages(i32 start_index)
@ -423,9 +423,9 @@ void ViewImplementation::confirm_closed(bool accepted)
client().async_confirm_closed(page_id(), accepted);
}
void ViewImplementation::prompt_closed(Optional<String> response)
void ViewImplementation::prompt_closed(Optional<String> const& response)
{
client().async_prompt_closed(page_id(), move(response));
client().async_prompt_closed(page_id(), response);
}
void ViewImplementation::color_picker_update(Optional<Color> picked_color, Web::HTML::ColorPickerUpdateState state)
@ -740,9 +740,9 @@ ErrorOr<LexicalPath> ViewImplementation::dump_gc_graph()
return path;
}
void ViewImplementation::set_user_style_sheet(String source)
void ViewImplementation::set_user_style_sheet(String const& source)
{
client().async_set_user_style(page_id(), move(source));
client().async_set_user_style(page_id(), source);
}
void ViewImplementation::use_native_user_style_sheet()

View file

@ -86,7 +86,7 @@ public:
void set_preferred_contrast(Web::CSS::PreferredContrast);
void set_preferred_motion(Web::CSS::PreferredMotion);
void set_preferred_languages(Vector<String>);
void set_preferred_languages(ReadonlySpan<String>);
void set_enable_do_not_track(bool);
@ -113,10 +113,10 @@ public:
void clear_highlighted_dom_node();
void set_listen_for_dom_mutations(bool);
void set_dom_node_text(Web::UniqueNodeID node_id, String text);
void set_dom_node_tag(Web::UniqueNodeID node_id, String name);
void add_dom_node_attributes(Web::UniqueNodeID node_id, Vector<Attribute> attributes);
void replace_dom_node_attribute(Web::UniqueNodeID node_id, String name, Vector<Attribute> replacement_attributes);
void set_dom_node_text(Web::UniqueNodeID node_id, String const& text);
void set_dom_node_tag(Web::UniqueNodeID node_id, String const& name);
void add_dom_node_attributes(Web::UniqueNodeID node_id, ReadonlySpan<Attribute> attributes);
void replace_dom_node_attribute(Web::UniqueNodeID node_id, String const& name, ReadonlySpan<Attribute> replacement_attributes);
void create_child_element(Web::UniqueNodeID node_id);
void create_child_text_node(Web::UniqueNodeID node_id);
void clone_dom_node(Web::UniqueNodeID node_id);
@ -128,13 +128,13 @@ public:
void debug_request(ByteString const& request, ByteString const& argument = {});
void run_javascript(String);
void js_console_input(String);
void run_javascript(String const&);
void js_console_input(String const&);
void js_console_request_messages(i32 start_index);
void alert_closed();
void confirm_closed(bool accepted);
void prompt_closed(Optional<String> response);
void prompt_closed(Optional<String> const& response);
void color_picker_update(Optional<Color> picked_color, Web::HTML::ColorPickerUpdateState state);
void file_picker_closed(Vector<Web::HTML::SelectedFile> selected_files);
void select_dropdown_closed(Optional<u32> const& selected_item_id);
@ -170,7 +170,7 @@ public:
ErrorOr<LexicalPath> dump_gc_graph();
void set_user_style_sheet(String source);
void set_user_style_sheet(String const& source);
// Load Native.css as the User style sheet, which attempts to make WebView content look as close to
// native GUI widgets as possible.
void use_native_user_style_sheet();

View file

@ -994,7 +994,7 @@ void Tab::set_navigator_compatibility_mode(ByteString const& compatibility_mode)
debug_request("navigator-compatibility-mode", compatibility_mode);
}
void Tab::set_preferred_languages(Vector<String> const& preferred_languages)
void Tab::set_preferred_languages(ReadonlySpan<String> preferred_languages)
{
m_view->set_preferred_languages(preferred_languages);
}

View file

@ -94,7 +94,7 @@ public:
void set_user_agent_string(ByteString const&);
void set_navigator_compatibility_mode(ByteString const&);
void set_preferred_languages(Vector<String> const& preferred_languages);
void set_preferred_languages(ReadonlySpan<String> preferred_languages);
void set_enable_do_not_track(bool);