From 9c3875ead56b25de1e592e39875407ae097c02b1 Mon Sep 17 00:00:00 2001 From: Matt Brubeck Date: Wed, 9 Apr 2014 19:57:48 -0700 Subject: [PATCH 1/2] Remove unused create_layer_group_for_pipeline --- src/components/main/compositing/compositor_task.rs | 7 ------- src/components/msg/compositor_msg.rs | 1 - 2 files changed, 8 deletions(-) diff --git a/src/components/main/compositing/compositor_task.rs b/src/components/main/compositing/compositor_task.rs index f16beae7733..509c1481a0a 100644 --- a/src/components/main/compositing/compositor_task.rs +++ b/src/components/main/compositing/compositor_task.rs @@ -83,13 +83,6 @@ impl RenderListener for CompositorChan { self.chan.send(Paint(pipeline_id, layer_id, layer_buffer_set, epoch)) } - fn create_layer_group_for_pipeline(&self, id: PipelineId, page_size: Size2D) { - let Size2D { width, height } = page_size; - self.chan.send(CreateRootCompositorLayerIfNecessary(id, - LayerId::null(), - Size2D(width as f32, height as f32))) - } - fn initialize_layers_for_pipeline(&self, pipeline_id: PipelineId, metadata: ~[LayerMetadata], diff --git a/src/components/msg/compositor_msg.rs b/src/components/msg/compositor_msg.rs index 8518bd3024a..33e0230d687 100644 --- a/src/components/msg/compositor_msg.rs +++ b/src/components/msg/compositor_msg.rs @@ -121,7 +121,6 @@ pub struct LayerMetadata { /// submit them to be drawn to the display. pub trait RenderListener { fn get_graphics_metadata(&self) -> Option; - fn create_layer_group_for_pipeline(&self, PipelineId, Size2D); /// Informs the compositor of the layers for the given pipeline. The compositor responds by /// creating and/or destroying render layers as necessary. From 3231f12708d87b3440cf74ffaf0e46e053b07497 Mon Sep 17 00:00:00 2001 From: Matt Brubeck Date: Wed, 9 Apr 2014 20:07:16 -0700 Subject: [PATCH 2/2] Don't reuse an old pipeline for a new root layer When navigating to a new URL, we need to make sure compositor messages go to the new page's pipeline, not the previous one. --- src/components/main/compositing/compositor.rs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/components/main/compositing/compositor.rs b/src/components/main/compositing/compositor.rs index 9ae6520c38a..dcb6f94199e 100644 --- a/src/components/main/compositing/compositor.rs +++ b/src/components/main/compositing/compositor.rs @@ -354,16 +354,15 @@ impl IOCompositor { self.constellation_chan = new_constellation_chan; } - // FIXME(pcwalton): Take the pipeline ID into account. fn create_root_compositor_layer_if_necessary(&mut self, - _: PipelineId, + id: PipelineId, layer_id: LayerId, size: Size2D) { let (root_pipeline, root_layer_id) = match self.compositor_layer { - Some(ref compositor_layer) => { + Some(ref compositor_layer) if compositor_layer.pipeline.id == id => { (compositor_layer.pipeline.clone(), compositor_layer.id_of_first_child()) } - None => { + _ => { match self.root_pipeline { Some(ref root_pipeline) => (root_pipeline.clone(), LayerId::null()), None => fail!("Compositor: Received new layer without initialized pipeline"),