Skip to content

Commit

Permalink
Fix failing assertion -- failure to pop reference frame
Browse files Browse the repository at this point in the history
closes #23438
  • Loading branch information
dralley committed Mar 31, 2020
1 parent 15d8c60 commit 3258bca
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 6 deletions.
5 changes: 4 additions & 1 deletion components/layout/display_list/items.rs
Expand Up @@ -195,7 +195,7 @@ pub struct StackingContext {
/// The clip and scroll info for this StackingContext.
pub parent_clipping_and_scrolling: ClippingAndScrolling,

/// The index of the reference frame that this stacking context estalishes.
/// The index of the reference frame that this stacking context establishes.
pub established_reference_frame: Option<ClipScrollNodeIndex>,
}

Expand Down Expand Up @@ -261,6 +261,7 @@ impl StackingContext {
let pop_item = DisplayItem::PopStackingContext(Box::new(PopStackingContextItem {
base: base_item.clone(),
stacking_context_id: self.id,
established_reference_frame: self.established_reference_frame.is_some(),
}));

let push_item = DisplayItem::PushStackingContext(Box::new(PushStackingContextItem {
Expand Down Expand Up @@ -657,6 +658,8 @@ pub struct PopStackingContextItem {
pub base: BaseDisplayItem,

pub stacking_context_id: StackingContextId,

pub established_reference_frame: bool,
}

/// Starts a group of items inside a particular scroll root.
Expand Down
7 changes: 5 additions & 2 deletions components/layout/display_list/webrender_helpers.rs
Expand Up @@ -186,7 +186,7 @@ impl DisplayItem {
);
IsContentful(false)
},
DisplayItem::PushStackingContext(ref mut item) => {
DisplayItem::PushStackingContext(ref item) => {
let stacking_context = &item.stacking_context;
debug_assert_eq!(stacking_context.context_type, StackingContextType::Real);

Expand Down Expand Up @@ -252,8 +252,11 @@ impl DisplayItem {
builder.push_item(&WrDisplayItem::PushStackingContext(wr_item));
IsContentful(false)
},
DisplayItem::PopStackingContext(_) => {
DisplayItem::PopStackingContext(ref item) => {
builder.pop_stacking_context();
if item.established_reference_frame {
builder.pop_reference_frame();
}
IsContentful(false)
},
DisplayItem::DefineClipScrollNode(ref mut item) => {
Expand Down

This file was deleted.

0 comments on commit 3258bca

Please sign in to comment.