diff options
author | Matt Brubeck <mbrubeck@limpet.net> | 2016-03-11 08:34:30 -0800 |
---|---|---|
committer | Matt Brubeck <mbrubeck@limpet.net> | 2016-03-11 09:11:37 -0800 |
commit | 5104d8244f6936bd5b78bb6b4ced86219237d6c8 (patch) | |
tree | 31885933fee368a83b547c680dafcb70b81e42c7 /components/layout/layout_thread.rs | |
parent | 53aca4b80eef2890c43dd2d0e905b25588651191 (diff) | |
download | servo-5104d8244f6936bd5b78bb6b4ced86219237d6c8.tar.gz servo-5104d8244f6936bd5b78bb6b4ced86219237d6c8.zip |
Don't re-resolve already-resolved generated content
This fixes #7846, a failure in the "quotes-036.htm" test. Servo lays out this
test correctly in its initial layout, but then messes it up in any relayout
(whether it's an incremental or full layout).
The problem is that the ResolveGeneratedContent traversal is not safe to run
more than once on the same flow. It mutates some GeneratedContent fragments
into ScannedText fragments, but leaves others unmodified (in particular,
those that generate empty content). The next time layout runs, these remaining
GeneratedContent fragments are processed *again* but with an incorrect correct
quote nesting level (because some of the surrounding GeneratedContent
fragments are gone).
This patch ensures that each GeneratedContent fragment is resolved only once.
Diffstat (limited to 'components/layout/layout_thread.rs')
0 files changed, 0 insertions, 0 deletions