Commit Graph

248 Commits

Author SHA1 Message Date
Jeff Gilbert
70a22b2878 Bug 1470325 - s/FooBinding/Foo_Binding/g - r=qdot
MozReview-Commit-ID: JtTcLL5OPF0
2018-06-26 17:05:01 -07:00
Emilio Cobos Álvarez
0348c342b8 Bug 1470930: Use enums for passing arguments for event dispatch. r=smaug
MozReview-Commit-ID: DsNuF7GAflJ
2018-06-26 18:22:06 +02:00
Emilio Cobos Álvarez
22f887e76e Bug 1471045: Don't flush layout if the ready promise is not resolved yet. r=heycam
This prevents FOUC, and also matches the chromium logic:

  https://cs.chromium.org/chromium/src/third_party/blink/renderer/core/css/font_face_set_document.cc?l=105&rcl=e70e652d516c7d14d50e547aae2da1690c4ae54c

Differential Revision: https://phabricator.services.mozilla.com/D1827

MozReview-Commit-ID: A6m5fAMXhae
2018-06-26 15:32:03 +02:00
Nazım Can Altınova
51f2b96946 Bug 1451289 - Part 5: Rename ServoFontFaceRule to CSSFontFaceRule r=emilio
MozReview-Commit-ID: 9S7aW0373NL
2018-06-05 01:55:11 +02:00
Jonathan Watt
9a41a55b54 Bug 1465983 part 2 - Don't resolve FontFaceSet's ready promise in its constructor. r=heycam 2018-05-22 12:53:11 +01:00
Jonathan Watt
a0486e1a60 Bug 1466432 - Make sure the document.fonts.ready Promise resolves even when there's no refresh driver. r=heycam 2018-05-18 20:39:11 +01:00
Jonathan Watt
6d0ccd1e03 Bug 1466431 - Fix resolving of the document.fonts.ready Promise for documents that never load fonts. r=heycam 2018-05-18 12:45:18 +01:00
Jonathan Watt
ca448ac3c8 Bug 1465997 - Don't replace FontFaceSet's ready Promise when it's pending. r=heycam 2018-05-17 19:09:42 +01:00
Jonathan Watt
bae1093cee Bug 1466004 part 1 - Flush layout when script asks for document.fonts.ready. r=heycam 2018-05-14 14:53:25 +01:00
Emilio Cobos Álvarez
4b8b5e1717 Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02:00
Jonathan Kew
8b7424574f 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
Emilio Cobos Álvarez
464b820e6e Bug 1386840: Defer loading and don't block rendering for non-matching stylesheets. r=bz,heycam
MozReview-Commit-ID: 24UJZDooGmn
2018-04-26 16:44:03 +02:00
Jonathan Kew
690346941d Bug 1456547 - When weight/stretch/style descriptor is omitted from a @font-face rule, the corresponding variation axis should not be clamped to the 'normal' value. r=jwatt 2018-04-26 15:32:36 +01:00
Jonathan Kew
6c1e1cc8fd Bug 1454598 - part 3 - Use WeightRange more extensively in place of FontWeight throughout user-font handling and font-entry creation, and handle Stretch and SlantStyle similarly. r=jwatt 2018-04-25 07:18:23 +01:00
Jonathan Kew
676733a230 Bug 1454598 - part 2 - Allow variation fonts to record a weight range in gfxFontEntry, and update font-matching to handle ranges. r=jwatt 2018-04-25 07:18:23 +01:00
Jonathan Kew
817d1bc927 Backed out 4 changesets from bug 1454598 (26e036b1c703, bc910e36a7d7, bac001216577, 5af215d265b6) due to macOS 10.12 font issues. 2018-04-25 10:18:07 +01:00
Emilio Cobos Álvarez
08bea7e24f Bug 1456471: Remove nsCSSParser.h. r=xidorn
MozReview-Commit-ID: 4qa7llzCXeR
2018-04-25 10:38:37 +02:00
Jonathan Kew
88ffe00fad Bug 1454598 - part 3 - Use WeightRange more extensively in place of FontWeight throughout user-font handling and font-entry creation, and handle Stretch and SlantStyle similarly. r=jwatt 2018-04-25 07:18:23 +01:00
Jonathan Kew
1ae6c406b5 Bug 1454598 - part 2 - Allow variation fonts to record a weight range in gfxFontEntry, and update font-matching to handle ranges. r=jwatt 2018-04-25 07:18:23 +01:00
Jonathan Watt
bd03a860aa 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
Boris Zbarsky
65759d684b Bug 1455055 part 1. Convert nsIDOMEventListener to taking an Event, not an nsIDOMEvent. r=masayuki
This does no cleanup other than what's needed to compile.  Cleanup coming up in
later patches.

MozReview-Commit-ID: 3sOnkj71n09
2018-04-20 00:49:29 -04:00
Cosmin Sabou
52727ef899 Backed out 2 changesets (bug 1454598) as requested by Mossop in developers channel. a=backout
Backed out changeset b673e87d6134 (bug 1454598)
Backed out changeset 072dc1504ce6 (bug 1454598)
2018-04-20 06:45:39 +03:00
Jonathan Kew
59d1c6707d Bug 1454598 - part 2 - Allow variation fonts to record a weight range in gfxFontEntry, and update font-matching to handle ranges. r=jwatt 2018-04-19 13:28:13 +01:00
Emilio Cobos Álvarez
da9635e9a0 Bug 1454596: Update font-weight property and descriptor to css-fonts-4. r=xidorn
Need to change the tests still, but that should be trivial.

MozReview-Commit-ID: 27aS2UrgXjs
2018-04-19 12:49:37 +02:00
Jonathan Kew
4fa869cb3d Bug 1436048 part 2 - Store FontWeight as a fixed-point value to support fractional font-weight values. r=jwatt 2018-04-16 20:26:08 +01:00
Boris Zbarsky
a9b5143d1a Bug 1453339. Make it harder to mess up Promise::All. r=peterv
MozReview-Commit-ID: UO4wssYHj7
2018-04-13 19:31:42 -04:00
Jonathan Kew
b06859f755 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
Ryan VanderMeulen
ae2dda6bb2 Backed out changeset 91406356569c (bug 1453339) for landing without review. 2018-04-14 10:25:15 -04:00
Boris Zbarsky
f0d51e4a5a Bug 1453339 - Make it harder to mess up Promise::All. r=peterv
MozReview-Commit-ID: UO4wssYHj7
2018-04-12 17:03:49 -04:00
Jonathan Watt
9243470005 Bug 1436048 part 1 - Use a user defined type for font weight everywhere. r=jfkthame,emilio 2018-04-13 20:34:37 +01:00
Jonathan Watt
b698c03721 Bug 1452040 - Get rid of NS_STYLE_FONT_WEIGHT_NORMAL and NS_STYLE_FONT_WEIGHT_BOLD. r=emilio 2018-04-06 14:53:25 +01:00
Xidorn Quan
431f177e6f Bug 1449087 part 2 - Use Servo data to back @font-face rule. r=emilio
This patch does the following things:
* Create a new class ServoFontFaceRule for CSSOM of @font-face rule
  which mostly follows how nsCSSFontFaceRule was implemented.
* Remove the old nsCSSFontFaceRule and binding code to create it.
* Have FontFace backed by Servo data via making mRule and mDescriptors
  of the class hold RawServoFontFaceRule like ServoFontFaceRule.

To keep this patch small, it effectively just delays the conversion
from Servo data to nsCSSValue from parsing to using. This may cause
worse performance if the font set is flushed repeatedly. Supposing we
don't flush font set very frequently, it may not be a big deal.

We may still want to remove the intermediate nsCSSValue conversion at
some point, and have everything converted to their final form directly
when used, but that can happen in followups.

There are some unfortunate bits from this change:
* We lose style sheet for logging in FontFaceSet. This is probably not
  all that worse, because we wouldn't have that before either if the
  page doesn't use CSSOM to visit it. But we should figure out some
  approach to fix it anyway.
* InspectorFontFace no longer shares the same rule object as CSSOM.
  This isn't really a problem if the @font-face rule isn't very mutable.
  Unless we want to make the rule returned from InspectorFontFace to be
  mutable (i.e. via inspector), not using the same object probably isn't
  too bad.

This patch switches the code we use to serialize stuff in FontFace and
CSSFontFaceRule, which leads to some failures in tests. Specifically,
the expected changes including:
* Value of font-family now can be serialized to identifier sequence like
  font-family property. The old code always serializes it to string,
  but it doesn't seem to have different requirement than the property.
  Blink can serialize to identifier as well.
* Family name inside local() is also changed to use the same way as
  family names elsewhere (i.e. can be identifier sequence). Blink has
  the same behavior as the old code, but I don't think it's a big deal.
* The order of descriptors serialized gets changed. I don't think it
  matters at all.
* Empty string as font-family via using string syntax is no longer
  considered invalid for FontFace. I don't find it is mentioned anywhere
  that it should be specifically treated invalid.


MozReview-Commit-ID: 32Fk3Fi9uTs
2018-04-04 08:42:10 +10:00
Emilio Cobos Álvarez
ea593f5a1c Bug 1420680: Rework how the loadability of font-faces is computed. r=jfkthame,bz
This reworks bug 1440561 so that we only precompute loads that belong to our
user font set, avoiding messing up with fonts in the cache that belong to other
pages.

The loadability of a font is precomputed in PreTraverse in the same way as we
did, but only for the fonts that we may end up loading. This is stored in
FontFaceSet now.

Also, the principal shenanigans that this code did are reworked to be explicit
about when the document principal changes in ResetToURI, instead of having a
member around and a mutable variable. This makes the code easier to follow.

MozReview-Commit-ID: 9ofTbaLDUF7
2018-04-03 16:22:43 +02:00
Nicholas Nethercote
8012e8456e Bug 1448225 - Convert StylePrefs to StaticPrefs. r=emilio
The new StaticPrefs machinery means that StylePrefs can be removed.

Note that this approach mirrors all static prefs into Rust, but I have only
updated structs.rs for the prefs that Stylo uses.

On a CLOSED TREE, since a sheriff closed the tree while I was about to land this
via autoland.

MozReview-Commit-ID: G1SY0987WJ7
2018-04-03 09:06:20 +02:00
Christoph Kerschbaumer
56529d1f61 Bug 1439713 - Change nsIContentPolicy shouldLoad to take an <uri, loadInfo> pair instead of the various args. r=bz 2018-03-29 12:16:23 +02:00
Emilio Cobos Álvarez
c48b1f646b Bug 1448690: Remove IsStyledByServo. r=xidorn
MozReview-Commit-ID: I3MDbo2Yu7d
2018-03-26 09:39:26 +02:00
arthur.iakab
6e006c34b4 Merge inbound to mozilla-central. a=merge 2018-03-21 21:13:11 +02:00
Miko Mynttinen
86800aa3f1 Bug 1445302 - Replace TArray.RemoveElementAt(TArray.Length() - 1) pattern with TArray.RemoveLastElement() or TArray.PopLastElement() r=froydnj
MozReview-Commit-ID: rGjabnP2iz
2018-03-13 14:51:33 +01:00
Emilio Cobos Álvarez
b1a35fbef7 Bug 1447358: Unifdef the old style system code. r=jwatt
Summary:
This has been automatically generated using:

  http://dotat.at/prog/unifdef/

And:

find $OBJDIR -type f -name '*.h' |
while read FILE; do
  echo "$FILE"
  unifdef -m -DMOZ_STYLO -UMOZ_OLD_STYLE "$FILE";
done

find $OBJDIR -type f -name '*.cpp' |
while read FILE; do
  echo "$FILE"
  unifdef -m -DMOZ_STYLO -UMOZ_OLD_STYLE "$FILE";
done

MozReview-Commit-ID: I4NdKqbMXzJ

Reviewers: jwatt

Bug #: 1447358

Differential Revision: https://phabricator.services.mozilla.com/D779
2018-03-21 10:20:34 +01:00
Ben Kelly
d1e74e121d Bug 1440407 P2 Remove some unnecessary nsPIDOMWindowInner QI to nsIGlobalObject. r=mystor 2018-02-22 14:28:39 -08:00
Hiroyuki Ikezoe
b1da8534e8 Bug 1417354 - Introduce nsIDocument::GetPresContext(). r=smaug
It would be convenient to get nsPresContext from nsIDocument.

MozReview-Commit-ID: Ei6V3UE8XGr
2018-02-21 07:00:10 +09:00
Jonathan Kew
e098b9d5f0 Bug 1436997 - When variation-font support is enabled, accept new CSS Fonts 4 format-hint strings for variation fonts. r=jwatt 2018-02-15 10:56:42 +00:00
Jonathan Kew
4a02853af1 Bug 1435984 - patch 3 - Store variation settings from the @font-face rule in the gfxFontEntry for user fonts. r=jwatt 2018-02-14 22:02:05 +11:00
Boris Zbarsky
4dfab0c844 Bug 1434818. Remove unused return value of FontFaceSet::Add. r=jfkthame
MozReview-Commit-ID: JHOpGZM3Scz
2018-02-01 14:23:34 -05:00
Emilio Cobos Álvarez
de5d26b942 Bug 1434474: There's no need to rebuild font / counter styles / font feature values off a runnable. r=bholley
Everything that needs them up-to-date will call flush appropriately, there
should be no need to do it manually.

This way we coalesce all the stylist updates until the next style flush in the
best case, or until one of the consumers actually needs them.

MozReview-Commit-ID: BVsxXxhtcKL
2018-01-31 11:12:36 +01:00
Cameron McCormack
34288f7f48 Bug 1430014 - Part 5: Stop building old style system classes when MOZ_OLD_STYLE is not defined. r=xidorn
MozReview-Commit-ID: CIHyPdF7Exl
2018-02-01 15:04:04 +11:00
Cameron McCormack
02c617875f Bug 1430014 - Part 4: #ifdef out unnecessary code when the old style system is not built. r=xidorn
MozReview-Commit-ID: 1FZ9VzjcPzN
2018-02-01 15:04:04 +11:00
Andrea Marchesini
3faaf5a84b Bug 1425458 - Resource timing entries Workers - part 0 - NS_NewChannel, r=smaug
* * *
Bug 1425458 - Resource timing entries Workers - part 10 - Correct parameters in NS_NewChannel in nsDataObj.cpp, r=me
2018-01-24 17:17:31 +01:00
Brindusan Cristian
1153f2c09e Backed out 12 changesets (bug 1425458) for mochitest failures on WorkerPrivate.cpp on a CLOSED TREE
Backed out changeset 11997de13778 (bug 1425458)
Backed out changeset 100b9d4f36bc (bug 1425458)
Backed out changeset a29e9dbb8c42 (bug 1425458)
Backed out changeset b96d58fd945c (bug 1425458)
Backed out changeset f140da44ba68 (bug 1425458)
Backed out changeset af56400233d9 (bug 1425458)
Backed out changeset 7034af4332e4 (bug 1425458)
Backed out changeset f70500179140 (bug 1425458)
Backed out changeset 793bbfc23257 (bug 1425458)
Backed out changeset 2efb375a8ffc (bug 1425458)
Backed out changeset 07e781e37451 (bug 1425458)
Backed out changeset e875f3702a5f (bug 1425458)
2018-01-24 20:47:48 +02:00
Andrea Marchesini
b434804b93 Bug 1425458 - Resource timing entries Workers - part 0 - NS_NewChannel, r=smaug 2018-01-24 17:17:31 +01:00