LibWebView+Ladybird: Move DOM inspection helpers to ViewImplementation

This commit is contained in:
Linus Groh 2023-01-12 20:22:14 +00:00 committed by Andreas Kling
parent f313708237
commit 2428e3e675
Notes: sideshowbarker 2024-07-17 01:47:17 +09:00
9 changed files with 56 additions and 96 deletions

View file

@ -4,6 +4,8 @@
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <AK/Error.h>
#include <AK/String.h>
#include <LibWebView/ViewImplementation.h>
namespace WebView {
@ -47,4 +49,37 @@ void ViewImplementation::get_source()
client().async_get_source();
}
void ViewImplementation::inspect_dom_tree()
{
client().async_inspect_dom_tree();
}
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> 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_deprecated_string(response.take_computed_style())),
.resolved_style_json = TRY(String::from_deprecated_string(response.take_resolved_style())),
.custom_properties_json = TRY(String::from_deprecated_string(response.take_custom_properties())),
.node_box_sizing_json = TRY(String::from_deprecated_string(response.take_node_box_sizing())),
};
}
void ViewImplementation::clear_inspected_dom_node()
{
client().inspect_dom_node(0, {});
}
i32 ViewImplementation::get_hovered_node_id()
{
return client().get_hovered_node_id();
}
}