commit | 3127493e35d5f602996741b808f60df624ea07e7 | [log] [tgz] |
---|---|---|
author | Rune Lillesveen <rune@opera.com> | Tue Sep 19 09:04:32 2017 |
committer | Commit Bot <commit-bot@chromium.org> | Tue Sep 19 09:04:32 2017 |
tree | d2313f9998eecb1641cb58d30a2ed8c9694c043a | |
parent | ba1da5c28cd94c1c42f8a5fbaafb9aa2d8b04ce0 [diff] |
Re-attach whitespace children when removing DOM nodes. When the display type changes for an element in the DOM tree, the WhitespaceAttacher would re-attach whitespace siblings appropriately when traversing the re-attached element. When a DOM node is removed from the tree, there will be no layout tree rebuild. Or, at least, the removed node will not be encountered by the traversal to trigger a re-attachment of any following whitespace nodes. In order to fix that, introduce a hash set which contains elements which had one of their layout tree children removed since the last layout tree update. In the next UpdateStyle mark these elements for layout tree rebuild and let the WhitespaceAttacher check if any of its whitespace children needs to be re-attached. Bug: 763291, 762833, 364817 Change-Id: I4d1b3df10d07f549abfea17df0184beca0623ef7 Reviewed-on: https://chromium-review.googlesource.com/661957 Commit-Queue: Rune Lillesveen <rune@opera.com> Reviewed-by: nainar <nainar@chromium.org> Cr-Commit-Position: refs/heads/master@{#502803}
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 .