Summary: | Depth sorting with z-transform differs from other browsers | ||
---|---|---|---|
Product: | WebKit | Reporter: | Ashley Gullen <ashley> |
Component: | Layout and Rendering | Assignee: | Simon Fraser (smfr) <simon.fraser> |
Status: | RESOLVED CONFIGURATION CHANGED | ||
Severity: | Blocker | CC: | bfulgham, dino, graouts, graouts, jonlee, simon.fraser, webkit-bug-importer, zalan |
Priority: | P1 | Keywords: | InRadar |
Version: | Safari Technology Preview | ||
Hardware: | Mac | ||
OS: | macOS 10.13 | ||
Bug Depends on: | |||
Bug Blocks: | 206262 |
Description
Ashley Gullen
2018-08-16 08:55:20 PDT
All three cases still reproduce for me in TP 65. All three cases still reproduce in TP 70. I can still reproduce case A and case C in Safari TP 80 with the latest version of our web app at https://editor.construct.net/r147/?slow-animations Please don't ship broken Web Animations! The release notes to TP 83 include fixes to rendering, but all cases mentioned here still reproduce. Safari TP 96 enables Web Animations by default, and it's still mostly broken. Updated repro URL: https://editor.construct.net/r176/?slow-animations Case A: still reproduces Case B: appears to now be fixed Case C: still reproduces Please don't ship broken Web Animations! Hi Ashley. It would help a great deal if you could provide reductions for the issues you find so that we don't have to diagnose your entire app. I cannot reproduce case B. I can however reproduce case A, it seems the <dialog> element that is created is stacked below its immediate previous sibling (<div class="c3-dimmer" polyfill></div>) and also behind the little cloud icons that are provided using a :before pseudo-element (#startPageWrap .thumbnailWrap:before) and with a z-index. In fact the little clouds are always stacked above the dimmer. Cc'ing Simon Fraser who might want to look into this issue which may not be related to Web Animations. I can reproduce case C and I think it might be the same issue as case A, it's a stacking order problem. I cannot reproduce neither case A nor case C with Firefox. A good way to reproduce the stacking issue is to load https://editor.construct.net/r113/?slow-animations, inspect <div class="c3-dimmer" polyfill></div> and set its background-color to have a much higher alpha channel. This really makes it clear that the little clouds aren't stacked as expected. The Layers tab also shows there are four child layers under <body>: two for clouds, one for <div class="c3-dimmer" polyfill></div> and one for <dialog>. This isn't about animations (directly); this is about 3D transforms and depth sorting. The animation keyframes used to show the dialog have a translate3d(x, y, -20px) as the first or last keyframe. In WebKit, this causes the animation to be depth-sorted below the dimmer. The fix is to remove the -20px; use a scale instead of a perspective animation. So our behavior is correct then Simon? Is there a standards-related issue here about compatibility? Firefox doesn't behave the same way. This is all about how the 3d transforms spec is in flux and we don't adhere to the current draft. I hadn't checked this for a while but it appears to now be working correctly in Safari 17.1. |