1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 10:48:11 +00:00

LibWeb: Only call page_did_change_title() from main frame

Otherwise an embedded iframe will override the page title in the
browser, for example.
This commit is contained in:
Linus Groh 2021-03-20 15:20:11 +01:00 committed by Andreas Kling
parent ae95ed5ddd
commit c183ebc723
3 changed files with 9 additions and 5 deletions

View file

@ -287,8 +287,10 @@ void Document::set_title(const String& title)
title_element->append_child(adopt(*new Text(*this, title)));
if (auto* page = this->page())
if (auto* page = this->page()) {
if (frame() == &page->main_frame())
page->client().page_did_change_title(title);
}
}
void Document::attach_to_frame(Badge<Frame>, Frame& frame)

View file

@ -42,8 +42,10 @@ HTMLTitleElement::~HTMLTitleElement()
void HTMLTitleElement::children_changed()
{
HTMLElement::children_changed();
if (auto* page = document().page())
if (auto* page = document().page()) {
if (document().frame() == &page->main_frame())
page->client().page_did_change_title(document().title());
}
}
}

View file

@ -102,7 +102,7 @@ void Frame::set_document(DOM::Document* document)
if (m_document) {
m_document->attach_to_frame({}, *this);
if (m_page)
if (m_page && is_main_frame())
m_page->client().page_did_change_title(m_document->title());
}