Closed Bug 1226095 Opened 9 years ago Closed 7 years ago

Filters change the position of positioned descendants

Categories

(Core :: Layout, defect)

defect
Not set
normal

Tracking

()

RESOLVED INVALID

People

(Reporter: pdr, Unassigned)

References

Details

(Whiteboard: [webcompat])

Attachments

(1 file)

Attached file filter affects positioned descendants (deleted) —
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.8 Safari/537.36 Steps to reproduce: The presence of a filter changes how Gecko positions positioned descendants. I created a small testcase here (also attached): http://jsbin.com/pinesaxozo This area is pretty and rough in terms of compat. The spec doesn't seem to have any wording about positions changing (http://www.w3.org/TR/filter-effects/#FilterProperty). WebKit and Blink are still largely similar in this area and do not change the position. Edge's filter support doesn't seem to work at all in this case (must enable via about:flags).
Component: Untriaged → Layout
Product: Firefox → Core
Hmm. We seem to be making filter induce an absolute containing block, just like transform. I see nothing to this effect in https://drafts.fxtf.org/filters/#FilterProperty
Status: UNCONFIRMED → NEW
Ever confirmed: true
Flags: needinfo?(roc)
Oh, and it's quite obvious in the linked testcase if you set the kids to both be "width: 100%".
And in particular, nsStyleDisplay::IsFixedPosContainingBlock returns true if aContextFrame->StyleSVGReset()->HasFilters(). Looks like that was added in bug 1125767 after it was decided to update the spec in <http://www.w3.org/2015/02/10-fx-minutes.html#action02> back in February. Presumably the editors just haven't gotten around to it yet. Trying to switch needinfo to one of them.
Flags: needinfo?(roc) → needinfo?(edbugzilla)
There's a github issue filed on the [filters-1] spec: https://github.com/w3c/fxtf-drafts/issues/11 It seems to me that the spec editors are simply ignoring it. :( It appears no significant edits has been made since Feb 2015: https://hg.fxtf.org/drafts/log/85442cf6d40c/filters/Overview.src.html (assuming I'm looking at the right file) Fwiw, there's also a [filters-2] spec, which adds the 'backdrop-filter' property: https://drafts.fxtf.org/filters-2/#BackdropFilterProperty
Assignee: nobody → cku
Update what I had found: this is a layout bug rather than painting bug. The mBackgroundRect of the nsDisplayBackgroundColor of the filtered div, with absolute position, is not on the right position.
It's not a layout bug really, since we do this *intentionally*, see comment 3. The relevant spec at that time was expected to be updated to require the layout in Gecko, per ISSUE 1 at https://drafts.fxtf.org/filter-effects/#FilterProperty Have you tried contacting the spec editors about this?
Flags: needinfo?(cku)
Flags: needinfo?(edbugzilla)
Assignee: cku → nobody
Flags: needinfo?(cku)
IIUC, the CSSWG has resolved on Gecko's behavior, except for adding a quirk for the root element to not trap fixed pos. https://github.com/w3c/fxtf-drafts/issues/11#issuecomment-342677391 n-i dbaron to answer mstange's questions here: https://github.com/w3c/fxtf-drafts/issues/11#issuecomment-342693310
Flags: needinfo?(dbaron)
Flags: needinfo?(dbaron)
Given the CSSWG resolution I'm resolving this as invalid. (The missing part to fully implement the resolution is bug 1423746.)
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: