| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2007, 2008, 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2007, 2008, 2011 Apple Inc. All rights reserved. |
| 3 * (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org> | 3 * (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org> |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. 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 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 99 return; | 99 return; |
| 100 | 100 |
| 101 CSSValueList* rangeList = toCSSValueList(unicodeRange.get()); | 101 CSSValueList* rangeList = toCSSValueList(unicodeRange.get()); |
| 102 | 102 |
| 103 unsigned traitsMask = 0; | 103 unsigned traitsMask = 0; |
| 104 | 104 |
| 105 if (RefPtr<CSSValue> fontStyle = style->getPropertyCSSValue(CSSPropertyFontS
tyle)) { | 105 if (RefPtr<CSSValue> fontStyle = style->getPropertyCSSValue(CSSPropertyFontS
tyle)) { |
| 106 if (!fontStyle->isPrimitiveValue()) | 106 if (!fontStyle->isPrimitiveValue()) |
| 107 return; | 107 return; |
| 108 | 108 |
| 109 switch (toCSSPrimitiveValue(fontStyle.get())->getIdent()) { | 109 switch (toCSSPrimitiveValue(fontStyle.get())->getValueID()) { |
| 110 case CSSValueNormal: | 110 case CSSValueNormal: |
| 111 traitsMask |= FontStyleNormalMask; | 111 traitsMask |= FontStyleNormalMask; |
| 112 break; | 112 break; |
| 113 case CSSValueItalic: | 113 case CSSValueItalic: |
| 114 case CSSValueOblique: | 114 case CSSValueOblique: |
| 115 traitsMask |= FontStyleItalicMask; | 115 traitsMask |= FontStyleItalicMask; |
| 116 break; | 116 break; |
| 117 default: | 117 default: |
| 118 break; | 118 break; |
| 119 } | 119 } |
| 120 } else | 120 } else |
| 121 traitsMask |= FontStyleNormalMask; | 121 traitsMask |= FontStyleNormalMask; |
| 122 | 122 |
| 123 if (RefPtr<CSSValue> fontWeight = style->getPropertyCSSValue(CSSPropertyFont
Weight)) { | 123 if (RefPtr<CSSValue> fontWeight = style->getPropertyCSSValue(CSSPropertyFont
Weight)) { |
| 124 if (!fontWeight->isPrimitiveValue()) | 124 if (!fontWeight->isPrimitiveValue()) |
| 125 return; | 125 return; |
| 126 | 126 |
| 127 switch (toCSSPrimitiveValue(fontWeight.get())->getIdent()) { | 127 switch (toCSSPrimitiveValue(fontWeight.get())->getValueID()) { |
| 128 case CSSValueBold: | 128 case CSSValueBold: |
| 129 case CSSValue700: | 129 case CSSValue700: |
| 130 traitsMask |= FontWeight700Mask; | 130 traitsMask |= FontWeight700Mask; |
| 131 break; | 131 break; |
| 132 case CSSValueNormal: | 132 case CSSValueNormal: |
| 133 case CSSValue400: | 133 case CSSValue400: |
| 134 traitsMask |= FontWeight400Mask; | 134 traitsMask |= FontWeight400Mask; |
| 135 break; | 135 break; |
| 136 case CSSValue900: | 136 case CSSValue900: |
| 137 traitsMask |= FontWeight900Mask; | 137 traitsMask |= FontWeight900Mask; |
| (...skipping 30 matching lines...) Expand all Loading... |
| 168 fontVariant = list; | 168 fontVariant = list; |
| 169 } else if (!fontVariant->isValueList()) | 169 } else if (!fontVariant->isValueList()) |
| 170 return; | 170 return; |
| 171 | 171 |
| 172 CSSValueList* variantList = toCSSValueList(fontVariant.get()); | 172 CSSValueList* variantList = toCSSValueList(fontVariant.get()); |
| 173 unsigned numVariants = variantList->length(); | 173 unsigned numVariants = variantList->length(); |
| 174 if (!numVariants) | 174 if (!numVariants) |
| 175 return; | 175 return; |
| 176 | 176 |
| 177 for (unsigned i = 0; i < numVariants; ++i) { | 177 for (unsigned i = 0; i < numVariants; ++i) { |
| 178 switch (toCSSPrimitiveValue(variantList->itemWithoutBoundsCheck(i))-
>getIdent()) { | 178 switch (toCSSPrimitiveValue(variantList->itemWithoutBoundsCheck(i))-
>getValueID()) { |
| 179 case CSSValueNormal: | 179 case CSSValueNormal: |
| 180 traitsMask |= FontVariantNormalMask; | 180 traitsMask |= FontVariantNormalMask; |
| 181 break; | 181 break; |
| 182 case CSSValueSmallCaps: | 182 case CSSValueSmallCaps: |
| 183 traitsMask |= FontVariantSmallCapsMask; | 183 traitsMask |= FontVariantSmallCapsMask; |
| 184 break; | 184 break; |
| 185 default: | 185 default: |
| 186 break; | 186 break; |
| 187 } | 187 } |
| 188 } | 188 } |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 248 CSSUnicodeRangeValue* range = static_cast<CSSUnicodeRangeValue*>(ran
geList->itemWithoutBoundsCheck(i)); | 248 CSSUnicodeRangeValue* range = static_cast<CSSUnicodeRangeValue*>(ran
geList->itemWithoutBoundsCheck(i)); |
| 249 fontFace->addRange(range->from(), range->to()); | 249 fontFace->addRange(range->from(), range->to()); |
| 250 } | 250 } |
| 251 } | 251 } |
| 252 | 252 |
| 253 // Hash under every single family name. | 253 // Hash under every single family name. |
| 254 int familyLength = familyList->length(); | 254 int familyLength = familyList->length(); |
| 255 for (int i = 0; i < familyLength; i++) { | 255 for (int i = 0; i < familyLength; i++) { |
| 256 CSSPrimitiveValue* item = toCSSPrimitiveValue(familyList->itemWithoutBou
ndsCheck(i)); | 256 CSSPrimitiveValue* item = toCSSPrimitiveValue(familyList->itemWithoutBou
ndsCheck(i)); |
| 257 String familyName; | 257 String familyName; |
| 258 if (item->isString()) | 258 if (item->isString()) { |
| 259 familyName = item->getStringValue(); | 259 familyName = item->getStringValue(); |
| 260 else if (item->isIdent()) { | 260 } else if (item->isValueID()) { |
| 261 // We need to use the raw text for all the generic family types, sin
ce @font-face is a way of actually | 261 // We need to use the raw text for all the generic family types, sin
ce @font-face is a way of actually |
| 262 // defining what font to use for those types. | 262 // defining what font to use for those types. |
| 263 switch (item->getIdent()) { | 263 switch (item->getValueID()) { |
| 264 case CSSValueSerif: | 264 case CSSValueSerif: |
| 265 familyName = serifFamily; | 265 familyName = serifFamily; |
| 266 break; | 266 break; |
| 267 case CSSValueSansSerif: | 267 case CSSValueSansSerif: |
| 268 familyName = sansSerifFamily; | 268 familyName = sansSerifFamily; |
| 269 break; | 269 break; |
| 270 case CSSValueCursive: | 270 case CSSValueCursive: |
| 271 familyName = cursiveFamily; | 271 familyName = cursiveFamily; |
| 272 break; | 272 break; |
| 273 case CSSValueFantasy: | 273 case CSSValueFantasy: |
| (...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 597 } | 597 } |
| 598 // Ensure that if the request count reaches zero, the frame loader will know
about it. | 598 // Ensure that if the request count reaches zero, the frame loader will know
about it. |
| 599 cachedResourceLoader->loadDone(0); | 599 cachedResourceLoader->loadDone(0); |
| 600 // New font loads may be triggered by layout after the document load is comp
lete but before we have dispatched | 600 // New font loads may be triggered by layout after the document load is comp
lete but before we have dispatched |
| 601 // didFinishLoading for the frame. Make sure the delegate is always dispatch
ed by checking explicitly. | 601 // didFinishLoading for the frame. Make sure the delegate is always dispatch
ed by checking explicitly. |
| 602 if (m_document && m_document->frame()) | 602 if (m_document && m_document->frame()) |
| 603 m_document->frame()->loader()->checkLoadComplete(); | 603 m_document->frame()->loader()->checkLoadComplete(); |
| 604 } | 604 } |
| 605 | 605 |
| 606 } | 606 } |
| OLD | NEW |