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

Issue 660089 link

Starred by 2 users

Issue metadata

Status: Duplicate
Merged: issue 660735
Owner:
Last visit > 30 days ago
Closed: Nov 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Mac
Pri: 2
Type: Bug-Regression



Sign in to add a comment

CSS applied to pseudo-element with visbility:hidden in a timeout does not take effect

Reported by si...@freytag.org.uk, Oct 27 2016

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36

Steps to reproduce the problem:
1. Visit this URL or run the attached HTML file: https://plnkr.co/edit/uVUORydGva6xNdMjD4GL?p=preview
2. The box is red

What is the expected behavior?
The box should be purple

What went wrong?
The CSS applied to the pseudo element while its parent has visibility:hidden and during a timeout did not take effect.

To verify this, either remove the timeout or change the .hidden rule to use `display:none` and the box will become purple.

Did this work before? Yes Not sure of exact version number. Problem noticed this week on latest Chrome. Previously noticed on Chrome Canary.

Does this work in other browsers? Yes

Chrome version: 54.0.2840.71  Channel: stable
OS Version: OS X 10.11.5
Flash Version: Shockwave Flash 23.0 r0
 
chrome-error.html
1.1 KB View Download

Comment 1 by hdodda@chromium.org, Oct 28 2016

Cc: hdodda@chromium.org
Labels: hasbisect-per-revision M-56 OS-Linux OS-Windows
Owner: sashab@chromium.org
Status: Assigned (was: Unconfirmed)
Using the per-revision bisect providing the bisect results,
Good build:54.0.2835.0 (Revision: 413350).
Bad build: 54.0.2837.0 (Revision: 413618).

You are probably looking for a change made after 413405 (known good), but no later than 413406 (first known bad).

CHANGELOG URL:

The script might not always return single CL as suspect as some perf builds might get missing due to failure.

  https://chromium.googlesource.com/chromium/src/+log/bfd1b37e43efa00f282a93a2d8e4bb1bb210eccd..d0c57905368c76aba662dbda3b4e13cb9bd454bf

From the CL above, assigning the issue to the concern owner 

@sashab - Could you please check whether this is caused with respect to your change, if not please help us in assigning it to the right owner.

Review-Url: https://codereview.chromium.org/2220873002

Thanks !
Hi currently we checked this issue Chrome Canary Version 56.0.2905.0 and this bug still reproduced. This is very big issue for our production version.

Do you have any information when this bug will be fixed?


Comment 4 by sashab@chromium.org, Nov 10 2016

This should be fixed by the CL rune posted above. Let's merge this fix into the stable branch.

Comment 5 by sashab@chromium.org, Nov 10 2016

Mergedinto: 660735
Status: Duplicate (was: Assigned)
Project Member

Comment 6 by bugdroid1@chromium.org, Nov 11 2016

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

commit 998f4790884a34c5ac5167876a13b7cb7495a617
Author: rune <rune@opera.com>
Date: Fri Nov 11 00:50:20 2016

Skip independent inherited property propagation to pseudo elements.

UpdatePseudoElements and IndependentInherit conflict in the following
way. If we both have an independent inherit change on the actual dom
element, and we detect that we need to update the style for the pseudo
element we need to signal the inheritance propagation to the real dom
children and signal the pseudo element recalc to the pseudo element
children. If we return IndependentInherit, we lose the information
about the need for a pseudo element recalc, and if we return
UpdatePseudoElement, we lose the inheritance propagation for the actual
dom children.

We could introduce a new IndependentInheritAndUpdatePseudoElements, but
if there exists pseudo element, we would always return this constant,
so instead just force recalc on pseudo elements on IndependentInherit.

R=sashab@chromium.org
BUG= 660735 , 660089 , 657283 

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

[add] https://crrev.com/998f4790884a34c5ac5167876a13b7cb7495a617/third_party/WebKit/LayoutTests/fast/css/independent-inherit-update-pseudo.html
[modify] https://crrev.com/998f4790884a34c5ac5167876a13b7cb7495a617/third_party/WebKit/Source/core/dom/Element.cpp

Project Member

Comment 7 by bugdroid1@chromium.org, Nov 17 2016

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

commit 9bbebf3ba3a5b8ff0a645d026a0ede213135521d
Author: Rune Lillesveen <rune@opera.com>
Date: Thu Nov 17 10:53:20 2016

Skip independent inherited property propagation to pseudo elements.

UpdatePseudoElements and IndependentInherit conflict in the following
way. If we both have an independent inherit change on the actual dom
element, and we detect that we need to update the style for the pseudo
element we need to signal the inheritance propagation to the real dom
children and signal the pseudo element recalc to the pseudo element
children. If we return IndependentInherit, we lose the information
about the need for a pseudo element recalc, and if we return
UpdatePseudoElement, we lose the inheritance propagation for the actual
dom children.

We could introduce a new IndependentInheritAndUpdatePseudoElements, but
if there exists pseudo element, we would always return this constant,
so instead just force recalc on pseudo elements on IndependentInherit.

R=sashab@chromium.org
BUG= 660735 , 660089 , 657283 

Review-Url: https://codereview.chromium.org/2492783002
Cr-Commit-Position: refs/heads/master@{#431430}
(cherry picked from commit 998f4790884a34c5ac5167876a13b7cb7495a617)

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

Cr-Commit-Position: refs/branch-heads/2883@{#598}
Cr-Branched-From: 614d31daee2f61b0180df403a8ad43f20b9f6dd7-refs/heads/master@{#423768}

[add] https://crrev.com/9bbebf3ba3a5b8ff0a645d026a0ede213135521d/third_party/WebKit/LayoutTests/fast/css/independent-inherit-update-pseudo.html
[modify] https://crrev.com/9bbebf3ba3a5b8ff0a645d026a0ede213135521d/third_party/WebKit/Source/core/dom/Element.cpp

Labels: TE-Verified-55.0.2883.59 TE-Verified-M55
Verified the fix on Windows 10, Ubuntu 14.04 and Mac 10.11.6 using Chrome Beta version #55.0.2883.59 as per the comment #0.

Observed that the fix is working as expected.

Attaching the screencast for reference

Hence, adding the TE-verified labels
Issue 660089.mp4
1014 KB View Download

Sign in to add a comment