[Webkit-unassigned] [Bug 53695] New: Style transform (-webkit-transform: scale3d) with 0-scale renders, but disables mouse events.

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Feb 3 11:00:28 PST 2011


https://bugs.webkit.org/show_bug.cgi?id=53695

           Summary: Style transform (-webkit-transform: scale3d) with
                    0-scale renders, but disables mouse events.
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: All
        OS/Version: All
            Status: UNCONFIRMED
          Severity: Normal
          Priority: P2
         Component: CSS
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: wjmaclean at chromium.org
                CC: simon.fraser at apple.com


Visit the attached HTML file scale0.html with Chromium/Safari, both with gpu enabled and not enabled.

The box labelled "broken" has a style element "-webkit-transform: scale3d(0.8,0.8,0)" that is applied when the box is clicked. Two different behaviours are seen, depending on whether GPU acceleration is enabled in the browser or not.

With GPU enabled, clicking on the box labelled "broken" changes the DIV's transform in a way that makes it non-invertible, causing it to be subsequently is removed from hit-testing. After the initial click this element no longer receives mouse events.

With GPU disabled, clicking on the same box appears to work normally, partially because in non-gpu mode WebKit calls makeRenderable() which overrides the element's transform by making it affine (and in the process invertible).

In both cases though the element is rendered.

According to the CSS specs (http://www.w3.org/TR/css3-2d-transforms/), elements with non-invertible transforms should not be rendered:

"In some cases, an animation might cause a transformation matrix to be singular or non-invertible. For example, an animation in which scale moves from 1 to -1. At the time when the matrix is in such a state, the transformed element is not rendered."

This suggests that perhaps the correct behaviour would be to not render the element at all. In any case, it seems desirable that both code paths should produce the same result.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list