Closed Bug 1367488 Opened 7 years ago Closed 7 years ago

Scrollbar thumb inside iframe can still be cut off after being offscreen

Categories

(Core :: Panning and Zooming, defect, P3)

55 Branch
defect

Tracking

()

VERIFIED FIXED
mozilla55
Tracking Status
firefox53 --- unaffected
firefox54 --- unaffected
firefox55 --- verified

People

(Reporter: botond, Assigned: botond)

References

Details

(Whiteboard: [gfx-noted])

Attachments

(1 file)

STR:
  1. Load https://people-mozilla.org/~bballo/bug1359868.html
  2. Unmaximize the Firefox window if necessary, and position it
     so that there's space below it.
  3. Grab the subframe's scroll thumb near the top.
  4. Drag it down until mouse leaves the Firefox window, and then back up.

Expected results:

  The scrollbar thumb is fully painted when you drag it back up.

Actual results:

  The scrollbar thumb is only partially painted.
Priority: -- → P3
Whiteboard: [gfx-noted]
Version: unspecified → 55 Branch
Getting this to work ended up requiring several changes:

  - Capturing the current clip state on the scroll thumb's container layer,
    so it doesn't clip the thumb's contents.

  - Getting nsDisplayOwnLayer to override ShouldBuildLayerEvenIfInvisible()
    to return true for thumb container layers, so it's rendered even if its
    clipped bounds are empty.

  - Overriding the animated geometry root for nsDisplayOwnLayer items
    representing thumb layers to be the AGR created for the thumb.

With these changes things seem to be working well. I'll flag this for review if the Try push looks good.
Looks like the patch is breaking:

  layout/reftests/layers/pull-background-{1-6}.html
  layout/reftests/layers/pull-background-displayport-{1-6}.html
  layout/reftests/invalidation/layer-splitting-{5,6}.html
(In reply to Botond Ballo [:botond] from comment #4)
> Looks like the patch is breaking:

Indeed, the patch was stomping all over attempts to merge content before and after a scrollframe with a layerized thumb into the same layer (and other optimizations like lifting background colors), because the thumb layer wasn't clipped to the slider track, so FrameLayerBuilder thought it could potentially move around arbitrarily. This is fixed in the updated patch.
Comment on attachment 8871975 [details]
Bug 1367488 - Pre-render offscreen portions of scrollbar thumbs inside an iframe.

https://reviewboard.mozilla.org/r/143508/#review148962
Attachment #8871975 - Flags: review?(mstange) → review+
Pushed by bballo@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/0d50eaa8bfa0
Pre-render offscreen portions of scrollbar thumbs inside an iframe. r=mstange
Blocks: 1369828
Blocks: 1369910
https://hg.mozilla.org/mozilla-central/rev/0d50eaa8bfa0
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla55
Hi Botond,

I retested this issue and on Windows, there are some problems. I followed the steps from comment 0 but clicked on "Append". I see some flickers on the scrollbar when you move it up and down. The issue is reproducible only on Windows (tested on Win 7,10,8.1) with the latest Nightly 55.0a1 (2017-06-05).
On Mac and Ubuntu, the issue can't be reproduced.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Let's file a new bug for the remaining issue.
Status: REOPENED → RESOLVED
Closed: 7 years ago7 years ago
Resolution: --- → FIXED
I verified this issue on Mac OS X 10.12, Ubuntu 16.04 x64 and Windows 10 x64 with FF Nightly 56.0a1(2017-07-03) and I can confirm the fix.
Status: RESOLVED → VERIFIED
Depends on: 1389905
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: