servo/components/layout
bors-servo ef5ca14283 Auto merge of #14084 - mrobinson:scroll_root_2, r=glennw
Don't promote all scrollable regions to stacking contexts

<!-- Please describe your changes on the following line: -->

Don't promote all scrollable regions to stacking contexts

Instead annotate all flows with their owning ScrollRoots. When
processing the display list items into a flattened display list, we add
PushScrollRoot and PopScrollRoot to signal when scrolling regions start
and end. It is possible for content from different scrolling regions to
intersect and when they do, the stack of scrolling regions is
duplicated.  When these duplicated scrolling regions stacks reach
WebRender, it will scroll them in tandem.

The PushScrollRoot and PopScrollRoot items are currently represented as
StackingContexts in WebRender, but eventually these will be replaced
with special WebRender display items.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #13529 and #13298. (github issue number if applicable).

<!-- Either: -->
- [x] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14084)
<!-- Reviewable:end -->
2016-11-07 18:49:53 -06:00
..
animation.rs Stop using associated types for the concrete TRestyleDamage implementation. 2016-11-07 11:10:48 -08:00
block.rs Auto merge of #14084 - mrobinson:scroll_root_2, r=glennw 2016-11-07 18:49:53 -06:00
Cargo.toml Migrated -Z trace-layout to serde_json 2016-11-07 15:54:07 +08:00
construct.rs Stop using associated types for the concrete TRestyleDamage implementation. 2016-11-07 11:10:48 -08:00
context.rs Concurrent rule tree, v1 2016-11-05 17:29:52 +01:00
data.rs Move children_to_process to layout. 2016-10-08 18:20:45 -07:00
display_list_builder.rs Auto merge of #14084 - mrobinson:scroll_root_2, r=glennw 2016-11-07 18:49:53 -06:00
flex.rs Stop using associated types for the concrete TRestyleDamage implementation. 2016-11-07 11:10:48 -08:00
floats.rs Migrated -Z trace-layout to serde_json 2016-11-07 15:54:07 +08:00
flow.rs Stop using associated types for the concrete TRestyleDamage implementation. 2016-11-07 11:10:48 -08:00
flow_list.rs Migrated -Z trace-layout to serde_json 2016-11-07 15:54:07 +08:00
flow_ref.rs Migrated -Z trace-layout to serde_json 2016-11-07 15:54:07 +08:00
fragment.rs Auto merge of #14084 - mrobinson:scroll_root_2, r=glennw 2016-11-07 18:49:53 -06:00
generated_content.rs Stop using associated types for the concrete TRestyleDamage implementation. 2016-11-07 11:10:48 -08:00
incremental.rs Stop using associated types for the concrete TRestyleDamage implementation. 2016-11-07 11:10:48 -08:00
inline.rs Stop using associated types for the concrete TRestyleDamage implementation. 2016-11-07 11:10:48 -08:00
layout_debug.rs Migrated -Z trace-layout to serde_json 2016-11-07 15:54:07 +08:00
lib.rs Migrated -Z trace-layout to serde_json 2016-11-07 15:54:07 +08:00
linked_list.rs Move util::linked_list to layout 2016-06-29 17:23:04 +02:00
list_item.rs Stop using associated types for the concrete TRestyleDamage implementation. 2016-11-07 11:10:48 -08:00
model.rs Migrated -Z trace-layout to serde_json 2016-11-07 15:54:07 +08:00
multicol.rs Make FlowRef a newtype 2016-11-04 13:36:04 -07:00
opaque_node.rs Introduce LayoutJS<Node>::opaque() to replace OpaqueNodeMethods::from_jsmanaged(). 2016-06-20 19:08:02 +02:00
parallel.rs Reorder use statements 2016-09-09 04:55:19 +02:00
persistent_list.rs Move util::persistent_list to layout 2016-02-20 19:20:38 +01:00
query.rs Prefer Servo-specific ToCss for all types 2016-11-07 09:14:22 +05:30
sequential.rs Stop using associated types for the concrete TRestyleDamage implementation. 2016-11-07 11:10:48 -08:00
table.rs Stop using associated types for the concrete TRestyleDamage implementation. 2016-11-07 11:10:48 -08:00
table_caption.rs Use a new id type for tracking scrolling areas 2016-10-30 21:10:04 +01:00
table_cell.rs Migrated -Z trace-layout to serde_json 2016-11-07 15:54:07 +08:00
table_colgroup.rs Use a new id type for tracking scrolling areas 2016-10-30 21:10:04 +01:00
table_row.rs Stop using associated types for the concrete TRestyleDamage implementation. 2016-11-07 11:10:48 -08:00
table_rowgroup.rs Migrated -Z trace-layout to serde_json 2016-11-07 15:54:07 +08:00
table_wrapper.rs Migrated -Z trace-layout to serde_json 2016-11-07 15:54:07 +08:00
text.rs Use word-break to decide how glyph runs should be created 2016-09-27 11:25:21 +02:00
traversal.rs Auto merge of #14084 - mrobinson:scroll_root_2, r=glennw 2016-11-07 18:49:53 -06:00
webrender_helpers.rs Don't promote all scrollable regions to stacking contexts 2016-11-05 18:36:45 +01:00
wrapper.rs Drop style data from descendants on display:none. 2016-11-01 11:03:04 -07:00