OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
58 #include "core/frame/Settings.h" | 58 #include "core/frame/Settings.h" |
59 #include "core/frame/UseCounter.h" | 59 #include "core/frame/UseCounter.h" |
60 #include "platform/FontFamilyNames.h" | 60 #include "platform/FontFamilyNames.h" |
61 #include "platform/SharedBuffer.h" | 61 #include "platform/SharedBuffer.h" |
62 | 62 |
63 namespace blink { | 63 namespace blink { |
64 | 64 |
65 static PassRefPtrWillBeRawPtr<CSSValue> parseCSSValue(const Document* document,
const String& s, CSSPropertyID propertyID) | 65 static PassRefPtrWillBeRawPtr<CSSValue> parseCSSValue(const Document* document,
const String& s, CSSPropertyID propertyID) |
66 { | 66 { |
67 CSSParserContext context(*document, UseCounter::getFrom(document)); | 67 CSSParserContext context(*document, UseCounter::getFrom(document)); |
68 return CSSParser::parseSingleValue(propertyID, s, context); | 68 StringBuilder builder; |
| 69 builder.appendLiteral("@font-face { "); |
| 70 builder.append(getPropertyNameString(propertyID)); |
| 71 builder.appendLiteral(" : "); |
| 72 builder.append(s); |
| 73 builder.appendLiteral("; }"); |
| 74 RefPtrWillBeRawPtr<StyleRuleBase> rule = CSSParser::parseRule(context, 0, bu
ilder.toString()); |
| 75 if (!rule || !rule->isFontFaceRule()) |
| 76 return nullptr; |
| 77 return toStyleRuleFontFace(rule.get())->properties().getPropertyCSSValue(pro
pertyID); |
69 } | 78 } |
70 | 79 |
71 PassRefPtrWillBeRawPtr<FontFace> FontFace::create(ExecutionContext* context, con
st AtomicString& family, StringOrArrayBufferOrArrayBufferView& source, const Fon
tFaceDescriptors& descriptors) | 80 PassRefPtrWillBeRawPtr<FontFace> FontFace::create(ExecutionContext* context, con
st AtomicString& family, StringOrArrayBufferOrArrayBufferView& source, const Fon
tFaceDescriptors& descriptors) |
72 { | 81 { |
73 if (source.isString()) | 82 if (source.isString()) |
74 return create(context, family, source.getAsString(), descriptors); | 83 return create(context, family, source.getAsString(), descriptors); |
75 if (source.isArrayBuffer()) | 84 if (source.isArrayBuffer()) |
76 return create(context, family, source.getAsArrayBuffer(), descriptors); | 85 return create(context, family, source.getAsArrayBuffer(), descriptors); |
77 if (source.isArrayBufferView()) | 86 if (source.isArrayBufferView()) |
78 return create(context, family, source.getAsArrayBufferView(), descriptor
s); | 87 return create(context, family, source.getAsArrayBufferView(), descriptor
s); |
(...skipping 501 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
580 { | 589 { |
581 return m_cssFontFace->hadBlankText(); | 590 return m_cssFontFace->hadBlankText(); |
582 } | 591 } |
583 | 592 |
584 bool FontFace::hasPendingActivity() const | 593 bool FontFace::hasPendingActivity() const |
585 { | 594 { |
586 return m_status == Loading && executionContext() && !executionContext()->act
iveDOMObjectsAreStopped(); | 595 return m_status == Loading && executionContext() && !executionContext()->act
iveDOMObjectsAreStopped(); |
587 } | 596 } |
588 | 597 |
589 } // namespace blink | 598 } // namespace blink |
OLD | NEW |