mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
Auto merge of #8612 - glennw:pending-frames, r=jdm
Add test to constellation to avoid writing reftest image if there are pending frames. This changes several tests that contain <iframe></iframe> from FAIL to TIMEOUT. This is correct since there is a bug that prevents these iframes from ever rendering. ~~~There are also a few previous FAILs that changed to OK. These may be intermittents or they may genuinely be fixed by this change.~~~ <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8612) <!-- Reviewable:end -->
This commit is contained in:
commit
c6ae32abdd
8 changed files with 109 additions and 118 deletions
|
@ -212,7 +212,6 @@ pub struct PaintTask<C> {
|
|||
layout_to_paint_port: Receiver<LayoutToPaintMsg>,
|
||||
chrome_to_paint_port: Receiver<ChromeToPaintMsg>,
|
||||
compositor: C,
|
||||
constellation_chan: ConstellationChan<ConstellationMsg>,
|
||||
|
||||
/// A channel to the time profiler.
|
||||
time_profiler_chan: time::ProfilerChan,
|
||||
|
@ -274,7 +273,6 @@ impl<C> PaintTask<C> where C: PaintListener + Send + 'static {
|
|||
layout_to_paint_port: layout_to_paint_port,
|
||||
chrome_to_paint_port: chrome_to_paint_port,
|
||||
compositor: compositor,
|
||||
constellation_chan: constellation_chan,
|
||||
time_profiler_chan: time_profiler_chan,
|
||||
root_paint_layer: None,
|
||||
paint_permission: false,
|
||||
|
@ -326,14 +324,9 @@ impl<C> PaintTask<C> where C: PaintListener + Send + 'static {
|
|||
self.current_epoch = Some(epoch);
|
||||
self.root_paint_layer = Some(Arc::new(paint_layer));
|
||||
|
||||
if !self.paint_permission {
|
||||
debug!("PaintTask: paint ready msg");
|
||||
let ConstellationChan(ref mut c) = self.constellation_chan;
|
||||
c.send(ConstellationMsg::Ready(self.id)).unwrap();
|
||||
continue;
|
||||
if self.paint_permission {
|
||||
self.initialize_layers();
|
||||
}
|
||||
|
||||
self.initialize_layers();
|
||||
}
|
||||
// Inserts a new canvas renderer to the layer map
|
||||
Msg::FromLayout(LayoutToPaintMsg::CanvasLayer(layer_id, canvas_renderer)) => {
|
||||
|
@ -341,31 +334,26 @@ impl<C> PaintTask<C> where C: PaintListener + Send + 'static {
|
|||
self.canvas_map.insert(layer_id, canvas_renderer);
|
||||
}
|
||||
Msg::FromChrome(ChromeToPaintMsg::Paint(requests, frame_tree_id)) => {
|
||||
if !self.paint_permission {
|
||||
debug!("PaintTask: paint ready msg");
|
||||
let ConstellationChan(ref mut c) = self.constellation_chan;
|
||||
c.send(ConstellationMsg::Ready(self.id)).unwrap();
|
||||
continue;
|
||||
}
|
||||
|
||||
let mut replies = Vec::new();
|
||||
for PaintRequest { buffer_requests, scale, layer_id, epoch, layer_kind }
|
||||
in requests {
|
||||
if self.current_epoch == Some(epoch) {
|
||||
self.paint(&mut replies, buffer_requests, scale, layer_id, layer_kind);
|
||||
} else {
|
||||
debug!("PaintTask: Ignoring requests with epoch mismatch: {:?} != {:?}",
|
||||
self.current_epoch,
|
||||
epoch);
|
||||
self.compositor.ignore_buffer_requests(buffer_requests);
|
||||
if self.paint_permission && self.root_paint_layer.is_some() {
|
||||
let mut replies = Vec::new();
|
||||
for PaintRequest { buffer_requests, scale, layer_id, epoch, layer_kind }
|
||||
in requests {
|
||||
if self.current_epoch == Some(epoch) {
|
||||
self.paint(&mut replies, buffer_requests, scale, layer_id, layer_kind);
|
||||
} else {
|
||||
debug!("PaintTask: Ignoring requests with epoch mismatch: {:?} != {:?}",
|
||||
self.current_epoch,
|
||||
epoch);
|
||||
self.compositor.ignore_buffer_requests(buffer_requests);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
debug!("PaintTask: returning surfaces");
|
||||
self.compositor.assign_painted_buffers(self.id,
|
||||
self.current_epoch.unwrap(),
|
||||
replies,
|
||||
frame_tree_id);
|
||||
debug!("PaintTask: returning surfaces");
|
||||
self.compositor.assign_painted_buffers(self.id,
|
||||
self.current_epoch.unwrap(),
|
||||
replies,
|
||||
frame_tree_id);
|
||||
}
|
||||
}
|
||||
Msg::FromChrome(ChromeToPaintMsg::PaintPermissionGranted) => {
|
||||
self.paint_permission = true;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue