mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 10:38: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:
parent
ae95ed5ddd
commit
c183ebc723
3 changed files with 9 additions and 5 deletions
|
@ -287,8 +287,10 @@ void Document::set_title(const String& title)
|
||||||
|
|
||||||
title_element->append_child(adopt(*new Text(*this, title)));
|
title_element->append_child(adopt(*new Text(*this, title)));
|
||||||
|
|
||||||
if (auto* page = this->page())
|
if (auto* page = this->page()) {
|
||||||
page->client().page_did_change_title(title);
|
if (frame() == &page->main_frame())
|
||||||
|
page->client().page_did_change_title(title);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Document::attach_to_frame(Badge<Frame>, Frame& frame)
|
void Document::attach_to_frame(Badge<Frame>, Frame& frame)
|
||||||
|
|
|
@ -42,8 +42,10 @@ HTMLTitleElement::~HTMLTitleElement()
|
||||||
void HTMLTitleElement::children_changed()
|
void HTMLTitleElement::children_changed()
|
||||||
{
|
{
|
||||||
HTMLElement::children_changed();
|
HTMLElement::children_changed();
|
||||||
if (auto* page = document().page())
|
if (auto* page = document().page()) {
|
||||||
page->client().page_did_change_title(document().title());
|
if (document().frame() == &page->main_frame())
|
||||||
|
page->client().page_did_change_title(document().title());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -102,7 +102,7 @@ void Frame::set_document(DOM::Document* document)
|
||||||
|
|
||||||
if (m_document) {
|
if (m_document) {
|
||||||
m_document->attach_to_frame({}, *this);
|
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());
|
m_page->client().page_did_change_title(m_document->title());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue