| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
fixes #6452
|
| |
|
| |
|
|
|
|
|
|
|
| |
This implies LayoutNode no longer needs to return an Option, as it never
represents a pseudo-element.
Also, fixes lies in the documentation.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`LOCAL_CONTEXT_KEY` is currently a `Cell<*mut LocalLayoutContext>`. The use
of the raw pointer means that the `LocalLayoutContext` is not dropped when
the thread dies; this leaks FreeType instances and probably other
things. There are also some unsafe getter functions in `LayoutContext`
(`font_context`, `applicable_declarations_cache` and
`style_sharing_candidate_cache`) that @eddyb says involve undefined
behaviour.
This changeset changes `LOCAL_CONTEXT_KEY` to
`RefCell<Option<Rc<LocalLayoutContext>>>`. This fixes the leak and also
results in safe getters.
(Fixes #6282.)
|
|
|
|
|
|
| |
Part of #6224
I certainly didn't remove all of them; I avoided `unsafe` areas and also `components/script`
|
|
|
|
| |
Part of https://github.com/servo/servo/issues/6041
|
|
|
|
|
|
| |
HTML5 § 4.8.6.
Improves Amazon and Ars Technica.
|
|
|
|
|
|
|
| |
flows when mousing over the document.
This exposes more "jumpiness" on sites like Hacker News, but the bug
that causes it was pre-existing.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
absolutely-positioned elements.
This also implements a little bit of the infrastructure needed to
support for fragmentation via support for multiple positioned fragments
in one flow.
Improves Google.
|
|
|
|
|
|
|
|
|
| |
Improves the Google SERPs.
We mark `html/rendering/replaced-elements/images/space.html` as failing.
This test tested whether `<img hspace>` and inline margins do the same
thing. Since this was trivially the case before (since we implemented
neither) and now is not, this test now fails.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
blocks.
* Stop double-counting border and padding for inline-block fragments.
(Test case: `inline_block_border_intrinsic_size_a.html`.)
* Take clearance into account when determining intrinsic widths of
blocks containing floats.
Improves the Amazon headers.
|
|
|
|
|
|
|
|
|
| |
* Fix queries involving stacking contexts
* The code was double accumulating stacking context origins.
* Handle queries of inline elements.
* The node addresses being compared were incorrect (CharacterData vs. Span)
* Handle ScriptQuery reflows correctly.
* The layout task was skipping the compute absolute positions traversal, so failed before window.onload.
|
|
|
|
|
|
|
| |
NodeTypeId is supposed to reflect the WebIDL inheritance hierarchy.
All of Text/ProcessingInstruction/Comment inherit from CharacterData,
which inherits from Node. There should be a CharacterDataTypeId value
that differentiates between those, instead.
|
| |
|
|
|
|
| |
It currently "inherits" from BlockFlow and does not override anything.
|
|
|
|
|
|
| |
17.2.1.
Improves Facebook Timeline.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
| |
values properly in simple cases.
This allows things like `<sup><span>Foo</span></sup>` to work and
improves Wikipedia.
|
| |
|
|
|
|
|
| |
bubble intrinsic inline sizes as necessary when doing incremental
reflow.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
§ 12.3-12.5.
Only simple alphabetic and numeric counter styles are supported. (This
is most of them though.)
Although this PR adds a sequential pass to layout, I verified that on
pages that contain a reasonable number of ordered lists (Reddit
`/r/rust`), the time spent in generated content resolution is dwarfed by
the time spent in the parallelizable parts of layout. So I don't expect
this to negatively affect our parallelism expect perhaps in pathological
cases.
|
| |
|
|\ |
|
| | |
|
| | |
|
| | |
|
| | |
|
|/ |
|
|\
| |
| |
| |
| |
| | |
Also introduce a clear() function to layout data which will be used to clear items such as compositor layouts.
Clear the layout data when a node becomes display:none.
|
| |
| |
| |
| |
| |
| | |
Also introduce a clear() function to layout data which will be used to clear items such as compositor layouts.
Clear the layout data when a node becomes display:none.
|
|/
|
|
|
|
| |
Instead of looking at the boundaries of the text run, set the border
width to zero and the border style to none on border sides that are not
the outermost for a node container that is display: inline.
|
|
|
|
|
|
|
|
| |
Prior to incremental layout, the code would remove the existing
construction result. However, with incremental layout the construction result
is cloned rather than removed. This change ensures that the previous
construction result is cleared when an element's display type
changes to none.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
This patch also makes Servo not crash when
`generated_containing_block_rect()` is called on a list item (as, for
example, GitHub does), and for good measure I added the fix to other
flows as well.
|
|
|
|
| |
Only the one-value syntax is supported for now.
|
| |
|
| |
|
| |
|
| |
|
| |
|