mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-05-01 16:58:52 +00:00
LibDevTools+LibWebView: Implement requests to edit DOM node text
This commit is contained in:
parent
8bcc3d3797
commit
57e0a3f8b5
Notes:
github-actions[bot]
2025-03-08 00:27:26 +00:00
Author: https://github.com/trflynn89
Commit: 57e0a3f8b5
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/3850
5 changed files with 70 additions and 1 deletions
|
@ -437,6 +437,34 @@ void Application::stop_listening_for_dom_mutations(DevTools::TabDescription cons
|
|||
view->set_listen_for_dom_mutations(false);
|
||||
}
|
||||
|
||||
template<typename Edit>
|
||||
static void edit_dom_node(DevTools::TabDescription const& description, Application::OnDOMNodeEditComplete on_complete, Edit&& edit)
|
||||
{
|
||||
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_finshed_editing_dom_node = [&view = *view, on_complete = move(on_complete)](auto node_id) {
|
||||
view.on_finshed_editing_dom_node = nullptr;
|
||||
|
||||
if (node_id.has_value())
|
||||
on_complete(*node_id);
|
||||
else
|
||||
on_complete(Error::from_string_literal("Unable to find DOM node to edit"));
|
||||
};
|
||||
|
||||
edit(*view);
|
||||
}
|
||||
|
||||
void Application::set_dom_node_text(DevTools::TabDescription const& description, Web::UniqueNodeID node_id, String value, OnDOMNodeEditComplete on_complete) const
|
||||
{
|
||||
edit_dom_node(description, move(on_complete), [&](auto& view) {
|
||||
view.set_dom_node_text(node_id, move(value));
|
||||
});
|
||||
}
|
||||
|
||||
void Application::evaluate_javascript(DevTools::TabDescription const& description, String script, OnScriptEvaluationComplete on_complete) const
|
||||
{
|
||||
auto view = ViewImplementation::find_view_by_id(description.id);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue