New issue
Advanced search Search tips

Issue 650607 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Feature

Blocked on:
issue 648113

Blocking:
issue 654664
issue 637543



Sign in to add a comment

CSS: will-change offset-path should establish a containing block

Project Member Reported by ericwilligers@chromium.org, Sep 27 2016

Issue description

If an element's style has
  will-change: offset-path,offset-position;
then it should become its children's offsetParent.


(The spec for offset-path and offset-position should be updated to read more like transform, instead of filter/opacity:
"Any computed value other than none for the offset-path results in the creation of both a stacking context and a containing block. The object acts as a containing block for fixed positioned descendants.")

 
Labels: -Type-Bug Type-Feature
Blocking: 637543
This also affects the 'perspective' property, and the independent transform properties. They create a containing block when they are not their initial values. However, Blink is not currently creating a containing block when the properties are mentioned in 'will-change'.



https://drafts.csswg.org/css-will-change/#will-change
"If any non-initial value of a property would create a stacking context on the element, specifying that property in will-change must create a stacking context on the element.

If any non-initial value of a property would cause the element to generate a containing block for absolutely positioned elements, specifying that property in will-change must cause the element to generate a containing block for absolutely positioned elements.

If any non-initial value of a property would cause the element to generate a containing block for fixed positioned elements, specifying that property in will-change must cause the element to generate a containing block for fixed positioned elements."


https://drafts.csswg.org/css-transforms/#transform-property
"Any computed value other than none for the transform results in the creation of both a stacking context and a containing block. The object acts as a containing block for fixed positioned descendants."

https://drafts.csswg.org/css-transforms/#perspective-property
"The use of this property with any value other than none establishes a stacking context. It also establishes a containing block (somewhat similar to position: relative), just like the transform property does."

https://drafts.csswg.org/css-transforms-2/#individual-transforms
The spec for the individual transform properties should probably say something similar:
"while all other values (including identity transforms like translate: 0px) create a stacking context, per usual for transforms."
=>
"while all other values (including identity transforms like translate: 0px) create a stacking context and a containing block for absolutely positioned descendants, per usual for transforms."


Project Member

Comment 4 by bugdroid1@chromium.org, Oct 6 2016

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

commit ed716b1b2ca1c3cea338deff70de61b46c5d6ec8
Author: ericwilligers <ericwilligers@chromium.org>
Date: Thu Oct 06 04:34:50 2016

CSS: test that transform properties create containing block

Add test that verifies 'perspective', 'translate', 'scale',
'rotate' create a containing block, just like 'transform'.

Also check if listing these properties in will-change
causes a containing block to be created.
(These checks currently fail - see bug.)

BUG= 650607 

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

[add] https://crrev.com/ed716b1b2ca1c3cea338deff70de61b46c5d6ec8/third_party/WebKit/LayoutTests/transforms/containing-block-expected.txt
[add] https://crrev.com/ed716b1b2ca1c3cea338deff70de61b46c5d6ec8/third_party/WebKit/LayoutTests/transforms/containing-block.html

Blocking: 654664
Created pull request for independent transform properties spec
https://github.com/w3c/csswg-drafts/pull/587 

Proposed Blink change for will-change: translate, etc.:
https://codereview.chromium.org/2404213003/

Project Member

Comment 7 by bugdroid1@chromium.org, Oct 27 2016

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

commit ed716b1b2ca1c3cea338deff70de61b46c5d6ec8
Author: ericwilligers <ericwilligers@chromium.org>
Date: Thu Oct 06 04:34:50 2016

CSS: test that transform properties create containing block

Add test that verifies 'perspective', 'translate', 'scale',
'rotate' create a containing block, just like 'transform'.

Also check if listing these properties in will-change
causes a containing block to be created.
(These checks currently fail - see bug.)

BUG= 650607 

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

[add] https://crrev.com/ed716b1b2ca1c3cea338deff70de61b46c5d6ec8/third_party/WebKit/LayoutTests/transforms/containing-block-expected.txt
[add] https://crrev.com/ed716b1b2ca1c3cea338deff70de61b46c5d6ec8/third_party/WebKit/LayoutTests/transforms/containing-block.html

Project Member

Comment 8 by bugdroid1@chromium.org, Nov 4 2016

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

commit 96cb4a9eeec773741f99097ee395f3098ead57a6
Author: ericwilligers <ericwilligers@chromium.org>
Date: Fri Nov 04 08:35:09 2016

CSS will-change: Mentioning transform properties gives containing block

We already create a containing block if 'perspective' or one of the
indepedent transform properties is not their initial value.

Now we also create a containing block if these properties are mentioned
in 'will-change'.
https://drafts.csswg.org/css-will-change/#will-change
"If any non-initial value of a property would cause the element to
generate a containing block for fixed positioned elements, specifying
that property in will-change must cause the element to generate a
containing block for fixed positioned elements."

BUG= 650607 

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

[delete] https://crrev.com/b2ec72a07fa76dbd61e35f6c1fbe7b446ed6b890/third_party/WebKit/LayoutTests/transforms/containing-block-expected.txt
[modify] https://crrev.com/96cb4a9eeec773741f99097ee395f3098ead57a6/third_party/WebKit/Source/core/style/ComputedStyle.cpp

Status: Fixed (was: Assigned)

Comment 10 by dimu@google.com, Nov 4 2016

Labels: -merge-merged-2840
[Automated comment] removing mislabelled merge-merged-2840

Sign in to add a comment