зеркало из https://github.com/mozilla/gecko-dev.git
f1d0b4bbe4
To look up/instantiate platform fonts based on CSS font properties, we create a gfxFontGroup from an nsFont and other attributes; this is currently cached in an nsFontCache attached to the nsDeviceContext. However, this assumes that the mapping to platform fonts will be the same for all documents using the given device context. In a world where visibility of platform fonts to the page may be restricted, and may depend on the individual document (e.g. if the user disables tracking protection for a particular site), the mapping represented by nsFontCache may vary, and determining how to resolve a given font request will need access to the requesting document in order to know what visibility it is allowed. To support this, this patch moves the nsFontCache from nsDeviceContext to nsPresContext. In itself, this should cause no visible change in behavior, but it provides a basis for the patches that will follow in bug 1715501. It's likely that this will have some effects on individual performance tests, depending on the exact content and sequencing of page loads, because of changed caching behavior. E.g. having a per-presContext cache may sometimes mean that we no longer take advantage of a cached gfxFontGroup that a previously-loaded page created; but on the other hand the caches will tend to be smaller and have faster lookups. My testing so far suggests that we will see some apparent regressions, alongside some improvements, but that overall there should be little change. I'd like to get this change landed separately, before any of the actual font-visibility behavior changes, so that we can more clearly see and isolate any unexpected effects. Differential Revision: https://phabricator.services.mozilla.com/D122715 |
||
---|---|---|
.. | ||
crashtests | ||
tests | ||
jar.mn | ||
mathfont.properties | ||
mathfontSTIXGeneral.properties | ||
mathfontUnicode.properties | ||
mathml.css | ||
moz.build | ||
nsIMathMLFrame.h | ||
nsMathMLAtoms.h | ||
nsMathMLChar.cpp | ||
nsMathMLChar.h | ||
nsMathMLContainerFrame.cpp | ||
nsMathMLContainerFrame.h | ||
nsMathMLFrame.cpp | ||
nsMathMLFrame.h | ||
nsMathMLOperators.cpp | ||
nsMathMLOperators.h | ||
nsMathMLParts.h | ||
nsMathMLSelectedFrame.cpp | ||
nsMathMLSelectedFrame.h | ||
nsMathMLTokenFrame.cpp | ||
nsMathMLTokenFrame.h | ||
nsMathMLmactionFrame.cpp | ||
nsMathMLmactionFrame.h | ||
nsMathMLmencloseFrame.cpp | ||
nsMathMLmencloseFrame.h | ||
nsMathMLmfracFrame.cpp | ||
nsMathMLmfracFrame.h | ||
nsMathMLmmultiscriptsFrame.cpp | ||
nsMathMLmmultiscriptsFrame.h | ||
nsMathMLmoFrame.cpp | ||
nsMathMLmoFrame.h | ||
nsMathMLmpaddedFrame.cpp | ||
nsMathMLmpaddedFrame.h | ||
nsMathMLmrootFrame.cpp | ||
nsMathMLmrootFrame.h | ||
nsMathMLmrowFrame.cpp | ||
nsMathMLmrowFrame.h | ||
nsMathMLmspaceFrame.cpp | ||
nsMathMLmspaceFrame.h | ||
nsMathMLmsqrtFrame.cpp | ||
nsMathMLmsqrtFrame.h | ||
nsMathMLmtableFrame.cpp | ||
nsMathMLmtableFrame.h | ||
nsMathMLmunderoverFrame.cpp | ||
nsMathMLmunderoverFrame.h | ||
nsMathMLsemanticsFrame.cpp | ||
nsMathMLsemanticsFrame.h | ||
operatorDictionary.xsl | ||
updateOperatorDictionary.pl |