diff options
-rw-r--r-- | components/constellation/constellation.rs | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/components/constellation/constellation.rs b/components/constellation/constellation.rs index ae2a2ca94f9..96befe8e827 100644 --- a/components/constellation/constellation.rs +++ b/components/constellation/constellation.rs @@ -1935,12 +1935,17 @@ impl<LTF: LayoutThreadFactory, STF: ScriptThreadFactory> Constellation<LTF, STF> if let Some((ref mut rng, _)) = self.random_pipeline_closure { if let Some(pipeline_id) = rng.choose(&*pipeline_ids) { if let Some(pipeline) = self.pipelines.get(pipeline_id) { - // Don't kill the root pipeline - if pipeline.parent_info.is_none() { return; } - // Note that we deliberately do not do any of the tidying up - // associated with closing a pipeline. The constellation should cope! - info!("Randomly closing pipeline {}.", pipeline_id); - pipeline.force_exit(); + // Don't kill the mozbrowser pipeline + if prefs::get_pref("dom.mozbrowser.enabled").as_boolean().unwrap_or(false) && + pipeline.parent_info.is_none() + { + info!("Not closing mozbrowser pipeline {}.", pipeline_id); + } else { + // Note that we deliberately do not do any of the tidying up + // associated with closing a pipeline. The constellation should cope! + info!("Randomly closing pipeline {}.", pipeline_id); + pipeline.force_exit(); + } } } } |