1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 20:07:35 +00:00

LibWebView+WebContent: Add APIs to manipulate DOM nodes

This adds APIs to allow Ispector clients to:
* Change a DOM text or comment node's text data.
* Add, replace, or remove a DOM element's attribute.
* Change a DOM element's tag.
This commit is contained in:
Timothy Flynn 2023-11-19 10:42:11 -05:00 committed by Andreas Kling
parent 18a4455d43
commit 4cfeb41c4b
10 changed files with 138 additions and 0 deletions

View file

@ -0,0 +1,26 @@
/*
* Copyright (c) 2023, Tim Flynn <trflynn89@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <LibIPC/Decoder.h>
#include <LibIPC/Encoder.h>
#include <LibWebView/Attribute.h>
template<>
ErrorOr<void> IPC::encode(Encoder& encoder, WebView::Attribute const& attribute)
{
TRY(encoder.encode(attribute.name));
TRY(encoder.encode(attribute.value));
return {};
}
template<>
ErrorOr<WebView::Attribute> IPC::decode(Decoder& decoder)
{
auto name = TRY(decoder.decode<String>());
auto value = TRY(decoder.decode<String>());
return WebView::Attribute { move(name), move(value) };
}