Closed
Bug 1238571
Opened 9 years ago
Closed 9 years ago
APZ scrolling broken in the log preview on treeherder, which has a scrollbox inside a position:fixed body element
Categories
(Core :: Panning and Zooming, defect)
Core
Panning and Zooming
Tracking
()
RESOLVED
FIXED
mozilla47
People
(Reporter: mstange, Assigned: botond)
References
Details
Attachments
(4 files)
STR:
1. Load the attached testcase.
2. In the scroll frame at the bottom, scroll down until you're roughly in the middle of the scrollable range (to work around bug 1192910).
3. Slowly scroll up and down.
Instead of scrolling smoothly, the scrolled layer will only update its position when the display port changes or when something else triggers a main thread paint, e.g. when you hover over a scrollbar. Interestingly, the scrollbar thumbs are still moving the way you'd expect them to.
Reporter | ||
Comment 1•9 years ago
|
||
This is due to body { position: fixed; }. Botond, do you want to take a look?
Flags: needinfo?(botond)
Summary: APZ scrolling broken in the log preview on treeherder → APZ scrolling broken in the log preview on treeherder, which has a scrollbox inside a position:fixed body element
Reporter | ||
Comment 2•9 years ago
|
||
Assignee | ||
Comment 3•9 years ago
|
||
(In reply to Markus Stange [:mstange] from comment #1)
> This is due to body { position: fixed; }. Botond, do you want to take a look?
Sure.
Assignee: nobody → botond
Flags: needinfo?(botond)
Assignee | ||
Comment 4•9 years ago
|
||
I can't reproduce the problem on Linux desktop using today's nightly build.
Assignee | ||
Comment 5•9 years ago
|
||
(In reply to Botond Ballo [:botond] from comment #4)
> I can't reproduce the problem on Linux desktop using today's nightly build.
Nor on a Linux laptop using the trackpad.
Markus, assuming you were testing on OS X with a trackpad, is it possible the issue is specific to that input method? Could you test this by attaching a mouse and trying a wheel-scroll?
Alternatively, do you have any local patches applied that might be causing this?
Flags: needinfo?(mstange)
Assignee | ||
Comment 6•9 years ago
|
||
(In reply to Botond Ballo [:botond] from comment #4)
> I can't reproduce the problem on Linux desktop using today's nightly build.
Actually, that seems to be because we're painting after just about every composite, which I'm guessing is a bug unto its own.
I do see the scroll pause when painting gets backed up and we do a few composites without painting, indicating that there is indeed a problem in AsyncCompositionManager.
Flags: needinfo?(mstange)
Assignee | ||
Comment 7•9 years ago
|
||
(In reply to Botond Ballo [:botond] from comment #6)
> (In reply to Botond Ballo [:botond] from comment #4)
> > I can't reproduce the problem on Linux desktop using today's nightly build.
>
> Actually, that seems to be because we're painting after just about every
> composite, which I'm guessing is a bug unto its own.
The optimization put in place in bug 1187432 (to avoid a paint when the displayport didn't move) is firing, but it looks like something else is scheduling a paint every composite.
Assignee | ||
Comment 8•9 years ago
|
||
(In reply to Botond Ballo [:botond] from comment #7)
> (In reply to Botond Ballo [:botond] from comment #6)
> > (In reply to Botond Ballo [:botond] from comment #4)
> > > I can't reproduce the problem on Linux desktop using today's nightly build.
> >
> > Actually, that seems to be because we're painting after just about every
> > composite, which I'm guessing is a bug unto its own.
>
> The optimization put in place in bug 1187432 (to avoid a paint when the
> displayport didn't move) is firing, but it looks like something else is
> scheduling a paint every composite.
Filed bug 1238805 for this; will continue investigation there.
Assignee | ||
Comment 9•9 years ago
|
||
diagnosis |
So on this page, we have:
- a non-scrollable RSF, which is also position:fixed
- a scrollable subframe
Neither the scrollframes nor the position:fixed create a ContainerLayer, so we end up with a PaintedLayer which has the following annotations:
- metrics for the RSF
- metrics for the subframe
- a "fixed" annotation that says it's fixed with respect to the RSF
It gets the fixed annotation because it's one of the layers that contains content inside the fixed-position frame.
The problem is, APZ can't distinguish this from a situation where the layer represents content inside the scrollable subframe with that content being marked fixed-position, which produces the same set of annotations. APZ interprets the annotations as indicating this latter scenario, and accordingly untransforms the layer by the async transform of the subframe to keep the content fixed with respect to the RSF.
Assignee | ||
Comment 10•9 years ago
|
||
Matt Woodrow is working on having fixed-position frames create ContainerLayers in bug 1231538. I think that's going to fix this problem, so I'll wait for that to land.
Depends on: 1231538
Assignee | ||
Comment 11•9 years ago
|
||
Here's the reduced testcase turned into a reftest. However we end up fixing this bug, we should land the reftest.
Assignee | ||
Comment 12•9 years ago
|
||
(In reply to Botond Ballo [:botond] from comment #10)
> Matt Woodrow is working on having fixed-position frames create
> ContainerLayers in bug 1231538. I think that's going to fix this problem, so
> I'll wait for that to land.
Confirmed that the patch in bug 1231538 (more precisely, I pulled from [1]) fixes this bug.
[1] https://treeherder.mozilla.org/#/jobs?repo=try&revision=79c557f064a4
Assignee | ||
Comment 13•9 years ago
|
||
Bug 1231538 has now landed. Remaining step is to land the reftest here.
Assignee | ||
Comment 14•9 years ago
|
||
Review commit: https://reviewboard.mozilla.org/r/32833/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/32833/
Attachment #8713837 -
Flags: review?(mstange)
Assignee | ||
Comment 15•9 years ago
|
||
Oh, Markus is away until Feb 15. I will ask Matt for review instead.
Assignee | ||
Updated•9 years ago
|
Attachment #8713837 -
Flags: review?(mstange) → review?(matt.woodrow)
Assignee | ||
Comment 16•9 years ago
|
||
Reporter | ||
Comment 17•9 years ago
|
||
Comment on attachment 8713837 [details]
MozReview Request: Bug 1238571 - Reftest. r=mstange
https://reviewboard.mozilla.org/r/32833/#review29701
here's a last minute review
Attachment #8713837 -
Flags: review+
Assignee | ||
Comment 18•9 years ago
|
||
Comment on attachment 8713837 [details]
MozReview Request: Bug 1238571 - Reftest. r=mstange
Thanks!
Attachment #8713837 -
Flags: review?(matt.woodrow)
Comment 19•9 years ago
|
||
Comment 20•9 years ago
|
||
bugherder |
Status: NEW → RESOLVED
Closed: 9 years ago
status-firefox47:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla47
Updated•9 years ago
|
You need to log in
before you can comment on or make changes to this bug.
Description
•