mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-06-20 01:01:54 +00:00
Currently, this metadata is only provided on the insertion steps, though I believe it would be useful to extend to the other cases as well. This metadata can aid in making optimizations for these steps by providing extra context into the type of change which was made on the child.
47 lines
1.2 KiB
C++
47 lines
1.2 KiB
C++
/*
|
|
* Copyright (c) 2023, Tim Flynn <trflynn89@serenityos.org>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#include <LibWeb/Bindings/Intrinsics.h>
|
|
#include <LibWeb/Bindings/SVGTitleElementPrototype.h>
|
|
#include <LibWeb/DOM/Document.h>
|
|
#include <LibWeb/Page/Page.h>
|
|
#include <LibWeb/SVG/SVGTitleElement.h>
|
|
|
|
namespace Web::SVG {
|
|
|
|
GC_DEFINE_ALLOCATOR(SVGTitleElement);
|
|
|
|
SVGTitleElement::SVGTitleElement(DOM::Document& document, DOM::QualifiedName qualified_name)
|
|
: SVGElement(document, move(qualified_name))
|
|
{
|
|
}
|
|
|
|
void SVGTitleElement::initialize(JS::Realm& realm)
|
|
{
|
|
Base::initialize(realm);
|
|
WEB_SET_PROTOTYPE_FOR_INTERFACE(SVGTitleElement);
|
|
}
|
|
|
|
GC::Ptr<Layout::Node> SVGTitleElement::create_layout_node(GC::Ref<CSS::ComputedProperties>)
|
|
{
|
|
return nullptr;
|
|
}
|
|
|
|
void SVGTitleElement::children_changed(ChildrenChangedMetadata const* metadata)
|
|
{
|
|
Base::children_changed(metadata);
|
|
|
|
auto& page = document().page();
|
|
if (document().browsing_context() != &page.top_level_browsing_context())
|
|
return;
|
|
|
|
auto* document_element = document().document_element();
|
|
|
|
if (document_element == parent() && is<SVGElement>(document_element))
|
|
page.client().page_did_change_title(document().title().to_byte_string());
|
|
}
|
|
|
|
}
|