Pseudo-elements don't cause repaint on visibility changes
Reported by
guilherm...@sencha.com,
Oct 30 2016
|
||||||||||||||||||
Issue descriptionUserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 Steps to reproduce the problem: 1. Render an element with an icon (fontawesome will do just fine) 2. Hide this element using visibility: hidden 3. Change the icon while the element is hidden 4. Show the element using visibility: visible What is the expected behavior? The new icon would be shown What went wrong? It still shows the icon until you give this element a nudge, like adding/removing some random class. Did this work before? Yes 53 Does this work in other browsers? Yes Chrome version: 54.0.2840.71 Channel: stable OS Version: OS X 10.12.1 Flash Version: Shockwave Flash 23.0 r0
,
Oct 30 2016
Please address this. Loading icon fonts is a pretty common use case
,
Oct 31 2016
Confirmed. Test team, please bisect use the following url: http://jsbin.com/vokeja
,
Oct 31 2016
Per-revision bisect result: ------------------------- Good build: 54.0.2836.0 (Revision 413363) Bad build: 54.0.2838.0 (Revision 413929) You are probably looking for a change made after 413405 (known good), but no later than 413406 (first known bad). CHANGELOG URL: https://chromium.googlesource.com/chromium/src/+log/bfd1b37e43efa00f282a93a2d8e4bb1bb210eccd..d0c57905368c76aba662dbda3b4e13cb9bd454bf https://chromium.googlesource.com/chromium/src/+/d0c57905368c76aba662dbda3b4e13cb9bd454bf, sashab@, could you please check the issue and update. Able to reproduce on Win7, Mac OS X10.11.6, Ubuntu 14.04 using chrome Canary # 56.0.2905.0, Dev 56.0.2902.0, Stable 54.0.2840.71
,
Nov 2 2016
,
Nov 2 2016
,
Nov 3 2016
Also seeing this error when the content is changed on a :before pseudo element (whilst still visible)
,
Nov 10 2016
This should be fixed by https://codereview.chromium.org/2492783002/. Will work on merging this into stable.
,
Nov 10 2016
,
Nov 10 2016
,
Nov 10 2016
,
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
,
Nov 11 2016
Is this merge CRITICAL for M54 ?If yes please tag the bug with Release Block Stable. As of now we do not have plan for a Stable Refresh for M54. Guessing we can take this change for M55 once the CL is baked and verified in canary.
,
Nov 11 2016
Please request a merge to M55 once CL is baked/verified in Canary and safe to merge if needed. Thank you.
,
Nov 12 2016
[Automated comment] Request affecting a post-stable build (M54), manual review required.
,
Nov 14 2016
Issue 657283 has been merged into this issue.
,
Nov 14 2016
Sorry, can we please merge into M55 instead. Can confirm this is working in both tip-of-tree and Version 56.0.2918.0 canary (64-bit) on Windows 10.
,
Nov 14 2016
re: #17, please request a merge to M55 by applying "Merge-Request-55" label. Thank you.
,
Nov 14 2016
,
Nov 15 2016
M54 is already in Stable now we may not do any more refresh.
,
Nov 17 2016
,
Nov 17 2016
[Automated comment] There appears to be on-going work (i.e. bugroid changes), needs manual review.
,
Nov 17 2016
The script treated this bug as manual review in progress because of the Hotlist-Merge-Review label. Also it won't auto approval merge-request more than 24hrs old. So applying merge-request-55 manually now.
,
Nov 17 2016
Your change meets the bar and is auto-approved for M55 (branch: 2883)
,
Nov 17 2016
Thanks! Will the patch be auto-merged or do I do that manually myself?
,
Nov 17 2016
I think you need to do it yourself, or I could drover it.
,
Nov 17 2016
Since it's evening in Sydney, I'll start drover now.
,
Nov 17 2016
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
,
Nov 17 2016
,
Nov 17 2016
Tyvm rune!
,
Nov 21 2016
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 #3. Observed that the fix is working as expected. Attaching the screencast for reference Hence, adding the verified labels
,
Nov 22 2016
|
||||||||||||||||||
►
Sign in to add a comment |
||||||||||||||||||
Comment 1 by guilherm...@sencha.com
, Oct 30 2016982 bytes
982 bytes View Download