mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-29 20:29:18 +00:00
LibWebView: Support DOM node highlighting and inspection for DevTools
This commit is contained in:
parent
afb0a0a394
commit
a76d0867d1
Notes:
github-actions[bot]
2025-02-24 17:06:36 +00:00
Author: https://github.com/trflynn89
Commit: a76d0867d1
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/3666
Reviewed-by: https://github.com/AtkinsSJ
2 changed files with 40 additions and 2 deletions
|
@ -363,7 +363,7 @@ Vector<DevTools::CSSProperty> Application::css_property_list() const
|
|||
return property_list;
|
||||
}
|
||||
|
||||
void Application::inspect_tab(DevTools::TabDescription const& description, DevTools::DevToolsDelegate::OnTabInspectionComplete on_complete) const
|
||||
void Application::inspect_tab(DevTools::TabDescription const& description, OnTabInspectionComplete on_complete) const
|
||||
{
|
||||
auto view = ViewImplementation::find_view_by_id(description.id);
|
||||
if (!view.has_value()) {
|
||||
|
@ -379,4 +379,38 @@ void Application::inspect_tab(DevTools::TabDescription const& description, DevTo
|
|||
view->inspect_dom_tree();
|
||||
}
|
||||
|
||||
void Application::inspect_dom_node(DevTools::TabDescription const& description, Web::UniqueNodeID node_id, Optional<Web::CSS::Selector::PseudoElement::Type> pseudo_element, OnDOMNodeInspectionComplete on_complete) const
|
||||
{
|
||||
auto view = ViewImplementation::find_view_by_id(description.id);
|
||||
if (!view.has_value()) {
|
||||
on_complete(Error::from_string_literal("Unable to locate tab"));
|
||||
return;
|
||||
}
|
||||
|
||||
view->on_received_dom_node_properties = [&view = *view, on_complete = move(on_complete)](ViewImplementation::DOMNodeProperties properties) {
|
||||
view.on_received_dom_node_properties = nullptr;
|
||||
on_complete(move(properties));
|
||||
};
|
||||
|
||||
view->inspect_dom_node(node_id, pseudo_element);
|
||||
}
|
||||
|
||||
void Application::clear_inspected_dom_node(DevTools::TabDescription const& description) const
|
||||
{
|
||||
if (auto view = ViewImplementation::find_view_by_id(description.id); view.has_value())
|
||||
view->clear_inspected_dom_node();
|
||||
}
|
||||
|
||||
void Application::highlight_dom_node(DevTools::TabDescription const& description, Web::UniqueNodeID node_id, Optional<Web::CSS::Selector::PseudoElement::Type> pseudo_element) const
|
||||
{
|
||||
if (auto view = ViewImplementation::find_view_by_id(description.id); view.has_value())
|
||||
view->highlight_dom_node(node_id, pseudo_element);
|
||||
}
|
||||
|
||||
void Application::clear_highlighted_dom_node(DevTools::TabDescription const& description) const
|
||||
{
|
||||
if (auto view = ViewImplementation::find_view_by_id(description.id); view.has_value())
|
||||
view->clear_highlighted_dom_node();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue