Closed
Bug 1231243
Opened 9 years ago
Closed 9 years ago
CSS transform on element scaled larger than the viewport does not repaint when the transform is animated and the element is scaled down
Categories
(Core :: Layout, defect)
Tracking
()
RESOLVED
FIXED
mozilla46
Tracking | Status | |
---|---|---|
firefox43 | --- | unaffected |
firefox44 | --- | unaffected |
firefox45 | --- | unaffected |
firefox46 | + | fixed |
People
(Reporter: metaeaux, Assigned: botond)
References
Details
Attachments
(2 files)
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Firefox/45.0
Build ID: 20151208030212
Steps to reproduce:
Scale an element larger than the viewport down to fit within the viewport.
Here's a video of the problem:
https://vid.me/mAiha
And a codepen:
http://codepen.io/metaeaux/pen/vLEMBa
The problem occurs when layers.offmainthreadcomposition.async-animations set to true.
Some other notes:
- Moving the mouse seems to trigger a paint of the element and the white borders disappear (as seen in the video)
- When the viewport is around 1920px wide (or larger) the problem doesn't seem to occur
Actual results:
The edges that exceeded the viewport size are painted white rather than painted with the content of the element
Expected results:
The content of the element should be painted.
Reporter | ||
Updated•9 years ago
|
OS: Unspecified → Mac OS X
Hardware: Unspecified → x86_64
Reporter | ||
Updated•9 years ago
|
Summary: Element scaled larger than viewport is not are scaled down → CSS transform on element scaled larger than the viewport does not repaint when the transform is animated and the element is scaled down
Reporter | ||
Comment 1•9 years ago
|
||
It seems to be related to this issue:
https://bugzilla.mozilla.org/show_bug.cgi?id=929362
It seems like a regression since the issue status is fixed.
Status: UNCONFIRMED → NEW
Component: Untriaged → Layout
Ever confirmed: true
OS: Mac OS X → All
Product: Firefox → Core
Hardware: x86_64 → All
Interestingly, I see this on Linux but don't see this on Windows.
Comment 4•9 years ago
|
||
This is a regression from the nsDisplayBackgroundImage::GetBoundsInternal changes from bug 1166301.
Blocks: 1166301
Assignee | ||
Comment 6•9 years ago
|
||
(In reply to Markus Stange [:mstange] from comment #4)
> This is a regression from the nsDisplayBackgroundImage::GetBoundsInternal
> changes from bug 1166301.
Confirmed, backing out the change to nsDisplayBackgroundImage::GetBoundsInternal() fixes the problem. Nice call!
status-firefox43:
--- → unaffected
status-firefox44:
--- → unaffected
status-firefox45:
--- → unaffected
status-firefox46:
--- → affected
tracking-firefox46:
--- → ?
Assignee | ||
Comment 7•9 years ago
|
||
Note that, while this is a regression from bug 1166301, the issue only occurs with e10s and APZ enabled, so Firefox 45 and below are unaffected.
Assignee | ||
Comment 8•9 years ago
|
||
The problem here is that bug 1166301 changed nsDisplayBackgroundImage::GetBoundsInternal() to return the bounds of the viewport rather than the bounds of the image if APZ is enabled. The intention was to return a size *no smaller* than the viewport size; we also want to return a size no smaller than the bounds of the image, so to handle cases like this where the image is larger than the viewport, we should be taking the union.
Assignee | ||
Comment 9•9 years ago
|
||
Review commit: https://reviewboard.mozilla.org/r/29481/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/29481/
Attachment #8703832 -
Flags: review?(mstange)
Comment 10•9 years ago
|
||
Comment on attachment 8703832 [details]
MozReview Request: Bug 1231243 - In nsDisplayBackgroundImage::GetBoundsInternal(), take the union of the image bounds and the viewport bounds if APZ is enabled. r=mstange
https://reviewboard.mozilla.org/r/29481/#review26673
Attachment #8703832 -
Flags: review?(mstange) → review+
Comment 11•9 years ago
|
||
Comment 12•9 years ago
|
||
bugherder |
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla46
Comment 13•9 years ago
|
||
Tracking for 46 since this is a regression - so if it reopens we'll notice it.
You need to log in
before you can comment on or make changes to this bug.
Description
•