diff options
57 files changed, 359 insertions, 121 deletions
diff --git a/Cargo.lock b/Cargo.lock index 8fca3b0d720..91783d22f14 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2179,7 +2179,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "plane-split" -version = "0.8.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "binary-space-partition 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3465,7 +3465,7 @@ dependencies = [ [[package]] name = "webrender" version = "0.57.2" -source = "git+https://github.com/servo/webrender#6931a25295d17d897a9f77798392bdde66132154" +source = "git+https://github.com/servo/webrender#db26bc0e86bd5585ee8b7426aef9f3443b005fdb" dependencies = [ "app_units 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "base64 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3485,7 +3485,7 @@ dependencies = [ "lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", - "plane-split 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "plane-split 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "rayon 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "ron 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.66 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3500,7 +3500,7 @@ dependencies = [ [[package]] name = "webrender_api" version = "0.57.2" -source = "git+https://github.com/servo/webrender#6931a25295d17d897a9f77798392bdde66132154" +source = "git+https://github.com/servo/webrender#db26bc0e86bd5585ee8b7426aef9f3443b005fdb" dependencies = [ "app_units 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "bincode 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3893,7 +3893,7 @@ dependencies = [ "checksum phf_generator 0.7.21 (registry+https://github.com/rust-lang/crates.io-index)" = "6b07ffcc532ccc85e3afc45865469bf5d9e4ef5bfcf9622e3cfe80c2d275ec03" "checksum phf_shared 0.7.21 (registry+https://github.com/rust-lang/crates.io-index)" = "07e24b0ca9643bdecd0632f2b3da6b1b89bbb0030e0b992afc1113b23a7bc2f2" "checksum pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "3a8b4c6b8165cd1a1cd4b9b120978131389f64bdaf456435caa41e630edba903" -"checksum plane-split 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "69c557e11e3a1533bc969fa596e5011e1d9f76dd61cd102ef942c9f8654b17a2" +"checksum plane-split 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7079b8485b4f9d9560dee7a69ca8f6ca781f9f284ff9d2bf27255d440b03e4af" "checksum png 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f0b0cabbbd20c2d7f06dbf015e06aad59b6ca3d9ed14848783e98af9aaf19925" "checksum precomputed-hash 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" "checksum proc-macro2 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "77997c53ae6edd6d187fec07ec41b207063b5ee6f33680e9fa86d405cdd313d4" diff --git a/components/canvas/canvas_data.rs b/components/canvas/canvas_data.rs index 6e5d0e679dc..28aec9f5dd4 100644 --- a/components/canvas/canvas_data.rs +++ b/components/canvas/canvas_data.rs @@ -416,8 +416,7 @@ impl<'a> CanvasData<'a> { let size = self.drawtarget.get_size(); let descriptor = webrender_api::ImageDescriptor { - width: size.width as u32, - height: size.height as u32, + size: webrender_api::DeviceUintSize::new(size.width as u32, size.height as u32), stride: None, format: webrender_api::ImageFormat::BGRA8, offset: 0, @@ -426,31 +425,25 @@ impl<'a> CanvasData<'a> { }; let data = webrender_api::ImageData::Raw(Arc::new(element.into())); - let mut updates = webrender_api::ResourceUpdates::new(); + let mut txn = webrender_api::Transaction::new(); match self.image_key { Some(image_key) => { debug!("Updating image {:?}.", image_key); - updates.update_image(image_key, - descriptor, - data, - None); + txn.update_image(image_key, descriptor, data, None); } None => { self.image_key = Some(self.webrender_api.generate_image_key()); debug!("New image {:?}.", self.image_key); - updates.add_image(self.image_key.unwrap(), - descriptor, - data, - None); + txn.add_image(self.image_key.unwrap(), descriptor, data, None); } } if let Some(image_key) = mem::replace(&mut self.very_old_image_key, self.old_image_key.take()) { - updates.delete_image(image_key); + txn.delete_image(image_key); } - self.webrender_api.update_resources(updates); + self.webrender_api.update_resources(txn.resource_updates); let data = CanvasImageData { image_key: self.image_key.unwrap(), @@ -647,16 +640,16 @@ impl<'a> CanvasData<'a> { impl<'a> Drop for CanvasData<'a> { fn drop(&mut self) { - let mut updates = webrender_api::ResourceUpdates::new(); + let mut txn = webrender_api::Transaction::new(); if let Some(image_key) = self.old_image_key.take() { - updates.delete_image(image_key); + txn.delete_image(image_key); } if let Some(image_key) = self.very_old_image_key.take() { - updates.delete_image(image_key); + txn.delete_image(image_key); } - self.webrender_api.update_resources(updates); + self.webrender_api.update_resources(txn.resource_updates); } } diff --git a/components/canvas/webgl_thread.rs b/components/canvas/webgl_thread.rs index 7b0b120d037..8ab129680de 100644 --- a/components/canvas/webgl_thread.rs +++ b/components/canvas/webgl_thread.rs @@ -268,13 +268,13 @@ impl<VR: WebVRRenderHandler + 'static, OB: WebGLThreadObserver> WebGLThread<VR, fn remove_webgl_context(&mut self, context_id: WebGLContextId) { // Release webrender image keys. if let Some(info) = self.cached_context_info.remove(&context_id) { - let mut updates = webrender_api::ResourceUpdates::new(); + let mut txn = webrender_api::Transaction::new(); if let Some(image_key) = info.image_key { - updates.delete_image(image_key); + txn.delete_image(image_key); } - self.webrender_api.update_resources(updates) + self.webrender_api.update_resources(txn.resource_updates) } // Release GL context. @@ -423,12 +423,9 @@ impl<VR: WebVRRenderHandler + 'static, OB: WebGLThreadObserver> WebGLThread<VR, let data = Self::external_image_data(context_id); let image_key = webrender_api.generate_image_key(); - let mut updates = webrender_api::ResourceUpdates::new(); - updates.add_image(image_key, - descriptor, - data, - None); - webrender_api.update_resources(updates); + let mut txn = webrender_api::Transaction::new(); + txn.add_image(image_key, descriptor, data, None); + webrender_api.update_resources(txn.resource_updates); image_key } @@ -442,12 +439,9 @@ impl<VR: WebVRRenderHandler + 'static, OB: WebGLThreadObserver> WebGLThread<VR, let descriptor = Self::image_descriptor(size, alpha); let data = Self::external_image_data(context_id); - let mut updates = webrender_api::ResourceUpdates::new(); - updates.update_image(image_key, - descriptor, - data, - None); - webrender_api.update_resources(updates); + let mut txn = webrender_api::Transaction::new(); + txn.update_image(image_key, descriptor, data, None); + webrender_api.update_resources(txn.resource_updates); } /// Creates a `webrender_api::ImageKey` that uses raw pixels. @@ -459,12 +453,9 @@ impl<VR: WebVRRenderHandler + 'static, OB: WebGLThreadObserver> WebGLThread<VR, let data = webrender_api::ImageData::new(data); let image_key = webrender_api.generate_image_key(); - let mut updates = webrender_api::ResourceUpdates::new(); - updates.add_image(image_key, - descriptor, - data, - None); - webrender_api.update_resources(updates); + let mut txn = webrender_api::Transaction::new(); + txn.add_image(image_key, descriptor, data, None); + webrender_api.update_resources(txn.resource_updates); image_key } @@ -478,19 +469,15 @@ impl<VR: WebVRRenderHandler + 'static, OB: WebGLThreadObserver> WebGLThread<VR, let descriptor = Self::image_descriptor(size, alpha); let data = webrender_api::ImageData::new(data); - let mut updates = webrender_api::ResourceUpdates::new(); - updates.update_image(image_key, - descriptor, - data, - None); - webrender_api.update_resources(updates); + let mut txn = webrender_api::Transaction::new(); + txn.update_image(image_key, descriptor, data, None); + webrender_api.update_resources(txn.resource_updates); } /// Helper function to create a `webrender_api::ImageDescriptor`. fn image_descriptor(size: Size2D<i32>, alpha: bool) -> webrender_api::ImageDescriptor { webrender_api::ImageDescriptor { - width: size.width as u32, - height: size.height as u32, + size: webrender_api::DeviceUintSize::new(size.width as u32, size.height as u32), stride: None, format: webrender_api::ImageFormat::BGRA8, offset: 0, diff --git a/components/gfx/font_cache_thread.rs b/components/gfx/font_cache_thread.rs index df04519e90b..334a1bb41ec 100644 --- a/components/gfx/font_cache_thread.rs +++ b/components/gfx/font_cache_thread.rs @@ -177,14 +177,14 @@ impl FontCache { .entry((font_key, size)) .or_insert_with(|| { let key = webrender_api.generate_font_instance_key(); - let mut updates = webrender_api::ResourceUpdates::new(); - updates.add_font_instance(key, + let mut txn = webrender_api::Transaction::new(); + txn.add_font_instance(key, font_key, size, None, None, Vec::new()); - webrender_api.update_resources(updates); + webrender_api.update_resources(txn.resource_updates); key }); @@ -373,13 +373,13 @@ impl FontCache { let font_key = *webrender_fonts.entry(template.identifier.clone()).or_insert_with(|| { let font_key = webrender_api.generate_font_key(); - let mut updates = webrender_api::ResourceUpdates::new(); + let mut txn = webrender_api::Transaction::new(); match (template.bytes_if_in_memory(), template.native_font()) { - (Some(bytes), _) => updates.add_raw_font(font_key, bytes, 0), - (None, Some(native_font)) => updates.add_native_font(font_key, native_font), - (None, None) => updates.add_raw_font(font_key, template.bytes().clone(), 0), + (Some(bytes), _) => txn.add_raw_font(font_key, bytes, 0), + (None, Some(native_font)) => txn.add_native_font(font_key, native_font), + (None, None) => txn.add_raw_font(font_key, template.bytes().clone(), 0), } - webrender_api.update_resources(updates); + webrender_api.update_resources(txn.resource_updates); font_key }); diff --git a/components/layout/display_list/builder.rs b/components/layout/display_list/builder.rs index d8467958038..3887f141f52 100644 --- a/components/layout/display_list/builder.rs +++ b/components/layout/display_list/builder.rs @@ -73,14 +73,19 @@ use style_traits::cursor::CursorKind; use table_cell::CollapsedBordersForCell; use webrender_api::{self, BorderRadius, BorderSide, BoxShadowClipMode, ColorF, ExternalScrollId}; use webrender_api::{FilterOp, GlyphInstance, ImageRendering, LayoutRect, LayoutSize}; -use webrender_api::{LayoutTransform, LayoutVector2D, LineStyle, NormalBorder, ScrollPolicy}; -use webrender_api::{ScrollSensitivity, StickyOffsetBounds}; +use webrender_api::{LayoutTransform, LayoutVector2D, LineStyle, NormalBorder, ScrollSensitivity}; +use webrender_api::StickyOffsetBounds; fn establishes_containing_block_for_absolute( flags: StackingContextCollectionFlags, positioning: StylePosition, + established_reference_frame: bool, ) -> bool { - !flags.contains(StackingContextCollectionFlags::NEVER_CREATES_CONTAINING_BLOCK) && + if established_reference_frame { + return true; + } + + !flags.contains(StackingContextCollectionFlags::POSITION_NEVER_CREATES_CONTAINING_BLOCK) && StylePosition::Static != positioning } @@ -576,6 +581,12 @@ pub trait FragmentDisplayListBuilding { state: &mut StackingContextCollectionState, ) -> bool; + fn create_stacking_context_for_inline_block( + &mut self, + base: &BaseFlow, + state: &mut StackingContextCollectionState, + ) -> bool; + /// Adds the display items necessary to paint the background of this fragment to the display /// list if necessary. fn build_display_list_for_background_if_applicable( @@ -760,7 +771,6 @@ pub trait FragmentDisplayListBuilding { &self, id: StackingContextId, base_flow: &BaseFlow, - scroll_policy: ScrollPolicy, context_type: StackingContextType, established_reference_frame: Option<ClipScrollNodeIndex>, parent_clipping_and_scrolling: ClippingAndScrolling, @@ -817,6 +827,35 @@ impl FragmentDisplayListBuilding for Fragment { } } + fn create_stacking_context_for_inline_block( + &mut self, + base: &BaseFlow, + state: &mut StackingContextCollectionState, + ) -> bool { + self.stacking_context_id = state.allocate_stacking_context_info(StackingContextType::Real); + + let established_reference_frame = if self.can_establish_reference_frame() { + // WebRender currently creates reference frames automatically, so just add + // a placeholder node to allocate a ClipScrollNodeIndex for this reference frame. + self.established_reference_frame = + Some(state.add_clip_scroll_node(ClipScrollNode::placeholder())); + self.established_reference_frame + } else { + None + }; + + let current_stacking_context_id = state.current_stacking_context_id; + let stacking_context = self.create_stacking_context( + self.stacking_context_id, + &base, + StackingContextType::Real, + established_reference_frame, + state.current_clipping_and_scrolling, + ); + state.add_stacking_context(current_stacking_context_id, stacking_context); + true + } + fn build_display_list_for_background_if_applicable( &self, state: &mut DisplayListBuildState, @@ -1563,6 +1602,11 @@ impl FragmentDisplayListBuilding for Fragment { display_list_section: DisplayListSection, clip: Rect<Au>, ) { + let previous_clipping_and_scrolling = state.current_clipping_and_scrolling; + if let Some(index) = self.established_reference_frame { + state.current_clipping_and_scrolling = ClippingAndScrolling::simple(index); + } + self.restyle_damage.remove(ServoRestyleDamage::REPAINT); self.build_display_list_no_damage( state, @@ -1570,7 +1614,9 @@ impl FragmentDisplayListBuilding for Fragment { border_painting_mode, display_list_section, clip, - ) + ); + + state.current_clipping_and_scrolling = previous_clipping_and_scrolling; } fn build_display_list_no_damage( @@ -1887,7 +1933,6 @@ impl FragmentDisplayListBuilding for Fragment { &self, id: StackingContextId, base_flow: &BaseFlow, - scroll_policy: ScrollPolicy, context_type: StackingContextType, established_reference_frame: Option<ClipScrollNodeIndex>, parent_clipping_and_scrolling: ClippingAndScrolling, @@ -1931,7 +1976,6 @@ impl FragmentDisplayListBuilding for Fragment { self.transform_matrix(&border_box), self.style().get_used_transform_style().to_layout(), self.perspective_matrix(&border_box), - scroll_policy, parent_clipping_and_scrolling, established_reference_frame, ) @@ -2128,7 +2172,7 @@ impl FragmentDisplayListBuilding for Fragment { bitflags! { pub struct StackingContextCollectionFlags: u8 { /// This flow never establishes a containing block. - const NEVER_CREATES_CONTAINING_BLOCK = 0b001; + const POSITION_NEVER_CREATES_CONTAINING_BLOCK = 0b001; /// This flow never creates a ClipScrollNode. const NEVER_CREATES_CLIP_SCROLL_NODE = 0b010; /// This flow never creates a stacking context. @@ -2406,7 +2450,11 @@ impl BlockFlowDisplayListBuilding for BlockFlow { flags, ); - if establishes_containing_block_for_absolute(flags, self.positioning()) { + if establishes_containing_block_for_absolute( + flags, + self.positioning(), + established_reference_frame.is_some() + ) { state.containing_block_clipping_and_scrolling = state.current_clipping_and_scrolling; } @@ -2495,7 +2543,7 @@ impl BlockFlowDisplayListBuilding for BlockFlow { // We keep track of our position so that any stickily positioned elements can // properly determine the extent of their movement relative to scrolling containers. - if !flags.contains(StackingContextCollectionFlags::NEVER_CREATES_CONTAINING_BLOCK) { + if !flags.contains(StackingContextCollectionFlags::POSITION_NEVER_CREATES_CONTAINING_BLOCK) { let border_box = if self.fragment.establishes_stacking_context() { stacking_relative_border_box } else { @@ -2713,7 +2761,6 @@ impl BlockFlowDisplayListBuilding for BlockFlow { let new_context = self.fragment.create_stacking_context( self.base.stacking_context_id, &self.base, - ScrollPolicy::Scrollable, stacking_context_type, None, parent_clipping_and_scrolling, @@ -2747,7 +2794,6 @@ impl BlockFlowDisplayListBuilding for BlockFlow { let stacking_context = self.fragment.create_stacking_context( self.base.stacking_context_id, &self.base, - ScrollPolicy::Scrollable, StackingContextType::Real, established_reference_frame, parent_clipping_and_scrolling, @@ -2866,37 +2912,34 @@ impl InlineFlowDisplayListBuilding for InlineFlow { .cloned() .unwrap_or_else(Rect::max_rect); + let previous_cb_clipping_and_scrolling = state.containing_block_clipping_and_scrolling; + for fragment in self.fragments.fragments.iter_mut() { - let previous_cb_clipping_and_scrolling = state.containing_block_clipping_and_scrolling; + state.containing_block_clipping_and_scrolling = previous_cb_clipping_and_scrolling; + if establishes_containing_block_for_absolute( StackingContextCollectionFlags::empty(), fragment.style.get_box().position, + false, ) { state.containing_block_clipping_and_scrolling = state.current_clipping_and_scrolling; } - if !fragment.collect_stacking_contexts_for_blocklike_fragment(state) { - if fragment.establishes_stacking_context() { - fragment.stacking_context_id = - state.allocate_stacking_context_info(StackingContextType::Real); - - let current_stacking_context_id = state.current_stacking_context_id; - let stacking_context = fragment.create_stacking_context( - fragment.stacking_context_id, - &self.base, - ScrollPolicy::Scrollable, - StackingContextType::Real, - None, - state.current_clipping_and_scrolling, - ); + // We clear this here, but it might be set again if we create a stacking context for + // this fragment. + fragment.established_reference_frame = None; - state.add_stacking_context(current_stacking_context_id, stacking_context); - } else { + if !fragment.collect_stacking_contexts_for_blocklike_fragment(state) { + if !fragment.establishes_stacking_context() { fragment.stacking_context_id = state.current_stacking_context_id; + } else { + fragment.create_stacking_context_for_inline_block(&self.base, state); } } + // Reset the containing block clipping and scrolling before each loop iteration, + // so we don't pollute subsequent fragments. state.containing_block_clipping_and_scrolling = previous_cb_clipping_and_scrolling; } } diff --git a/components/layout/display_list/items.rs b/components/layout/display_list/items.rs index 7d293996c58..1010e8ada5d 100644 --- a/components/layout/display_list/items.rs +++ b/components/layout/display_list/items.rs @@ -26,8 +26,8 @@ use webrender_api::{BorderRadius, BorderWidths, BoxShadowClipMode, ClipMode, Col use webrender_api::{ComplexClipRegion, ExtendMode, ExternalScrollId, FilterOp, FontInstanceKey}; use webrender_api::{GlyphInstance, GradientStop, ImageKey, ImageRendering, LayoutPoint}; use webrender_api::{LayoutRect, LayoutSize, LayoutTransform, LayoutVector2D, LineStyle}; -use webrender_api::{MixBlendMode, NinePatchBorder, NormalBorder, ScrollPolicy, ScrollSensitivity}; -use webrender_api::{Shadow, StickyOffsetBounds, TransformStyle}; +use webrender_api::{MixBlendMode, NinePatchBorder, NormalBorder, ScrollSensitivity, Shadow}; +use webrender_api::{StickyOffsetBounds, TransformStyle}; pub use style::dom::OpaqueNode; @@ -203,9 +203,6 @@ pub struct StackingContext { /// The perspective matrix to be applied to children. pub perspective: Option<LayoutTransform>, - /// The scroll policy of this layer. - pub scroll_policy: ScrollPolicy, - /// The clip and scroll info for this StackingContext. pub parent_clipping_and_scrolling: ClippingAndScrolling, @@ -227,7 +224,6 @@ impl StackingContext { transform: Option<LayoutTransform>, transform_style: TransformStyle, perspective: Option<LayoutTransform>, - scroll_policy: ScrollPolicy, parent_clipping_and_scrolling: ClippingAndScrolling, established_reference_frame: Option<ClipScrollNodeIndex>, ) -> StackingContext { @@ -242,7 +238,6 @@ impl StackingContext { transform, transform_style, perspective, - scroll_policy, parent_clipping_and_scrolling, established_reference_frame, } @@ -261,7 +256,6 @@ impl StackingContext { None, TransformStyle::Flat, None, - ScrollPolicy::Scrollable, ClippingAndScrolling::simple(ClipScrollNodeIndex::root_scroll_node()), None, ) diff --git a/components/layout/display_list/webrender_helpers.rs b/components/layout/display_list/webrender_helpers.rs index da66b9c2b80..d056d8c4655 100644 --- a/components/layout/display_list/webrender_helpers.rs +++ b/components/layout/display_list/webrender_helpers.rs @@ -7,11 +7,11 @@ // This might be achieved by sharing types between WR and Servo display lists, or // completely converting layout to directly generate WebRender display lists, for example. -use display_list::items::{BorderDetails, ClipScrollNode}; -use display_list::items::{ClipScrollNodeIndex, ClipScrollNodeType, DisplayItem}; -use display_list::items::{DisplayList, StackingContextType}; +use display_list::items::{BorderDetails, ClipScrollNode, ClipScrollNodeIndex, ClipScrollNodeType}; +use display_list::items::{DisplayItem, DisplayList, StackingContextType}; use msg::constellation_msg::PipelineId; use webrender_api::{self, ClipAndScrollInfo, ClipId, DisplayListBuilder, GlyphRasterSpace}; +use webrender_api::LayoutPoint; pub trait WebRenderDisplayListConverter { fn convert_to_webrender(&self, pipeline_id: PipelineId) -> DisplayListBuilder; @@ -213,29 +213,42 @@ impl WebRenderDisplayItemConverter for DisplayItem { builder.pop_all_shadows(); }, DisplayItem::Iframe(ref item) => { - builder.push_iframe(&self.prim_info(), item.iframe.to_webrender()); + builder.push_iframe(&self.prim_info(), item.iframe.to_webrender(), true); }, DisplayItem::PushStackingContext(ref item) => { let stacking_context = &item.stacking_context; debug_assert_eq!(stacking_context.context_type, StackingContextType::Real); - let reference_frame_clip_id = builder.push_stacking_context( - &webrender_api::LayoutPrimitiveInfo::new(stacking_context.bounds), + let mut info = webrender_api::LayoutPrimitiveInfo::new(stacking_context.bounds); + if let Some(frame_index) = stacking_context.established_reference_frame { + debug_assert!( + stacking_context.transform.is_some() || + stacking_context.perspective.is_some() + ); + + let clip_id = builder.push_reference_frame( + &info.clone(), + stacking_context.transform.map(Into::into), + stacking_context.perspective, + ); + clip_ids[frame_index.to_index()] = Some(clip_id); + + info.rect.origin = LayoutPoint::zero(); + info.clip_rect.origin = LayoutPoint::zero(); + builder.push_clip_id(clip_id); + } + + builder.push_stacking_context( + &info, None, - stacking_context.scroll_policy, - stacking_context.transform.map(Into::into), stacking_context.transform_style, - stacking_context.perspective, stacking_context.mix_blend_mode, stacking_context.filters.clone(), GlyphRasterSpace::Screen, ); - match (reference_frame_clip_id, stacking_context.established_reference_frame) { - (Some(webrender_id), Some(frame_index)) => - clip_ids[frame_index.to_index()] = Some(webrender_id), - (None, None) => {}, - _ => warn!("Mismatch between reference frame establishment!"), + if stacking_context.established_reference_frame.is_some() { + builder.pop_clip_id(); } }, DisplayItem::PopStackingContext(_) => builder.pop_stacking_context(), diff --git a/components/layout/fragment.rs b/components/layout/fragment.rs index b7b3ac07d64..34ef214c275 100644 --- a/components/layout/fragment.rs +++ b/components/layout/fragment.rs @@ -11,7 +11,7 @@ use app_units::Au; use canvas_traits::canvas::{CanvasMsg, CanvasId}; use context::{LayoutContext, with_thread_local_font_context}; use display_list::ToLayout; -use display_list::items::{BLUR_INFLATION_FACTOR, OpaqueNode}; +use display_list::items::{BLUR_INFLATION_FACTOR, ClipScrollNodeIndex, OpaqueNode}; use euclid::{Point2D, Vector2D, Rect, Size2D}; use floats::ClearType; use flow::{GetBaseFlow, ImmutableFlowUtils}; @@ -152,6 +152,11 @@ pub struct Fragment { /// to 0, but it assigned during the collect_stacking_contexts phase of display /// list construction. pub stacking_context_id: StackingContextId, + + /// The indices of this Fragment's ClipScrollNode. If this fragment doesn't have a + /// `established_reference_frame` assigned, it will use the `clipping_and_scrolling` of the + /// parent block. + pub established_reference_frame: Option<ClipScrollNodeIndex>, } impl Serialize for Fragment { @@ -633,6 +638,7 @@ impl Fragment { flags: FragmentFlags::empty(), debug_id: DebugId::new(), stacking_context_id: StackingContextId::root(), + established_reference_frame: None, } } @@ -662,6 +668,7 @@ impl Fragment { flags: FragmentFlags::empty(), debug_id: DebugId::new(), stacking_context_id: StackingContextId::root(), + established_reference_frame: None, } } @@ -687,6 +694,7 @@ impl Fragment { flags: FragmentFlags::empty(), debug_id: DebugId::new(), stacking_context_id: StackingContextId::root(), + established_reference_frame: None, } } @@ -715,6 +723,7 @@ impl Fragment { flags: FragmentFlags::empty(), debug_id: self.debug_id.clone(), stacking_context_id: StackingContextId::root(), + established_reference_frame: None, } } diff --git a/components/layout/table_rowgroup.rs b/components/layout/table_rowgroup.rs index cac1657bd43..d11c38cc275 100644 --- a/components/layout/table_rowgroup.rs +++ b/components/layout/table_rowgroup.rs @@ -186,7 +186,7 @@ impl Flow for TableRowGroupFlow { fn collect_stacking_contexts(&mut self, state: &mut StackingContextCollectionState) { self.block_flow.collect_stacking_contexts_for_block(state, - StackingContextCollectionFlags::NEVER_CREATES_CONTAINING_BLOCK); + StackingContextCollectionFlags::POSITION_NEVER_CREATES_CONTAINING_BLOCK); } fn repair_style(&mut self, new_style: &::ServoArc<ComputedValues>) { diff --git a/components/layout/table_wrapper.rs b/components/layout/table_wrapper.rs index 7336efa41e9..90be14876cc 100644 --- a/components/layout/table_wrapper.rs +++ b/components/layout/table_wrapper.rs @@ -464,7 +464,7 @@ impl Flow for TableWrapperFlow { fn collect_stacking_contexts(&mut self, state: &mut StackingContextCollectionState) { self.block_flow.collect_stacking_contexts_for_block( state, - StackingContextCollectionFlags::NEVER_CREATES_CONTAINING_BLOCK | + StackingContextCollectionFlags::POSITION_NEVER_CREATES_CONTAINING_BLOCK | StackingContextCollectionFlags::NEVER_CREATES_CLIP_SCROLL_NODE); } diff --git a/components/layout/tests/size_of.rs b/components/layout/tests/size_of.rs index 54b5ef39830..f12b0049f4b 100644 --- a/components/layout/tests/size_of.rs +++ b/components/layout/tests/size_of.rs @@ -10,5 +10,5 @@ extern crate layout; use layout::Fragment; use layout::SpecificFragmentInfo; -size_of_test!(test_size_of_fragment, Fragment, 160); +size_of_test!(test_size_of_fragment, Fragment, 176); size_of_test!(test_size_of_specific_fragment_info, SpecificFragmentInfo, 24); diff --git a/components/malloc_size_of/lib.rs b/components/malloc_size_of/lib.rs index b4c7c4232fb..eaec2cb20dc 100644 --- a/components/malloc_size_of/lib.rs +++ b/components/malloc_size_of/lib.rs @@ -807,8 +807,6 @@ malloc_size_of_is_0!(webrender_api::NormalBorder); #[cfg(feature = "webrender_api")] malloc_size_of_is_0!(webrender_api::RepeatMode); #[cfg(feature = "webrender_api")] -malloc_size_of_is_0!(webrender_api::ScrollPolicy); -#[cfg(feature = "webrender_api")] malloc_size_of_is_0!(webrender_api::ScrollSensitivity); #[cfg(feature = "webrender_api")] malloc_size_of_is_0!(webrender_api::StickyOffsetBounds); diff --git a/components/net/image_cache.rs b/components/net/image_cache.rs index 47eb829f962..40ef8041ef7 100644 --- a/components/net/image_cache.rs +++ b/components/net/image_cache.rs @@ -71,8 +71,7 @@ fn set_webrender_image_key(webrender_api: &webrender_api::RenderApi, image: &mut } }; let descriptor = webrender_api::ImageDescriptor { - width: image.width, - height: image.height, + size: webrender_api::DeviceUintSize::new(image.width, image.height), stride: None, format: webrender_api::ImageFormat::BGRA8, offset: 0, @@ -81,9 +80,9 @@ fn set_webrender_image_key(webrender_api: &webrender_api::RenderApi, image: &mut }; let data = webrender_api::ImageData::new(bytes); let image_key = webrender_api.generate_image_key(); - let mut updates = webrender_api::ResourceUpdates::new(); - updates.add_image(image_key, descriptor, data, None); - webrender_api.update_resources(updates); + let mut txn = webrender_api::Transaction::new(); + txn.add_image(image_key, descriptor, data, None); + webrender_api.update_resources(txn.resource_updates); image.id = Some(image_key); } diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-009.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-009.xht.ini new file mode 100644 index 00000000000..816b1d311bb --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-009.xht.ini @@ -0,0 +1,5 @@ +[table-anonymous-objects-009.xht] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: + if os == "linux": FAIL diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-010.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-010.xht.ini new file mode 100644 index 00000000000..4e7ef0dccde --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-010.xht.ini @@ -0,0 +1,5 @@ +[table-anonymous-objects-010.xht] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: + if os == "linux": FAIL diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-011.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-011.xht.ini new file mode 100644 index 00000000000..9feaf71bd67 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-011.xht.ini @@ -0,0 +1,5 @@ +[table-anonymous-objects-011.xht] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: + if os == "linux": FAIL diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-012.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-012.xht.ini new file mode 100644 index 00000000000..131abdab42c --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-012.xht.ini @@ -0,0 +1,5 @@ +[table-anonymous-objects-012.xht] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: + if os == "linux": FAIL diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-017.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-017.xht.ini new file mode 100644 index 00000000000..f9aef3fab48 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-017.xht.ini @@ -0,0 +1,5 @@ +[table-anonymous-objects-017.xht] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: + if os == "linux": FAIL diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-018.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-018.xht.ini new file mode 100644 index 00000000000..a93fa38e5e5 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-018.xht.ini @@ -0,0 +1,5 @@ +[table-anonymous-objects-018.xht] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: + if os == "linux": FAIL diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-019.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-019.xht.ini new file mode 100644 index 00000000000..5d9cda4afbf --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-019.xht.ini @@ -0,0 +1,5 @@ +[table-anonymous-objects-019.xht] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: + if os == "linux": FAIL diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-020.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-020.xht.ini new file mode 100644 index 00000000000..12947886c19 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-020.xht.ini @@ -0,0 +1,5 @@ +[table-anonymous-objects-020.xht] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: + if os == "linux": FAIL diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-115.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-115.xht.ini new file mode 100644 index 00000000000..fc301f6250d --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-115.xht.ini @@ -0,0 +1,5 @@ +[table-anonymous-objects-115.xht] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: + if os == "linux": FAIL diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-116.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-116.xht.ini new file mode 100644 index 00000000000..89e2d4570ec --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-116.xht.ini @@ -0,0 +1,5 @@ +[table-anonymous-objects-116.xht] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: + if os == "linux": FAIL diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-121.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-121.xht.ini new file mode 100644 index 00000000000..935efb86657 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-121.xht.ini @@ -0,0 +1,5 @@ +[table-anonymous-objects-121.xht] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: + if os == "linux": FAIL diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-122.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-122.xht.ini new file mode 100644 index 00000000000..8a66dfce0d1 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-122.xht.ini @@ -0,0 +1,5 @@ +[table-anonymous-objects-122.xht] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: + if os == "linux": FAIL diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-173.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-173.xht.ini new file mode 100644 index 00000000000..fec735227f6 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-173.xht.ini @@ -0,0 +1,5 @@ +[table-anonymous-objects-173.xht] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: + if os == "linux": FAIL diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-174.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-174.xht.ini new file mode 100644 index 00000000000..e71b0f5e9c6 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-174.xht.ini @@ -0,0 +1,5 @@ +[table-anonymous-objects-174.xht] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: + if os == "linux": FAIL diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-175.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-175.xht.ini new file mode 100644 index 00000000000..4e12000857d --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-175.xht.ini @@ -0,0 +1,5 @@ +[table-anonymous-objects-175.xht] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: + if os == "linux": FAIL diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-176.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-176.xht.ini new file mode 100644 index 00000000000..659c592f01a --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-176.xht.ini @@ -0,0 +1,5 @@ +[table-anonymous-objects-176.xht] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: + if os == "linux": FAIL diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-197.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-197.xht.ini new file mode 100644 index 00000000000..4b83df67c85 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-197.xht.ini @@ -0,0 +1,5 @@ +[table-anonymous-objects-197.xht] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: + if os == "linux": FAIL diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-198.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-198.xht.ini new file mode 100644 index 00000000000..0135b7f4dc7 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-198.xht.ini @@ -0,0 +1,5 @@ +[table-anonymous-objects-198.xht] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: + if os == "linux": FAIL diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-199.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-199.xht.ini new file mode 100644 index 00000000000..51be43ee654 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-199.xht.ini @@ -0,0 +1,5 @@ +[table-anonymous-objects-199.xht] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: + if os == "linux": FAIL diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-200.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-200.xht.ini new file mode 100644 index 00000000000..bafb9882ef4 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-200.xht.ini @@ -0,0 +1,5 @@ +[table-anonymous-objects-200.xht] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: + if os == "linux": FAIL diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-201.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-201.xht.ini new file mode 100644 index 00000000000..79154b48eff --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-201.xht.ini @@ -0,0 +1,5 @@ +[table-anonymous-objects-201.xht] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: + if os == "linux": FAIL diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-202.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-202.xht.ini new file mode 100644 index 00000000000..4fff88dd0da --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-202.xht.ini @@ -0,0 +1,5 @@ +[table-anonymous-objects-202.xht] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: + if os == "linux": FAIL diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-203.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-203.xht.ini new file mode 100644 index 00000000000..d853124bd2e --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-203.xht.ini @@ -0,0 +1,5 @@ +[table-anonymous-objects-203.xht] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: + if os == "linux": FAIL diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-204.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-204.xht.ini new file mode 100644 index 00000000000..a8c92f18dcc --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-204.xht.ini @@ -0,0 +1,5 @@ +[table-anonymous-objects-204.xht] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: + if os == "linux": FAIL diff --git a/tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-parent-with-text.html.ini b/tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-parent-with-text.html.ini new file mode 100644 index 00000000000..e72482e37fa --- /dev/null +++ b/tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-parent-with-text.html.ini @@ -0,0 +1,4 @@ +[mix-blend-mode-parent-with-text.html] + type: reftest + expected: + if os == "linux": FAIL diff --git a/tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-sibling-with-3D-transform.html.ini b/tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-sibling-with-3D-transform.html.ini new file mode 100644 index 00000000000..47ca5b4ed24 --- /dev/null +++ b/tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-sibling-with-3D-transform.html.ini @@ -0,0 +1,3 @@ +[mix-blend-mode-sibling-with-3D-transform.html] + type: reftest + expected: FAIL diff --git a/tests/wpt/metadata/css/css-transforms/transform-input-001.html.ini b/tests/wpt/metadata/css/css-transforms/transform-input-001.html.ini new file mode 100644 index 00000000000..bb7775c1f26 --- /dev/null +++ b/tests/wpt/metadata/css/css-transforms/transform-input-001.html.ini @@ -0,0 +1,4 @@ +[transform-input-001.html] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: FAIL diff --git a/tests/wpt/metadata/css/css-transforms/transform-input-002.html.ini b/tests/wpt/metadata/css/css-transforms/transform-input-002.html.ini new file mode 100644 index 00000000000..e340df538c9 --- /dev/null +++ b/tests/wpt/metadata/css/css-transforms/transform-input-002.html.ini @@ -0,0 +1,4 @@ +[transform-input-002.html] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: FAIL diff --git a/tests/wpt/metadata/css/css-transforms/transform-input-003.html.ini b/tests/wpt/metadata/css/css-transforms/transform-input-003.html.ini new file mode 100644 index 00000000000..7bb17627e41 --- /dev/null +++ b/tests/wpt/metadata/css/css-transforms/transform-input-003.html.ini @@ -0,0 +1,4 @@ +[transform-input-003.html] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: FAIL diff --git a/tests/wpt/metadata/css/css-transforms/transform-input-004.html.ini b/tests/wpt/metadata/css/css-transforms/transform-input-004.html.ini new file mode 100644 index 00000000000..12fb0f8c3e6 --- /dev/null +++ b/tests/wpt/metadata/css/css-transforms/transform-input-004.html.ini @@ -0,0 +1,4 @@ +[transform-input-004.html] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: FAIL diff --git a/tests/wpt/metadata/css/css-transforms/transform-input-005.html.ini b/tests/wpt/metadata/css/css-transforms/transform-input-005.html.ini new file mode 100644 index 00000000000..76b23603452 --- /dev/null +++ b/tests/wpt/metadata/css/css-transforms/transform-input-005.html.ini @@ -0,0 +1,4 @@ +[transform-input-005.html] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: FAIL diff --git a/tests/wpt/metadata/css/css-transforms/transform-input-006.html.ini b/tests/wpt/metadata/css/css-transforms/transform-input-006.html.ini new file mode 100644 index 00000000000..f832da76ab5 --- /dev/null +++ b/tests/wpt/metadata/css/css-transforms/transform-input-006.html.ini @@ -0,0 +1,4 @@ +[transform-input-006.html] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: FAIL diff --git a/tests/wpt/metadata/css/css-transforms/transform-input-007.html.ini b/tests/wpt/metadata/css/css-transforms/transform-input-007.html.ini new file mode 100644 index 00000000000..91d9f5d354d --- /dev/null +++ b/tests/wpt/metadata/css/css-transforms/transform-input-007.html.ini @@ -0,0 +1,4 @@ +[transform-input-007.html] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: FAIL diff --git a/tests/wpt/metadata/css/css-transforms/transform-input-008.html.ini b/tests/wpt/metadata/css/css-transforms/transform-input-008.html.ini new file mode 100644 index 00000000000..a7193849f0e --- /dev/null +++ b/tests/wpt/metadata/css/css-transforms/transform-input-008.html.ini @@ -0,0 +1,4 @@ +[transform-input-008.html] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: FAIL diff --git a/tests/wpt/metadata/css/css-transforms/transform-input-009.html.ini b/tests/wpt/metadata/css/css-transforms/transform-input-009.html.ini new file mode 100644 index 00000000000..4c738205f86 --- /dev/null +++ b/tests/wpt/metadata/css/css-transforms/transform-input-009.html.ini @@ -0,0 +1,4 @@ +[transform-input-009.html] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: FAIL diff --git a/tests/wpt/metadata/css/css-transforms/transform-input-010.html.ini b/tests/wpt/metadata/css/css-transforms/transform-input-010.html.ini new file mode 100644 index 00000000000..e0ab3a5fb4e --- /dev/null +++ b/tests/wpt/metadata/css/css-transforms/transform-input-010.html.ini @@ -0,0 +1,4 @@ +[transform-input-010.html] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: FAIL diff --git a/tests/wpt/metadata/css/css-transforms/transform-input-012.html.ini b/tests/wpt/metadata/css/css-transforms/transform-input-012.html.ini new file mode 100644 index 00000000000..1528940c1da --- /dev/null +++ b/tests/wpt/metadata/css/css-transforms/transform-input-012.html.ini @@ -0,0 +1,5 @@ +[transform-input-012.html] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: + if os == "linux": FAIL diff --git a/tests/wpt/metadata/css/css-transforms/transform-input-013.html.ini b/tests/wpt/metadata/css/css-transforms/transform-input-013.html.ini new file mode 100644 index 00000000000..bbdc65f2767 --- /dev/null +++ b/tests/wpt/metadata/css/css-transforms/transform-input-013.html.ini @@ -0,0 +1,4 @@ +[transform-input-013.html] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: FAIL diff --git a/tests/wpt/metadata/css/css-transforms/transform-input-014.html.ini b/tests/wpt/metadata/css/css-transforms/transform-input-014.html.ini new file mode 100644 index 00000000000..76eaa8ade6e --- /dev/null +++ b/tests/wpt/metadata/css/css-transforms/transform-input-014.html.ini @@ -0,0 +1,4 @@ +[transform-input-014.html] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: FAIL diff --git a/tests/wpt/metadata/css/css-transforms/transform-input-015.html.ini b/tests/wpt/metadata/css/css-transforms/transform-input-015.html.ini new file mode 100644 index 00000000000..4691ee5df7a --- /dev/null +++ b/tests/wpt/metadata/css/css-transforms/transform-input-015.html.ini @@ -0,0 +1,4 @@ +[transform-input-015.html] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: FAIL diff --git a/tests/wpt/metadata/css/css-transforms/transform-input-016.html.ini b/tests/wpt/metadata/css/css-transforms/transform-input-016.html.ini new file mode 100644 index 00000000000..4a91e375997 --- /dev/null +++ b/tests/wpt/metadata/css/css-transforms/transform-input-016.html.ini @@ -0,0 +1,4 @@ +[transform-input-016.html] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: FAIL diff --git a/tests/wpt/metadata/css/css-transforms/transform-input-017.html.ini b/tests/wpt/metadata/css/css-transforms/transform-input-017.html.ini new file mode 100644 index 00000000000..b6c96fff2e3 --- /dev/null +++ b/tests/wpt/metadata/css/css-transforms/transform-input-017.html.ini @@ -0,0 +1,5 @@ +[transform-input-017.html] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: + if os == "linux": FAIL diff --git a/tests/wpt/metadata/css/css-transforms/transform-input-018.html.ini b/tests/wpt/metadata/css/css-transforms/transform-input-018.html.ini new file mode 100644 index 00000000000..a2a62eedac3 --- /dev/null +++ b/tests/wpt/metadata/css/css-transforms/transform-input-018.html.ini @@ -0,0 +1,5 @@ +[transform-input-018.html] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: + if os == "mac": FAIL diff --git a/tests/wpt/metadata/css/css-transforms/transform-input-019.html.ini b/tests/wpt/metadata/css/css-transforms/transform-input-019.html.ini new file mode 100644 index 00000000000..94f584c3699 --- /dev/null +++ b/tests/wpt/metadata/css/css-transforms/transform-input-019.html.ini @@ -0,0 +1,4 @@ +[transform-input-019.html] + type: reftest + bug: https://github.com/servo/servo/issues/21092 + expected: FAIL |