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 * * Redistributions of source code must retain the above copyright | 4 * * Redistributions of source code must retain the above copyright |
5 * notice, this list of conditions and the following disclaimer. | 5 * notice, this list of conditions and the following disclaimer. |
6 * * Redistributions in binary form must reproduce the above | 6 * * Redistributions in binary form must reproduce the above |
7 * copyright notice, this list of conditions and the following disclaimer | 7 * copyright notice, this list of conditions and the following disclaimer |
8 * in the documentation and/or other materials provided with the | 8 * in the documentation and/or other materials provided with the |
9 * distribution. | 9 * distribution. |
10 * * Neither the name of Google Inc. nor the names of its | 10 * * Neither the name of Google Inc. nor the names of its |
11 * contributors may be used to endorse or promote products derived from | 11 * contributors may be used to endorse or promote products derived from |
12 * this software without specific prior written permission. | 12 * this software without specific prior written permission. |
13 * | 13 * |
14 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 14 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
15 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 15 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
16 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 16 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
17 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | 17 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
18 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | 18 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
19 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 19 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
20 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 20 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
24 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 24 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
25 */ | 25 */ |
26 | 26 |
27 #include "config.h" | 27 #include "config.h" |
28 #include "core/css/resolver/StyleBuilderConverter.h" | 28 #include "core/css/resolver/StyleBuilderConverter.h" |
29 | 29 |
| 30 #include "core/css/CSSFontFeatureValue.h" |
30 #include "core/css/CSSFunctionValue.h" | 31 #include "core/css/CSSFunctionValue.h" |
31 #include "core/css/CSSGridLineNamesValue.h" | 32 #include "core/css/CSSGridLineNamesValue.h" |
32 #include "core/css/CSSPrimitiveValueMappings.h" | 33 #include "core/css/CSSPrimitiveValueMappings.h" |
33 #include "core/css/CSSReflectValue.h" | 34 #include "core/css/CSSReflectValue.h" |
34 #include "core/css/CSSShadowValue.h" | 35 #include "core/css/CSSShadowValue.h" |
35 #include "core/css/Pair.h" | 36 #include "core/css/Pair.h" |
36 #include "core/svg/SVGURIReference.h" | 37 #include "core/svg/SVGURIReference.h" |
37 | 38 |
38 namespace blink { | 39 namespace blink { |
39 | 40 |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
83 } | 84 } |
84 | 85 |
85 AtomicString StyleBuilderConverter::convertFragmentIdentifier(StyleResolverState
& state, CSSValue* value) | 86 AtomicString StyleBuilderConverter::convertFragmentIdentifier(StyleResolverState
& state, CSSValue* value) |
86 { | 87 { |
87 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); | 88 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
88 if (primitiveValue->isURI()) | 89 if (primitiveValue->isURI()) |
89 return SVGURIReference::fragmentIdentifierFromIRIString(primitiveValue->
getStringValue(), state.element()->treeScope()); | 90 return SVGURIReference::fragmentIdentifierFromIRIString(primitiveValue->
getStringValue(), state.element()->treeScope()); |
90 return nullAtom; | 91 return nullAtom; |
91 } | 92 } |
92 | 93 |
| 94 PassRefPtr<FontFeatureSettings> StyleBuilderConverter::convertFontFeatureSetting
s(StyleResolverState& state, CSSValue* value) |
| 95 { |
| 96 if (value->isPrimitiveValue() && toCSSPrimitiveValue(value)->getValueID() ==
CSSValueNormal) |
| 97 return FontBuilder::initialFeatureSettings(); |
| 98 |
| 99 CSSValueList* list = toCSSValueList(value); |
| 100 RefPtr<FontFeatureSettings> settings = FontFeatureSettings::create(); |
| 101 int len = list->length(); |
| 102 for (int i = 0; i < len; ++i) { |
| 103 CSSFontFeatureValue* feature = toCSSFontFeatureValue(list->item(i)); |
| 104 settings->append(FontFeature(feature->tag(), feature->value())); |
| 105 } |
| 106 return settings; |
| 107 } |
| 108 |
93 FontWeight StyleBuilderConverter::convertFontWeight(StyleResolverState& state, C
SSValue* value) | 109 FontWeight StyleBuilderConverter::convertFontWeight(StyleResolverState& state, C
SSValue* value) |
94 { | 110 { |
95 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); | 111 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
96 switch (primitiveValue->getValueID()) { | 112 switch (primitiveValue->getValueID()) { |
97 case CSSValueBolder: | 113 case CSSValueBolder: |
98 return FontDescription::bolderWeight(state.parentStyle()->fontDescriptio
n().weight()); | 114 return FontDescription::bolderWeight(state.parentStyle()->fontDescriptio
n().weight()); |
99 case CSSValueLighter: | 115 case CSSValueLighter: |
100 return FontDescription::lighterWeight(state.parentStyle()->fontDescripti
on().weight()); | 116 return FontDescription::lighterWeight(state.parentStyle()->fontDescripti
on().weight()); |
101 default: | 117 default: |
102 return *primitiveValue; | 118 return *primitiveValue; |
(...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
509 { | 525 { |
510 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); | 526 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
511 if (primitiveValue->getValueID()) { | 527 if (primitiveValue->getValueID()) { |
512 float multiplier = convertLineWidth<float>(state, value); | 528 float multiplier = convertLineWidth<float>(state, value); |
513 return CSSPrimitiveValue::create(multiplier / 48, CSSPrimitiveValue::CSS
_EMS)->computeLength<float>(state.cssToLengthConversionData()); | 529 return CSSPrimitiveValue::create(multiplier / 48, CSSPrimitiveValue::CSS
_EMS)->computeLength<float>(state.cssToLengthConversionData()); |
514 } | 530 } |
515 return primitiveValue->computeLength<float>(state.cssToLengthConversionData(
)); | 531 return primitiveValue->computeLength<float>(state.cssToLengthConversionData(
)); |
516 } | 532 } |
517 | 533 |
518 } // namespace blink | 534 } // namespace blink |
OLD | NEW |