This rewrites the float context to avoid dynamic failures resulting from
`.clone()` misuse. It also renames the float context to the simpler
`Floats`. The new version is modeled on WebKit's `FloatingObjects`.
r? @kmcallister
This rewrites the float context to avoid dynamic failures resulting from
`.clone()` misuse. It also renames the float context to the simpler
`Floats`. The new version is modeled on WebKit's `FloatingObjects`.
Back in 2012, Brian wrote a reftest system using Firefox via Selenium to
generate comparison images. This seems like a pretty cool idea, but we
didn't maintain it and important pieces are now missing.
Let's remove it from the working tree to avoid confusion with the current
reftest system, and I'll open a ticket about revisiting this idea.
One pair of old reftest files seems usable as a new reftest and that move is
included in this commit.
cc @pradeep90 — This removes leaf sets and should be enough to get you started.
This series of patches combines various layout passes to eliminate the overhead involved with bottom-up passes. It also makes assign-widths and flow construction run in parallel. No raw layout code was touched (except in trivial ways); rather this just changes the way methods are invoked. So the overall level of code cleanliness should remain the same. In fact, this is a (slight) net loss in LOC, and should be an improvement in safety due to not having to ensure that the nodes in the leaf sets stay alive!
This was quite a nice speedup; we're now 38% faster than Blink sequentially for style recalc on the rainbow page and 2.56x faster with 4 cores. (The relatively low speedup is because the LRU cache hits perfectly on that page sequentially.)
There is a data race somewhere in the unsafe code I added, so *do not merge yet*.