From 7bd257089c38489ded7d8d84493406c321c1f16f Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Wed, 23 Mar 2016 17:49:03 -0700 Subject: script: Make iframes know their pipeline IDs at all times, even after navigation. Since WebRender uses the pipeline ID stored in the iframe element to determine which pipeline to display, it had better be kept up to date! Closes #9919. --- components/script/script_thread.rs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'components/script/script_thread.rs') diff --git a/components/script/script_thread.rs b/components/script/script_thread.rs index e725d9cbbf8..c0753f897a7 100644 --- a/components/script/script_thread.rs +++ b/components/script/script_thread.rs @@ -883,8 +883,12 @@ impl ScriptThread { event), ConstellationControlMsg::UpdateSubpageId(containing_pipeline_id, old_subpage_id, - new_subpage_id) => - self.handle_update_subpage_id(containing_pipeline_id, old_subpage_id, new_subpage_id), + new_subpage_id, + new_pipeline_id) => + self.handle_update_subpage_id(containing_pipeline_id, + old_subpage_id, + new_subpage_id, + new_pipeline_id), ConstellationControlMsg::FocusIFrame(containing_pipeline_id, subpage_id) => self.handle_focus_iframe_msg(containing_pipeline_id, subpage_id), ConstellationControlMsg::WebDriverScriptCommand(pipeline_id, msg) => @@ -1243,7 +1247,8 @@ impl ScriptThread { fn handle_update_subpage_id(&self, containing_pipeline_id: PipelineId, old_subpage_id: SubpageId, - new_subpage_id: SubpageId) { + new_subpage_id: SubpageId, + new_pipeline_id: PipelineId) { let borrowed_page = self.root_page(); let frame_element = borrowed_page.find(containing_pipeline_id).and_then(|page| { @@ -1251,7 +1256,7 @@ impl ScriptThread { doc.find_iframe(old_subpage_id) }); - frame_element.unwrap().update_subpage_id(new_subpage_id); + frame_element.unwrap().update_subpage_id(new_subpage_id, new_pipeline_id); } /// Window was resized, but this script was not active, so don't reflow yet -- cgit v1.2.3