It would be nice if HTML parsing didn't have to hog the event loop, so I didn't have to do this polling in `content_changed()`, but maybe the way we do it is unavoidable.
r? @jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: e604b663f4e664b9a94d61569082b2b62de2151d
This fixes a hang found while testing the jQuery test suite.
Source-Repo: https://github.com/servo/servo
Source-Revision: c51e9f04559f04f1e820b792261e1653c6869ee5
This is useful for union types, in cases where we need MutNullableHeap<NodeOrString>.
Source-Repo: https://github.com/servo/servo
Source-Revision: b0ddd8149b04db6bceba0c0b8de852acc1086838
* Simpler image cache API for clients to use.
* Significantly fewer threads.
* One thread for image cache task (multiplexes commands, decoder threads and async resource requests).
* 4 threads for decoder worker tasks.
* Removed ReflowEvent hacks in script and layout tasks.
* Image elements pass a Trusted<T> to image cache, which is used to dirty nodes via script task. Previous use of Untrusted addresses was unsafe.
* Image requests such as background-image on layout / paint threads trigger repaint only rather than full reflow.
* Add reflow batching for when multiple images load quickly.
* Reduces the number of paints loading wikipedia from ~95 to ~35.
* Reasonably simple to add proper prefetch support in a follow up PR.
* Async loaded images always construct Image fragments now, instead of generic.
* Image fragments support the image not being present.
* Simpler implementation of synchronous image loading for reftests.
* Removed image holder.
* image.onload support.
* image NaturalWidth and NaturalHeight support.
* Updated WPT expectations.
Source-Repo: https://github.com/servo/servo
Source-Revision: ac0645c2363b5a6ea3930b0857b3a27f1b6d033f
This implements a framework for opting in to receiving network events asynchronously. It also converts XMLHttpRequest to use them, and paves the way for better support for synchronous XHR using on-demand, targeted event loops instead of spinning the global event loop. This gives us complete feature parity with the existing XHR implementation, using fewer threads than before in the async case.
Source-Repo: https://github.com/servo/servo
Source-Revision: 3151497d498b001b4a783dce0595615c6fc40936
The HTML spec's division into pages is not stable, so it is safer to use the
URL without a specific page (which will redirect).
Source-Repo: https://github.com/servo/servo
Source-Revision: 894b19526f1903f398c7817567b7d1b1e34998ed
Extracted this out of #5649
This commit was created with the following commands:
```
find . -iname "*.webidl" -type f -print0 | xargs -0 sed -i '' 's/http:\(.*\)whatwg.org/https:\1whatwg.org/g'
```
```
find . -iname "*.rs" -type f -print0 | xargs -0 sed -i '' 's/http:\(.*\)whatwg.org/https:\1whatwg.org/g'
```
Source-Repo: https://github.com/servo/servo
Source-Revision: 4997d3a112354a407365fede1ab1944834a2e13c
Available markers only:
Reflow
DOMEvent
Also need to implement:
Style marker
Paint marker
Javascript marker
frames reply, depends on getting javascript stack
I decided to make pull request before implemented another markers for getting feedback.
mb it would be better to create separated tasks.
Notices:
Marker doesn't fill stack and stackEnd
MemoryActor sends fake data because there is no memory profiler per tab
FramerateActor sends empty Vec, need implement http://mxr.mozilla.org/mozilla-central/source/dom/base/nsGlobalWindow.cpp#5240
Source-Repo: https://github.com/servo/servo
Source-Revision: 74c847a17fb560dd4cd62069778776f6f06df19f
@kenpratt and I moved the URL and IFrame fields from Reflow to LayoutTask, as described in #5466.
This is my first attempt at Rust, so let me know how this is!
Source-Repo: https://github.com/servo/servo
Source-Revision: e4da29b28b6efce3f84f00ef7d2d1716954c500d
Transition events are not yet supported, and the only animatable
properties are `top`, `right`, `bottom`, and `left`. However, all other
features of transitions are supported. There are no automated tests at
present because I'm not sure how best to test it, but three manual tests
are included.
r? @glennw
Source-Repo: https://github.com/servo/servo
Source-Revision: ebdf1d494b6c986e6dfcb7d8fd3f0ffa126523ed
For the majority of these cases, `as_slice` can be removed due to
`Deref`. In particular, `Deref` for:
* `String` -> `str`
* `Atom` -> `str`
The latter of those two requires, a bump of the locked `string-cache`
library
Source-Repo: https://github.com/servo/servo
Source-Revision: 0fd41847a39be387c03bd5d8b6f2aec2b1bb6f66
This is for #4704. I'm not sure if this is the best approach, so I'm open to suggestions.
Source-Repo: https://github.com/servo/servo
Source-Revision: 439e3150d74453b86abbcc7934b7e5152f102940
The history is now recorded per frame, but needs to be exposed in a followup PR.
Source-Repo: https://github.com/servo/servo
Source-Revision: 1092ca10192c79b4b96c25985a2c6245d369090b
@jdm This initial version has a few outstanding issues that I wanted to invite input on. Specifically:
1. I had some difficulty finding a home for the `StorageType` enum. Structs defined outside of the `script` module don't seem to be able to use the `#[jstraceable]` annotation and the `net` module (where `StorageTask` lives) doesn't have access to `script`. Per Simon Sapin's suggestion, I worked around this temporarily by creating a `TraceableStorageType` stand-in struct that was traceable and which could be translated into a regular `StorageType` when being sent to the `StorageTask`. Unsure of the best way to resolve this hack. Thoughts?
2. Apart from the `Storage` constructor used in `Window::SessionStorage` and the new `Window::LocalStorage`, there's also a method called `Storage::Constructor`. I'm unclear on what (if anything) will actually invoke this, so I'm not sure which variant of `StorageType` to use here. I've temporarily created an `Unknown` variant of `StorageType` as a placeholder.
3. I discovered that the web platform tests directory's localStorage tests. Many of them now pass despite the configured expectation that they fail. However, several do not pass. Is there a good way for me to add debug logging or otherwise get a sense of which assertion failed / what went wrong?
Thanks for your continued help!
Source-Repo: https://github.com/servo/servo
Source-Revision: b8e87ea020879090c931421cf3cec73d8cd1156f
This fixes some test failures that begin occurring when other events (such as resize) are fixed to only occur when needed.
Source-Repo: https://github.com/servo/servo
Source-Revision: 19827658deaf21eb811203f89c78a0f99e631ad4
Due to changes on Page/Window interfaces, we no longer have use for flush_layout().
Source-Repo: https://github.com/servo/servo
Source-Revision: 34289943e354b2ac0e54fd1fe2d65c944f6c8e9d
Adds free/thaw methods to script_task that let you send suspend/resume messages to web content timers. Fixes#4907
Source-Repo: https://github.com/servo/servo
Source-Revision: a3ea3eed47713a4a6faa86c575bc2ac95c5fe135
I believe this problem was introduced with the mozjs error reporting changes, since we don't see errors reported from `<script>` blocks any more.
Source-Repo: https://github.com/servo/servo
Source-Revision: 99617557d40504060d5162739f8ba9b962843099
Ready for review.
Final link step on android fails, but we know how to fix it and will add it to this branch soon.
Source-Repo: https://github.com/servo/servo
Source-Revision: 2cc08f289ab909de44fa09a07b2c43b70ce379b9