diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index 2eb9bd8806c..9e73ab8bcf0 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -618,10 +618,12 @@ impl Document { /// Handles any updates when the document's title has changed. pub fn title_changed(&self) { - // https://developer.mozilla.org/en-US/docs/Web/Events/mozbrowsertitlechange - self.trigger_mozbrowser_event(MozBrowserEvent::TitleChange(String::from(self.Title()))); + if self.browsing_context().is_some() { + // https://developer.mozilla.org/en-US/docs/Web/Events/mozbrowsertitlechange + self.trigger_mozbrowser_event(MozBrowserEvent::TitleChange(String::from(self.Title()))); - self.send_title_to_compositor(); + self.send_title_to_compositor(); + } } /// Sends this document's title to the compositor. diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json index 72b1a3c9946..31562bc476f 100644 --- a/tests/wpt/mozilla/meta/MANIFEST.json +++ b/tests/wpt/mozilla/meta/MANIFEST.json @@ -6430,6 +6430,12 @@ "url": "/_mozilla/mozilla/mozbrowser/mozbrowsershowmodalprompt_event.html" } ], + "mozilla/mozbrowser/mozbrowsertitlechangedeagerly_event.html": [ + { + "path": "mozilla/mozbrowser/mozbrowsertitlechangedeagerly_event.html", + "url": "/_mozilla/mozilla/mozbrowser/mozbrowsertitlechangedeagerly_event.html" + } + ], "mozilla/mozbrowser/redirect.html": [ { "path": "mozilla/mozbrowser/redirect.html", diff --git a/tests/wpt/mozilla/tests/mozilla/mozbrowser/mozbrowsertitlechangedeagerly_event.html b/tests/wpt/mozilla/tests/mozilla/mozbrowser/mozbrowsertitlechangedeagerly_event.html new file mode 100644 index 00000000000..4809f302f2f --- /dev/null +++ b/tests/wpt/mozilla/tests/mozilla/mozbrowser/mozbrowsertitlechangedeagerly_event.html @@ -0,0 +1,19 @@ + + +Check if title_changed is too eager (issue #10782) + + + + diff --git a/tests/wpt/mozilla/tests/mozilla/mozbrowser/mozbrowsertitlechangedeagerly_event_iframe.html b/tests/wpt/mozilla/tests/mozilla/mozbrowser/mozbrowsertitlechangedeagerly_event_iframe.html new file mode 100644 index 00000000000..b10a632092a --- /dev/null +++ b/tests/wpt/mozilla/tests/mozilla/mozbrowser/mozbrowsertitlechangedeagerly_event_iframe.html @@ -0,0 +1,16 @@ + + + Foo + + + Hello world +