New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 598917 link

Starred by 3 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Feature



Sign in to add a comment

CSS Transform spec study

Project Member Reported by trchen@chromium.org, Mar 29 2016

Issue description

This issue keeps track of a few ill-defined corner cases of CSS Transform specification, vendor implementation, and our effort to refine the spec.

Latest editor's draft: https://drafts.csswg.org/css-transforms/
The version we implement: http://www.w3.org/TR/2013/WD-css-transforms-1-20131126/

Here is a survey doc I wrote a while back that documented some inconsistencies across spec and implementations:
https://docs.google.com/a/chromium.org/spreadsheets/d/1qsNC_K2V9J-lLii-w-dhO7A6Xr5tqXgEBWu0uUK0SAU/edit

Also when pdr@ re-implemented backface-visibility for SPv2 we found inconsistencies and raised question on public-fx@w3.org .
https://lists.w3.org/Archives/Public/public-fx/2016JanMar/0061.html

Also vollick@ discovered another corner case which I'll describe in a new document.
 
Project Member

Comment 2 by bugdroid1@chromium.org, May 20 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9d8ea9509008c684392a42d688dfd3ababdf9f66

commit 9d8ea9509008c684392a42d688dfd3ababdf9f66
Author: trchen <trchen@chromium.org>
Date: Fri May 20 00:15:49 2016

Use counters for opacity with transform-style:preserve-3d

This CL add a use counter for elements that have opacity, preserve-3d,
and 3D-transformed descendants at the same time.

This is done as a part of CSS transform spec research to collect statistics
about compatibility quirks. Currently all vendors implement this corner case
as applying opacity to each descendant planes separately, but latest W3C
editor's draft recommends forcing transform-style to flat.

BUG= 612913 ,598917

Review-Url: https://codereview.chromium.org/1987283003
Cr-Commit-Position: refs/heads/master@{#394920}

[modify] https://crrev.com/9d8ea9509008c684392a42d688dfd3ababdf9f66/third_party/WebKit/Source/core/frame/UseCounter.h
[modify] https://crrev.com/9d8ea9509008c684392a42d688dfd3ababdf9f66/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp
[modify] https://crrev.com/9d8ea9509008c684392a42d688dfd3ababdf9f66/third_party/WebKit/Source/core/paint/PaintLayer.h
[modify] https://crrev.com/9d8ea9509008c684392a42d688dfd3ababdf9f66/tools/metrics/histograms/histograms.xml

Project Member

Comment 3 by bugdroid1@chromium.org, May 20 2016

Labels: merge-merged-2704
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/07560fe8034f03b0b35771cfe9595762d3c0ad10

commit 07560fe8034f03b0b35771cfe9595762d3c0ad10
Author: Tien-Ren Chen <trchen@chromium.org>
Date: Fri May 20 23:31:18 2016

Use counters for opacity with transform-style:preserve-3d

This CL add a use counter for elements that have opacity, preserve-3d,
and 3D-transformed descendants at the same time.

This is done as a part of CSS transform spec research to collect statistics
about compatibility quirks. Currently all vendors implement this corner case
as applying opacity to each descendant planes separately, but latest W3C
editor's draft recommends forcing transform-style to flat.

BUG= 612913 ,598917

Review-Url: https://codereview.chromium.org/1987283003
Cr-Commit-Position: refs/heads/master@{#394920}
(cherry picked from commit 9d8ea9509008c684392a42d688dfd3ababdf9f66)

Review URL: https://codereview.chromium.org/2001803002 .

Cr-Commit-Position: refs/branch-heads/2704@{#628}
Cr-Branched-From: 6e53600def8f60d8c632fadc70d7c1939ccea347-refs/heads/master@{#386251}

[modify] https://crrev.com/07560fe8034f03b0b35771cfe9595762d3c0ad10/third_party/WebKit/Source/core/frame/UseCounter.h
[modify] https://crrev.com/07560fe8034f03b0b35771cfe9595762d3c0ad10/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp
[modify] https://crrev.com/07560fe8034f03b0b35771cfe9595762d3c0ad10/third_party/WebKit/Source/core/paint/PaintLayer.h
[modify] https://crrev.com/07560fe8034f03b0b35771cfe9595762d3c0ad10/tools/metrics/histograms/histograms.xml

Comment 4 by suzyh@chromium.org, Mar 24 2017

Components: -Blink>CSS>CSS3D Blink>Compositing>Transform3D
Owner: wangxianzhu@chromium.org
I'm leaving the team, thus re-assigning.

Here are some documents the explains the differences in implementation and suggested spec fix. These maybe deleted when I left the company. I asked chrishtr@ to keep a clone of them.

“CSS Transform Spec Fixes” Explainer https://docs.google.com/document/d/1FIQW9qVPbZxn0pifFOXWWK0-7fXrjlSeYeZN7wHmIHo/edit#heading=h.jd53mnjhsgjb
Containing Block Parent Penetrates 3D Context https://docs.google.com/document/d/1udlnhfXPVDGxCsHnkbZBufVWDmkY0HvBTN6m7Azp6Jk/edit
CSS 3D transform behavior  https://docs.google.com/spreadsheets/d/1XaQL_SJj7VRV1oIYX5HRK1TMDS40YRP6owBZxYX-NTY/edit#gid=1213074250

Sign in to add a comment