This fixes the computation of restyle damage on `color-change-text.html`, which can be seen with `RUST_LOG=servo::layout::layout_task`.
However we can't prune the layout traversals yet, because we don't reuse `Flow` objects between reflows, so we have no old values to fall back to.
I think this used to work because `FlowContexts` (as they were called then) were stored in a DOM node's `LayoutData` and reused. But it's possible that it never really worked, and my testing when I landed the restyle damage code was insufficient (I didn't understand the layout code nearly as well back then).
r? @pcwalton
We don't reuse Flow objects between reflows, so we have no old values to fall
back to.
I think this used to work because FlowContexts (as they were called then) were
stored in a DOM node's LayoutData and reused. But it's possible that it never
really worked, and my testing when I landed the restyle damage code was
insufficient (I didn't understand the layout code nearly as well back then).
Instead we do selector matching again, then diff the style structs to set the
"restyle damage" bits which are used to prune reflow traversals.
Also don't force a reflow when timers finish, because individual DOM methods
should already take care of that.
flushing text clumps. Fixes this page:
http://en.wikipedia.org/wiki/Yellow_River
This is not the most efficient thing to do; a FIXME has been added
noting what is most correct.
r? @jdm
flushing text clumps. Fixes this page:
http://en.wikipedia.org/wiki/Yellow_River
This is not the most efficient thing to do; a FIXME has been added
noting what is most correct.
User credentials and port were not being preserved when pre-fetching path-based resources. For example, consider the following HTML:
```html
<html>
<body>
<img src="logo.png" />
</body>
```
Running the following command would try to fetch the image from `http://localhost/my-site/logo.png` and crash the browser with ConnectionRefused error:
```
$ ./servo http://foo:bar@localhost:8080/my-site/
task '<unnamed>' failed at 'Unhandled condition: io_error: rt::io::IoError{kind: ConnectionRefused, desc: "connection refused", detail: None}', /home/daniel/Programming/servo/src/compiler/rust/src/libstd/condition.rs:131
...
```
This should now be fixed.
Removing all @ from flowtree to make it parallelism-ready.
The connection between displaylist and flowtree is removed, i.e., when displaylist is built, box is cloned.
Whether displaylist still needs to have boxes is a design decision to make.
Also thanks to @ksh8281