Exemplo n.º 1
0
PassRefPtrWillBeRawPtr<FontFace> FontFace::create(ExecutionContext* context, const AtomicString& family, const String& source, const FontFaceDescriptors& descriptors)
{
    RefPtrWillBeRawPtr<FontFace> fontFace = adoptRefWillBeNoop(new FontFace(context, family, descriptors));

    RefPtrWillBeRawPtr<CSSValue> src = parseCSSValue(toDocument(context), source, CSSPropertySrc);
    if (!src || !src->isValueList())
        fontFace->setError(DOMException::create(SyntaxError, "The source provided ('" + source + "') could not be parsed as a value list."));

    fontFace->initCSSFontFace(toDocument(context), src);
    return fontFace.release();
}
Exemplo n.º 2
0
FontFace* FontFace::create(ExecutionContext* context, const AtomicString& family, const String& source, const FontFaceDescriptors& descriptors)
{
    FontFace* fontFace = new FontFace(context, family, descriptors);

    CSSValue* src = parseCSSValue(toDocument(context), source, CSSPropertySrc);
    if (!src || !src->isValueList())
        fontFace->setError(DOMException::create(SyntaxError, "The source provided ('" + source + "') could not be parsed as a value list."));

    fontFace->initCSSFontFace(toDocument(context), src);
    return fontFace;
}
Exemplo n.º 3
0
void FontFace::setPropertyFromString(const Document* document, const String& s, CSSPropertyID propertyID, ExceptionState* exceptionState)
{
    RefPtrWillBeRawPtr<CSSValue> value = parseCSSValue(document, s, propertyID);
    if (value && setPropertyValue(value, propertyID))
        return;

    String message = "Failed to set '" + s + "' as a property value.";
    if (exceptionState)
        exceptionState->throwDOMException(SyntaxError, message);
    else
        setError(DOMException::create(SyntaxError, message));
}
Exemplo n.º 4
0
PassRefPtr<FontFace> FontFace::create(ExecutionContext* context, const AtomicString& family, const String& source, const Dictionary& descriptors, ExceptionState& exceptionState)
{
    RefPtrWillBeRawPtr<CSSValue> src = parseCSSValue(toDocument(context), source, CSSPropertySrc);
    if (!src || !src->isValueList()) {
        exceptionState.throwDOMException(SyntaxError, "The source provided ('" + source + "') could not be parsed as a value list.");
        return nullptr;
    }

    RefPtr<FontFace> fontFace = adoptRefWillBeRefCountedGarbageCollected<FontFace>(new FontFace());
    if (initFontFace(fontFace.get(), context, family, descriptors, exceptionState))
        fontFace->initCSSFontFace(toDocument(context), src);
    return fontFace.release();
}
Exemplo n.º 5
0
PassRefPtr<FontFace> FontFace::create(ExecutionContext* context, const AtomicString& family, const String& source, const Dictionary& descriptors, ExceptionState& exceptionState)
{
    RefPtrWillBeRawPtr<CSSValue> src = parseCSSValue(toDocument(context), source, CSSPropertySrc);
    if (!src || !src->isValueList()) {
        exceptionState.throwDOMException(SyntaxError, "The source provided ('" + source + "') could not be parsed as a value list.");
        return nullptr;
    }

    RefPtr<FontFace> fontFace = adoptRef<FontFace>(new FontFace(src));
    fontFace->setFamily(context, family, exceptionState);
    if (exceptionState.hadException())
        return nullptr;

    String value;
    if (descriptors.get("style", value)) {
        fontFace->setStyle(context, value, exceptionState);
        if (exceptionState.hadException())
            return nullptr;
    }
    if (descriptors.get("weight", value)) {
        fontFace->setWeight(context, value, exceptionState);
        if (exceptionState.hadException())
            return nullptr;
    }
    if (descriptors.get("stretch", value)) {
        fontFace->setStretch(context, value, exceptionState);
        if (exceptionState.hadException())
            return nullptr;
    }
    if (descriptors.get("unicodeRange", value)) {
        fontFace->setUnicodeRange(context, value, exceptionState);
        if (exceptionState.hadException())
            return nullptr;
    }
    if (descriptors.get("variant", value)) {
        fontFace->setVariant(context, value, exceptionState);
        if (exceptionState.hadException())
            return nullptr;
    }
    if (descriptors.get("featureSettings", value)) {
        fontFace->setFeatureSettings(context, value, exceptionState);
        if (exceptionState.hadException())
            return nullptr;
    }

    fontFace->initCSSFontFace(toDocument(context));
    return fontFace;
}
Exemplo n.º 6
0
PassRefPtr<FontFace> FontFace::create(const String& family, const String& source, const Dictionary& descriptors, ExceptionState& es)
{
    RefPtr<CSSValue> src = parseCSSValue(source, CSSPropertySrc);
    if (!src || !src->isValueList()) {
        es.throwUninformativeAndGenericDOMException(SyntaxError);
        return 0;
    }

    RefPtr<FontFace> fontFace = adoptRef<FontFace>(new FontFace(src));
    fontFace->setFamily(family, es);
    if (es.hadException())
        return 0;

    String value;
    if (descriptors.get("style", value)) {
        fontFace->setStyle(value, es);
        if (es.hadException())
            return 0;
    }
    if (descriptors.get("weight", value)) {
        fontFace->setWeight(value, es);
        if (es.hadException())
            return 0;
    }
    if (descriptors.get("stretch", value)) {
        fontFace->setStretch(value, es);
        if (es.hadException())
            return 0;
    }
    if (descriptors.get("unicodeRange", value)) {
        fontFace->setUnicodeRange(value, es);
        if (es.hadException())
            return 0;
    }
    if (descriptors.get("variant", value)) {
        fontFace->setVariant(value, es);
        if (es.hadException())
            return 0;
    }
    if (descriptors.get("featureSettings", value)) {
        fontFace->setFeatureSettings(value, es);
        if (es.hadException())
            return 0;
    }

    return fontFace;
}
Exemplo n.º 7
0
void FontFace::setPropertyFromString(const Document* document, const String& s, CSSPropertyID propertyID, ExceptionState& exceptionState)
{
    RefPtrWillBeRawPtr<CSSValue> value = parseCSSValue(document, s, propertyID);
    if (!value || !setPropertyValue(value, propertyID))
        exceptionState.throwDOMException(SyntaxError, "Failed to set '" + s + "' as a property value.");
}
Exemplo n.º 8
0
void FontFace::setPropertyFromString(const String& s, CSSPropertyID propertyID, ExceptionState& es)
{
    RefPtr<CSSValue> value = parseCSSValue(s, propertyID);
    if (!value || !setPropertyValue(value, propertyID))
        es.throwUninformativeAndGenericDOMException(SyntaxError);
}