Serenity Operating System
at master 37 lines 992 B view raw
1/* 2 * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#include <LibWeb/DOM/Document.h> 8#include <LibWeb/HTML/HTMLTitleElement.h> 9#include <LibWeb/Page/Page.h> 10 11namespace Web::HTML { 12 13HTMLTitleElement::HTMLTitleElement(DOM::Document& document, DOM::QualifiedName qualified_name) 14 : HTMLElement(document, move(qualified_name)) 15{ 16} 17 18HTMLTitleElement::~HTMLTitleElement() = default; 19 20JS::ThrowCompletionOr<void> HTMLTitleElement::initialize(JS::Realm& realm) 21{ 22 MUST_OR_THROW_OOM(Base::initialize(realm)); 23 set_prototype(&Bindings::ensure_web_prototype<Bindings::HTMLTitleElementPrototype>(realm, "HTMLTitleElement")); 24 25 return {}; 26} 27 28void HTMLTitleElement::children_changed() 29{ 30 HTMLElement::children_changed(); 31 if (auto* page = document().page()) { 32 if (document().browsing_context() == &page->top_level_browsing_context()) 33 page->client().page_did_change_title(document().title()); 34 } 35} 36 37}