commit | 160586e12facdc5c66c59a6165ebb34b04545eb6 | [log] [tgz] |
---|---|---|
author | Rakina Zata Amni <rakina@chromium.org> | Thu Mar 14 12:41:26 2019 |
committer | Commit Bot <commit-bot@chromium.org> | Thu Mar 14 12:41:26 2019 |
tree | 79f9f59c3fb790c8ed002d5a45ba0b629ee495a3 | |
parent | 079ad709de9e9ebf0d68ada26818013d0795d88e [diff] |
[Display Locking]: Mark locked elements for style recalc if blocked during current style recalc There are some cases where we go to a locked element during style recalc and the element or its children is not actually dirty, but we're going there due to a change in the ancestor that necessitates a traversal & recalc of the descendants. However if we got blocked by the lock and the element stays style-clean, we'll not go to recalc the style for that locked subtree again. Example: If an element with display:none changed its display value to something else (block etc) it will trigger a style recalc for its whole subtree but it will be skipping locked elements as usual. However if we do this and after that there's no other change to the locked subtree, we might never actually calculate the style for that locked subtree. If this is a lock-before-append case, that means the ComputedStyle will stay null. In this CL, we check if we're encountering such a case and mark the locked element as dirty sufficiently (local/subtree change) if so, so that when we update/commit, we're guaranteed to traverse to that subtree and calculate the style correctly. Bug: 940857 Change-Id: I577deb420a6a57e54d478e295ac60c004fb5b25c Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1517476 Commit-Queue: Rakina Zata Amni <rakina@chromium.org> Reviewed-by: vmpstr <vmpstr@chromium.org> Reviewed-by: Rune Lillesveen <futhark@chromium.org> Cr-Commit-Position: refs/heads/master@{#640706}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .