Commit Graph

163 Commits

Author SHA1 Message Date
Cameron McCormack
93b3403772 Bug 1425000 - Use a consistent window for CSP, etc. for FontFace loads. r=jfkthame
MozReview-Commit-ID: F2xhsgTBI1V

--HG--
extra : rebase_source : 4bf73e190ba4e90e1f3b828d1f8e1babf3a512c4
2017-12-21 14:07:31 -05:00
Nathan Froyd
046b03d3df Bug 1406474 - provide gfxUserFontSet::Entry with a move constructor; r=heycam
This change makes moving Entry around more efficient, and also copies
the mAllowedFontSets member as a ride-along bonus fix.
2017-10-09 16:11:10 -04:00
Sebastian Hengst
d7b893d711 Backed out changeset 1779da025280 (bug 1406474) for crashing in reftest and web-platform-tests, e.g. layout/reftests/font-face/download-2-big.html. r=backout on a CLOSED TREE 2017-10-09 17:44:25 +02:00
Nathan Froyd
26105ef609 Bug 1406474 - provide gfxUserFontSet::Entry with a move constructor; r=heycam
This change makes moving Entry around more efficient, and also copies
the mAllowedFontSets member as a ride-along bonus fix.
2017-10-09 10:39:38 -04:00
Jonathan Kew
6ceb7d87f9 Bug 835204 - Accept styled font-family names as used in the legacy GDI model, for compatibility with content that assumes GDI-style font naming. r=heycam 2017-08-01 11:25:35 +01: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
Bobby Holley
9b328f9688 Bug 1384741 - Followup bustage fix. r=me
MozReview-Commit-ID: Gg0nDtiEamC
2017-08-11 22:36:38 -07:00
Cameron McCormack
004e7071d8 Bug 1384741 - Part 3: Buffer up CSP violation reports when pre-emptively checking cached font loads, and dispatch them when trying to use cached fonts. r=jfkthame
MozReview-Commit-ID: 7hUI160sNqv
2017-08-07 10:12:12 +08:00
Cameron McCormack
0b0b5836f7 Bug 1376964 - Part 9: Use gfxFontSrcPrincipal in the user font set and cache. r=jfkthame
MozReview-Commit-ID: LRRFbkhbgts

--HG--
extra : rebase_source : 19164df382db8a4e5e868c4725a0f7c0968ddaa5
2017-07-08 18:00:24 +08:00
Cameron McCormack
9a03f16595 Bug 1376964 - Part 6: Use gfxFontSrcURI in the user font set and cache. r=jfkthame
MozReview-Commit-ID: 7eWOTs4kF4v

--HG--
extra : rebase_source : 88ee203da88f3ec5419db7dee87337802d6212ae
2017-07-08 14:10:05 +08:00
Cameron McCormack
5d2c03ca7b Bug 1376964 - Part 4: Call FontLoadAllowed ahead of time and cache the results for style worker threads. r=jfkthame
Handling a document's node principal changing is done in part 9.

MozReview-Commit-ID: 1gPtRpddys5

--HG--
extra : rebase_source : f0b4d07481ae7215117b86c474f14658b61d6f06
2017-07-07 13:35:28 +08:00
Cameron McCormack
2aaac38e66 Bug 1376964 - Part 3: Add a generation counter to the user font cache. r=jfkthame
MozReview-Commit-ID: 3zCPC9Pfikc

--HG--
extra : rebase_source : 7fd68667fef4acf3ad4fd050b480feec7c2c101f
2017-07-06 16:00:34 +08:00
Carsten "Tomcat" Book
d767449ced Backed out changeset 0cd32b60dabe (bug 1376964) 2017-07-12 12:41:37 +02:00
Carsten "Tomcat" Book
23de9ec977 Backed out changeset 6bfb66a2c03e (bug 1376964) 2017-07-12 12:41:35 +02:00
Carsten "Tomcat" Book
614a232c25 Backed out changeset d9a88d8324ff (bug 1376964) 2017-07-12 12:41:31 +02:00
Carsten "Tomcat" Book
4177255107 Backed out changeset 041b34959d76 (bug 1376964) 2017-07-12 12:41:25 +02:00
Cameron McCormack
82079904e6 Bug 1376964 - Part 9: Use gfxFontSrcPrincipal in the user font set and cache. r=jfkthame
MozReview-Commit-ID: LRRFbkhbgts

--HG--
extra : rebase_source : 1dac8a8e9a817edb086bb75f9f842c1d4df37a1a
2017-07-12 16:36:42 +08:00
Cameron McCormack
47621aa57e Bug 1376964 - Part 6: Use gfxFontSrcURI in the user font set and cache. r=jfkthame
MozReview-Commit-ID: 7eWOTs4kF4v

--HG--
extra : rebase_source : 9cb5a0f71ad756b224ebc01d13437a8113e53bb1
2017-07-12 16:36:14 +08:00
Cameron McCormack
a6f94afca7 Bug 1376964 - Part 4: Call FontLoadAllowed ahead of time and cache the results for style worker threads. r=jfkthame
Handling a document's node principal changing is done in part 9.

MozReview-Commit-ID: 1gPtRpddys5

--HG--
extra : rebase_source : def889e9ae4a428ccc02f9b5ac18f2ce640dc652
2017-07-12 16:35:46 +08:00
Cameron McCormack
439419baf9 Bug 1376964 - Part 3: Add a generation counter to the user font cache. r=jfkthame
MozReview-Commit-ID: 3zCPC9Pfikc

--HG--
extra : rebase_source : 7186ed96da1b1a6710ef4f5b2f1443ddfe0ddc29
2017-07-12 16:35:45 +08:00
Carsten "Tomcat" Book
488c1fa3cb Backed out changeset 381e0b72dd55 (bug 1376964) 2017-07-12 10:32:22 +02:00
Carsten "Tomcat" Book
532a99b12a Backed out changeset 20866468f52d (bug 1376964) 2017-07-12 10:32:20 +02:00
Carsten "Tomcat" Book
625eb4c653 Backed out changeset 292d20d46d1f (bug 1376964) 2017-07-12 10:32:16 +02:00
Carsten "Tomcat" Book
c897b5dc70 Backed out changeset b7424dfa039c (bug 1376964) 2017-07-12 10:32:11 +02:00
Cameron McCormack
2fe9111db4 Bug 1376964 - Part 9: Use gfxFontSrcPrincipal in the user font set and cache. r=jfkthame
MozReview-Commit-ID: LRRFbkhbgts

--HG--
extra : rebase_source : 0fa11b180383795272e7a5daf87a41a5c51ec221
2017-07-12 13:03:35 +08:00
Cameron McCormack
0732a234be Bug 1376964 - Part 6: Use gfxFontSrcURI in the user font set and cache. r=jfkthame
MozReview-Commit-ID: 7eWOTs4kF4v

--HG--
extra : rebase_source : eba5d82be3cbbeaa64a7e5f677ba365ac8aeac29
2017-07-12 13:03:35 +08:00
Cameron McCormack
b2cd9f4a51 Bug 1376964 - Part 4: Call FontLoadAllowed ahead of time and cache the results for style worker threads. r=jfkthame
Handling a document's node principal changing is done in part 9.

MozReview-Commit-ID: 1gPtRpddys5

--HG--
extra : rebase_source : 5b1d40af5ad0484440075e7229dc9ae3d5a13764
2017-07-12 13:03:35 +08:00
Cameron McCormack
5b5b4e145c Bug 1376964 - Part 3: Add a generation counter to the user font cache. r=jfkthame
MozReview-Commit-ID: 3zCPC9Pfikc

--HG--
extra : rebase_source : bfc5bd72b382b538448cb90ecc1208cea08216b8
2017-07-12 13:03:35 +08:00
Jonathan Kew
4e933d3a3f Bug 1378718 - pt 2 - Remove support for persistently caching omnijar data-URI fonts in the user-font cache. r=heycam 2017-07-06 15:06:53 +01:00
Cameron McCormack
2fadc51f72 Bug 1352531 - Make dom::FontFace cache its gfxCharacterMap instead of rebuilding it every time. r=dbaron
MozReview-Commit-ID: INmKPdC9dq5

--HG--
extra : rebase_source : a7f0636168784227fb2b6a381fa72cf652038c12
2017-04-20 17:00:59 +10:00
Cameron McCormack
756d5f5a9a Bug 1356103 - Part 9: Use a PostTraversalTask to deal with downloadable fonts in gfxUserFontSet. r=bholley,jfkthame
Here we add a new UserFontLoadState value, STATUS_LOAD_PENDING, which
represents the state just after a gfxUserFontEntry's url()-valued source
would being loading, except that we can't start the load due to being
on a Servo style worker thread.  In that case, we defer the work of
initiating the load until just after the Servo traversal is finished.

URLs that can normally be loaded synchronously, such as data: URLs
and script-implemented protocols marked as synchronous, must be
handled asynchronously when encountered during Servo traversal, since
various main-thread only work (in FontFaceSet::SyncLoadFontData) must
happen.  This is a user visible change from stock Gecko, but should
only happen when font metrics for a data: URL font are requested
due to ch/ex unit resolution when layout hasn't previously requested
the font load.  Hopefully nobody relies on synchronous resolution of
ch/ex units with data: URLs.

We unfortunately also can't pick gfxUserFontEntry objects out of the
UserFontCache during Servo traversal, since validating the cache
entry involves doing content policy checking, which is not thread-safe
(due in part to taking strong references to nsIPrincipals).

Platform fonts and ArrayBuffer-backed DOM FontFace objects continue
to be handled synchronously.

The PostTraversalTask does not take a strong reference to the
gfxUserFontEntry object, since it is held on to by the DOM FontFace
object, which itself won't go away before the PostTraversalTask
is run.

MozReview-Commit-ID: J9ODLsusrNV

--HG--
extra : rebase_source : d3e3d1dc187cb252750b57bcecd0b1ed77a15a7c
2017-04-30 14:57:25 +08:00
Cameron McCormack
cdf2cb66eb Bug 1356103 - Part 6: Make gfxUserFontSet refcounting thread-safe. r=bholley
As with a few other gfx* font-related classes, during font metrics
calculations we end up taking strong references to gfxUserFontSet,
and it would be difficult to restructure the code to not do this.

MozReview-Commit-ID: L1GbZnf4825

--HG--
extra : rebase_source : 3bc2deb24e282f4a76f0a270d28771016052f9ec
2017-04-30 14:48:17 +08:00
Iris Hsiao
0a6db9e69f Backed out 12 changesets (bug 1356103) for build bustage at PostTraversalTask.h
Backed out changeset 9fb487252c28 (bug 1356103)
Backed out changeset 301237c65945 (bug 1356103)
Backed out changeset 7bc3a4861a39 (bug 1356103)
Backed out changeset 2f383d89184b (bug 1356103)
Backed out changeset a03112e1c9d5 (bug 1356103)
Backed out changeset c60b4c9cbd83 (bug 1356103)
Backed out changeset 34280baeaabe (bug 1356103)
Backed out changeset 31a0881cfb47 (bug 1356103)
Backed out changeset 529d037f9c33 (bug 1356103)
Backed out changeset 1c7831db6b07 (bug 1356103)
Backed out changeset 559f06e32df3 (bug 1356103)
Backed out changeset 784865d234cd (bug 1356103)
2017-05-04 17:56:25 +08:00
Cameron McCormack
d3acda35aa Bug 1356103 - Part 9: Use a PostTraversalTask to deal with downloadable fonts in gfxUserFontSet. r=bholley,jfkthame
Here we add a new UserFontLoadState value, STATUS_LOAD_PENDING, which
represents the state just after a gfxUserFontEntry's url()-valued source
would being loading, except that we can't start the load due to being
on a Servo style worker thread.  In that case, we defer the work of
initiating the load until just after the Servo traversal is finished.

URLs that can normally be loaded synchronously, such as data: URLs
and script-implemented protocols marked as synchronous, must be
handled asynchronously when encountered during Servo traversal, since
various main-thread only work (in FontFaceSet::SyncLoadFontData) must
happen.  This is a user visible change from stock Gecko, but should
only happen when font metrics for a data: URL font are requested
due to ch/ex unit resolution when layout hasn't previously requested
the font load.  Hopefully nobody relies on synchronous resolution of
ch/ex units with data: URLs.

We unfortunately also can't pick gfxUserFontEntry objects out of the
UserFontCache during Servo traversal, since validating the cache
entry involves doing content policy checking, which is not thread-safe
(due in part to taking strong references to nsIPrincipals).

Platform fonts and ArrayBuffer-backed DOM FontFace objects continue
to be handled synchronously.

The PostTraversalTask does not take a strong reference to the
gfxUserFontEntry object, since it is held on to by the DOM FontFace
object, which itself won't go away before the PostTraversalTask
is run.

MozReview-Commit-ID: J9ODLsusrNV

--HG--
extra : rebase_source : 1651e2917bd31b87fc1c1be94b0eced1273df86a
2017-04-30 14:57:25 +08:00
Cameron McCormack
2a3418fdce Bug 1356103 - Part 6: Make gfxUserFontSet refcounting thread-safe. r=bholley
As with a few other gfx* font-related classes, during font metrics
calculations we end up taking strong references to gfxUserFontSet,
and it would be difficult to restructure the code to not do this.

MozReview-Commit-ID: L1GbZnf4825

--HG--
extra : rebase_source : bfd83b02cceec747dc4f4f021eff205e7aaa2b69
2017-04-30 14:48:17 +08:00
Manish Goregaokar
6be22491bd Bug 1341724 - Part 4: stylo: Make font metrics usage threadsafe; r=heycam
MozReview-Commit-ID: 3EqpUy09UuI
2017-04-10 17:06:19 +08:00
Jeremy Chen
c41d8342dd Bug 1347819 - change nsFont::languageOverride to store uint32_t directly. r=jfkthame
Since font-language-override can only have a single three-letter tag, and it is
eventually converted to uint32_t while creating gfxFontStyle, we should be able
to move the conversion ahead, to an earlier stage.

In this patch, we move the ParseFontLanguageOverride to nsRuleNode, so we could
do the nsString-to-uint32_t conversion during computing time.

MozReview-Commit-ID: LA4Bv3wV7K

--HG--
extra : rebase_source : 48059a9913d58363f78dea59b1b7811d9f038352
2017-03-23 21:59:55 +08:00
Jeff Muizelaar
da3210576b Bug 1119128. Eliminate gfxPangoFontGroup and gfxFontconfigUtils. r=lsalzman 2017-03-22 14:58:19 -04:00
Nicholas Nethercote
c2306345d5 Bug 1297658 - Avoid unnecessary checking in memory reporters. r=erahm.
This patch removes checking of all the callback calls in memory reporter
CollectReport() functions, because it's not useful.

The patch also does some associated clean-up.

- Replaces some uses of nsIMemoryReporterCallback with the preferred
  nsIHandleReportCallback typedef.

- Replaces aCallback/aCb/aClosure with aHandleRepor/aData for CollectReports()
  parameter names, for consistency.

- Adds MOZ_MUST_USE/[must_use] in a few places in nsIMemoryReporter.idl.

- Uses the MOZ_COLLECT_REPORT macro in all suitable places.

Overall the patch reduces code size by ~300 lines and reduces the size of
libxul by about 37 KiB on my Linux64 builds.

--HG--
extra : rebase_source : e94323614bd10463a0c5134a7276238a7ca1cf23
2016-08-24 15:23:45 +10:00
Jonathan Kew
fb5e0a3be3 Bug 1268021 - Implement memory reporting for the user-font cache. r=njn 2016-05-03 12:14:34 +01:00
Jonathan Kew
1be69b60f6 Backout 86bea1a981f9 (bug 1268021) for causing Windows crashes on a CLOSED TREE. 2016-05-03 13:36:28 +01:00
Jonathan Kew
a4e2a6456b Bug 1268878 - Include various of gfxFontEntry's sub-objects in memory reporting. r=njn 2016-05-03 12:14:35 +01:00
Jonathan Kew
d1f897d72c Bug 1268021 - Implement memory reporting for the user-font cache. r=njn 2016-05-03 12:14:34 +01:00
Jonathan Kew
28a9e2cf14 Bug 1265452 - Remove use of nsAutoPtr from gfx/thebes. r=jrmuizel 2016-04-15 20:45:37 +01:00
Christoph Kerschbaumer
9ab1648f67 Bug 1195172 - Use channel->ascynOpen2 layout/style/FontFaceSet.cpp (r=bz,cam) 2016-03-01 13:06:13 -08:00
John Daggett
535864fddf Bug 1188802 - only rebuild local webfont rules when needed. r=heycam 2016-02-08 10:11:39 +09:00
Carsten "Tomcat" Book
745be97723 Backed out changeset 2257088c6b04 (bug 1188802) 2016-02-05 11:19:11 +01:00
John Daggett
a4c7835ada Bug 1188802 - only rebuild local webfont rules when needed. r=heycam 2016-02-05 16:46:27 +09:00
John Daggett
ade0c810ea Bug 1157064 - implementation of font-display. r=heycam,khuey 2016-01-07 14:03:05 +09:00
John Daggett
14ad4bf8f6 Bug 1224975 - add telemetry for font loading. r=m_kato
--HG--
extra : rebase_source : ef31e321366f6edcc465ad9a4474c1e8287a6054
2015-11-25 14:48:16 +09:00