OLD | NEW |
1 /* | 1 /* |
2 * (C) 1999-2003 Lars Knoll (knoll@kde.org) | 2 * (C) 1999-2003 Lars Knoll (knoll@kde.org) |
3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012 Apple Inc. All r
ights reserved. | 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012 Apple Inc. All r
ights reserved. |
4 * Copyright (C) 2011 Research In Motion Limited. All rights reserved. | 4 * Copyright (C) 2011 Research In Motion Limited. All rights reserved. |
5 * Copyright (C) 2013 Intel Corporation. All rights reserved. | 5 * Copyright (C) 2013 Intel Corporation. All rights reserved. |
6 * | 6 * |
7 * This library is free software; you can redistribute it and/or | 7 * This library is free software; you can redistribute it and/or |
8 * modify it under the terms of the GNU Library General Public | 8 * modify it under the terms of the GNU Library General Public |
9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
10 * version 2 of the License, or (at your option) any later version. | 10 * version 2 of the License, or (at your option) any later version. |
(...skipping 640 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
651 || shorthand.properties()[propertyIndex + 1] == CSSPropertyW
ebkitMaskRepeatY); | 651 || shorthand.properties()[propertyIndex + 1] == CSSPropertyW
ebkitMaskRepeatY); |
652 NullableCSSValue yValue = values[propertyIndex + 1]->isValueList
() ? | 652 NullableCSSValue yValue = values[propertyIndex + 1]->isValueList
() ? |
653 toCSSValueList(values[propertyIndex + 1])->item(layer) : val
ues[propertyIndex + 1]; | 653 toCSSValueList(values[propertyIndex + 1])->item(layer) : val
ues[propertyIndex + 1]; |
654 | 654 |
655 | 655 |
656 // FIXME: At some point we need to fix this code to avoid return
ing an invalid shorthand, | 656 // FIXME: At some point we need to fix this code to avoid return
ing an invalid shorthand, |
657 // since some longhand combinations are not serializable into a
single shorthand. | 657 // since some longhand combinations are not serializable into a
single shorthand. |
658 if (!value->isPrimitiveValue() || !yValue->isPrimitiveValue()) | 658 if (!value->isPrimitiveValue() || !yValue->isPrimitiveValue()) |
659 continue; | 659 continue; |
660 | 660 |
661 CSSValueID xId = toCSSPrimitiveValue(value)->getValueID(); | 661 CSSValueID xId = toCSSPrimitiveValue(*value).getValueID(); |
662 CSSValueID yId = toCSSPrimitiveValue(yValue)->getValueID(); | 662 CSSValueID yId = toCSSPrimitiveValue(*yValue).getValueID(); |
663 // Maybe advance propertyIndex to look at the next CSSValue in t
he list for the checks below. | 663 // Maybe advance propertyIndex to look at the next CSSValue in t
he list for the checks below. |
664 if (xId == yId) { | 664 if (xId == yId) { |
665 useSingleWordShorthand = true; | 665 useSingleWordShorthand = true; |
666 property = shorthand.properties()[++propertyIndex]; | 666 property = shorthand.properties()[++propertyIndex]; |
667 } else if (xId == CSSValueRepeat && yId == CSSValueNoRepeat) { | 667 } else if (xId == CSSValueRepeat && yId == CSSValueNoRepeat) { |
668 useRepeatXShorthand = true; | 668 useRepeatXShorthand = true; |
669 property = shorthand.properties()[++propertyIndex]; | 669 property = shorthand.properties()[++propertyIndex]; |
670 } else if (xId == CSSValueNoRepeat && yId == CSSValueRepeat) { | 670 } else if (xId == CSSValueNoRepeat && yId == CSSValueRepeat) { |
671 useRepeatYShorthand = true; | 671 useRepeatYShorthand = true; |
672 property = shorthand.properties()[++propertyIndex]; | 672 property = shorthand.properties()[++propertyIndex]; |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
796 result.append(value); | 796 result.append(value); |
797 } | 797 } |
798 if (isInitialOrInherit(commonValue)) | 798 if (isInitialOrInherit(commonValue)) |
799 return commonValue; | 799 return commonValue; |
800 return result.isEmpty() ? String() : result.toString(); | 800 return result.isEmpty() ? String() : result.toString(); |
801 } | 801 } |
802 | 802 |
803 static void appendBackgroundRepeatValue(StringBuilder& builder, const CSSValue&
repeatXCSSValue, const CSSValue& repeatYCSSValue) | 803 static void appendBackgroundRepeatValue(StringBuilder& builder, const CSSValue&
repeatXCSSValue, const CSSValue& repeatYCSSValue) |
804 { | 804 { |
805 // FIXME: Ensure initial values do not appear in CSS_VALUE_LISTS. | 805 // FIXME: Ensure initial values do not appear in CSS_VALUE_LISTS. |
806 DEFINE_STATIC_REF_WILL_BE_PERSISTENT(CSSPrimitiveValue, initialRepeatValue,
(CSSPrimitiveValue::create(CSSValueRepeat))); | 806 CSSPrimitiveValue initialRepeatValue = CSSPrimitiveValue::create(CSSValueRep
eat); |
807 const CSSPrimitiveValue& repeatX = repeatXCSSValue.isInitialValue() ? *initi
alRepeatValue : toCSSPrimitiveValue(repeatXCSSValue); | 807 const CSSPrimitiveValue repeatX = repeatXCSSValue.isInitialValue() ? initial
RepeatValue : toCSSPrimitiveValue(repeatXCSSValue); |
808 const CSSPrimitiveValue& repeatY = repeatYCSSValue.isInitialValue() ? *initi
alRepeatValue : toCSSPrimitiveValue(repeatYCSSValue); | 808 const CSSPrimitiveValue repeatY = repeatYCSSValue.isInitialValue() ? initial
RepeatValue : toCSSPrimitiveValue(repeatYCSSValue); |
809 CSSValueID repeatXValueId = repeatX.getValueID(); | 809 CSSValueID repeatXValueId = repeatX.getValueID(); |
810 CSSValueID repeatYValueId = repeatY.getValueID(); | 810 CSSValueID repeatYValueId = repeatY.getValueID(); |
811 if (repeatXValueId == repeatYValueId) { | 811 if (repeatXValueId == repeatYValueId) { |
812 builder.append(repeatX.cssText()); | 812 builder.append(repeatX.cssText()); |
813 } else if (repeatXValueId == CSSValueNoRepeat && repeatYValueId == CSSValueR
epeat) { | 813 } else if (repeatXValueId == CSSValueNoRepeat && repeatYValueId == CSSValueR
epeat) { |
814 builder.appendLiteral("repeat-y"); | 814 builder.appendLiteral("repeat-y"); |
815 } else if (repeatXValueId == CSSValueRepeat && repeatYValueId == CSSValueNoR
epeat) { | 815 } else if (repeatXValueId == CSSValueRepeat && repeatYValueId == CSSValueNoR
epeat) { |
816 builder.appendLiteral("repeat-x"); | 816 builder.appendLiteral("repeat-x"); |
817 } else { | 817 } else { |
818 builder.append(repeatX.cssText()); | 818 builder.append(repeatX.cssText()); |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
961 isInitialValue = false; | 961 isInitialValue = false; |
962 if (!value->isInheritedValue()) | 962 if (!value->isInheritedValue()) |
963 isInheritedValue = false; | 963 isInheritedValue = false; |
964 if (isImportant != m_propertySet.propertyIsImportant(shorthand.propertie
s()[i])) | 964 if (isImportant != m_propertySet.propertyIsImportant(shorthand.propertie
s()[i])) |
965 return false; | 965 return false; |
966 } | 966 } |
967 return isInitialValue || isInheritedValue; | 967 return isInitialValue || isInheritedValue; |
968 } | 968 } |
969 | 969 |
970 } | 970 } |
OLD | NEW |