OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
3 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 3 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
4 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) | 4 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) |
5 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) | 5 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) |
6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc.
All rights reserved. | 6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc.
All rights reserved. |
7 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> | 7 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> |
8 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> | 8 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> |
9 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) | 9 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) |
10 * Copyright (c) 2011, Code Aurora Forum. All rights reserved. | 10 * Copyright (c) 2011, Code Aurora Forum. All rights reserved. |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
44 #include "core/css/CSSCursorImageValue.h" | 44 #include "core/css/CSSCursorImageValue.h" |
45 #include "core/css/CSSCustomPropertyDeclaration.h" | 45 #include "core/css/CSSCustomPropertyDeclaration.h" |
46 #include "core/css/CSSFunctionValue.h" | 46 #include "core/css/CSSFunctionValue.h" |
47 #include "core/css/CSSGridTemplateAreasValue.h" | 47 #include "core/css/CSSGridTemplateAreasValue.h" |
48 #include "core/css/CSSHelper.h" | 48 #include "core/css/CSSHelper.h" |
49 #include "core/css/CSSImageSetValue.h" | 49 #include "core/css/CSSImageSetValue.h" |
50 #include "core/css/CSSPendingSubstitutionValue.h" | 50 #include "core/css/CSSPendingSubstitutionValue.h" |
51 #include "core/css/CSSPrimitiveValueMappings.h" | 51 #include "core/css/CSSPrimitiveValueMappings.h" |
52 #include "core/css/CSSPropertyMetadata.h" | 52 #include "core/css/CSSPropertyMetadata.h" |
53 #include "core/css/CSSVariableReferenceValue.h" | 53 #include "core/css/CSSVariableReferenceValue.h" |
| 54 #include "core/css/PropertyRegistration.h" |
| 55 #include "core/css/PropertyRegistry.h" |
54 #include "core/css/StylePropertySet.h" | 56 #include "core/css/StylePropertySet.h" |
55 #include "core/css/StyleRule.h" | 57 #include "core/css/StyleRule.h" |
56 #include "core/css/resolver/CSSVariableResolver.h" | 58 #include "core/css/resolver/CSSVariableResolver.h" |
57 #include "core/css/resolver/ElementStyleResources.h" | 59 #include "core/css/resolver/ElementStyleResources.h" |
58 #include "core/css/resolver/FilterOperationResolver.h" | 60 #include "core/css/resolver/FilterOperationResolver.h" |
59 #include "core/css/resolver/FontBuilder.h" | 61 #include "core/css/resolver/FontBuilder.h" |
60 #include "core/css/resolver/StyleBuilder.h" | 62 #include "core/css/resolver/StyleBuilder.h" |
61 #include "core/css/resolver/TransformBuilder.h" | 63 #include "core/css/resolver/TransformBuilder.h" |
62 #include "core/frame/LocalFrame.h" | 64 #include "core/frame/LocalFrame.h" |
63 #include "core/frame/Settings.h" | 65 #include "core/frame/Settings.h" |
(...skipping 727 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
791 } | 793 } |
792 | 794 |
793 void StyleBuilderFunctions::applyValueCSSPropertyWebkitTextOrientation(StyleReso
lverState& state, const CSSValue& value) | 795 void StyleBuilderFunctions::applyValueCSSPropertyWebkitTextOrientation(StyleReso
lverState& state, const CSSValue& value) |
794 { | 796 { |
795 state.setTextOrientation(toCSSPrimitiveValue(value).convertTo<TextOrientatio
n>()); | 797 state.setTextOrientation(toCSSPrimitiveValue(value).convertTo<TextOrientatio
n>()); |
796 } | 798 } |
797 | 799 |
798 void StyleBuilderFunctions::applyValueCSSPropertyVariable(StyleResolverState& st
ate, const CSSValue& value) | 800 void StyleBuilderFunctions::applyValueCSSPropertyVariable(StyleResolverState& st
ate, const CSSValue& value) |
799 { | 801 { |
800 const CSSCustomPropertyDeclaration& declaration = toCSSCustomPropertyDeclara
tion(value); | 802 const CSSCustomPropertyDeclaration& declaration = toCSSCustomPropertyDeclara
tion(value); |
| 803 const AtomicString& name = declaration.name(); |
| 804 const PropertyRegistry::Registration* registration = nullptr; |
| 805 const PropertyRegistry* registry = state.document().propertyRegistry(); |
| 806 if (registry) |
| 807 registration = registry->registration(name); |
| 808 |
801 switch (declaration.id()) { | 809 switch (declaration.id()) { |
802 case CSSValueInitial: | 810 case CSSValueInitial: |
803 state.style()->removeVariable(declaration.name()); | 811 state.style()->removeVariable(name); |
804 break; | 812 break; |
805 | 813 |
806 case CSSValueUnset: | 814 case CSSValueUnset: |
807 case CSSValueInherit: { | 815 case CSSValueInherit: { |
808 state.style()->removeVariable(declaration.name()); | 816 state.style()->removeVariable(name); |
809 StyleVariableData* parentVariables = state.parentStyle()->variables(); | 817 StyleVariableData* parentVariables = state.parentStyle()->variables(); |
810 if (!parentVariables) | 818 if (!parentVariables) |
811 return; | 819 return; |
812 CSSVariableData* value = parentVariables->getVariable(declaration.name()
); | 820 CSSVariableData* value = parentVariables->getVariable(name); |
813 if (!value) | 821 if (!value) |
814 return; | 822 return; |
815 state.style()->setVariable(declaration.name(), value); | 823 state.style()->setVariable(name, value); |
| 824 if (registration) |
| 825 state.style()->setRegisteredInheritedProperty(name, parentVariables-
>registeredInheritedProperty(name)); |
816 break; | 826 break; |
817 } | 827 } |
818 case CSSValueInternalVariableValue: | 828 case CSSValueInternalVariableValue: |
819 state.style()->setVariable(declaration.name(), declaration.value()); | 829 if (registration) { |
| 830 if (declaration.value()->needsVariableResolution()) { |
| 831 state.style()->setVariable(name, declaration.value()); |
| 832 return; |
| 833 } |
| 834 const CSSValue* parsedValue = declaration.value()->parseForSyntax(re
gistration->syntax()); |
| 835 if (!parsedValue) { |
| 836 state.style()->setVariable(name, nullptr); |
| 837 state.style()->setRegisteredInheritedProperty(name, nullptr); |
| 838 return; |
| 839 } |
| 840 parsedValue = &StyleBuilderConverter::convertRegisteredPropertyValue
(state, *parsedValue); |
| 841 state.style()->setVariable(name, declaration.value()); |
| 842 state.style()->setRegisteredInheritedProperty(name, parsedValue); |
| 843 return; |
| 844 } |
| 845 state.style()->setVariable(name, declaration.value()); |
820 break; | 846 break; |
821 default: | 847 default: |
822 NOTREACHED(); | 848 NOTREACHED(); |
823 } | 849 } |
824 } | 850 } |
825 | 851 |
826 void StyleBuilderFunctions::applyInheritCSSPropertyBaselineShift(StyleResolverSt
ate& state) | 852 void StyleBuilderFunctions::applyInheritCSSPropertyBaselineShift(StyleResolverSt
ate& state) |
827 { | 853 { |
828 const SVGComputedStyle& parentSvgStyle = state.parentStyle()->svgStyle(); | 854 const SVGComputedStyle& parentSvgStyle = state.parentStyle()->svgStyle(); |
829 EBaselineShift baselineShift = parentSvgStyle.baselineShift(); | 855 EBaselineShift baselineShift = parentSvgStyle.baselineShift(); |
(...skipping 28 matching lines...) Expand all Loading... |
858 } | 884 } |
859 } | 885 } |
860 | 886 |
861 void StyleBuilderFunctions::applyInheritCSSPropertyPosition(StyleResolverState&
state) | 887 void StyleBuilderFunctions::applyInheritCSSPropertyPosition(StyleResolverState&
state) |
862 { | 888 { |
863 if (!state.parentNode()->isDocumentNode()) | 889 if (!state.parentNode()->isDocumentNode()) |
864 state.style()->setPosition(state.parentStyle()->position()); | 890 state.style()->setPosition(state.parentStyle()->position()); |
865 } | 891 } |
866 | 892 |
867 } // namespace blink | 893 } // namespace blink |
OLD | NEW |