mirror of
https://github.com/servo/servo.git
synced 2025-07-22 14:53:49 +01:00
Auto merge of #10931 - asajeffrey:send-panic-backtrace-to-mozbrowser, r=jdm
Send the panic reason and backtrace in mozbrowsererror. Closes #10334. Glues together PRs #10837 and #10824. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10931) <!-- Reviewable:end -->
This commit is contained in:
commit
d9dc6dd03c
1 changed files with 3 additions and 4 deletions
|
@ -874,7 +874,7 @@ impl<LTF: LayoutThreadFactory, STF: ScriptThreadFactory> Constellation<LTF, STF>
|
|||
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);
|
||||
|
||||
|
@ -1967,8 +1967,7 @@ impl<LTF: LayoutThreadFactory, STF: ScriptThreadFactory> Constellation<LTF, STF>
|
|||
|
||||
// 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) {
|
||||
|
@ -1981,7 +1980,7 @@ impl<LTF: LayoutThreadFactory, STF: ScriptThreadFactory> Constellation<LTF, STF>
|
|||
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);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue