Closed Bug 1411411 Opened 4 years ago Closed 4 years ago

Fullscreen video is broken with retained-dl

Categories

(Core :: Web Painting, enhancement)

enhancement
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla58
Tracking Status
firefox58 --- fixed

People

(Reporter: mattwoodrow, Assigned: mattwoodrow)

References

Details

Attachments

(1 file)

Looks like we're adding a clip around the partial build (dirty) region, which clips out everything that wasn't built this frame.

That's bad, we should be clipping to the visible region instead (which was the old behaviour when visible == dirty).
Attachment #8921626 - Flags: review?(mikokm)
Comment on attachment 8921626 [details] [diff] [review]
Don't clip TopLayer items to the dirty rect

># HG changeset patch
># User Matt Woodrow <mwoodrow@mozilla.com>
># Date 1508878656 -46800
>#      Wed Oct 25 09:57:36 2017 +1300
># Node ID 2cbd3f5142cc3492fd0d9a63ca1a47449b315c06
># Parent  50e8ae90137a2d2164a2e9d383c660bf43c6ad2b
>[mq]: use-visible-rect
>
>diff --git a/layout/generic/ViewportFrame.cpp b/layout/generic/ViewportFrame.cpp
>--- a/layout/generic/ViewportFrame.cpp
>+++ b/layout/generic/ViewportFrame.cpp
>@@ -116,17 +116,17 @@ BuildDisplayListForTopLayerFrame(nsDispl
>     // scroll frame is no longer on aBuilder. However, we need to make sure
>     // that the display items we build in this function have finite clipped
>     // bounds with respect to the root ASR, so we restore the *combined clip*
>     // that we saved earlier. The combined clip will include the clip from the
>     // root scroll frame.
>     clipState.SetClipChainForContainingBlockDescendants(
>       savedOutOfFlowData->mCombinedClipChain);
>     clipState.ClipContainingBlockDescendantsExtra(
>-      dirty + aBuilder->ToReferenceFrame(aFrame), nullptr);
>+      visible + aBuilder->ToReferenceFrame(aFrame), nullptr);
>     asrSetter.SetCurrentActiveScrolledRoot(
>       savedOutOfFlowData->mContainingBlockActiveScrolledRoot);
>   }
>   nsDisplayListBuilder::AutoBuildingDisplayList
>     buildingForChild(aBuilder, aFrame, visible, dirty,
>                      aBuilder->IsAtRootOfPseudoStackingContext());
> 
>   nsDisplayList list(aBuilder);
Attachment #8921626 - Attachment is patch: true
Attachment #8921626 - Flags: review?(mikokm) → review+
Status: NEW → ASSIGNED
Pushed by mwoodrow@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/e31ecc88389e
Clip TopLayer display items to the visible area, not the display list building area. r=miko
https://hg.mozilla.org/mozilla-central/rev/e31ecc88389e
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla58
Blocks: 1467514
No longer blocks: 1467514
You need to log in before you can comment on or make changes to this bug.