Jonathan Kew
6f42f167fb
Bug 1490402 - Use UTF-8 strings (in place of UTF-16) for font family/face names in the system font list, to reduce memory footprint. r=lsalzman
2018-09-12 20:34:57 +01:00
Lee Salzman
e251ecb952
Bug 1460259 - Send synthetic oblique angle to WR. r=jfkthame
2018-07-04 10:56:40 -04:00
Jonathan Kew
d4b7d95206
Bug 1464400 - Keep track of CSS generics when resolving to actual font families and faces, and expose as a new CSSGeneric attribute on InspectorFontFace. r=jwatt
2018-05-25 14:07:57 +01:00
Brindusan Cristian
2c5b7db570
Backed out changeset f8dbb1d2d07c (bug 1464400) for mochitest failures on test_font_whitelist.html. CLOSED TREE
2018-06-01 19:07:24 +03:00
Jonathan Kew
0cc7412d4f
Bug 1464400 - Keep track of CSS generics when resolving to actual font families and faces, and expose as a new CSSGeneric attribute on InspectorFontFace. r=jwatt
2018-05-25 14:07:57 +01:00
Jonathan Kew
de265e92c7
Bug 1427660 - patch 2 - In gfxFontGroup::ComputeRanges, allow font run to include multiple match-types to avoid unnecessary interruption of font shaping. r=lsalzman
2018-05-11 08:56:25 +01:00
Jonathan Kew
288d62fe84
Bug 1427660 - patch 1 - Make gfxTextRange::MatchType an enum class for stronger type checking (no functional change). r=lsalzman
2018-05-11 08:56:12 +01:00
Jonathan Kew
9c8f263093
Bug 1458004 - Link font-style values italic / oblique to the appropriate variation-font axes or synthetic styling. r=jwatt
2018-05-09 13:49:24 +01:00
Chris Peterson
71422dcaa9
Bug 1457813 - Part 2: Replace non-asserting NS_PRECONDITIONs with MOZ_ASSERTs. r=froydnj
...
s/NS_PRECONDITION/MOZ_ASSERT/ and reindent
MozReview-Commit-ID: KuUsnVe2h8L
--HG--
extra : source : c14655ab3df2c9b1465dd8102b9d25683359a37b
2018-04-28 12:50:58 -07:00
Jonathan Kew
c8b02be077
Bug 1449605 - part 2 - Rename gfxFontEntry::IsBold() to SupportsBold() and make it smarter about variable fonts, to avoid inappropriate use of synthetic-bold effect. r=jwatt
2018-05-04 10:19:55 +01:00
Jonathan Kew
e92b9e44cf
Bug 1449605 - part 1 - Rearrange thebes font code so that the decision whether to apply synthetic-bold is deferred until actually instantiating a font, not made during the font-matching process. r=jwatt
...
This rearranges how synthetic-bold use is determined in the font selection
& rendering code. Previously, we would decide during the font-selection
algorithm whether we need to apply synthetic-bold to the chosen face, and
then pass that decision through the fontgroup (storing it in the FamilyFace
entries of the mFonts array there) down to the actual rendering code that
instantiates fonts from the faces (font entries) we've selected.
That became a problem for variation fonts because in the case of a user
font, we may not have downloaded the resource yet, so we just have a "user
font container" entry, which carries the descriptors from the @font-face
rule and will fetch the actual resource when needed. But in the case of a
@font-face rule without a weight descriptor, we don't actually know at
font-selection time whether the face will support "true" bold (via a
variation axis) or not, so we can't reliably make the right decision about
applying synthetic bold.
So we now defer that decision until we actually instantiate a platform font
object to shape/measure/draw text. At that point, we have the requested
style and we also have the real font resource, so we can easily determine
whether fake-bold is required.
(This patch should not result in any visible behavior change; that will
come in a second patch now that the architecture supports it.)
2018-05-01 10:30:50 +01:00
Jonathan Kew
4ca43a081e
Bug 1456820 - patch 4 - Reorder fields in gfxFont for better packing. r=lsalzman
2018-04-25 18:54:03 +01:00
Jonathan Kew
7820fa0d7a
Bug 1456820 - patch 3 - Reorder fields in gfxFontEntry for better packing. r=lsalzman
2018-04-25 18:54:03 +01:00
Jonathan Kew
7a753409a8
Bug 1456820 - patch 2 - Reorder fields in gfxFontStyle for better packing. r=lsalzman
2018-04-25 18:54:03 +01:00
Jonathan Watt
156c4af1ec
Bug 1436048: Use user defined types for font-stretch / font-style. r=jfkthame,jwatt
...
Co-authored-by: Emilio Cobos Álvarez <emilio@crisal.io>
MozReview-Commit-ID: 7ONYtICeAqb
2018-04-23 18:22:05 +02:00
Jonathan Kew
94238d9823
Bug 1452973 - Update NS_FONT_STRETCH_* constants to values based on the percentage definitions in css fonts 4. r=jwatt
2018-04-16 10:00:57 +01:00
Jonathan Watt
1e7f76576a
Bug 1436048 part 1 - Use a user defined type for font weight everywhere. r=jfkthame,emilio
...
--HG--
extra : rebase_source : 2e267ff99de6f52484e34ac15c39e5ca8b473394
2018-04-13 20:34:37 +01:00
Jonathan Watt
52623f7cef
Bug 1452466 - Get rid of gfxFontStyle::ComputeWeight. r=jfkthame
2018-04-09 10:39:17 +01:00
Jonathan Kew
195f35adee
Bug 253143 - Do not add letter-spacing after zero-width format controls such as ZWSP. r=jwatt
2018-03-05 21:57:57 +00:00
Jonathan Kew
6856ae796f
Bug 1431866 - Avoid risk of undefined behavior in gfxFontStyle::Hash() calculation. r=jrmuizel
2018-01-24 17:42:30 +00:00
Jonathan Kew
d477a069f3
Bug 1431305 - Handle fallback (rotated) rendering of characters with Vertical_Orientation=Tr when the font does not support them via 'vert', nor is there a vertical presentation form encoded in Unicode. r=m_kato
2018-01-19 10:46:53 +00:00
shindli
6399f1f1af
Backed out changeset 33571130ef67 (bug 1431305) for failing in /text-orientation-mixed-vlr-100-ref.html on a CLOSED TREE
2018-01-19 17:56:20 +02:00
Jonathan Kew
6aa84ed3ae
Bug 1431305 - Handle fallback (rotated) rendering of characters with Vertical_Orientation=Tr when the font does not support them via 'vert', nor is there a vertical presentation form encoded in Unicode. r=m_kato
2018-01-19 10:46:53 +00:00
Lee Salzman
1a23b6eab1
Bug 1400384 - support text writing modes with WebRender. r=gankro
2018-01-17 07:51:20 -05:00
Lee Salzman
7755d675bb
Bug 1394568 - plumb synthetic italics flag through thebes and Moz2D into WebRender. r=gankro
2018-01-09 10:37:49 -05:00
Jonathan Kew
e264fbefb1
Bug 1416795 - Implement synthetic-oblique font rendering by applying a transform at gfxFont::Draw time, rather than setting it on the cairo font matrix. r=jrmuizel
2017-11-17 10:54:21 +00:00
Jonathan Kew
49c97adb4e
Bug 1411625 - Remove the constructor from gfxShapedText::CompressedGlyph to make it a trivial class, and provide a couple of convenience "factory" methods to create simple and complex glyph values. r=andi
2017-11-11 15:32:58 +00:00
Markus Stange
06a44912a5
Bug 1414154 - Remove gfxContext::Set/GetFontSmoothingBackgroundColor and TextRunDrawParams::fontSmoothingBGColor. r=lsalzman
...
MozReview-Commit-ID: BXZP3maOJRi
--HG--
extra : rebase_source : 5ba8b50835d98f78cdf854d914d61f5508edf6e3
2017-11-02 22:31:15 -04:00
Markus Stange
78303f13ce
Bug 1414154 - Remove GlyphRenderingOptions. r=lsalzman
...
MozReview-Commit-ID: JtwnTj1hhPV
--HG--
extra : rebase_source : 2a3e896eec8b6839097baf6e2cccc10eb162827b
2017-11-02 21:42:56 -04:00
Markus Stange
4be8be99f3
Bug 1414154 - Store the font smoothing background color on the ScaledFontMac. r=lsalzman
...
MozReview-Commit-ID: 9U6CXn1JlYT
--HG--
extra : rebase_source : eea215e1ef3345e06ea92fc150f83a4467eba31d
2017-11-02 21:02:30 -04:00
Jonathan Kew
0aa24e331c
Bug 1412355 - Replace the mXOffset/mYOffset fields in DetailedGlyph records with a gfx::Point that stores glyph offsets in line-orientation-relative coordinates. r=jrmuizel
2017-10-30 14:55:42 +00:00
Sebastian Hengst
8968724f1a
Backed out changeset 4905048de8d1 (bug 1412355) for frequently failing reftest layout/reftests/writing-mode/1248248-1-orientation-break-glyphrun.html on Linux x64 debug and asan. r=backout
...
--HG--
extra : amend_source : 61e56c97354c788bfd03aa551e911a1aff14006e
2017-10-28 16:39:59 +02:00
Jonathan Kew
8397a853b8
Bug 1412355 - Replace the mXOffset/mYOffset fields in DetailedGlyph records with a gfx::Point that stores glyph offsets in line-orientation-relative coordinates. r=jrmuizel
2017-10-28 11:37:35 +01:00
Jonathan Kew
5ac85102ae
Bug 1408612 followup - Change a few more doubles to floats in the gfxFont drawing code paths. r=jrmuizel
2017-10-27 14:16:49 +01:00
Sebastian Hengst
c1cc60ba6f
Backed out changeset 0998d26202bd (bug 1408612) for reftest failures e.g. layout/reftests/svg/text-gradient-01.svg and layout/reftests/writing-mode/1193519-sideways-lr-decoration-1.html. r=backout on a CLOSED TREE
...
--HG--
extra : amend_source : 9939a46e37da653be63d9e9ba6a079a05851780d
2017-10-26 23:08:29 +02:00
Jonathan Kew
c9060d927c
Bug 1408612 followup - Change a few more doubles to floats in the gfxFont drawing code paths. r=jrmuizel
2017-10-26 21:00:22 +01:00
Jonathan Kew
2660b7f4db
Bug 1408612 - patch 2 - Create templated gfxFont::DrawGlyphs and DrawOneGlyph methods to allow parts of their complexity to be optimized away at compile time for the most common cases (no color glyphs, no inter-glyph spacing). r=jrmuizel
2017-10-24 15:06:45 +01:00
Jonathan Kew
793b63713b
Bug 1408612 - patch 1 - Use single-precision floats more consistently for glyph position computations when drawing text. r=jrmuizel
2017-10-24 09:59:09 +01:00
Jonathan Kew
fef1726255
Bug 1361631 - patch 1 - Rearrange handling of textrun/glyph orientation so that we pass the resolved 'orientation' value of each glyph run from gfxFontGroup::InitScriptRun through to gfxFont::SplitAndInitTextRun, rather than just a boolean 'vertical' flag. (No functional change.) r=xidorn
2017-10-20 11:20:18 +01:00
Nicholas Nethercote
d225f7151b
Bug 1400460 - Rename nsIAtom as nsAtom. r=hiro.
...
(Path is actually r=froydnj.)
Bug 1400459 devirtualized nsIAtom so that it is no longer a subclass of
nsISupports. This means that nsAtom is now a better name for it than nsIAtom.
MozReview-Commit-ID: 91U22X2NydP
--HG--
rename : xpcom/ds/nsIAtom.h => xpcom/ds/nsAtom.h
extra : rebase_source : ac3e904a21b8b48e74534fff964f1623ee937c67
2017-10-03 09:05:19 +11:00
Nicholas Nethercote
dfd3b7e7aa
Bug 1400459 (part 2) - Devirtualize nsIAtom. r=heycam.
...
This patch merges nsAtom into nsIAtom. For the moment, both names can be used
interchangeably due to a typedef. The patch also devirtualizes nsIAtom, by
making it not inherit from nsISupports, removing NS_DECL_NSIATOM, and dropping
the use of NS_IMETHOD_. It also removes nsIAtom's IIDs.
These changes trigger knock-on changes throughout the codebase, changing the
types of lots of things as follows.
- nsCOMPtr<nsIAtom> --> RefPtr<nsIAtom>
- nsCOMArray<nsIAtom> --> nsTArray<RefPtr<nsIAtom>>
- Count() --> Length()
- ObjectAt() --> ElementAt()
- AppendObject() --> AppendElement()
- RemoveObjectAt() --> RemoveElementAt()
- ns*Hashtable<nsISupportsHashKey, ...> -->
ns*Hashtable<nsRefPtrHashKey<nsIAtom>, ...>
- nsInterfaceHashtable<T, nsIAtom> --> nsRefPtrHashtable<T, nsIAtom>
- This requires adding a Get() method to nsRefPtrHashtable that it lacks but
nsInterfaceHashtable has.
- nsCOMPtr<nsIMutableArray> --> nsTArray<RefPtr<nsIAtom>>
- nsArrayBase::Create() --> nsTArray()
- GetLength() --> Length()
- do_QueryElementAt() --> operator[]
The patch also has some changes to Rust code that manipulates nsIAtom.
MozReview-Commit-ID: DykOl8aEnUJ
--HG--
extra : rebase_source : 254404e318e94b4c93ec8d4081ff0f0fda8aa7d1
2017-09-26 08:33:21 +10:00
Alexis Beingessner
9022c22b82
Bug 1400382 - Replace explicit TextDrawTarget passing with cast-based system. r=mstange
...
MozReview-Commit-ID: EQtFvLQCT2U
--HG--
extra : rebase_source : 1fff1b545c18d42403cf9c30172528e553a6af48
2017-09-21 15:15:58 -04:00
Alexis Beingessner
6b38993c8b
Bug 1399274 - Block invisible text optimizations when using WebRender. r=jrmuizel
...
Mostly just threading the TextDrawTarget deeper into the code to use a boolean.
A lot of places are trying to optimize away invisible text!
MozReview-Commit-ID: 89sDAwUv0HA
--HG--
extra : rebase_source : 8d800702232aec6626a33f2d6be893708d0bbfee
2017-09-13 14:05:51 -04:00
Bevis Tseng
c94ae9c213
Bug 1367497 - Part 2: Make gfxFontCache use an expiration tracker that can assert the Servo font metrics mutex is locked. r=bevis,jfkthame
...
--HG--
extra : source : 26e12505e1aebb4fff765f4248d60dac73a71c48
2017-08-15 10:04:32 +08:00
Sebastian Hengst
55ac9b6fc7
Backed out changeset 26e12505e1ae (bug 1367497)
2017-08-15 18:46:53 +02:00
Bevis Tseng
13f67fed92
Bug 1367497 - Part 2: Make gfxFontCache use an expiration tracker that can assert the Servo font metrics mutex is locked. r=bevis,jfkthame
2017-08-15 10:04:32 +08:00
Bevis Tseng
b82cc3550d
Backed out changeset 2ae749fba6a0
...
--HG--
extra : rebase_source : d111b3773db29497456484f535963f439283433b
2017-08-15 10:45:00 +08:00
Bevis Tseng
5c9d90a951
Bug 1367497 - Part 2: Make gfxFontCache use an expiration tracker that can assert the Servo font metrics mutex is locked. r=bevis,jfkthame
2017-08-15 10:04:32 +08:00
Jonathan Kew
2e91c61468
Bug 1377328 - part 2 - Annotate raw pointers used for refcounted objects in font-related code. r=milan
2017-06-29 17:52:43 -07:00
Jonathan Kew
4ea7df6c56
Bug 1377328 - part 1 - Annotate some font-related helper classes as MOZ_STACK_CLASS. r=milan
2017-06-29 17:52:38 -07:00