diff options
author | Patrick Walton <pcwalton@mimiga.net> | 2016-03-23 17:49:03 -0700 |
---|---|---|
committer | Patrick Walton <pcwalton@mimiga.net> | 2016-04-28 10:53:13 -0700 |
commit | 7bd257089c38489ded7d8d84493406c321c1f16f (patch) | |
tree | d2be850caffa2862ec5bf9f73b4c368cb68f95af /components/script/script_thread.rs | |
parent | c011c3197d61d64274d151d8bad85216d3b85041 (diff) | |
download | servo-7bd257089c38489ded7d8d84493406c321c1f16f.tar.gz servo-7bd257089c38489ded7d8d84493406c321c1f16f.zip |
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.
Diffstat (limited to 'components/script/script_thread.rs')
-rw-r--r-- | components/script/script_thread.rs | 13 |
1 files changed, 9 insertions, 4 deletions
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 |