PassRefPtrWillBeRawPtr<FontFaceSet> FontFaceSet::addForBinding(ScriptState*, FontFace* fontFace, ExceptionState&) { ASSERT(fontFace); if (!inActiveDocumentContext()) return this; if (m_nonCSSConnectedFaces.contains(fontFace)) return this; if (isCSSConnectedFontFace(fontFace)) return this; CSSFontSelector* fontSelector = document()->styleEngine().fontSelector(); m_nonCSSConnectedFaces.add(fontFace); fontSelector->fontFaceCache()->addFontFace(fontSelector, fontFace, false); if (fontFace->loadStatus() == FontFace::Loading) addToLoadingFonts(fontFace); fontSelector->fontFaceInvalidated(); return this; }
void FontFaceSet::add(FontFace* fontFace, ExceptionState& exceptionState) { if (!inActiveDocumentContext()) return; if (!fontFace) { exceptionState.ThrowTypeError("The argument is not a FontFace."); return; } if (m_nonCSSConnectedFaces.contains(fontFace)) return; if (isCSSConnectedFontFace(fontFace)) { exceptionState.ThrowDOMException(InvalidModificationError, "Cannot add a CSS-connected FontFace."); return; } CSSFontSelector* fontSelector = document()->styleEngine()->fontSelector(); m_nonCSSConnectedFaces.add(fontFace); fontSelector->fontFaceCache()->addFontFace(fontSelector, fontFace, false); if (fontFace->loadStatus() == FontFace::Loading) addToLoadingFonts(fontFace); fontSelector->fontFaceInvalidated(); }
void FontFaceSet::beginFontLoading(FontFace* fontFace) { m_histogram.incrementCount(); addToLoadingFonts(fontFace); }