diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index b7c46c9666d..fb996f7596d 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -584,9 +584,17 @@ impl Document { // https://html.spec.whatwg.org/multipage/#current-document-readiness pub fn set_ready_state(&self, state: DocumentReadyState) { match state { - DocumentReadyState::Loading => update_with_current_time(&self.dom_loading), + DocumentReadyState::Loading => { + // https://developer.mozilla.org/en-US/docs/Web/Events/mozbrowserconnected + self.trigger_mozbrowser_event(MozBrowserEvent::Connected); + update_with_current_time(&self.dom_loading); + }, + DocumentReadyState::Complete => { + // https://developer.mozilla.org/en-US/docs/Web/Events/mozbrowserloadend + self.trigger_mozbrowser_event(MozBrowserEvent::LoadEnd); + update_with_current_time(&self.dom_complete); + }, DocumentReadyState::Interactive => update_with_current_time(&self.dom_interactive), - DocumentReadyState::Complete => update_with_current_time(&self.dom_complete), }; self.ready_state.set(state); @@ -2587,9 +2595,6 @@ impl DocumentProgressHandler { document.notify_constellation_load(); - // https://developer.mozilla.org/en-US/docs/Web/Events/mozbrowserloadend - document.trigger_mozbrowser_event(MozBrowserEvent::LoadEnd); - window.reflow(ReflowGoal::ForDisplay, ReflowQueryType::NoQuery, ReflowReason::DocumentLoaded); diff --git a/components/script/dom/htmliframeelement.rs b/components/script/dom/htmliframeelement.rs index b59199d4909..4cf2c3f467e 100644 --- a/components/script/dom/htmliframeelement.rs +++ b/components/script/dom/htmliframeelement.rs @@ -303,7 +303,7 @@ impl MozBrowserEventDetailBuilder for HTMLIFrameElement { match event { MozBrowserEvent::AsyncScroll | MozBrowserEvent::Close | MozBrowserEvent::ContextMenu | MozBrowserEvent::Error | MozBrowserEvent::LoadEnd | MozBrowserEvent::LoadStart | - MozBrowserEvent::OpenWindow | MozBrowserEvent::OpenSearch | + MozBrowserEvent::Connected | MozBrowserEvent::OpenWindow | MozBrowserEvent::OpenSearch | MozBrowserEvent::UsernameAndPasswordRequired => { rval.set(NullValue()); } diff --git a/components/script_traits/lib.rs b/components/script_traits/lib.rs index a6d33bfebac..f0e115664af 100644 --- a/components/script_traits/lib.rs +++ b/components/script_traits/lib.rs @@ -415,6 +415,8 @@ pub enum MozBrowserEvent { Error, /// Sent when the favicon of a browser `