diff options
Diffstat (limited to 'components/compositing/constellation.rs')
-rw-r--r-- | components/compositing/constellation.rs | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/components/compositing/constellation.rs b/components/compositing/constellation.rs index 6e09fc4b15d..b855885b88a 100644 --- a/components/compositing/constellation.rs +++ b/components/compositing/constellation.rs @@ -982,7 +982,7 @@ impl<LTF: LayoutThreadFactory, STF: ScriptThreadFactory> Constellation<LTF, STF> }; // If no url is specified, reload. - let new_url = load_info.url.clone() + let new_url = load_info.load_data.clone().map(|data| data.url) .or_else(|| old_pipeline.map(|old_pipeline| old_pipeline.url.clone())) .unwrap_or_else(|| Url::parse("about:blank").expect("infallible")); @@ -1016,13 +1016,20 @@ impl<LTF: LayoutThreadFactory, STF: ScriptThreadFactory> Constellation<LTF, STF> }; + let load_data = if let Some(mut data) = load_info.load_data { + data.url = new_url; + data + } else { + // TODO - loaddata here should have referrer info (not None, None) + LoadData::new(new_url, None, None) + }; + // Create the new pipeline, attached to the parent and push to pending frames - // TODO - loaddata here should have referrer info (not None, None) self.new_pipeline(load_info.new_pipeline_id, Some((load_info.containing_pipeline_id, load_info.new_subpage_id)), window_size, script_chan, - LoadData::new(new_url, None, None)); + load_data); self.subpage_map.insert((load_info.containing_pipeline_id, load_info.new_subpage_id), load_info.new_pipeline_id); |