Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upFix duplicate stacking context creation for anonymous Flows #18921
Conversation
highfive
commented
Oct 17, 2017
|
Heads up! This PR modifies the following files:
|
highfive
commented
Oct 17, 2017
|
A couple tests fail due to missing display:inline-table support. These failures were hidden before. I'm also noticing a couple passes that I'd like to confirm via bors now. @bors-servo try |
cf5af6e
to
b3ad3fb
…<try> Fix duplicate stacking context creation for anonymous Flows Anonymous nodes were previously creating duplicate stacking contexts, one for each node in the anonymous node chain. This change eliminates that for tables. Additionally the use of stacking context ids based on node addresses is no longer necessary since stacking contexts no longer control scrolling. This is the first step in eliminating the dependency between node addresses and ClipScrollNodes which causes issues like #16425. <!-- Please describe your changes on the following line: --> --- <!-- 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 - [ ] These changes fix #__ (github issue number if applicable). <!-- Either: --> - [ ] There are tests for these changes OR - [x] These changes do not require tests because they are covered by existing tests. <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- 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/18921) <!-- Reviewable:end -->
|
|
b3ad3fb
to
ae3c4be
|
The failures and passes were the ones that I was expecting. I've updated the PR and it should be ready to review. @bors-servo try |
…<try> Fix duplicate stacking context creation for anonymous Flows Anonymous nodes were previously creating duplicate stacking contexts, one for each node in the anonymous node chain. This change eliminates that for tables. Additionally the use of stacking context ids based on node addresses is no longer necessary since stacking contexts no longer control scrolling. This is the first step in eliminating the dependency between node addresses and ClipScrollNodes which causes issues like #16425. <!-- Please describe your changes on the following line: --> --- <!-- 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 - [ ] These changes fix #__ (github issue number if applicable). <!-- Either: --> - [ ] There are tests for these changes OR - [x] These changes do not require tests because they are covered by existing tests. <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- 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/18921) <!-- Reviewable:end -->
|
|
|
So, I still think the INHERIT_ALL flag may be pretty broken (what happens when we transform a table, do we double transform it because it also applies to the parent?) I also don't know what a non-anonymous table wrapper is supposed to be, so maybe @mbrubeck, which reviewed the In any case, this looks like a step in the right direction, r=me |
| @@ -763,12 +763,12 @@ impl Stylist { | |||
|
|
|||
| // For most (but not all) pseudo-elements, we inherit all values from the parent. | |||
| let inherit_all = match *pseudo { | |||
| PseudoElement::ServoAnonymousTableCell | | |||
| PseudoElement::ServoAnonymousTableRow | | |||
This comment has been minimized.
This comment has been minimized.
emilio
Oct 17, 2017
Member
Please add a comment on how this infliluences stacking context creation and such?
This comment has been minimized.
This comment has been minimized.
mrobinson
Oct 18, 2017
Author
Member
I left some comments here. I think they also answer your earlier question about transformations.
| if self.base.flags.contains(IS_ABSOLUTELY_POSITIONED) || | ||
| self.fragment.style.get_box().position != position::T::static_ || | ||
| self.base.flags.is_float() { | ||
| BlockStackingContextType::PseudoStackingContext |
This comment has been minimized.
This comment has been minimized.
emilio
Oct 17, 2017
Member
Maybe this reads nicer returning early in each of those cases? Your call.
This comment has been minimized.
This comment has been minimized.
Anonymous nodes were previously creating duplicate stacking contexts, one for each node in the anonymous node chain. This change eliminates that for tables. Additionally the use of stacking context ids based on node addresses is no longer necessary since stacking contexts no longer control scrolling. This is the first step in eliminating the dependency between node addresses and ClipScrollNodes which causes issues like #16425.
ae3c4be
to
36fa7e4
|
@bors-servo r=emilio |
|
|
…emilio Fix duplicate stacking context creation for anonymous Flows Anonymous nodes were previously creating duplicate stacking contexts, one for each node in the anonymous node chain. This change eliminates that for tables. Additionally the use of stacking context ids based on node addresses is no longer necessary since stacking contexts no longer control scrolling. This is the first step in eliminating the dependency between node addresses and ClipScrollNodes which causes issues like #16425. <!-- Please describe your changes on the following line: --> --- <!-- 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 - [ ] These changes fix #__ (github issue number if applicable). <!-- Either: --> - [ ] There are tests for these changes OR - [x] These changes do not require tests because they are covered by existing tests. <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- 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/18921) <!-- Reviewable:end -->
|
@bors-servo: retry |
|
@bors-servo: r- |
|
@bors-servo; r=emilio |
|
|
…emilio Fix duplicate stacking context creation for anonymous Flows Anonymous nodes were previously creating duplicate stacking contexts, one for each node in the anonymous node chain. This change eliminates that for tables. Additionally the use of stacking context ids based on node addresses is no longer necessary since stacking contexts no longer control scrolling. This is the first step in eliminating the dependency between node addresses and ClipScrollNodes which causes issues like #16425. <!-- Please describe your changes on the following line: --> --- <!-- 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 - [ ] These changes fix #__ (github issue number if applicable). <!-- Either: --> - [ ] There are tests for these changes OR - [x] These changes do not require tests because they are covered by existing tests. <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- 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/18921) <!-- Reviewable:end -->
|
|
mrobinson commentedOct 17, 2017
•
edited by SimonSapin
Anonymous nodes were previously creating duplicate stacking contexts,
one for each node in the anonymous node chain. This change eliminates
that for tables.
Additionally the use of stacking context ids based on node addresses is
no longer necessary since stacking contexts no longer control scrolling.
This is the first step in eliminating the dependency between node
addresses and ClipScrollNodes which causes issues like #16425.
./mach build -ddoes not report any errors./mach test-tidydoes not report any errorsThis change is