Summary: | REGRESSION (r207372) Visibility property is not inherited when used in an animation | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Malte Ubl <malte> | ||||||||||||||
Component: | CSS | Assignee: | Nobody <webkit-unassigned> | ||||||||||||||
Status: | RESOLVED FIXED | ||||||||||||||||
Severity: | Critical | CC: | buildbot, commit-queue, dino, koivisto, manian, rbyers, rniwa, ryanhaddad, simon.fraser, webkit-bug-importer | ||||||||||||||
Priority: | P2 | Keywords: | InRadar | ||||||||||||||
Version: | Safari 10 | ||||||||||||||||
Hardware: | All | ||||||||||||||||
OS: | All | ||||||||||||||||
Attachments: |
|
Description
Malte Ubl
2017-05-09 14:04:22 PDT
Is there a Safari version in which this bug did not occur? I can reproduce back to r210000. Created attachment 309545 [details]
10.2 does not repro. Animated GIF showing the behavior.
I was testing on Mac. It would be surprising if Mac and iOS behavior differed. Unfortunately I don't have a way to test on an older version of desktop Safari. It does repro in current mobile Safari and it does not repro in iOS 10.2 mobile Safari. This regressed with https://trac.webkit.org/changeset/207372/webkit I did ask about inherit with this change: https://bugs.webkit.org/show_bug.cgi?id=163452#c3 I don't see 'inherit' in this test so I'm not sure what the relevance of that is. This is possibly about the propagation of visibleContent bits in RenderLayers Yeah, something like that seems likely. There shouldn't be anything special about visibility inheritance from style perspective. Other inherited properties have the same problem. You can replace 'visibility' with 'color' here and get the same wrong behavior. The problem here is that our animation code is tied to renderers. We don't have renderers during the initial style resolution so animations are not applied yet. When constructing renderers we set their style to the initial animated style but this step can't implement inheritance. Normally this is invisible as the first animation frame will immediately inherit the style correctly. However in this case the animation is discrete and the first frame is the same as the initial state. With r207372 we optimize the descendant style change away. There are simple fixes for this specific case. However at some point we should fix the underlying issues too. Created attachment 309591 [details]
patch
Comment on attachment 309591 [details] patch Attachment 309591 [details] did not pass mac-ews (mac): Output: http://webkit-queues.webkit.org/results/3711640 New failing tests: animations/animation-initial-inheritance.html Created attachment 309599 [details]
Archive of layout-test-results from ews103 for mac-elcapitan
The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews103 Port: mac-elcapitan Platform: Mac OS X 10.11.6
Created attachment 309603 [details]
patch
Comment on attachment 309603 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=309603&action=review > Source/WebCore/style/StyleTreeResolver.cpp:264 > + // FIXME: We should compute animated style correctly during initial style resolution when we don't have renderers yet. Could you file a bug for this and reference it here please? Created attachment 309612 [details]
patch
Comment on attachment 309612 [details] patch Clearing flags on attachment: 309612 Committed r216591: <http://trac.webkit.org/changeset/216591> All reviewed patches have been landed. Closing bug. Reverted r216591 for reason: This change broke an internal build. Committed r216619: <http://trac.webkit.org/changeset/216619> Created attachment 309643 [details]
patch
updated SameSizeAsRenderElement struct to accommodate an additional bit
Comment on attachment 309643 [details] patch Clearing flags on attachment: 309643 Committed r216631: <http://trac.webkit.org/changeset/216631> All reviewed patches have been landed. Closing bug. Thanks for the super quick fix! |