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
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
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
r? @pcwalton
Looks like I forgot to save `ScannedTextFragment`s block sizes with their
inline sizes. This patch fixes that.
Fixes#3753
Source-Repo: https://github.com/servo/servo
Source-Revision: fe230ef37deaed2d6631af58ab923db023dcf319
This is a grab bag of performance improvements that significantly improve style recalculation, layout, and painting on a few static pages.
Let me know if you'd like me to split this PR up.
r? @glennw
Source-Repo: https://github.com/servo/servo
Source-Revision: 156ca98236a57ee52ff5b68741bc7783ba073612
This also adds some extra debugging infrastructure which I found useful tracking
this bug down. A regression in the br reftests is also uncovered by this patch,
which I'll work on fixing next.
EDIT: nevermind. no regression, I just tested that before a rebase.
r? @pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: b86344b697f814b982e52f4a72c26d58c915c37b
Seems to be a 38% layout win on a site I tested with a lot of text.
Other browser engines typically do not duplicate the information in the font style struct. `FontStyle` actually predates @SimonSapin's CSS selector matching library. It's time to get rid of it!
r? @glennw
Source-Repo: https://github.com/servo/servo
Source-Revision: 83196ddb26b5611bccfa2d709396daeff259bcd1
This implements fragment merging, in order to incrementally reflow linebroken
text. This makes the `whitespace_pre.html` reftest pass with incremental reflow
turned on with `-i`.
Source-Repo: https://github.com/servo/servo
Source-Revision: f3066c70da80306f68833814025deb589d6eeb2a