mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-19 17:27:51 +03:00
LibWebView+WebContent: Add a WebContent IPC to add DOM attributes
This commit is contained in:
parent
2cdad0f068
commit
86d90f324d
Notes:
sideshowbarker
2024-07-17 10:39:39 +09:00
Author: https://github.com/trflynn89 Commit: https://github.com/SerenityOS/serenity/commit/86d90f324d Pull-request: https://github.com/SerenityOS/serenity/pull/22182
@ -191,6 +191,11 @@ Optional<i32> ViewImplementation::set_dom_node_tag(i32 node_id, String name)
|
|||||||
return client().set_dom_node_tag(node_id, move(name));
|
return client().set_dom_node_tag(node_id, move(name));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ViewImplementation::add_dom_node_attributes(i32 node_id, Vector<Attribute> attributes)
|
||||||
|
{
|
||||||
|
client().async_add_dom_node_attributes(node_id, move(attributes));
|
||||||
|
}
|
||||||
|
|
||||||
void ViewImplementation::replace_dom_node_attribute(i32 node_id, String name, Vector<Attribute> replacement_attributes)
|
void ViewImplementation::replace_dom_node_attribute(i32 node_id, String name, Vector<Attribute> replacement_attributes)
|
||||||
{
|
{
|
||||||
client().async_replace_dom_node_attribute(node_id, move(name), move(replacement_attributes));
|
client().async_replace_dom_node_attribute(node_id, move(name), move(replacement_attributes));
|
||||||
|
@ -65,6 +65,7 @@ public:
|
|||||||
|
|
||||||
void set_dom_node_text(i32 node_id, String text);
|
void set_dom_node_text(i32 node_id, String text);
|
||||||
Optional<i32> set_dom_node_tag(i32 node_id, String name);
|
Optional<i32> set_dom_node_tag(i32 node_id, String name);
|
||||||
|
void add_dom_node_attributes(i32 node_id, Vector<Attribute> attributes);
|
||||||
void replace_dom_node_attribute(i32 node_id, String name, Vector<Attribute> replacement_attributes);
|
void replace_dom_node_attribute(i32 node_id, String name, Vector<Attribute> replacement_attributes);
|
||||||
|
|
||||||
void debug_request(DeprecatedString const& request, DeprecatedString const& argument = {});
|
void debug_request(DeprecatedString const& request, DeprecatedString const& argument = {});
|
||||||
|
@ -686,6 +686,18 @@ Messages::WebContentServer::SetDomNodeTagResponse ConnectionFromClient::set_dom_
|
|||||||
return new_element->unique_id();
|
return new_element->unique_id();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ConnectionFromClient::add_dom_node_attributes(i32 node_id, Vector<WebView::Attribute> const& attributes)
|
||||||
|
{
|
||||||
|
auto* dom_node = Web::DOM::Node::from_unique_id(node_id);
|
||||||
|
if (!dom_node || !dom_node->is_element())
|
||||||
|
return;
|
||||||
|
|
||||||
|
auto& element = static_cast<Web::DOM::Element&>(*dom_node);
|
||||||
|
|
||||||
|
for (auto const& attribute : attributes)
|
||||||
|
element.set_attribute(attribute.name, attribute.value).release_value_but_fixme_should_propagate_errors();
|
||||||
|
}
|
||||||
|
|
||||||
void ConnectionFromClient::replace_dom_node_attribute(i32 node_id, String const& name, Vector<WebView::Attribute> const& replacement_attributes)
|
void ConnectionFromClient::replace_dom_node_attribute(i32 node_id, String const& name, Vector<WebView::Attribute> const& replacement_attributes)
|
||||||
{
|
{
|
||||||
auto* dom_node = Web::DOM::Node::from_unique_id(node_id);
|
auto* dom_node = Web::DOM::Node::from_unique_id(node_id);
|
||||||
|
@ -78,6 +78,7 @@ private:
|
|||||||
|
|
||||||
virtual void set_dom_node_text(i32 node_id, String const& text) override;
|
virtual void set_dom_node_text(i32 node_id, String const& text) override;
|
||||||
virtual Messages::WebContentServer::SetDomNodeTagResponse set_dom_node_tag(i32 node_id, String const& name) override;
|
virtual Messages::WebContentServer::SetDomNodeTagResponse set_dom_node_tag(i32 node_id, String const& name) override;
|
||||||
|
virtual void add_dom_node_attributes(i32 node_id, Vector<WebView::Attribute> const& attributes) override;
|
||||||
virtual void replace_dom_node_attribute(i32 node_id, String const& name, Vector<WebView::Attribute> const& replacement_attributes) override;
|
virtual void replace_dom_node_attribute(i32 node_id, String const& name, Vector<WebView::Attribute> const& replacement_attributes) override;
|
||||||
|
|
||||||
virtual Messages::WebContentServer::DumpLayoutTreeResponse dump_layout_tree() override;
|
virtual Messages::WebContentServer::DumpLayoutTreeResponse dump_layout_tree() override;
|
||||||
|
@ -48,6 +48,7 @@ endpoint WebContentServer
|
|||||||
|
|
||||||
set_dom_node_text(i32 node_id, String text) =|
|
set_dom_node_text(i32 node_id, String text) =|
|
||||||
set_dom_node_tag(i32 node_id, String name) => (Optional<i32> node_id)
|
set_dom_node_tag(i32 node_id, String name) => (Optional<i32> node_id)
|
||||||
|
add_dom_node_attributes(i32 node_id, Vector<WebView::Attribute> attributes) =|
|
||||||
replace_dom_node_attribute(i32 node_id, String name, Vector<WebView::Attribute> replacement_attributes) =|
|
replace_dom_node_attribute(i32 node_id, String name, Vector<WebView::Attribute> replacement_attributes) =|
|
||||||
|
|
||||||
take_document_screenshot() => (Gfx::ShareableBitmap data)
|
take_document_screenshot() => (Gfx::ShareableBitmap data)
|
||||||
|
Loading…
Reference in New Issue
Block a user