Like Gecko, we treat `geometricprecision` the same as
`optimizelegibility` for now.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 1a021f66354d9b6c14f76178d803185e50ad87d3
This was making `box-shadow` not show up in many cases, in particular,
but the effects were not limited to that.
r? @glennw
Source-Repo: https://github.com/servo/servo
Source-Revision: 499d17f564d699e5e290e8a3859f64e7536827a7
In particular, this contains changes to qualify enums where rust will require it, and to stop using some features that will be removed.
Source-Repo: https://github.com/servo/servo
Source-Revision: ba8cf6b0e6145265f9472d4855f078d8b5943fe7
This prepares for the rust upgrade currently being conducted.
Source-Repo: https://github.com/servo/servo
Source-Revision: e8fac3681b690adb0796b2a807ac95bd9c13597a
It is possible for a PaintTask to start exiting soon after sending new
buffers to the compositor. In that case, the compositor should return
the now unnecessary buffers to the PaintTask so that it can properly
free them.
To accomplish this, the compositor now keeps a hash map of paint task
channels per pipeline id. When a PaintTask exists, the constellation
informs the compositor that it can forget about it. Additionally, the
PaintTask should not wait for any buffers when the engine is doing a
complete shutdown. In that case, the compositor is already halted and
has simply let all buffers leak. We pipe through the shutdown type when
destroying the pipeline to make this decision.
Fixes#2641.
Source-Repo: https://github.com/servo/servo
Source-Revision: a31acffb0405b2c38b39c39c6d552f2ba79b6326
`str::to_string()` goes through a `Formatter`, `str::into_string()` is a direct copy and is apparently 5× faster.
This is a rebase of the boring and bitrot-prone parts of #4366.
Source-Repo: https://github.com/servo/servo
Source-Revision: 9857ea26cb9ee262654bee97322dbbf373486bff
Together these improve a large number of sites: GitHub, Reddit, Wikipedia, etc.
r? @glennw
Source-Repo: https://github.com/servo/servo
Source-Revision: 63a7742d834e9ed44421baa3ce218a5eabce58bf
The rendering is still wrong beause of #2795, but at least we get a rendering.
(This test change is just for readability, it should be equivalent to before.)
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 3cc87165a1279005fa2c12413f33487dee31df96
Only the recommended, comma-separated syntax is supported.
r? @SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: a80d88897d176630c79f929e8b1fd661b2e1a17c
I'm not sure how we want to handle Linux cursors, and GLFW has no
ability to set cursors (short of disabling it and managing it yourself).
If you test this in the wild you will probably hit #4357 until that PR lands.
Source-Repo: https://github.com/servo/servo
Source-Revision: e2267e0a0749e27046ee8a26ba514cc6865e0345
`caption-side` is used by 4% of pages by number of loads.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 6eb9ae1eff2d26c52ad2ac59eec703bd7e8ae867
We can reset `<input type=text>` fields! I wish I could've done something with checkboxes, but unfortunately, that's it for now.
In addition to that, this PR implements `HTMLInputAttribute.defaultValue`, updates wpt-test to expect passing tests as a result of that implementation, and fixes an index error crash with text inputs.
edit: also includes an html example where one may lazily watch form resets in action: ` tests/html/form_reset_handsfree.html`
Source-Repo: https://github.com/servo/servo
Source-Revision: 5951056973fc0e08e70224214740a274ca8ef20f
This patch provides some of the groundwork for column spans greater than
1. It implements the column-span CSS property as well as the
corresponding colspan attribute; although the former is not
well-specified outside of CSS multi-column layout, INTRINSIC refers to
it. Although width is distributed to spanning columns, they do not yet
contribute minimum and preferred widths; this will be implemented in a
follow-up.
The parsing for the legacy bgcolor and border attributes is
implemented according to the WHATWG HTML specification.
Additionally, this patch cleans up some miscellaneous formatting issues,
refactors layout/css somewhat to eliminate needless levels of
indirection, and cleans up the handling of table rowgroups.
New Hacker News screenshot: http://i.imgur.com/hnl2a7E.png
Source-Repo: https://github.com/servo/servo
Source-Revision: 8e31e5f98747e4b42dafcc4b076fac46aeb09310
This commit removes the "merge-fragments" pass from inline reflow,
instead merging "on the fly". This ended up being simpler, as well as
more fine grained. Additionally, this patch makes the line breaker no
longer clone every fragment (!)
This functionality will be used in the implementation of
`text-overflow`.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 88ec52dd617bafe384553ef38325c552fb4f1e23
The exact rendering is ill-spec'd. Some things are ugly (especially the
width and height of list style images) but they are infrequently used
and I believe this implementation matches the spec. Numeric lists are
not supported yet, since they will require a separate layout pass.
The implementation is a subclass of `BlockFlow`, on advice from Robert
O'Callahan.
r? @SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 112ef5c484e821aa4869aeaf12a12146f2424fe0
This fixes race conditions whereby layout and script could be running
simultaneously.
r? @jdm
cc @cgaebel
Source-Repo: https://github.com/servo/servo
Source-Revision: 5f2684d2f81046abd7548fb22d996d1e506a104a
This property is used by approximately 55% of page loads.
To implement the line breaking behavior, the "breaking strategy" has
been cleaned up and abstracted. This should allow us to easily support
other similar properties in the future, such as `text-overflow` and
`word-break`.
r? @glennw
Source-Repo: https://github.com/servo/servo
Source-Revision: 68ab18876bf4e210da26590420b9844b9cb0c92d
This assumes that there are no ligatures that span across multiple
words. Since we have a per-word shape cache, this is a safe assumption
as of now. I have left comments to ensure that, if and when this is
revisted, we make sure to handle it properly.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 98920b1315e7b867b293a56f5eb81784845f4a19
I had to use a somewhat unconventional method of computing text
indentation (propagating from blocks down to inlines) because of the way
containing blocks are handled in Servo.
(As a side note, neither Gecko nor WebKit correctly handles percentages
in `text-align`, at least incrementally -- i.e. when the percentages are
relative to the viewport and the viewport is resized.)
r? @SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: be6612193786ef22810fd66b3ce244a7e66cbcf4
The ligature disabling code has been manually verified, but I was unable
to reftest it. (The only way I could think of would be to create an
Ahem-like font with a ligature table, but that would be an awful lot of
work.)
Near as I can tell, the method used to apply the spacing (manually
inserting extra advance post-shaping) matches Gecko.
r? @SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 914f27263d60ffcbe2fd1f9e47a48e3aa3f1cd76
By "idempotent" I mean that later passes do not stomp on data from
earlier passes, so that we can run the passes individually for
incremental reflow. The main change here was to stop overwriting the
"minimum inline-size" field of each column with the column's computed
inline-size.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 909dd0e80f5c6a9051da6e2f70d77186cc545b1a
`invert` is not yet supported.
Objects that get layers will not yet display outlines properly. This is
because our overflow calculation doesn't take styles into account and
because layers are always anchored to the top left of the border box.
Since fixing this is work that is not related to outline *per se* I'm
leaving that to a followup and making a note in the code.
r? @SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: d31237f3439e5e5d4055b3a9e53eaeee4f3cdf2c
The Unicode awareness of `text-transform` is implemented as well as
possible given the Rust standard library's Unicode support. In
particular, the notion of an alphabetic character is used instead of a
letter.
Gecko has a subclass of text run to handle text transforms, but I
implemented this in a simpler way.
r? @SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 9bf1d1862a141dcf75d585d7ae5675d4e86a4c0d
Now that content box queries are made against the flow tree, we can
remove PseudoDisplayItems from the display list.
Source-Repo: https://github.com/servo/servo
Source-Revision: d988d01dd01c4e7e1503667cdfe91d4663e2c916
When inserting a node that was already dirtied, the dirtying logic
would short circuit: "This node is already dirty? Great! Then its
parents must be HAS_DIRTY_DESCENDANTS, too! Let's skip that step."
This isn't appropriate when nodes move around the tree. In that case,
the node may be marked HAS_CHANGED, but ancestors may not yet have
the HAS_DIRTY_DESCENDANTS flag set.
This patch adds a `content_and_heritage_changed` hook in the document,
to deal with these cases appropriately.
Source-Repo: https://github.com/servo/servo
Source-Revision: 5c506f7a98368020c7936517f1d8e243c9556937
#4275
* This changeset rename "render"/"rendering" to "paint"/"painting" under `components/`.
* This does not rename words which are used as general browser's working.
* So this doesn't change `reftest.rs`.
Source-Repo: https://github.com/servo/servo
Source-Revision: 0b486b12109ab765ecee4cbcc684e5d99e8ad5ad
This makes these parameters self-documenting.
This patch does not attempt to push those enums into the data
structures that feed calls to this function.
Fixes#4158.
Source-Repo: https://github.com/servo/servo
Source-Revision: bc7b5b35b44e82dadb35242e39b190b3d1fcba10
Fixes#3918
Can be tested in `tests/html/textarea.html`. Also implemented some content reflecting IDL attributes for HTMLTextAreaElement while I was in there.
There are some major problems with TextInput when Multiple is enabled that I haven't addressed here, but I'm prepared to open up a follow-up issue.
Source-Repo: https://github.com/servo/servo
Source-Revision: a369dcfa01f5ad7634469f3a3b652d7f650129a0
This adds the infrastructure necessary to support stacking contexts that
are not containing blocks for absolutely-positioned elements. Our
infrastructure did not support that before. This minor revamp actually
ended up simplifying the logic around display list building and
stacking-relative position computation for absolutely-positioned flows,
which was nice.
This will need this PR: https://github.com/servo/rust-azure/pull/112 I have not updated the Cargo.lock file yet because I want the merge commit.
r? @glennw
f? @SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 68c90e27970808bddcb8c8a4e782bd4405e67a5c