Closed
Bug 951415
Opened 11 years ago
Closed 10 years ago
White edge when scrolling
Categories
(Core :: Graphics: Layers, defect)
Tracking
()
RESOLVED
DUPLICATE
of bug 935219
People
(Reporter: ajones, Assigned: ajones)
References
()
Details
Attachments
(1 file)
3.49 KB,
patch
|
Details | Diff | Splinter Review |
Composition bounds are being update incorrectly and applied incorrectly. Steps to reproduce: 1. Navigate to daringfireball.net 2. Scroll down 3. Zoom all the way out 4. Scroll left and right Expected results: Dark background Actual results: White bar on the right of the screen
Assignee | ||
Updated•11 years ago
|
OS: Linux → Gonk (Firefox OS)
Hardware: x86_64 → ARM
Assignee | ||
Comment 1•11 years ago
|
||
Attachment #8349051 -
Flags: review?(bugmail.mozilla)
Assignee | ||
Updated•11 years ago
|
Assignee: nobody → ajones
Status: NEW → ASSIGNED
Comment 2•11 years ago
|
||
Way to steal my patch. See bug 951320. We should coordinate more about what you're working on so this doesn't happen again.
Comment 3•11 years ago
|
||
Comment on attachment 8349051 [details] [diff] [review] Fix GetExpandedScrollRect() mixed co-ordinate spaces; Review of attachment 8349051 [details] [diff] [review]: ----------------------------------------------------------------- ::: gfx/layers/FrameMetrics.h @@ +122,5 @@ > // down. i.e. we know that scrollableRect can go back as far as zero. > // but we don't know how much further ahead it can go. > CSSRect GetExpandedScrollableRect() const > { > + CSSRect cssCompositionBounds = mCompositionBounds / mZoom; This should probably just use CalculateCompositedRectInCssPixels. Feel free to fix bug 948377 while you're at it. ::: gfx/layers/ipc/AsyncPanZoomController.cpp @@ +1456,5 @@ > // in some things into our local mFrameMetrics because these things are > // determined by Gecko and our copy in mFrameMetrics may be stale. > mFrameMetrics.mScrollableRect = aLayerMetrics.mScrollableRect; > + // We only want to use the child's composition bounds if we've no the > + // top level APZC. I don't understand why you made this change. Can you explain?
Assignee | ||
Comment 4•11 years ago
|
||
(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #2) > Way to steal my patch. See bug 951320. We should coordinate more about what > you're working on so this doesn't happen again. I just stumbled across the issue so I thought I'd include the fix in my patch. It is fairly obviously wrong but perhaps it works on metro where the scale is more often 1:1. > ::: gfx/layers/ipc/AsyncPanZoomController.cpp > @@ +1456,5 @@ > > // in some things into our local mFrameMetrics because these things are > > // determined by Gecko and our copy in mFrameMetrics may be stale. > > mFrameMetrics.mScrollableRect = aLayerMetrics.mScrollableRect; > > + // We only want to use the child's composition bounds if we've no the > > + // top level APZC. > > I don't understand why you made this change. Can you explain? At the top level APZCTreeManager::UpdateRootCompositionBounds() sets the composition bounds based on the local tree. Right now the composition bounds are being wiped out by a old value being sent back from TabChild when a paint completes. It possibly makes more sense to move all the composition bounds logic inside APZCTreeManager rather than having it split between two classes.
Comment 5•11 years ago
|
||
(In reply to Anthony Jones (:kentuckyfriedtakahe, :k17e) from comment #4) > At the top level APZCTreeManager::UpdateRootCompositionBounds() sets the > composition bounds based on the local tree. Right now the composition bounds > are being wiped out by a old value being sent back from TabChild when a > paint completes. It possibly makes more sense to move all the composition > bounds logic inside APZCTreeManager rather than having it split between two > classes. Ah. I just removed UpdateRootCompositionBounds as part of bug 950487. Now the composition bounds is only ever updated by the NotifyLayersUpdated code path.
Assignee | ||
Comment 6•11 years ago
|
||
Your change seems to make the b2g bug worse. I'll have to trace the composition bounds back to see where we're getting the wrong value from.
Comment 7•11 years ago
|
||
Yeah, please do. When I removed UpdateRootCompositionBounds it was my understanding based on the code that we should always get the same composition bounds coming in on the next call to NotifyLayersUpdate so if there's a bad value sneaking in somewhere we should track it down.
Comment 8•11 years ago
|
||
Note also that there is a bug on file and being worked on to fix the composition bounds calculation in RecordFrameMetrics. bug 935219.
Updated•11 years ago
|
Attachment #8349051 -
Flags: review?(bugmail.mozilla)
Assignee | ||
Comment 9•11 years ago
|
||
UpdateRootCompositionBounds was giving us the right answer and RecordFrameMetrics (in nsDisplayList.cpp) is giving us the wrong answer. Fixing RecordFrameMetrics should fix this issue.
Comment 10•10 years ago
|
||
Bug 935219 is fixed now; is there anything left here that needs to be addressed?
Flags: needinfo?(ajones)
Assignee | ||
Updated•10 years ago
|
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Flags: needinfo?(ajones)
Resolution: --- → DUPLICATE
You need to log in
before you can comment on or make changes to this bug.
Description
•