CSS matrix3d transform inconsistent under full page zoom

Issue description

Version: 26.0.1410.65
OS: OSX 10.8.3
What steps will reproduce the problem?
1. Open csszoombug.html
2. Notice that the blue shape touches the edges of the red square
3. Now zoom out a few times (apple minus)
What is the expected output? What do you see instead?
I would expect that the page zooms together, instead the elements shift from each other.

Thanks for reporting. I tried to bisect without meaningful results. This also reproduces on Safari, so the bug is somewhere in Blink/WebKit.
I suspect it's a bug with how composited-layer positions are computed in RenderLayerBacking.

Some more information; it seems the bug is isolated to only transforms using matrices. When decomposed, the individual transforms are resilient to page zooms.
See attached file with a similar transform but decomposed.

Here is another demonstration of this problem:
http://bl.ocks.org/mbostock/c02ccf25704d434cebd1
The cyan grid is transformed manually by multiplying the matrix in JavaScript, while the underlying magenta grid is transformed using a CSS matrix3d transform. Normally the cyan grid exactly overlays the magenta grid. However, they become detached when the page is zoomed.
FWIW, the same bug affects Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=995871 (Firefox is also affected on Retina displays, but Chrome is not.)

I wonder if the problem is that Blink is applying the matrix in post-page scale space, and so elements that have a transform with any sort of perspective start behaving non-linearly. As page zoom isn't really observable from Javascript in the sense that widths don't change, I think this is a bug. Probably the page zoom needs to be included somewhere before/after the the transform to make this correct.
This is quite unfortunate, but it isn't really a high priority bug.

The above change looks to me like it is on branch 56, but not 55.
So depending on what channel you're asking about, that sets the time frame.
I'm not dialed right into when the releases hit where right now, but I think stable is 54, so dev should be 56 and already have it. Check your channel and version. The release cycle is about six weeks, and is slowed down over the year-end.
I haven't verified that the change fixes all the problems yet.