Commit Graph
46 Commits
Author SHA1 Message Date
Emilio Cobos Álvarez d4808f0407 Bug 1853392 - Simplify font-size-adjust: from-font handling. r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D188355
2023-09-15 22:17:25 +00:00
Jonathan Kew 63dfa6055c Bug 1708240 - Implement the from-font keyword for CSS font-size-adjust. r=emilio,devtools-reviewers
Depends on D182450

Differential Revision: https://phabricator.services.mozilla.com/D182451
2023-08-01 12:40:31 +00:00
Noemi Erli 0e6cc995d9 Backed out 5 changesets (bug 1708240) for causing failures in test_css-properties-db.js CLOSED TREE
Backed out changeset 695203c0ff61 (bug 1708240)
Backed out changeset e686e061b8b5 (bug 1708240)
Backed out changeset eac4b88ab28d (bug 1708240)
Backed out changeset e766d2a9180e (bug 1708240)
Backed out changeset 79c808970af5 (bug 1708240)
2023-08-01 15:12:46 +03:00
Jonathan Kew 130797ed14 Bug 1708240 - Implement the from-font keyword for CSS font-size-adjust. r=emilio
Depends on D182450

Differential Revision: https://phabricator.services.mozilla.com/D182451
2023-08-01 10:49:58 +00:00
Emilio Cobos Álvarez 86ba03f68f Bug 1739464 - Simplify language-dependent font fallback code. r=jfkthame
.fallback is always the default font for the lang group unless we're a
system font (in which case it's "none").

The only reason we need that is because we need to react to
language changes (which affect the initial font).

Simplify the model a bit doing the language lookup in gfxTextRun (this
should avoid allocating a few nsStyleFont structs too.

Depends on D130732

Differential Revision: https://phabricator.services.mozilla.com/D131312
2021-11-19 16:11:55 +00:00
Daniel Holbert ae883d1b5f Bug 1733727 part 2: Use StaticAutoPtr to manage lifetime of various "sFoo" static global variables in layout. r=jfkthame
This patch doesn't change any user-observable behavior.

StaticAutoPtr lets us remove a handful of explicit 'delete' statements, by
making deletion happen automatically when these variables are cleared.

Differential Revision: https://phabricator.services.mozilla.com/D127336
2021-10-02 18:59:11 +00:00
Daniel Holbert 29451e8849 Bug 1730741 part 2: Add includes and forward-decls to fix non-unified-build bustage in layout/base, and remove REQUIRES_UNIFIED_BUILD declaration. r=emilio
After the fixes in this patch, the REQUIRES_UNIFIED_BUILD declaration is no
longer needed, so I'm removing it here.  This directory now builds successfully
with that removed and with ac_add_options --disable-unified-build in the
mozconfig.

Differential Revision: https://phabricator.services.mozilla.com/D125601
2021-09-15 18:48:17 +00:00
Emilio Cobos Álvarez f22f8a0978 Bug 1720710 - Add system-ui boilerplate. r=jfkthame
Alias -apple-system to it, and put it behind a pref for now. This is
pretty boring (read: uncontroversial hopefully) code. The follow-up work
is modifying StaticPresData to look up the fonts using system APIs,
probably. Maybe a bit more work if on macOS they can't be named.

Differential Revision: https://phabricator.services.mozilla.com/D119984
2021-07-27 11:11:51 +00:00
Jonathan Kew 8167a5920d Bug 1716841 - Update font-size-adjust keywords to match CSSWG resolution in csswg-drafts/#6288. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D118198
2021-07-07 11:58:40 +00:00
Emilio Cobos Álvarez 8b7d1120ed Bug 1716045 - Unify font-family storage. r=mats,jfkthame
This changes font-family storage to reuse the rust types, removing a
bunch of code while at it. This allows us to, for example, use a single
static font family for -moz-bullet and clone it, rather than creating a
lot of expensive copies.

Differential Revision: https://phabricator.services.mozilla.com/D118011
2021-06-18 19:35:50 +00:00
Jonathan Kew a3854f8338 Bug 1711479 - Implement CSS support for the optional adjustment-basis metric keywords for the font-size-adjust property (enabled on Nightly only for now). r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D115596
2021-06-14 12:32:36 +00:00
Csoregi Natalia e24e968f66 Backed out 5 changesets (bug 1711479) for multiple failures e.g. test_css-properties-db.js. CLOSED TREE
Backed out changeset f1b19a0463cd (bug 1711479)
Backed out changeset 3d1d2b4a2713 (bug 1711479)
Backed out changeset 4e689776fe5d (bug 1711479)
Backed out changeset 85b6b2648f60 (bug 1711479)
Backed out changeset a15cec1f0554 (bug 1711479)
2021-06-07 13:55:29 +03:00
Jonathan Kew 95a756f42c Bug 1711479 - Implement CSS support for the optional adjustment-basis metric keywords for the font-size-adjust property (enabled on Nightly only for now). r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D115596
2021-06-07 08:58:12 +00:00
Emilio Cobos Álvarez 6c9ff73ac1 Bug 1646224 - Use mozilla::Length rather than nscoord to store font sizes. r=heycam,jfkthame
This avoids arbitrary precision loss when computing REM units and so on,
which is particularly important if we ever change the base of our app
units (but useful regardless).

Differential Revision: https://phabricator.services.mozilla.com/D79928
2020-06-22 09:45:40 +00:00
Cosmin Sabou 376723ec78 Backed out changeset 299e19193e11 (bug 1646224) for causing font related failures. CLOSED TREE 2020-06-18 18:26:51 +03:00
Emilio Cobos Álvarez 901a6be6f6 Bug 1646224 - Use mozilla::Length rather than nscoord to store font sizes. r=heycam,jfkthame
This avoids arbitrary precision loss when computing REM units and so on,
which is particularly important if we ever change the base of our app
units (but useful regardless).

Differential Revision: https://phabricator.services.mozilla.com/D79928
2020-06-18 13:55:03 +00:00
Daniel Holbert bab3c53bab Bug 1613192: Fix non-unified build bustage in layout/{base,generic} directories. r=TYLin
Summary of the changes/reasons:

- LayoutTelemetryTools.h directly uses several types whose headers it needs to
  include. (These includes were present in its .cpp file; I'm migrating them
  from there to the .h file, and I'm adding a new include for "Saturate.h" to
  provide the SaturateUint8 type.)

- LayoutTelemetryTools.cpp needs an include for MainThreadUtils.h, to provide
  NS_IsMainThread().

- StaticPresData.cpp needs an include for ServoUtils.h, to provide
  AssertIsMainThreadOrServoFontMetricsLocked().

- ZoomConstraintsClient.h needs a forward-decl for mozilla::dom::Document since
  it uses a pointer of that type in a function-decl.

- ScrollSnap.h needs forward-decls of nsPoint/nsRect for some references to
  those types in a method signature.

- nsGridContainerFrame.cpp needs an include for nsBoxLayoutState.h since it
  uses that type (it instantiates a nsBoxLayoutState instance).

- nsPlaceholderFrame.cpp needs a "using" decl for the mozilla::dom namespace in
  order to use the un-namespace-prefixed "Element" type.

Differential Revision: https://phabricator.services.mozilla.com/D61603
2020-02-04 19:34:51 +00:00
Emilio Cobos Álvarez 1ca5f49149 Bug 1537594 - Make the fixed generic family a parse-time alias to monospace. r=jfkthame
As discussed on IRC, fixed is only used for prefs right now, and:

 * We already copy the fixed size to the monospace font.
 * We already serialize the fixed family as "monospace" in the style system.

So it already works somewhat inconsistently. Making it an alias makes it
work consistently.

Differential Revision: https://phabricator.services.mozilla.com/D24288
2019-04-01 21:48:08 +00:00
Emilio Cobos Álvarez fb7d09e2f7 Bug 1537575 - Cleanup generic font-family handling. r=jfkthame
To be more similar between Rust and C++. This introduces GenericFontFamily and
exposes that plus FontFamilyNameSyntax to C++, using that where appropriate
instead of plain uint8_t as we were doing.

As a follow-up, as discussed on IRC with Jonathan, we can remove the -moz-fixed
family, and turn it just into an alias of Monospace.

The only non-trivial change is the MatchType changes, but they're ok I think.
The code already assumed at most one CSS generic, and the struct still takes 8
bits. I've verified that the relevant tests are passing (though try is closed).

Differential Revision: https://phabricator.services.mozilla.com/D24272
2019-04-01 21:47:59 +00:00
arthur.iakab cc7c9e85ec Backed out 3 changesets (bug 1537594, bug 1537575) for causing build bustages on mathml/nsMathMLChar.cpp CLOSED TREE
Backed out changeset 7375a830b5ef (bug 1537594)
Backed out changeset 0cd1411e2fb3 (bug 1537575)
Backed out changeset c7565f50239a (bug 1537575)
2019-04-01 23:41:04 +03:00
Emilio Cobos Álvarez 2e153ac595 Bug 1537594 - Make the fixed generic family a parse-time alias to monospace. r=jfkthame
As discussed on IRC, fixed is only used for prefs right now, and:

 * We already copy the fixed size to the monospace font.
 * We already serialize the fixed family as "monospace" in the style system.

So it already works somewhat inconsistently. Making it an alias makes it
work consistently.

Differential Revision: https://phabricator.services.mozilla.com/D24288
2019-04-01 18:48:10 +00:00
Emilio Cobos Álvarez f052a250da Bug 1537575 - Cleanup generic font-family handling. r=jfkthame
To be more similar between Rust and C++. This introduces GenericFontFamily and
exposes that plus FontFamilyNameSyntax to C++, using that where appropriate
instead of plain uint8_t as we were doing.

As a follow-up, as discussed on IRC with Jonathan, we can remove the -moz-fixed
family, and turn it just into an alias of Monospace.

The only non-trivial change is the MatchType changes, but they're ok I think.
The code already assumed at most one CSS generic, and the struct still takes 8
bits. I've verified that the relevant tests are passing (though try is closed).

Differential Revision: https://phabricator.services.mozilla.com/D24272
2019-04-01 18:48:10 +00:00
Emilio Cobos Álvarez fb33daf66a Bug 1536176 - Share font preferences across documents. r=jfkthame
And also don't blow the preferences away unless they actually change. We were
blowing them away whenever the document language changed or what not, that's not
good.

Differential Revision: https://phabricator.services.mozilla.com/D23955
2019-03-19 16:40:01 +00:00
Emilio Cobos Álvarez b578af20b5 Bug 1430623 - Move the lang font prefs to Document instead of nsPresContext. r=jfkthame
This will allow me to (in different patches):

 * Make the default style structs constructible without a pres context (default
   color and co. would need to be faked or moved to Document as well, but that's
   ok, since those cannot affect media queries, the default font-size does).

 * Remove the nsPresContext pointer from ComputedStyle (moving it to nsFrame,
   probably).

That would in turn allow me to have the default style computed without a pres
context, which allows us to fix both bug 1490401 and bug 1471231.

Differential Revision: https://phabricator.services.mozilla.com/D16926
2019-01-18 13:43:06 +00:00
Cameron McCormack 3c9d4e9a6c Bug 1511854 - Part 2: Fix some more formatting oddities in layout/ after the clang-format. r=TYLin
Depends on D13686

Differential Revision: https://phabricator.services.mozilla.com/D13775
2018-12-05 18:44:05 +00:00
Sylvestre Ledru e5a134f73a Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset
2018-11-30 11:46:48 +01:00
Emilio Cobos Álvarez e0697025e3 Bug 1509718 - Get rid of mBorderWidthTable. r=jwatt
It has little to no use these days.

Differential Revision: https://phabricator.services.mozilla.com/D12857
2018-11-27 19:52:13 +00:00
Daniel Holbert 67bf30ae84 Bug 1509972 part 3: Use UniquePtr (not nsAutoPtr) for mNext pointers in StaticPresData's "LangGroupFontPrefs" list. r=TYLin
Depends on D12994

Differential Revision: https://phabricator.services.mozilla.com/D12995
2018-11-26 22:24:36 +00:00
Cameron McCormack 0a033b8d05 Bug 1498755 - Part 3: Merge AssertIsMainThreadOrServo{FontMetrics,LangFontPrefsCache}Locked r=emilio
Depends on D8644

Differential Revision: https://phabricator.services.mozilla.com/D8645
2018-10-14 00:05:50 +00:00
Jonathan Kew 9abcea9bfc Bug 1490997 - Use nsAtom instead of nsString for font family name in the FontFamilyName struct, and switch its methods from 16-bit to 8-bit strings. r=lsalzman 2018-09-18 09:34:21 +01:00
Nicholas Nethercote 1dd0aee426 Bug 90440 - Remove the font.size.unit pref. r=dbaron.
The default value is 'px'. The alternative value is 'pt', but it's not clear
that changing it to 'pt' will actually work sensibly.

It was first suggested that this pref be removed 17 years ago, and it doesn't
appear to have become more useful since then. It's not set anywhere. Let's
remove it.
2017-11-16 09:54:17 +11:00
Nicholas Nethercote 7dbfdaf890 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
2017-10-03 09:05:19 +11:00
Nicholas Nethercote 9fda5528d2 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
2017-09-26 08:33:21 +10:00
Kevin Hsieh b044805d48 Bug 1367860 (part 3) - Construct language-specific default variable font as fallback font, not specified font. r=dbaron
MozReview-Commit-ID: 5kBHhvacxbS
2017-08-18 12:56:02 -07:00
Nicholas Nethercote 09493fcbcf Bug 1384835 (part 3, attempt 2) - Remove the Preferences::Get*CString() variants that return nsAdoptingCString. r=froydnj. 2017-07-31 14:28:48 +10:00
Nicholas Nethercote a222153d9c Bug 1384835 (part 2, attempt 2) - Remove the Preferences::Get*String() variants that return nsAdoptingString. r=froydnj. 2017-07-31 14:23:50 +10:00
Manish Goregaokar faf3e7c2b0 Bug 1367619 - Use RWLock when accessing font prefs service off main thread; r=heycam
MozReview-Commit-ID: Dxdq6Etbwxa
2017-05-25 15:04:13 -07:00
Jonathan Kew 9cee45cb0c Bug 734008 - DeCOMtaminate nsILanguageAtomService, make it a non-refcounted singleton and clean up various call sites. r=m_kato 2015-04-03 21:39:23 +02:00
Manish Goregaokar 6bcf6518ca Bug 1362599 - Guard against threadsafety issues in lang group stuff. r=heycam 2017-05-20 21:44:37 +02:00
Manish Goregaokar d53238d68c Bug 1351200 - Part 3: stylo: Bypass cache when fetching font size prefs from Stylo; r=emilio
MozReview-Commit-ID: 7WBduQ6lBTC
2017-04-10 09:18:00 +08:00
Manish Goregaokar 2ca4f7a348 Bug 1351200 - Part 2: stylo: Separate out caching code from font pref initialization code in GetFontPrefsForLang; r=emilio
MozReview-Commit-ID: JW0CqMz0GfW
2017-04-10 09:17:53 +08:00
Phil Ringnalda e8955fb157 Backed out 3 changesets (bug 1351200) for Windows and static-analysis build bustage
CLOSED TREE

Backed out changeset 1cce9249b4a2 (bug 1351200)
Backed out changeset 792fb55377f5 (bug 1351200)
Backed out changeset 767bee78574c (bug 1351200)
2017-04-09 08:24:54 -07:00
Manish Goregaokar 46eb25dbc8 Bug 1351200 - Part 3: stylo: Bypass cache when fetching font size prefs from Stylo; r=emilio
MozReview-Commit-ID: 7WBduQ6lBTC
2017-04-04 11:11:27 -07:00
Manish Goregaokar 3b4171a970 Bug 1351200 - Part 2: stylo: Separate out caching code from font pref initialization code in GetFontPrefsForLang; r=emilio
MozReview-Commit-ID: JW0CqMz0GfW
2017-04-04 11:11:27 -07:00
Masayuki Nakano 5e000c5660 Bug 1344990 part.1 gfx and layout should refer "font.name-list.*" when "font.name.*" is empty r=jfkthame
When "font.name.*" is empty, it means "default", i.e., use the first font of "font.name-list.*".

In most cases, we don't need to change existing "font.name.*" handlers which refer "font.name-list.*".  However, handlers which refer only "font.name.*", we need to add the code to refer "font.name-list.*" too.

MozReview-Commit-ID: B37y1Ld9Azg
2017-03-29 23:21:47 +09:00
Bobby Holley ef26e6262f Bug 1261552 - Introduce StaticPresData and hoist some shared functionality into it. r=heycam
The complexity around the font pref cache stuff is really annoying. If we
think it's unnecessary, we could remove it in a followup.
2016-04-04 23:14:27 -07:00