Closed
Bug 1374761
Opened 7 years ago
Closed 7 years ago
stylo: support incremental restyling of various root-related anonymous boxes
Categories
(Core :: CSS Parsing and Computation, enhancement)
Tracking
()
RESOLVED
FIXED
mozilla56
Tracking | Status | |
---|---|---|
firefox56 | --- | fixed |
People
(Reporter: bzbarsky, Assigned: bzbarsky)
References
Details
Attachments
(2 files)
Viewport, root scrollframe, etc.
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment 3•7 years ago
|
||
mozreview-review |
Comment on attachment 8879688 [details]
Bug 1374761 part 1. Properly restyle the viewport and its child anonymous box when we do a restyle.
https://reviewboard.mozilla.org/r/151034/#review155892
::: layout/generic/ViewportFrame.cpp:434
(Diff revision 1)
> + // content to the change list.
> + uint32_t equalStructs, samePointerStructs; // Not used.
> + // We ignore the hint, since we can't very well queue it up anyway with a null
> + // GetContent(). But we still want to CalcStyleDifference to reget lazy
> + // structs as needed.
> + Unused << oldContext->CalcStyleDifference(newContext, &equalStructs,
`EnsureSameStructsCached`?
Assignee | ||
Comment 4•7 years ago
|
||
> `EnsureSameStructsCached`?
Good catch!
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment 7•7 years ago
|
||
mozreview-review |
Comment on attachment 8879688 [details]
Bug 1374761 part 1. Properly restyle the viewport and its child anonymous box when we do a restyle.
https://reviewboard.mozilla.org/r/151034/#review156186
::: layout/generic/nsFrame.cpp:10211
(Diff revision 2)
> nsStyleChangeList& aChangeList,
> nsChangeHint aHintForThisFrame)
> {
> MOZ_ASSERT(aChildFrame->GetParent() == this,
> "This should only be used for children!");
> - MOZ_ASSERT(aChildFrame->GetContent() == GetContent(),
> + MOZ_ASSERT(!GetContent() /* We're the viewport */ ||
You could do |!GetContent() && IsViewportFrame()|.
Attachment #8879688 -
Flags: review?(cam) → review+
Comment 8•7 years ago
|
||
mozreview-review |
Comment on attachment 8879689 [details]
Bug 1374761 part 2. Properly restyle the various paginated-presentation anonymous boxes.
https://reviewboard.mozilla.org/r/151036/#review156190
::: layout/base/nsCSSFrameConstructor.cpp:3048
(Diff revision 2)
> + if (!prevPageContentFrame) {
> + pageContentFrame->AddStateBits(NS_FRAME_OWNS_ANON_BOXES);
> + }
Why only on the first one?
Assignee | ||
Comment 9•7 years ago
|
||
> Why only on the first one?
Because the anon box handling always walks continuations. So we only set this flag on first continuations to avoid O(N^2) walks. This is how it works for all frames that have this flag set.
Comment 10•7 years ago
|
||
mozreview-review |
Comment on attachment 8879689 [details]
Bug 1374761 part 2. Properly restyle the various paginated-presentation anonymous boxes.
https://reviewboard.mozilla.org/r/151036/#review156272
Attachment #8879689 -
Flags: review?(cam) → review+
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Assignee | ||
Comment 13•7 years ago
|
||
mozreview-review-reply |
Comment on attachment 8879688 [details]
Bug 1374761 part 1. Properly restyle the viewport and its child anonymous box when we do a restyle.
https://reviewboard.mozilla.org/r/151034/#review156186
> You could do |!GetContent() && IsViewportFrame()|.
Good idea, done.
Comment 14•7 years ago
|
||
Pushed by bzbarsky@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/74d8ec6397ee
part 1. Properly restyle the viewport and its child anonymous box when we do a restyle. r=heycam
https://hg.mozilla.org/integration/autoland/rev/272a41ef0e3d
part 2. Properly restyle the various paginated-presentation anonymous boxes. r=heycam
Comment 15•7 years ago
|
||
Pushed by bzbarsky@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/e990953fc64f
followup. Adjust test expectations for now-passing tests. r=orange
Comment 16•7 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/74d8ec6397ee
https://hg.mozilla.org/mozilla-central/rev/272a41ef0e3d
https://hg.mozilla.org/mozilla-central/rev/e990953fc64f
Status: NEW → RESOLVED
Closed: 7 years ago
status-firefox56:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla56
Updated•6 years ago
|
Assignee: nobody → bzbarsky
You need to log in
before you can comment on or make changes to this bug.
Description
•