Fixes#3356. This makes script elements fetch their source synchronously and execute immediately by default. It also lays some groundwork for future deferred or async script loading.
(Depends on #3716 to fix a content test failure caused by running script during parsing.)
This fixes a performance regression caused by the previous patches. Once we
allowed script and layout to run during parsing, it was running too often
(every time the document changed and called window.reflow).
Fixes#1269.
This implements the parts of the "prepare a script element" algorithm that are
required for synchronous scripts. It also adds some infrastructure for future
support of the `async` and `defer` attributes.
Added parse_chunk method declaration to parser
Removed unnecessary visibilty for parse_chunk function
Implemented parse_chunk function
Implemented parse_chunk fn for ServoHTMLParser
Moved parser trait to mod.rs and added finish fn
added licence header to mod.rs and other review comments
Fixed trailing space issue
Fixed failed tabular space test
into_iter used to use `inline_size` as the capacity insetad of the actual
capacity. This patch fixes that, adds some utility methods to `SmallVec`
to bring it closer in functionality to `Vec`, and removes the obsolete
`owns_managed` calls.
@pcwalton - I'm not sure if there's any gotchas or downsides to profiling using this technique to instrument the runtime. Happy to close this if it doesn't seem like a good idea to you. r?
During debugging, I found it useful to hook all task creation in a
central location, and util::task was the perfect place for it.
r? @pcwalton (or maybe someone else, I'm kinda sending you a bunch of
reviews today because I don't know who better to give them to)
into_iter used to use `inline_size` as the capacity insetad of the actual
capacity. This patch fixes that, adds some utility methods to `SmallVec`
to bring it closer in functionality to `Vec`, and removes the obsolete
`owns_managed` calls.
During debugging, I found it useful to hook all task creation in a
central location, and util::task was the perfect place for it.
r? @pcwalton (or maybe someone else, I'm kinda sending you a bunch of
reviews today because I don't know who better to give them to)
There are many function and methods that operate on a single layer, that can really just be methods on a CompositorLayer trait. This greatly simplifies the way that Compositor interacts with its child layers. This PR is just code motion.