From 3c56d416991ddd2022351d8392f3b150f8d8114a Mon Sep 17 00:00:00 2001 From: askeing Date: Sat, 23 Apr 2016 21:20:55 +0900 Subject: [PATCH] Checking the browsing_context before change title, and adding wpt test --- components/script/dom/document.rs | 8 +++++--- tests/wpt/mozilla/meta/MANIFEST.json | 6 ++++++ .../mozbrowsertitlechangedeagerly_event.html | 19 +++++++++++++++++++ ...owsertitlechangedeagerly_event_iframe.html | 16 ++++++++++++++++ 4 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 tests/wpt/mozilla/tests/mozilla/mozbrowser/mozbrowsertitlechangedeagerly_event.html create mode 100644 tests/wpt/mozilla/tests/mozilla/mozbrowser/mozbrowsertitlechangedeagerly_event_iframe.html 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 +