Add support for position:sticky

This leverages the position:sticky support in WebRender to bring basic
support for position:sticky in Servo. There are still some issues with
nested sticky flows as well as a few other corner cases. Tests are
imported from WPT and can be removed once we update to the latest
version.
This commit is contained in:
Martin Robinson 2017-08-24 09:37:49 +02:00
parent 4725a05bfb
commit bc455c8a1f
84 changed files with 5729 additions and 50 deletions

View file

@ -9,7 +9,8 @@
use app_units::Au;
use block::BlockFlow;
use context::LayoutContext;
use display_list_builder::DisplayListBuildState;
use display_list_builder::{BlockFlowDisplayListBuilding, DisplayListBuildState};
use display_list_builder::EstablishContainingBlock;
use euclid::Point2D;
use flow::{Flow, FlowClass, OpaqueFlow};
use fragment::{Fragment, FragmentBorderBoxIterator, Overflow};
@ -80,7 +81,7 @@ impl Flow for TableCaptionFlow {
}
fn collect_stacking_contexts(&mut self, state: &mut DisplayListBuildState) {
self.block_flow.collect_stacking_contexts(state);
self.block_flow.collect_stacking_contexts_for_block(state, EstablishContainingBlock::No);
}
fn repair_style(&mut self, new_style: &::ServoArc<ComputedValues>) {