Closed Bug 1491864 Opened 8 years ago Closed 8 years ago

backface-visibility does not work on a <button>

Categories

(Core :: Web Painting, defect)

63 Branch
Unspecified
All
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla64
Tracking Status
firefox-esr60 --- wontfix
firefox62 --- wontfix
firefox63 --- wontfix
firefox64 --- fixed

People

(Reporter: htorenvlied, Assigned: emilio)

References

()

Details

(Keywords: regression)

Attachments

(1 file)

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:63.0) Gecko/20100101 Firefox/63.0 Build ID: 20180906162647 Steps to reproduce: When making a flipping card animation on a <button> element i discovered this bug. Its best illustrated in this example. https://codepen.io/reyez_nl/pen/MqPJXm Actual results: the 'backside' of the button is never shown Expected results: a rotated version of the front is shown as if backface-visibility wasnt applied
Debian Testing, KDE, Xorg, Nvidia GTX 1060 I can reproduce this issue with a fresh profile, but not after enabling WebRender. mozregression --good 2018-01-15 --bad 2018-09-16 -a https://codepen.io/reyez_nl/pen/MqPJXm > 13:16.36 INFO: Last good revision: 73b38134f4bfd06905370102959ff9a4e701858c > 13:16.36 INFO: First bad revision: 5d33d01409e34363b93d1029ce747dd70042c43c > 13:16.36 INFO: Pushlog: > https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=73b38134f4bfd06905370102959ff9a4e701858c&tochange=5d33d01409e34363b93d1029ce747dd70042c43c > 5d33d01409e3 Emilio Cobos Álvarez — Bug 1420722: Just use GetInFlowParent for now. r=mattwoodrow
Blocks: 1420722
Status: UNCONFIRMED → NEW
Component: Untriaged → Layout: Web Painting
Ever confirmed: true
Keywords: regression
OS: Unspecified → All
Product: Firefox → Core
Flags: needinfo?(emilio)
This is the ::-moz-button-content anon-box. I even mentioned anon-boxes in bug 1420722 but I apparently forgot about them...
Assignee: nobody → emilio
Flags: needinfo?(emilio)
In the button case we have a ::-moz-button-content pseudo-element, but this is also an issue for tables and such. These are supposed to be implementation details, so avoid looking at them for preserve-3d. I don't know how I didn't think of this on the regressing bug.
How bad do we think this is? Worth nominating to ride along a dot release?
Flags: needinfo?(emilio)
Probably not? I'm not aware of this affecting any website so far other than the reporter's demo.
Flags: needinfo?(emilio)
Cool thanks, that's what I was thinking -- not widely used on the web (beyond cool 3d demos).
Comment on attachment 9009877 [details] Bug 1491864 - Fix preserve-3d in presence of anon-boxes. Matt Woodrow (:mattwoodrow) has approved the revision.
Attachment #9009877 - Flags: review+
Pushed by emilio@crisal.io: https://hg.mozilla.org/integration/autoland/rev/43fdb0259352 Ignore anon boxes for preserve-3d. r=mattwoodrow
Created web-platform-tests PR https://github.com/web-platform-tests/wpt/pull/13086 for changes under testing/web-platform/tests
Upstream web-platform-tests status checks passed, PR will merge once commit reaches central.
Backout by ncsoregi@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/35f07b7fb79f Backed out 2 changesets for test_pointerPreserves3DPerspective.html failures. CLOSED TREE
Attachment #9009877 - Attachment description: Bug 1491864 - Ignore anon boxes for preserve-3d. → Bug 1491864 - Fix preserve-3d in presence of anon-boxes.
Comment on attachment 9009877 [details] Bug 1491864 - Fix preserve-3d in presence of anon-boxes. Yup, already udpated the patch, thanks!
Flags: needinfo?(emilio)
Attachment #9009877 - Flags: review+ → review?(matt.woodrow)
Comment on attachment 9009877 [details] Bug 1491864 - Fix preserve-3d in presence of anon-boxes. Matt Woodrow (:mattwoodrow) has approved the revision.
Attachment #9009877 - Flags: review+
Upstream PR was closed without merging
Pushed by emilio@crisal.io: https://hg.mozilla.org/integration/autoland/rev/236d827dc1c5 Fix preserve-3d in presence of anon boxes. r=mattwoodrow
Attachment #9009877 - Flags: review?(matt.woodrow)
Backed out changeset 236d827dc1c5 (bug 1491864) for crashing at builds/worker/workspace/build/src/layout/generic/nsIFrameInlines.h Backout: https://hg.mozilla.org/integration/autoland/rev/40ade9ef77d00a003328bb3bc9853d74bd3567ea Failure push: https://treeherder.mozilla.org/#/jobs?repo=autoland&selectedJob=200480654&revision=236d827dc1c5a6a25afa6486f86e50ad2725fb26 Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=200480654&repo=autoland&lineNumber=3778 [task 2018-09-20T15:05:08.443Z] 15:05:08 INFO - GECKO(1500) | nsStringStats [task 2018-09-20T15:05:08.444Z] 15:05:08 INFO - GECKO(1500) | => mAllocCount: 531600 [task 2018-09-20T15:05:08.445Z] 15:05:08 INFO - GECKO(1500) | => mReallocCount: 0 [task 2018-09-20T15:05:08.447Z] 15:05:08 INFO - GECKO(1500) | => mFreeCount: 531600 [task 2018-09-20T15:05:08.448Z] 15:05:08 INFO - GECKO(1500) | => mShareCount: 378511 [task 2018-09-20T15:05:08.449Z] 15:05:08 INFO - GECKO(1500) | => mAdoptCount: 9684 [task 2018-09-20T15:05:08.450Z] 15:05:08 INFO - GECKO(1500) | => mAdoptFreeCount: 11302 [task 2018-09-20T15:05:08.451Z] 15:05:08 INFO - GECKO(1500) | => Process ID: 1500, Thread ID: 140254530266944 [task 2018-09-20T15:05:08.452Z] 15:05:08 INFO - TEST-INFO | Main app process: exit 0 [task 2018-09-20T15:05:08.453Z] 15:05:08 INFO - runtests.py | Application ran for: 0:04:06.707750 [task 2018-09-20T15:05:08.453Z] 15:05:08 INFO - zombiecheck | Reading PID log: /tmp/tmpmMS03upidlog [task 2018-09-20T15:05:08.454Z] 15:05:08 INFO - ==> process 1500 launched child process 1522 [task 2018-09-20T15:05:08.455Z] 15:05:08 INFO - ==> process 1500 launched child process 1571 [task 2018-09-20T15:05:08.456Z] 15:05:08 INFO - ==> process 1500 launched child process 1596 [task 2018-09-20T15:05:08.457Z] 15:05:08 INFO - ==> process 1500 launched child process 1637 [task 2018-09-20T15:05:08.458Z] 15:05:08 INFO - ==> process 1500 launched child process 1685 [task 2018-09-20T15:05:08.459Z] 15:05:08 INFO - zombiecheck | Checking for orphan process with PID: 1522 [task 2018-09-20T15:05:08.459Z] 15:05:08 INFO - zombiecheck | Checking for orphan process with PID: 1571 [task 2018-09-20T15:05:08.460Z] 15:05:08 INFO - zombiecheck | Checking for orphan process with PID: 1596 [task 2018-09-20T15:05:08.461Z] 15:05:08 INFO - zombiecheck | Checking for orphan process with PID: 1637 [task 2018-09-20T15:05:08.462Z] 15:05:08 INFO - zombiecheck | Checking for orphan process with PID: 1685 [task 2018-09-20T15:05:08.463Z] 15:05:08 INFO - mozcrash Copy/paste: /usr/local/bin/linux64-minidump_stackwalk /tmp/tmp8MV7yP.mozrunner/minidumps/3c6a7ca3-ea6e-cfbb-4aa9-bf688435fa4f.dmp /builds/worker/workspace/build/symbols [task 2018-09-20T15:05:19.696Z] 15:05:19 INFO - mozcrash Saved minidump as /builds/worker/workspace/build/blobber_upload_dir/3c6a7ca3-ea6e-cfbb-4aa9-bf688435fa4f.dmp [task 2018-09-20T15:05:19.696Z] 15:05:19 INFO - mozcrash Saved app info as /builds/worker/workspace/build/blobber_upload_dir/3c6a7ca3-ea6e-cfbb-4aa9-bf688435fa4f.extra [task 2018-09-20T15:05:19.780Z] 15:05:19 INFO - PROCESS-CRASH | Main app process exited normally | application crashed [@ nsIFrame::GetClosestFlattenedTreeAncestorPrimaryFrame() const] [task 2018-09-20T15:05:19.781Z] 15:05:19 INFO - Crash dump filename: /tmp/tmp8MV7yP.mozrunner/minidumps/3c6a7ca3-ea6e-cfbb-4aa9-bf688435fa4f.dmp [task 2018-09-20T15:05:19.781Z] 15:05:19 INFO - Operating system: Linux [task 2018-09-20T15:05:19.782Z] 15:05:19 INFO - 0.0.0 Linux 4.4.0-1014-aws #14taskcluster1-Ubuntu SMP Tue Apr 3 10:27:00 UTC 2018 x86_64 [task 2018-09-20T15:05:19.782Z] 15:05:19 INFO - CPU: amd64 [task 2018-09-20T15:05:19.783Z] 15:05:19 INFO - family 6 model 62 stepping 4 [task 2018-09-20T15:05:19.783Z] 15:05:19 INFO - 2 CPUs [task 2018-09-20T15:05:19.784Z] 15:05:19 INFO - [task 2018-09-20T15:05:19.784Z] 15:05:19 INFO - GPU: UNKNOWN [task 2018-09-20T15:05:19.785Z] 15:05:19 INFO - [task 2018-09-20T15:05:19.785Z] 15:05:19 INFO - Crash reason: SIGSEGV [task 2018-09-20T15:05:19.786Z] 15:05:19 INFO - Crash address: 0x0 [task 2018-09-20T15:05:19.786Z] 15:05:19 INFO - Process uptime: not available [task 2018-09-20T15:05:19.787Z] 15:05:19 INFO - [task 2018-09-20T15:05:19.787Z] 15:05:19 INFO - Thread 0 (crashed) [task 2018-09-20T15:05:19.788Z] 15:05:19 INFO - 0 libxul.so!nsIFrame::GetClosestFlattenedTreeAncestorPrimaryFrame() const [nsIFrameInlines.h:236d827dc1c5a6a25afa6486f86e50ad2725fb26 : 210 + 0x0] [task 2018-09-20T15:05:19.788Z] 15:05:19 INFO - rax = 0x0000000000000000 rdx = 0x0000000000000000 [task 2018-09-20T15:05:19.788Z] 15:05:19 INFO - rcx = 0x0000000000000000 rbx = 0x00007fdfe32ee040 [task 2018-09-20T15:05:19.789Z] 15:05:19 INFO - rsi = 0x00007fe011b90770 rdi = 0x00007fe011b8f540 [task 2018-09-20T15:05:19.789Z] 15:05:19 INFO - rbp = 0x00007ffd80154030 rsp = 0x00007ffd80154020 [task 2018-09-20T15:05:19.790Z] 15:05:19 INFO - r8 = 0x00007fe011b90770 r9 = 0x00007fe012bf0740 [task 2018-09-20T15:05:19.790Z] 15:05:19 INFO - r10 = 0x0000000000000000 r11 = 0x0000000000000000 [task 2018-09-20T15:05:19.790Z] 15:05:19 INFO - r12 = 0x00007fdfe51de8e8 r13 = 0x00007fdfe51de8e8 [task 2018-09-20T15:05:19.791Z] 15:05:19 INFO - r14 = 0x00007fdfec4a6988 r15 = 0x0000000000000000 [task 2018-09-20T15:05:19.791Z] 15:05:19 INFO - rip = 0x00007fe0038703f1 [task 2018-09-20T15:05:19.791Z] 15:05:19 INFO - Found by: given as instruction pointer in context [task 2018-09-20T15:05:19.792Z] 15:05:19 INFO - 1 libxul.so!nsIFrame::Combines3DTransformWithAncestors(nsStyleDisplay const*) const [nsFrame.cpp:236d827dc1c5a6a25afa6486f86e50ad2725fb26 : 1607 + 0x8] [task 2018-09-20T15:05:19.792Z] 15:05:19 INFO - rbx = 0x0000000000000000 rbp = 0x00007ffd80154060 [task 2018-09-20T15:05:19.793Z] 15:05:19 INFO - rsp = 0x00007ffd80154040 r12 = 0x00007fdfe51de8e8 [task 2018-09-20T15:05:19.793Z] 15:05:19 INFO - r13 = 0x00007fdfe51de8e8 r14 = 0x00007fdfec4a6988 [task 2018-09-20T15:05:19.793Z] 15:05:19 INFO - r15 = 0x0000000000000000 rip = 0x00007fe0038702f3 [task 2018-09-20T15:05:19.794Z] 15:05:19 INFO - Found by: call frame info [task 2018-09-20T15:05:19.794Z] 15:05:19 INFO - 2 libxul.so!nsIFrame::FinishAndStoreOverflow(nsOverflowAreas&, nsSize, nsSize*, nsStyleDisplay const*) [nsFrame.cpp:236d827dc1c5a6a25afa6486f86e50ad2725fb26 : 9405 + 0xf] [task 2018-09-20T15:05:19.794Z] 15:05:19 INFO - rbx = 0x0000000000000000 rbp = 0x00007ffd80154170 [task 2018-09-20T15:05:19.795Z] 15:05:19 INFO - rsp = 0x00007ffd80154070 r12 = 0x0000000000000000 [task 2018-09-20T15:05:19.795Z] 15:05:19 INFO - r13 = 0x00007fdfe51de8e8 r14 = 0x0000000000000000 [task 2018-09-20T15:05:19.796Z] 15:05:19 INFO - r15 = 0x0000000000000000 rip = 0x00007fe00387c46f [task 2018-09-20T15:05:19.797Z] 15:05:19 INFO - Found by: call frame info [task 2018-09-20T15:05:19.797Z] 15:05:19 INFO - 3 libxul.so!nsBox::SyncLayout(nsBoxLayoutState&) [nsBox.cpp:236d827dc1c5a6a25afa6486f86e50ad2725fb26 : 427 + 0x10] [task 2018-09-20T15:05:19.797Z] 15:05:19 INFO - rbx = 0x00007ffd80154190 rbp = 0x00007ffd80154200 [task 2018-09-20T15:05:19.798Z] 15:05:19 INFO - rsp = 0x00007ffd80154180 r12 = 0x00007fdfe51de8e8 [task 2018-09-20T15:05:19.798Z] 15:05:19 INFO - r13 = 0x00007fe006814cab r14 = 0x0000000000000000 [task 2018-09-20T15:05:19.798Z] 15:05:19 INFO - r15 = 0x0000000000000000 rip = 0x00007fe00399329b [task 2018-09-20T15:05:19.799Z] 15:05:19 INFO - Found by: call frame info [task 2018-09-20T15:05:19.799Z] 15:05:19 INFO - 4 libxul.so!nsIFrame::XULLayout(nsBoxLayoutState&) [nsBox.cpp:236d827dc1c5a6a25afa6486f86e50ad2725fb26 : 62 + 0xb] [task 2018-09-20T15:05:19.799Z] 15:05:19 INFO - rbx = 0x00007fdfe51de8e8 rbp = 0x00007ffd80154240 [task 2018-09-20T15:05:19.800Z] 15:05:19 INFO - rsp = 0x00007ffd80154210 r12 = 0x00007ffd80154460 [task 2018-09-20T15:05:19.800Z] 15:05:19 INFO - r13 = 0x00007ffd80154300 r14 = 0x00007ffd801543a0 [task 2018-09-20T15:05:19.801Z] 15:05:19 INFO - r15 = 0x00007ffd80154218 rip = 0x00007fe003994a0e [task 2018-09-20T15:05:19.801Z] 15:05:19 INFO - Found by: call frame info [task 2018-09-20T15:05:19.801Z] 15:05:19 INFO - 5 libxul.so!nsBoxFrame::LayoutChildAt(nsBoxLayoutState&, nsIFrame*, nsRect const&) [nsBoxFrame.cpp:236d827dc1c5a6a25afa6486f86e50ad2725fb26 : 1305 + 0xb] [task 2018-09-20T15:05:19.802Z] 15:05:19 INFO - rbx = 0x00007fdfe51de8e8 rbp = 0x00007ffd80154280 [task 2018-09-20T15:05:19.802Z] 15:05:19 INFO - rsp = 0x00007ffd80154250 r12 = 0x00007ffd80154460 [task 2018-09-20T15:05:19.803Z] 15:05:19 INFO - r13 = 0x00007ffd80154300 r14 = 0x00007ffd801543a0 [task 2018-09-20T15:05:19.803Z] 15:05:19 INFO - r15 = 0x00007ffd80154310 rip = 0x00007fe003997a03 [task 2018-09-20T15:05:19.803Z] 15:05:19 INFO - Found by: call frame info [task 2018-09-20T15:05:19.804Z] 15:05:19 INFO - 6 libxul.so!mozilla::ScrollFrameHelper::LayoutScrollbars(nsBoxLayoutState&, nsRect const&, nsRect const&) [nsGfxScrollFrame.cpp:236d827dc1c5a6a25afa6486f86e50ad2725fb26 : 5930 + 0xc] [task 2018-09-20T15:05:19.804Z] 15:05:19 INFO - rbx = 0x00007ffd80154410 rbp = 0x00007ffd80154350 [task 2018-09-20T15:05:19.804Z] 15:05:19 INFO - rsp = 0x00007ffd80154290 r12 = 0x00007ffd80154460 [task 2018-09-20T15:05:19.805Z] 15:05:19 INFO - r13 = 0x00007ffd80154300 r14 = 0x00007fdfe51de218 [task 2018-09-20T15:05:19.805Z] 15:05:19 INFO - r15 = 0x00007fdfe41d9000 rip = 0x00007fe00389eb80 [task 2018-09-20T15:05:19.806Z] 15:05:19 INFO - Found by: call frame info [task 2018-09-20T15:05:19.806Z] 15:05:19 INFO - 7 libxul.so!nsHTMLScrollFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&) [nsGfxScrollFrame.cpp:236d827dc1c5a6a25afa6486f86e50ad2725fb26 : 1164 + 0xf] [task 2018-09-20T15:05:19.806Z] 15:05:19 INFO - rbx = 0x00007ffd80154410 rbp = 0x00007ffd801544e0 [task 2018-09-20T15:05:19.807Z] 15:05:19 INFO - rsp = 0x00007ffd80154360 r12 = 0x00007fdfe51de178 [task 2018-09-20T15:05:19.807Z] 15:05:19 INFO - r13 = 0x00007ffd80154410 r14 = 0x00007ffd801543a0 [task 2018-09-20T15:05:19.807Z] 15:05:19 INFO - r15 = 0x00007fe006814cab rip = 0x00007fe00389e35b [task 2018-09-20T15:05:19.808Z] 15:05:19 INFO - Found by: call frame info [task 2018-09-20T15:05:19.808Z] 15:05:19 INFO - 8 libxul.so!nsContainerFrame::ReflowChild(nsIFrame*, nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, int, int, unsigned int, nsReflowStatus&, nsOverflowContinuationTracker*) [nsContainerFrame.cpp:236d827dc1c5a6a25afa6486f86e50ad2725fb26 : 995 + 0x18] [task 2018-09-20T15:05:19.809Z] 15:05:19 INFO - rbx = 0x00007fdfe51de178 rbp = 0x00007ffd80154530 [task 2018-09-20T15:05:19.809Z] 15:05:19 INFO - rsp = 0x00007ffd801544f0 r12 = 0x00007ffd80154a28 [task 2018-09-20T15:05:19.810Z] 15:05:19 INFO - r13 = 0x0000000000000000 r14 = 0x00007fdfe30e5800 [task 2018-09-20T15:05:19.810Z] 15:05:19 INFO - r15 = 0x00007ffd80154590 rip = 0x00007fe00382d6f5 [task 2018-09-20T15:05:19.811Z] 15:05:19 INFO - Found by: call frame info [task 2018-09-20T15:05:19.811Z] 15:05:19 INFO - 9 libxul.so!mozilla::ViewportFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&) [ViewportFrame.cpp:236d827dc1c5a6a25afa6486f86e50ad2725fb26 : 338 + 0x7] [task 2018-09-20T15:05:19.812Z] 15:05:19 INFO - rbx = 0x00007ffd80154698 rbp = 0x00007ffd80154770 [task 2018-09-20T15:05:19.813Z] 15:05:19 INFO - rsp = 0x00007ffd80154540 r12 = 0x00007ffd80154890 [task 2018-09-20T15:05:19.813Z] 15:05:19 INFO - r13 = 0x00007fdfe51de178 r14 = 0x00007ffd80154810 [task 2018-09-20T15:05:19.814Z] 15:05:19 INFO - r15 = 0x0000000000000000 rip = 0x00007fe00382d197 [task 2018-09-20T15:05:19.814Z] 15:05:19 INFO - Found by: call frame info [task 2018-09-20T15:05:19.815Z] 15:05:19 INFO - 10 libxul.so!mozilla::PresShell::DoReflow(nsIFrame*, bool) [PresShell.cpp:236d827dc1c5a6a25afa6486f86e50ad2725fb26 : 9022 + 0x16] [task 2018-09-20T15:05:19.816Z] 15:05:19 INFO - rbx = 0x00007ffd80154940 rbp = 0x00007ffd80154a70 [task 2018-09-20T15:05:19.817Z] 15:05:19 INFO - rsp = 0x00007ffd80154780 r12 = 0x00007fdfe51de020 [task 2018-09-20T15:05:19.817Z] 15:05:19 INFO - r13 = 0x00007fdfe41d9000 r14 = 0x00007ffd80154a28 [task 2018-09-20T15:05:19.818Z] 15:05:19 INFO - r15 = 0x0000000000000001 rip = 0x00007fe003790aed [task 2018-09-20T15:05:19.819Z] 15:05:19 INFO - Found by: call frame info [task 2018-09-20T15:05:19.820Z] 15:05:19 INFO - 11 libxul.so!mozilla::PresShe
Flags: needinfo?(emilio)
I give up on the IsDisplayContents assertion, since the nsHTMLFrameSetElement::Init is just terrible :(
Flags: needinfo?(emilio)
Pushed by emilio@crisal.io: https://hg.mozilla.org/integration/autoland/rev/20d5ba6677f5 Fix preserve-3d in presence of anon boxes. r=mattwoodrow
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla64
Upstream PR was closed without merging
Calling this fix-optional for branches, but please request uplift if you think this is worth it.
Flags: needinfo?(emilio)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: