In the attached testcase, a positioned element runs a transition when its opacity changes on :hover. However, a child element which is positioned snaps to the final opacity, without showing the transition, which is wrong. This only happens if: * the child is positioned * the target opacity is 1 I think it's related to stacking context changes when opacity hits 1.
Created attachment 22293 [details] Testcase
Created attachment 22295 [details] Better testcase; reveals stacking context
Created attachment 22296 [details] Patch (with some FIXMES)
Comment on attachment 22296 [details] Patch (with some FIXMES) The property has to blend in order for this problem to be exposed. I think you only need the opacity and transform checks.
Created attachment 22321 [details] Patch, testcase, changelogs
Comment on attachment 22321 [details] Patch, testcase, changelogs r=me
Committing to http://svn.webkit.org/repository/webkit/trunk ... M LayoutTests/ChangeLog A LayoutTests/transitions/opacity-transition-zindex-expected.txt A LayoutTests/transitions/opacity-transition-zindex.html M WebCore/ChangeLog M WebCore/page/AnimationController.cpp Committed r35207