1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 08:08:12 +00:00

LibWebView+WebContent: Make the DOM node inspection IPC async

This commit is contained in:
Timothy Flynn 2023-12-30 09:30:27 -05:00 committed by Andreas Kling
parent 4c3bff264e
commit 760ba5932b
9 changed files with 80 additions and 53 deletions

View file

@ -131,28 +131,19 @@ void ViewImplementation::inspect_dom_tree()
client().async_inspect_dom_tree();
}
void ViewImplementation::inspect_dom_node(i32 node_id, Optional<Web::CSS::Selector::PseudoElement::Type> pseudo_element)
{
client().async_inspect_dom_node(node_id, move(pseudo_element));
}
void ViewImplementation::inspect_accessibility_tree()
{
client().async_inspect_accessibility_tree();
}
ErrorOr<ViewImplementation::DOMNodeProperties> ViewImplementation::inspect_dom_node(i32 node_id, Optional<Web::CSS::Selector::PseudoElement::Type> pseudo_element)
{
auto response = client().inspect_dom_node(node_id, pseudo_element);
if (!response.has_style())
return Error::from_string_view("Inspected node returned no style"sv);
return DOMNodeProperties {
.computed_style_json = TRY(String::from_byte_string(response.take_computed_style())),
.resolved_style_json = TRY(String::from_byte_string(response.take_resolved_style())),
.custom_properties_json = TRY(String::from_byte_string(response.take_custom_properties())),
.node_box_sizing_json = TRY(String::from_byte_string(response.take_node_box_sizing())),
.aria_properties_state_json = TRY(String::from_byte_string(response.take_aria_properties_state())),
};
}
void ViewImplementation::clear_inspected_dom_node()
{
client().inspect_dom_node(0, {});
inspect_dom_node(0, {});
}
i32 ViewImplementation::get_hovered_node_id()