diff --git a/components/compositing/constellation.rs b/components/compositing/constellation.rs index 531a589c6aa..1c4f6544ddc 100644 --- a/components/compositing/constellation.rs +++ b/components/compositing/constellation.rs @@ -873,7 +873,7 @@ impl Constellation let window_size = self.pipelines.get(&pipeline_id).and_then(|pipeline| pipeline.size); // Notify the browser chrome that the pipeline has failed - self.trigger_mozbrowsererror(pipeline_id); + self.trigger_mozbrowsererror(pipeline_id, reason, backtrace); self.close_pipeline(pipeline_id, ExitPipelineMode::Force); @@ -1966,8 +1966,7 @@ impl Constellation // https://developer.mozilla.org/en-US/docs/Web/Events/mozbrowsererror // Note that this does not require the pipeline to be an immediate child of the root - // TODO: propagate more error information, e.g. a backtrace - fn trigger_mozbrowsererror(&self, pipeline_id: PipelineId) { + fn trigger_mozbrowsererror(&self, pipeline_id: PipelineId, reason: String, backtrace: String) { if !prefs::get_pref("dom.mozbrowser.enabled").as_boolean().unwrap_or(false) { return; } if let Some(pipeline) = self.pipelines.get(&pipeline_id) { @@ -1980,7 +1979,7 @@ impl Constellation None => return warn!("Mozbrowsererror via closed pipeline {:?}.", ancestor_info.0), }; } - let event = MozBrowserEvent::Error(MozBrowserErrorType::Fatal, None, None); + let event = MozBrowserEvent::Error(MozBrowserErrorType::Fatal, Some(reason), Some(backtrace)); ancestor.trigger_mozbrowser_event(ancestor_info.1, event); } }