Implement scroll, scrollLeft, scrollTop and friends, addressing issue #9650
This is a work in progress to solve https://github.com/servo/servo/issues/9650. Thanks a lot for helping the review.
- [x] scroll
- [x] scrollTo
- [x] scrollBy
- [x] scrollTop (setter and getter)
- [x] scrollLeft (setter and getter)
The setters will be implemented in another PR after this is merged.
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9968)
<!-- Reviewable:end -->
Lower the logging level of a really chatty fn
Reduces the amount of spew when running with settings like `RUST_LOG=script=debug`.
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10718)
<!-- Reviewable:end -->
Issue #10574 Use the document base url in img
add a test with base path set to the resources path and an img with a cat and the reference directly to the image
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10634)
<!-- Reviewable:end -->
It's broken for uniform arrays, since uniform.id() stops being the index
then.
We need to add a more complex integration with angle for this to ever
be correct.
Unfortunately the ANGLE part that we should touch is C++, and it has
destructors, so we need to hook destructors there, and I can't do it
right now.
This is a large-ish refactor of the Texture2D code, but it should be
easier to read and of course more correct.
I tried to annotate every error condition with a spec paragraph.
Add new compositor message to get scroll_offset;
Add new layout query for computed value of overflow-x/y;
Implement layer_id method for ThreadSafeLayoutNode;
Add new layout query for layer_id;
Implement script interface for getting scrollTop and scrollLeft, as well as relavant helper functions.
refs: https://github.com/servo/servo/issues/9269
and update HTMLTableElement.webidl
insertRow returns an HTMLTableRowElement and throws an IndexSizeError
sortable and stopSorting were removed.
Implement HTMLTextArea.setSelectionRange (continuation of #10007)
Tests on `tests/wpt/web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange.html` all pass and the other tests don't panic due to double borrows anymore.
cc: @KiChjang
Fixes#9994.
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10612)
<!-- Reviewable:end -->
In rust-url 1.0 the `Url` struct is going to have private fields, and there
is no way to to create an aribitrary one without going through the parser.
The plugin never had a clear demonstrated performance benefit,
it was made mostly because it was possible and relatively easy at the time.
Implement HTMLBaseElement attributes
The remaining test failure in `base_multiple.html` looks like there's a problem with the test itself (it does not have a `<base>` tag at all).
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10512)
<!-- Reviewable:end -->