Changeset 121164 in webkit
- Timestamp:
- Jun 25, 2012 10:36:38 AM (12 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 added
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/CMakeLists.txt
r121051 r121164 504 504 css/CSSStyleSheet.cpp 505 505 css/CSSTimingFunctionValue.cpp 506 css/CSSToStyleMap.cpp 506 507 css/CSSUnicodeRangeValue.cpp 507 508 css/CSSValue.cpp -
trunk/Source/WebCore/ChangeLog
r121163 r121164 1 2012-06-25 Eric Seidel <eric@webkit.org> 2 3 Split map* functions out of StyleResolver into a helper object 4 https://bugs.webkit.org/show_bug.cgi?id=89881 5 6 Reviewed by Daniel Bates. 7 8 These map* functions are completely independent of the rest of StyleResolver 9 and only exist to serve StyleBuilder. 10 CSSToStyleMap doesn't even want to have a StyleResolver pointer, but 11 currently needs one to access the resolve-lifetime caches for the 12 current resolve. Once we split out that per-resolve state into 13 some sort of ResolveState/ResolveInfo object (akin to PaintInfo/LayoutState) 14 then this object will be even simpler. 15 16 No behavioral change, thus no tests. 17 18 * CMakeLists.txt: 19 * GNUmakefile.list.am: 20 * WebCore.gypi: 21 * WebCore.vcproj/WebCore.vcproj: 22 * WebCore.xcodeproj/project.pbxproj: 23 * css/CSSToStyleMap.cpp: Added. 24 (WebCore): 25 (WebCore::CSSToStyleMap::style): 26 (WebCore::CSSToStyleMap::rootElementStyle): 27 (WebCore::CSSToStyleMap::useSVGZoomRules): 28 (WebCore::CSSToStyleMap::styleImage): 29 (WebCore::CSSToStyleMap::mapFillAttachment): 30 (WebCore::CSSToStyleMap::mapFillClip): 31 (WebCore::CSSToStyleMap::mapFillComposite): 32 (WebCore::CSSToStyleMap::mapFillOrigin): 33 (WebCore::CSSToStyleMap::mapFillImage): 34 (WebCore::CSSToStyleMap::mapFillRepeatX): 35 (WebCore::CSSToStyleMap::mapFillRepeatY): 36 (WebCore::CSSToStyleMap::mapFillSize): 37 (WebCore::CSSToStyleMap::mapFillXPosition): 38 (WebCore::CSSToStyleMap::mapFillYPosition): 39 (WebCore::CSSToStyleMap::mapAnimationDelay): 40 (WebCore::CSSToStyleMap::mapAnimationDirection): 41 (WebCore::CSSToStyleMap::mapAnimationDuration): 42 (WebCore::CSSToStyleMap::mapAnimationFillMode): 43 (WebCore::CSSToStyleMap::mapAnimationIterationCount): 44 (WebCore::CSSToStyleMap::mapAnimationName): 45 (WebCore::CSSToStyleMap::mapAnimationPlayState): 46 (WebCore::CSSToStyleMap::mapAnimationProperty): 47 (WebCore::CSSToStyleMap::mapAnimationTimingFunction): 48 (WebCore::CSSToStyleMap::mapNinePieceImage): 49 (WebCore::CSSToStyleMap::mapNinePieceImageSlice): 50 (WebCore::CSSToStyleMap::mapNinePieceImageQuad): 51 (WebCore::CSSToStyleMap::mapNinePieceImageRepeat): 52 * css/CSSToStyleMap.h: Added. 53 (WebCore): 54 (CSSToStyleMap): 55 (WebCore::CSSToStyleMap::CSSToStyleMap): 56 * css/StyleBuilder.cpp: 57 (WebCore::ApplyPropertyFillLayer::applyValue): 58 (WebCore::ApplyPropertyBorderImage::applyValue): 59 (WebCore::ApplyPropertyBorderImageModifier::applyValue): 60 (WebCore): 61 (WebCore::ApplyPropertyAnimation::map): 62 (WebCore::StyleBuilder::StyleBuilder): 63 * css/StyleResolver.cpp: 64 (WebCore::StyleResolver::StyleResolver): 65 (WebCore::StyleResolver::collectMatchingRulesForList): 66 * css/StyleResolver.h: 67 (WebCore::StyleResolver::styleMap): 68 (StyleResolver): 69 1 70 2012-06-25 Gyuyoung Kim <gyuyoung.kim@samsung.com> 2 71 -
trunk/Source/WebCore/GNUmakefile.list.am
r121148 r121164 1680 1680 Source/WebCore/css/CSSTimingFunctionValue.cpp \ 1681 1681 Source/WebCore/css/CSSTimingFunctionValue.h \ 1682 Source/WebCore/css/CSSToStyleMap.cpp \ 1683 Source/WebCore/css/CSSToStyleMap.h \ 1682 1684 Source/WebCore/css/CSSWrapShapes.cpp \ 1683 1685 Source/WebCore/css/CSSWrapShapes.h \ -
trunk/Source/WebCore/Target.pri
r121147 r121164 467 467 css/CSSStyleSheet.cpp \ 468 468 css/CSSTimingFunctionValue.cpp \ 469 css/CSSToStyleMap.cpp \ 469 470 css/CSSUnicodeRangeValue.cpp \ 470 471 css/CSSValue.cpp \ … … 1649 1650 css/CSSStyleSheet.h \ 1650 1651 css/CSSTimingFunctionValue.h \ 1652 css/CSSToStyleMap.h \ 1651 1653 css/CSSUnicodeRangeValue.h \ 1652 1654 css/CSSValue.cpp \ -
trunk/Source/WebCore/WebCore.gypi
r121144 r121164 2506 2506 'css/CSSTimingFunctionValue.cpp', 2507 2507 'css/CSSTimingFunctionValue.h', 2508 'css/CSSToStyleMap.cpp', 2509 'css/CSSToStyleMap.h', 2508 2510 'css/CSSUnicodeRangeValue.cpp', 2509 2511 'css/CSSUnicodeRangeValue.h', -
trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj
r121144 r121164 36636 36636 </File> 36637 36637 <File 36638 RelativePath="..\css\CSSToStyleMap.cpp" 36639 > 36640 </File> 36641 <File 36642 RelativePath="..\css\CSSToStyleMap.h" 36643 > 36644 </File> 36645 <File 36638 36646 RelativePath="..\css\CSSUnicodeRangeValue.cpp" 36639 36647 > -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r121144 r121164 4188 4188 A871DFE50A15376B00B12A68 /* RenderWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A871DFE10A15376B00B12A68 /* RenderWidget.cpp */; }; 4189 4189 A8748BE012CBF2DC001FBA41 /* HashTools.h in Headers */ = {isa = PBXBuildFile; fileRef = A8748BDF12CBF2DC001FBA41 /* HashTools.h */; }; 4190 A882DA201593846A000115ED /* CSSToStyleMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A882DA1F1593846A000115ED /* CSSToStyleMap.cpp */; }; 4191 A882DA231593848D000115ED /* CSSToStyleMap.h in Headers */ = {isa = PBXBuildFile; fileRef = A882DA221593848D000115ED /* CSSToStyleMap.h */; }; 4190 4192 A883DF270F3D045D00F19BF6 /* VisibleSelection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A883DF250F3D045D00F19BF6 /* VisibleSelection.cpp */; }; 4191 4193 A883DF280F3D045D00F19BF6 /* VisibleSelection.h in Headers */ = {isa = PBXBuildFile; fileRef = A883DF260F3D045D00F19BF6 /* VisibleSelection.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 11198 11200 A8748D6612CC3763001FBA41 /* ImageOrientation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImageOrientation.h; sourceTree = "<group>"; }; 11199 11201 A8748D7412CC3F89001FBA41 /* ImageOrientation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ImageOrientation.cpp; sourceTree = "<group>"; }; 11202 A882DA1F1593846A000115ED /* CSSToStyleMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CSSToStyleMap.cpp; sourceTree = "<group>"; }; 11203 A882DA221593848D000115ED /* CSSToStyleMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CSSToStyleMap.h; sourceTree = "<group>"; }; 11200 11204 A883DF250F3D045D00F19BF6 /* VisibleSelection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VisibleSelection.cpp; sourceTree = "<group>"; }; 11201 11205 A883DF260F3D045D00F19BF6 /* VisibleSelection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VisibleSelection.h; sourceTree = "<group>"; }; … … 20998 21002 BC9ADD220CC4032600098C4C /* WebKitCSSTransformValue.h */, 20999 21003 31611E540E1C4D4A00F6A579 /* WebKitCSSTransformValue.idl */, 21004 A882DA1F1593846A000115ED /* CSSToStyleMap.cpp */, 21005 A882DA221593848D000115ED /* CSSToStyleMap.h */, 21000 21006 ); 21001 21007 path = css; … … 25149 25155 50987C27157D676D00BDA835 /* CustomFilterGlobalContext.h in Headers */, 25150 25156 4F32BB1B14FA85E800F6C1A3 /* MemoryInstrumentation.h in Headers */, 25157 A882DA231593848D000115ED /* CSSToStyleMap.h in Headers */, 25151 25158 ); 25152 25159 runOnlyForDeploymentPostprocessing = 0; … … 28201 28208 CE7B2DB61586ABAD0098B3FA /* TextAlternativeWithRange.mm in Sources */, 28202 28209 50987C26157D676D00BDA835 /* CustomFilterGlobalContext.cpp in Sources */, 28210 A882DA201593846A000115ED /* CSSToStyleMap.cpp in Sources */, 28203 28211 ); 28204 28212 runOnlyForDeploymentPostprocessing = 0; -
trunk/Source/WebCore/css/StyleBuilder.cpp
r121127 r121164 30 30 #include "CSSCursorImageValue.h" 31 31 #include "CSSPrimitiveValueMappings.h" 32 #include "CSSToStyleMap.h" 32 33 #include "CSSValueList.h" 33 34 #include "CursorList.h" … … 497 498 void (FillLayer::*clearFunction)(), 498 499 typename FillLayerAccessorTypes<T>::Getter (*initialFunction)(EFillLayerType), 499 void ( StyleResolver::*mapFillFunction)(CSSPropertyID, FillLayer*, CSSValue*)>500 void (CSSToStyleMap::*mapFillFunction)(CSSPropertyID, FillLayer*, CSSValue*)> 500 501 class ApplyPropertyFillLayer { 501 502 public: … … 549 550 prevChild->setNext(currChild); 550 551 } 551 (styleResolver-> *mapFillFunction)(propertyId, currChild, valueList->itemWithoutBoundsCheck(i));552 (styleResolver->styleMap()->*mapFillFunction)(propertyId, currChild, valueList->itemWithoutBoundsCheck(i)); 552 553 prevChild = currChild; 553 554 currChild = currChild->next(); 554 555 } 555 556 } else { 556 (styleResolver-> *mapFillFunction)(propertyId, currChild, value);557 (styleResolver->styleMap()->*mapFillFunction)(propertyId, currChild, value); 557 558 currChild = currChild->next(); 558 559 } … … 887 888 if (borderImageType == Mask) 888 889 image.setMaskDefaults(); 889 styleResolver-> mapNinePieceImage(property, value, image);890 styleResolver->styleMap()->mapNinePieceImage(property, value, image); 890 891 (styleResolver->style()->*setterFunction)(image); 891 892 } … … 954 955 switch (modifier) { 955 956 case Outset: 956 image.setOutset(styleResolver-> mapNinePieceImageQuad(value));957 image.setOutset(styleResolver->styleMap()->mapNinePieceImageQuad(value)); 957 958 break; 958 959 case Repeat: 959 styleResolver-> mapNinePieceImageRepeat(value, image);960 styleResolver->styleMap()->mapNinePieceImageRepeat(value, image); 960 961 break; 961 962 case Slice: 962 styleResolver-> mapNinePieceImageSlice(value, image);963 styleResolver->styleMap()->mapNinePieceImageSlice(value, image); 963 964 break; 964 965 case Width: 965 image.setBorderSlices(styleResolver-> mapNinePieceImageQuad(value));966 image.setBorderSlices(styleResolver->styleMap()->mapNinePieceImageQuad(value)); 966 967 break; 967 968 } … … 1438 1439 void (Animation::*clearFunction)(), 1439 1440 T (*initialFunction)(), 1440 void ( StyleResolver::*mapFunction)(Animation*, CSSValue*),1441 void (CSSToStyleMap::*mapFunction)(Animation*, CSSValue*), 1441 1442 AnimationList* (RenderStyle::*animationGetterFunction)(), 1442 1443 const AnimationList* (RenderStyle::*immutableAnimationGetterFunction)() const> … … 1448 1449 static void clear(Animation* animation) { (animation->*clearFunction)(); } 1449 1450 static T initial() { return (*initialFunction)(); } 1450 static void map(StyleResolver* styleResolver, Animation* animation, CSSValue* value) { (styleResolver-> *mapFunction)(animation, value); }1451 static void map(StyleResolver* styleResolver, Animation* animation, CSSValue* value) { (styleResolver->styleMap()->*mapFunction)(animation, value); } 1451 1452 static AnimationList* accessAnimations(RenderStyle* style) { return (style->*animationGetterFunction)(); } 1452 1453 static const AnimationList* animations(RenderStyle* style) { return (style->*immutableAnimationGetterFunction)(); } … … 1841 1842 1842 1843 // Please keep CSS property list in alphabetical order. 1843 setPropertyHandler(CSSPropertyBackgroundAttachment, ApplyPropertyFillLayer<EFillAttachment, CSSPropertyBackgroundAttachment, BackgroundFillLayer, &RenderStyle::accessBackgroundLayers, &RenderStyle::backgroundLayers, &FillLayer::isAttachmentSet, &FillLayer::attachment, &FillLayer::setAttachment, &FillLayer::clearAttachment, &FillLayer::initialFillAttachment, & StyleResolver::mapFillAttachment>::createHandler());1844 setPropertyHandler(CSSPropertyBackgroundClip, ApplyPropertyFillLayer<EFillBox, CSSPropertyBackgroundClip, BackgroundFillLayer, &RenderStyle::accessBackgroundLayers, &RenderStyle::backgroundLayers, &FillLayer::isClipSet, &FillLayer::clip, &FillLayer::setClip, &FillLayer::clearClip, &FillLayer::initialFillClip, & StyleResolver::mapFillClip>::createHandler());1844 setPropertyHandler(CSSPropertyBackgroundAttachment, ApplyPropertyFillLayer<EFillAttachment, CSSPropertyBackgroundAttachment, BackgroundFillLayer, &RenderStyle::accessBackgroundLayers, &RenderStyle::backgroundLayers, &FillLayer::isAttachmentSet, &FillLayer::attachment, &FillLayer::setAttachment, &FillLayer::clearAttachment, &FillLayer::initialFillAttachment, &CSSToStyleMap::mapFillAttachment>::createHandler()); 1845 setPropertyHandler(CSSPropertyBackgroundClip, ApplyPropertyFillLayer<EFillBox, CSSPropertyBackgroundClip, BackgroundFillLayer, &RenderStyle::accessBackgroundLayers, &RenderStyle::backgroundLayers, &FillLayer::isClipSet, &FillLayer::clip, &FillLayer::setClip, &FillLayer::clearClip, &FillLayer::initialFillClip, &CSSToStyleMap::mapFillClip>::createHandler()); 1845 1846 setPropertyHandler(CSSPropertyBackgroundColor, ApplyPropertyColor<NoInheritFromParent, &RenderStyle::backgroundColor, &RenderStyle::setBackgroundColor, &RenderStyle::setVisitedLinkBackgroundColor, &RenderStyle::invalidColor>::createHandler()); 1846 setPropertyHandler(CSSPropertyBackgroundImage, ApplyPropertyFillLayer<StyleImage*, CSSPropertyBackgroundImage, BackgroundFillLayer, &RenderStyle::accessBackgroundLayers, &RenderStyle::backgroundLayers, &FillLayer::isImageSet, &FillLayer::image, &FillLayer::setImage, &FillLayer::clearImage, &FillLayer::initialFillImage, & StyleResolver::mapFillImage>::createHandler());1847 setPropertyHandler(CSSPropertyBackgroundOrigin, ApplyPropertyFillLayer<EFillBox, CSSPropertyBackgroundOrigin, BackgroundFillLayer, &RenderStyle::accessBackgroundLayers, &RenderStyle::backgroundLayers, &FillLayer::isOriginSet, &FillLayer::origin, &FillLayer::setOrigin, &FillLayer::clearOrigin, &FillLayer::initialFillOrigin, & StyleResolver::mapFillOrigin>::createHandler());1847 setPropertyHandler(CSSPropertyBackgroundImage, ApplyPropertyFillLayer<StyleImage*, CSSPropertyBackgroundImage, BackgroundFillLayer, &RenderStyle::accessBackgroundLayers, &RenderStyle::backgroundLayers, &FillLayer::isImageSet, &FillLayer::image, &FillLayer::setImage, &FillLayer::clearImage, &FillLayer::initialFillImage, &CSSToStyleMap::mapFillImage>::createHandler()); 1848 setPropertyHandler(CSSPropertyBackgroundOrigin, ApplyPropertyFillLayer<EFillBox, CSSPropertyBackgroundOrigin, BackgroundFillLayer, &RenderStyle::accessBackgroundLayers, &RenderStyle::backgroundLayers, &FillLayer::isOriginSet, &FillLayer::origin, &FillLayer::setOrigin, &FillLayer::clearOrigin, &FillLayer::initialFillOrigin, &CSSToStyleMap::mapFillOrigin>::createHandler()); 1848 1849 setPropertyHandler(CSSPropertyBackgroundPosition, ApplyPropertyExpanding<SuppressValue, CSSPropertyBackgroundPositionX, CSSPropertyBackgroundPositionY>::createHandler()); 1849 setPropertyHandler(CSSPropertyBackgroundPositionX, ApplyPropertyFillLayer<Length, CSSPropertyBackgroundPositionX, BackgroundFillLayer, &RenderStyle::accessBackgroundLayers, &RenderStyle::backgroundLayers, &FillLayer::isXPositionSet, &FillLayer::xPosition, &FillLayer::setXPosition, &FillLayer::clearXPosition, &FillLayer::initialFillXPosition, & StyleResolver::mapFillXPosition>::createHandler());1850 setPropertyHandler(CSSPropertyBackgroundPositionY, ApplyPropertyFillLayer<Length, CSSPropertyBackgroundPositionY, BackgroundFillLayer, &RenderStyle::accessBackgroundLayers, &RenderStyle::backgroundLayers, &FillLayer::isYPositionSet, &FillLayer::yPosition, &FillLayer::setYPosition, &FillLayer::clearYPosition, &FillLayer::initialFillYPosition, & StyleResolver::mapFillYPosition>::createHandler());1850 setPropertyHandler(CSSPropertyBackgroundPositionX, ApplyPropertyFillLayer<Length, CSSPropertyBackgroundPositionX, BackgroundFillLayer, &RenderStyle::accessBackgroundLayers, &RenderStyle::backgroundLayers, &FillLayer::isXPositionSet, &FillLayer::xPosition, &FillLayer::setXPosition, &FillLayer::clearXPosition, &FillLayer::initialFillXPosition, &CSSToStyleMap::mapFillXPosition>::createHandler()); 1851 setPropertyHandler(CSSPropertyBackgroundPositionY, ApplyPropertyFillLayer<Length, CSSPropertyBackgroundPositionY, BackgroundFillLayer, &RenderStyle::accessBackgroundLayers, &RenderStyle::backgroundLayers, &FillLayer::isYPositionSet, &FillLayer::yPosition, &FillLayer::setYPosition, &FillLayer::clearYPosition, &FillLayer::initialFillYPosition, &CSSToStyleMap::mapFillYPosition>::createHandler()); 1851 1852 setPropertyHandler(CSSPropertyBackgroundRepeat, ApplyPropertyExpanding<SuppressValue, CSSPropertyBackgroundRepeatX, CSSPropertyBackgroundRepeatY>::createHandler()); 1852 setPropertyHandler(CSSPropertyBackgroundRepeatX, ApplyPropertyFillLayer<EFillRepeat, CSSPropertyBackgroundRepeatX, BackgroundFillLayer, &RenderStyle::accessBackgroundLayers, &RenderStyle::backgroundLayers, &FillLayer::isRepeatXSet, &FillLayer::repeatX, &FillLayer::setRepeatX, &FillLayer::clearRepeatX, &FillLayer::initialFillRepeatX, & StyleResolver::mapFillRepeatX>::createHandler());1853 setPropertyHandler(CSSPropertyBackgroundRepeatY, ApplyPropertyFillLayer<EFillRepeat, CSSPropertyBackgroundRepeatY, BackgroundFillLayer, &RenderStyle::accessBackgroundLayers, &RenderStyle::backgroundLayers, &FillLayer::isRepeatYSet, &FillLayer::repeatY, &FillLayer::setRepeatY, &FillLayer::clearRepeatY, &FillLayer::initialFillRepeatY, & StyleResolver::mapFillRepeatY>::createHandler());1854 setPropertyHandler(CSSPropertyBackgroundSize, ApplyPropertyFillLayer<FillSize, CSSPropertyBackgroundSize, BackgroundFillLayer, &RenderStyle::accessBackgroundLayers, &RenderStyle::backgroundLayers, &FillLayer::isSizeSet, &FillLayer::size, &FillLayer::setSize, &FillLayer::clearSize, &FillLayer::initialFillSize, & StyleResolver::mapFillSize>::createHandler());1853 setPropertyHandler(CSSPropertyBackgroundRepeatX, ApplyPropertyFillLayer<EFillRepeat, CSSPropertyBackgroundRepeatX, BackgroundFillLayer, &RenderStyle::accessBackgroundLayers, &RenderStyle::backgroundLayers, &FillLayer::isRepeatXSet, &FillLayer::repeatX, &FillLayer::setRepeatX, &FillLayer::clearRepeatX, &FillLayer::initialFillRepeatX, &CSSToStyleMap::mapFillRepeatX>::createHandler()); 1854 setPropertyHandler(CSSPropertyBackgroundRepeatY, ApplyPropertyFillLayer<EFillRepeat, CSSPropertyBackgroundRepeatY, BackgroundFillLayer, &RenderStyle::accessBackgroundLayers, &RenderStyle::backgroundLayers, &FillLayer::isRepeatYSet, &FillLayer::repeatY, &FillLayer::setRepeatY, &FillLayer::clearRepeatY, &FillLayer::initialFillRepeatY, &CSSToStyleMap::mapFillRepeatY>::createHandler()); 1855 setPropertyHandler(CSSPropertyBackgroundSize, ApplyPropertyFillLayer<FillSize, CSSPropertyBackgroundSize, BackgroundFillLayer, &RenderStyle::accessBackgroundLayers, &RenderStyle::backgroundLayers, &FillLayer::isSizeSet, &FillLayer::size, &FillLayer::setSize, &FillLayer::clearSize, &FillLayer::initialFillSize, &CSSToStyleMap::mapFillSize>::createHandler()); 1855 1856 setPropertyHandler(CSSPropertyBorder, ApplyPropertyExpanding<SuppressValue, CSSPropertyBorderStyle, CSSPropertyBorderWidth, CSSPropertyBorderColor>::createHandler()); 1856 1857 setPropertyHandler(CSSPropertyBorderBottom, ApplyPropertyExpanding<SuppressValue, CSSPropertyBorderBottomColor, CSSPropertyBorderBottomStyle, CSSPropertyBorderBottomWidth>::createHandler()); … … 1958 1959 setPropertyHandler(CSSPropertyVerticalAlign, ApplyPropertyVerticalAlign::createHandler()); 1959 1960 setPropertyHandler(CSSPropertyVisibility, ApplyPropertyDefault<EVisibility, &RenderStyle::visibility, EVisibility, &RenderStyle::setVisibility, EVisibility, &RenderStyle::initialVisibility>::createHandler()); 1960 setPropertyHandler(CSSPropertyWebkitAnimationDelay, ApplyPropertyAnimation<double, &Animation::delay, &Animation::setDelay, &Animation::isDelaySet, &Animation::clearDelay, &Animation::initialAnimationDelay, & StyleResolver::mapAnimationDelay, &RenderStyle::accessAnimations, &RenderStyle::animations>::createHandler());1961 setPropertyHandler(CSSPropertyWebkitAnimationDirection, ApplyPropertyAnimation<Animation::AnimationDirection, &Animation::direction, &Animation::setDirection, &Animation::isDirectionSet, &Animation::clearDirection, &Animation::initialAnimationDirection, & StyleResolver::mapAnimationDirection, &RenderStyle::accessAnimations, &RenderStyle::animations>::createHandler());1962 setPropertyHandler(CSSPropertyWebkitAnimationDuration, ApplyPropertyAnimation<double, &Animation::duration, &Animation::setDuration, &Animation::isDurationSet, &Animation::clearDuration, &Animation::initialAnimationDuration, & StyleResolver::mapAnimationDuration, &RenderStyle::accessAnimations, &RenderStyle::animations>::createHandler());1963 setPropertyHandler(CSSPropertyWebkitAnimationFillMode, ApplyPropertyAnimation<unsigned, &Animation::fillMode, &Animation::setFillMode, &Animation::isFillModeSet, &Animation::clearFillMode, &Animation::initialAnimationFillMode, & StyleResolver::mapAnimationFillMode, &RenderStyle::accessAnimations, &RenderStyle::animations>::createHandler());1964 setPropertyHandler(CSSPropertyWebkitAnimationIterationCount, ApplyPropertyAnimation<double, &Animation::iterationCount, &Animation::setIterationCount, &Animation::isIterationCountSet, &Animation::clearIterationCount, &Animation::initialAnimationIterationCount, & StyleResolver::mapAnimationIterationCount, &RenderStyle::accessAnimations, &RenderStyle::animations>::createHandler());1965 setPropertyHandler(CSSPropertyWebkitAnimationName, ApplyPropertyAnimation<const String&, &Animation::name, &Animation::setName, &Animation::isNameSet, &Animation::clearName, &Animation::initialAnimationName, & StyleResolver::mapAnimationName, &RenderStyle::accessAnimations, &RenderStyle::animations>::createHandler());1966 setPropertyHandler(CSSPropertyWebkitAnimationPlayState, ApplyPropertyAnimation<EAnimPlayState, &Animation::playState, &Animation::setPlayState, &Animation::isPlayStateSet, &Animation::clearPlayState, &Animation::initialAnimationPlayState, & StyleResolver::mapAnimationPlayState, &RenderStyle::accessAnimations, &RenderStyle::animations>::createHandler());1967 setPropertyHandler(CSSPropertyWebkitAnimationTimingFunction, ApplyPropertyAnimation<const PassRefPtr<TimingFunction>, &Animation::timingFunction, &Animation::setTimingFunction, &Animation::isTimingFunctionSet, &Animation::clearTimingFunction, &Animation::initialAnimationTimingFunction, & StyleResolver::mapAnimationTimingFunction, &RenderStyle::accessAnimations, &RenderStyle::animations>::createHandler());1961 setPropertyHandler(CSSPropertyWebkitAnimationDelay, ApplyPropertyAnimation<double, &Animation::delay, &Animation::setDelay, &Animation::isDelaySet, &Animation::clearDelay, &Animation::initialAnimationDelay, &CSSToStyleMap::mapAnimationDelay, &RenderStyle::accessAnimations, &RenderStyle::animations>::createHandler()); 1962 setPropertyHandler(CSSPropertyWebkitAnimationDirection, ApplyPropertyAnimation<Animation::AnimationDirection, &Animation::direction, &Animation::setDirection, &Animation::isDirectionSet, &Animation::clearDirection, &Animation::initialAnimationDirection, &CSSToStyleMap::mapAnimationDirection, &RenderStyle::accessAnimations, &RenderStyle::animations>::createHandler()); 1963 setPropertyHandler(CSSPropertyWebkitAnimationDuration, ApplyPropertyAnimation<double, &Animation::duration, &Animation::setDuration, &Animation::isDurationSet, &Animation::clearDuration, &Animation::initialAnimationDuration, &CSSToStyleMap::mapAnimationDuration, &RenderStyle::accessAnimations, &RenderStyle::animations>::createHandler()); 1964 setPropertyHandler(CSSPropertyWebkitAnimationFillMode, ApplyPropertyAnimation<unsigned, &Animation::fillMode, &Animation::setFillMode, &Animation::isFillModeSet, &Animation::clearFillMode, &Animation::initialAnimationFillMode, &CSSToStyleMap::mapAnimationFillMode, &RenderStyle::accessAnimations, &RenderStyle::animations>::createHandler()); 1965 setPropertyHandler(CSSPropertyWebkitAnimationIterationCount, ApplyPropertyAnimation<double, &Animation::iterationCount, &Animation::setIterationCount, &Animation::isIterationCountSet, &Animation::clearIterationCount, &Animation::initialAnimationIterationCount, &CSSToStyleMap::mapAnimationIterationCount, &RenderStyle::accessAnimations, &RenderStyle::animations>::createHandler()); 1966 setPropertyHandler(CSSPropertyWebkitAnimationName, ApplyPropertyAnimation<const String&, &Animation::name, &Animation::setName, &Animation::isNameSet, &Animation::clearName, &Animation::initialAnimationName, &CSSToStyleMap::mapAnimationName, &RenderStyle::accessAnimations, &RenderStyle::animations>::createHandler()); 1967 setPropertyHandler(CSSPropertyWebkitAnimationPlayState, ApplyPropertyAnimation<EAnimPlayState, &Animation::playState, &Animation::setPlayState, &Animation::isPlayStateSet, &Animation::clearPlayState, &Animation::initialAnimationPlayState, &CSSToStyleMap::mapAnimationPlayState, &RenderStyle::accessAnimations, &RenderStyle::animations>::createHandler()); 1968 setPropertyHandler(CSSPropertyWebkitAnimationTimingFunction, ApplyPropertyAnimation<const PassRefPtr<TimingFunction>, &Animation::timingFunction, &Animation::setTimingFunction, &Animation::isTimingFunctionSet, &Animation::clearTimingFunction, &Animation::initialAnimationTimingFunction, &CSSToStyleMap::mapAnimationTimingFunction, &RenderStyle::accessAnimations, &RenderStyle::animations>::createHandler()); 1968 1969 setPropertyHandler(CSSPropertyWebkitAppearance, ApplyPropertyDefault<ControlPart, &RenderStyle::appearance, ControlPart, &RenderStyle::setAppearance, ControlPart, &RenderStyle::initialAppearance>::createHandler()); 1969 1970 setPropertyHandler(CSSPropertyWebkitAspectRatio, ApplyPropertyAspectRatio::createHandler()); 1970 1971 setPropertyHandler(CSSPropertyWebkitBackfaceVisibility, ApplyPropertyDefault<EBackfaceVisibility, &RenderStyle::backfaceVisibility, EBackfaceVisibility, &RenderStyle::setBackfaceVisibility, EBackfaceVisibility, &RenderStyle::initialBackfaceVisibility>::createHandler()); 1971 1972 setPropertyHandler(CSSPropertyWebkitBackgroundClip, CSSPropertyBackgroundClip); 1972 setPropertyHandler(CSSPropertyWebkitBackgroundComposite, ApplyPropertyFillLayer<CompositeOperator, CSSPropertyWebkitBackgroundComposite, BackgroundFillLayer, &RenderStyle::accessBackgroundLayers, &RenderStyle::backgroundLayers, &FillLayer::isCompositeSet, &FillLayer::composite, &FillLayer::setComposite, &FillLayer::clearComposite, &FillLayer::initialFillComposite, & StyleResolver::mapFillComposite>::createHandler());1973 setPropertyHandler(CSSPropertyWebkitBackgroundComposite, ApplyPropertyFillLayer<CompositeOperator, CSSPropertyWebkitBackgroundComposite, BackgroundFillLayer, &RenderStyle::accessBackgroundLayers, &RenderStyle::backgroundLayers, &FillLayer::isCompositeSet, &FillLayer::composite, &FillLayer::setComposite, &FillLayer::clearComposite, &FillLayer::initialFillComposite, &CSSToStyleMap::mapFillComposite>::createHandler()); 1973 1974 setPropertyHandler(CSSPropertyWebkitBackgroundOrigin, CSSPropertyBackgroundOrigin); 1974 1975 setPropertyHandler(CSSPropertyWebkitBackgroundSize, CSSPropertyBackgroundSize); … … 2038 2039 setPropertyHandler(CSSPropertyWebkitMarqueeDirection, ApplyPropertyDefault<EMarqueeDirection, &RenderStyle::marqueeDirection, EMarqueeDirection, &RenderStyle::setMarqueeDirection, EMarqueeDirection, &RenderStyle::initialMarqueeDirection>::createHandler()); 2039 2040 setPropertyHandler(CSSPropertyWebkitMarqueeStyle, ApplyPropertyDefault<EMarqueeBehavior, &RenderStyle::marqueeBehavior, EMarqueeBehavior, &RenderStyle::setMarqueeBehavior, EMarqueeBehavior, &RenderStyle::initialMarqueeBehavior>::createHandler()); 2040 setPropertyHandler(CSSPropertyWebkitMaskAttachment, ApplyPropertyFillLayer<EFillAttachment, CSSPropertyWebkitMaskAttachment, MaskFillLayer, &RenderStyle::accessMaskLayers, &RenderStyle::maskLayers, &FillLayer::isAttachmentSet, &FillLayer::attachment, &FillLayer::setAttachment, &FillLayer::clearAttachment, &FillLayer::initialFillAttachment, & StyleResolver::mapFillAttachment>::createHandler());2041 setPropertyHandler(CSSPropertyWebkitMaskAttachment, ApplyPropertyFillLayer<EFillAttachment, CSSPropertyWebkitMaskAttachment, MaskFillLayer, &RenderStyle::accessMaskLayers, &RenderStyle::maskLayers, &FillLayer::isAttachmentSet, &FillLayer::attachment, &FillLayer::setAttachment, &FillLayer::clearAttachment, &FillLayer::initialFillAttachment, &CSSToStyleMap::mapFillAttachment>::createHandler()); 2041 2042 setPropertyHandler(CSSPropertyWebkitMaskBoxImage, ApplyPropertyBorderImage<Mask, CSSPropertyWebkitMaskBoxImage, &RenderStyle::maskBoxImage, &RenderStyle::setMaskBoxImage>::createHandler()); 2042 2043 setPropertyHandler(CSSPropertyWebkitMaskBoxImageOutset, ApplyPropertyBorderImageModifier<Mask, Outset>::createHandler()); … … 2045 2046 setPropertyHandler(CSSPropertyWebkitMaskBoxImageSource, ApplyPropertyBorderImageSource<CSSPropertyWebkitMaskBoxImageSource, &RenderStyle::maskBoxImageSource, &RenderStyle::setMaskBoxImageSource, &RenderStyle::initialMaskBoxImageSource>::createHandler()); 2046 2047 setPropertyHandler(CSSPropertyWebkitMaskBoxImageWidth, ApplyPropertyBorderImageModifier<Mask, Width>::createHandler()); 2047 setPropertyHandler(CSSPropertyWebkitMaskClip, ApplyPropertyFillLayer<EFillBox, CSSPropertyWebkitMaskClip, MaskFillLayer, &RenderStyle::accessMaskLayers, &RenderStyle::maskLayers, &FillLayer::isClipSet, &FillLayer::clip, &FillLayer::setClip, &FillLayer::clearClip, &FillLayer::initialFillClip, & StyleResolver::mapFillClip>::createHandler());2048 setPropertyHandler(CSSPropertyWebkitMaskComposite, ApplyPropertyFillLayer<CompositeOperator, CSSPropertyWebkitMaskComposite, MaskFillLayer, &RenderStyle::accessMaskLayers, &RenderStyle::maskLayers, &FillLayer::isCompositeSet, &FillLayer::composite, &FillLayer::setComposite, &FillLayer::clearComposite, &FillLayer::initialFillComposite, & StyleResolver::mapFillComposite>::createHandler());2049 setPropertyHandler(CSSPropertyWebkitMaskImage, ApplyPropertyFillLayer<StyleImage*, CSSPropertyWebkitMaskImage, MaskFillLayer, &RenderStyle::accessMaskLayers, &RenderStyle::maskLayers, &FillLayer::isImageSet, &FillLayer::image, &FillLayer::setImage, &FillLayer::clearImage, &FillLayer::initialFillImage, & StyleResolver::mapFillImage>::createHandler());2050 setPropertyHandler(CSSPropertyWebkitMaskOrigin, ApplyPropertyFillLayer<EFillBox, CSSPropertyWebkitMaskOrigin, MaskFillLayer, &RenderStyle::accessMaskLayers, &RenderStyle::maskLayers, &FillLayer::isOriginSet, &FillLayer::origin, &FillLayer::setOrigin, &FillLayer::clearOrigin, &FillLayer::initialFillOrigin, & StyleResolver::mapFillOrigin>::createHandler());2048 setPropertyHandler(CSSPropertyWebkitMaskClip, ApplyPropertyFillLayer<EFillBox, CSSPropertyWebkitMaskClip, MaskFillLayer, &RenderStyle::accessMaskLayers, &RenderStyle::maskLayers, &FillLayer::isClipSet, &FillLayer::clip, &FillLayer::setClip, &FillLayer::clearClip, &FillLayer::initialFillClip, &CSSToStyleMap::mapFillClip>::createHandler()); 2049 setPropertyHandler(CSSPropertyWebkitMaskComposite, ApplyPropertyFillLayer<CompositeOperator, CSSPropertyWebkitMaskComposite, MaskFillLayer, &RenderStyle::accessMaskLayers, &RenderStyle::maskLayers, &FillLayer::isCompositeSet, &FillLayer::composite, &FillLayer::setComposite, &FillLayer::clearComposite, &FillLayer::initialFillComposite, &CSSToStyleMap::mapFillComposite>::createHandler()); 2050 setPropertyHandler(CSSPropertyWebkitMaskImage, ApplyPropertyFillLayer<StyleImage*, CSSPropertyWebkitMaskImage, MaskFillLayer, &RenderStyle::accessMaskLayers, &RenderStyle::maskLayers, &FillLayer::isImageSet, &FillLayer::image, &FillLayer::setImage, &FillLayer::clearImage, &FillLayer::initialFillImage, &CSSToStyleMap::mapFillImage>::createHandler()); 2051 setPropertyHandler(CSSPropertyWebkitMaskOrigin, ApplyPropertyFillLayer<EFillBox, CSSPropertyWebkitMaskOrigin, MaskFillLayer, &RenderStyle::accessMaskLayers, &RenderStyle::maskLayers, &FillLayer::isOriginSet, &FillLayer::origin, &FillLayer::setOrigin, &FillLayer::clearOrigin, &FillLayer::initialFillOrigin, &CSSToStyleMap::mapFillOrigin>::createHandler()); 2051 2052 setPropertyHandler(CSSPropertyWebkitMaskPosition, ApplyPropertyExpanding<SuppressValue, CSSPropertyWebkitMaskPositionX, CSSPropertyWebkitMaskPositionY>::createHandler()); 2052 setPropertyHandler(CSSPropertyWebkitMaskPositionX, ApplyPropertyFillLayer<Length, CSSPropertyWebkitMaskPositionX, MaskFillLayer, &RenderStyle::accessMaskLayers, &RenderStyle::maskLayers, &FillLayer::isXPositionSet, &FillLayer::xPosition, &FillLayer::setXPosition, &FillLayer::clearXPosition, &FillLayer::initialFillXPosition, & StyleResolver::mapFillXPosition>::createHandler());2053 setPropertyHandler(CSSPropertyWebkitMaskPositionY, ApplyPropertyFillLayer<Length, CSSPropertyWebkitMaskPositionY, MaskFillLayer, &RenderStyle::accessMaskLayers, &RenderStyle::maskLayers, &FillLayer::isYPositionSet, &FillLayer::yPosition, &FillLayer::setYPosition, &FillLayer::clearYPosition, &FillLayer::initialFillYPosition, & StyleResolver::mapFillYPosition>::createHandler());2053 setPropertyHandler(CSSPropertyWebkitMaskPositionX, ApplyPropertyFillLayer<Length, CSSPropertyWebkitMaskPositionX, MaskFillLayer, &RenderStyle::accessMaskLayers, &RenderStyle::maskLayers, &FillLayer::isXPositionSet, &FillLayer::xPosition, &FillLayer::setXPosition, &FillLayer::clearXPosition, &FillLayer::initialFillXPosition, &CSSToStyleMap::mapFillXPosition>::createHandler()); 2054 setPropertyHandler(CSSPropertyWebkitMaskPositionY, ApplyPropertyFillLayer<Length, CSSPropertyWebkitMaskPositionY, MaskFillLayer, &RenderStyle::accessMaskLayers, &RenderStyle::maskLayers, &FillLayer::isYPositionSet, &FillLayer::yPosition, &FillLayer::setYPosition, &FillLayer::clearYPosition, &FillLayer::initialFillYPosition, &CSSToStyleMap::mapFillYPosition>::createHandler()); 2054 2055 setPropertyHandler(CSSPropertyWebkitMaskRepeat, ApplyPropertyExpanding<SuppressValue, CSSPropertyBackgroundRepeatX, CSSPropertyBackgroundRepeatY>::createHandler()); 2055 setPropertyHandler(CSSPropertyWebkitMaskRepeatX, ApplyPropertyFillLayer<EFillRepeat, CSSPropertyWebkitMaskRepeatX, MaskFillLayer, &RenderStyle::accessMaskLayers, &RenderStyle::maskLayers, &FillLayer::isRepeatXSet, &FillLayer::repeatX, &FillLayer::setRepeatX, &FillLayer::clearRepeatX, &FillLayer::initialFillRepeatX, & StyleResolver::mapFillRepeatX>::createHandler());2056 setPropertyHandler(CSSPropertyWebkitMaskRepeatY, ApplyPropertyFillLayer<EFillRepeat, CSSPropertyWebkitMaskRepeatY, MaskFillLayer, &RenderStyle::accessMaskLayers, &RenderStyle::maskLayers, &FillLayer::isRepeatYSet, &FillLayer::repeatY, &FillLayer::setRepeatY, &FillLayer::clearRepeatY, &FillLayer::initialFillRepeatY, & StyleResolver::mapFillRepeatY>::createHandler());2057 setPropertyHandler(CSSPropertyWebkitMaskSize, ApplyPropertyFillLayer<FillSize, CSSPropertyWebkitMaskSize, MaskFillLayer, &RenderStyle::accessMaskLayers, &RenderStyle::maskLayers, &FillLayer::isSizeSet, &FillLayer::size, &FillLayer::setSize, &FillLayer::clearSize, &FillLayer::initialFillSize, & StyleResolver::mapFillSize>::createHandler());2056 setPropertyHandler(CSSPropertyWebkitMaskRepeatX, ApplyPropertyFillLayer<EFillRepeat, CSSPropertyWebkitMaskRepeatX, MaskFillLayer, &RenderStyle::accessMaskLayers, &RenderStyle::maskLayers, &FillLayer::isRepeatXSet, &FillLayer::repeatX, &FillLayer::setRepeatX, &FillLayer::clearRepeatX, &FillLayer::initialFillRepeatX, &CSSToStyleMap::mapFillRepeatX>::createHandler()); 2057 setPropertyHandler(CSSPropertyWebkitMaskRepeatY, ApplyPropertyFillLayer<EFillRepeat, CSSPropertyWebkitMaskRepeatY, MaskFillLayer, &RenderStyle::accessMaskLayers, &RenderStyle::maskLayers, &FillLayer::isRepeatYSet, &FillLayer::repeatY, &FillLayer::setRepeatY, &FillLayer::clearRepeatY, &FillLayer::initialFillRepeatY, &CSSToStyleMap::mapFillRepeatY>::createHandler()); 2058 setPropertyHandler(CSSPropertyWebkitMaskSize, ApplyPropertyFillLayer<FillSize, CSSPropertyWebkitMaskSize, MaskFillLayer, &RenderStyle::accessMaskLayers, &RenderStyle::maskLayers, &FillLayer::isSizeSet, &FillLayer::size, &FillLayer::setSize, &FillLayer::clearSize, &FillLayer::initialFillSize, &CSSToStyleMap::mapFillSize>::createHandler()); 2058 2059 setPropertyHandler(CSSPropertyWebkitNbspMode, ApplyPropertyDefault<ENBSPMode, &RenderStyle::nbspMode, ENBSPMode, &RenderStyle::setNBSPMode, ENBSPMode, &RenderStyle::initialNBSPMode>::createHandler()); 2059 2060 setPropertyHandler(CSSPropertyWebkitPerspectiveOrigin, ApplyPropertyExpanding<SuppressValue, CSSPropertyWebkitPerspectiveOriginX, CSSPropertyWebkitPerspectiveOriginY>::createHandler()); … … 2081 2082 setPropertyHandler(CSSPropertyWebkitTransformOriginZ, ApplyPropertyComputeLength<float, &RenderStyle::transformOriginZ, &RenderStyle::setTransformOriginZ, &RenderStyle::initialTransformOriginZ>::createHandler()); 2082 2083 setPropertyHandler(CSSPropertyWebkitTransformStyle, ApplyPropertyDefault<ETransformStyle3D, &RenderStyle::transformStyle3D, ETransformStyle3D, &RenderStyle::setTransformStyle3D, ETransformStyle3D, &RenderStyle::initialTransformStyle3D>::createHandler()); 2083 setPropertyHandler(CSSPropertyWebkitTransitionDelay, ApplyPropertyAnimation<double, &Animation::delay, &Animation::setDelay, &Animation::isDelaySet, &Animation::clearDelay, &Animation::initialAnimationDelay, & StyleResolver::mapAnimationDelay, &RenderStyle::accessTransitions, &RenderStyle::transitions>::createHandler());2084 setPropertyHandler(CSSPropertyWebkitTransitionDuration, ApplyPropertyAnimation<double, &Animation::duration, &Animation::setDuration, &Animation::isDurationSet, &Animation::clearDuration, &Animation::initialAnimationDuration, & StyleResolver::mapAnimationDuration, &RenderStyle::accessTransitions, &RenderStyle::transitions>::createHandler());2085 setPropertyHandler(CSSPropertyWebkitTransitionProperty, ApplyPropertyAnimation<CSSPropertyID, &Animation::property, &Animation::setProperty, &Animation::isPropertySet, &Animation::clearProperty, &Animation::initialAnimationProperty, & StyleResolver::mapAnimationProperty, &RenderStyle::accessTransitions, &RenderStyle::transitions>::createHandler());2086 setPropertyHandler(CSSPropertyWebkitTransitionTimingFunction, ApplyPropertyAnimation<const PassRefPtr<TimingFunction>, &Animation::timingFunction, &Animation::setTimingFunction, &Animation::isTimingFunctionSet, &Animation::clearTimingFunction, &Animation::initialAnimationTimingFunction, & StyleResolver::mapAnimationTimingFunction, &RenderStyle::accessTransitions, &RenderStyle::transitions>::createHandler());2084 setPropertyHandler(CSSPropertyWebkitTransitionDelay, ApplyPropertyAnimation<double, &Animation::delay, &Animation::setDelay, &Animation::isDelaySet, &Animation::clearDelay, &Animation::initialAnimationDelay, &CSSToStyleMap::mapAnimationDelay, &RenderStyle::accessTransitions, &RenderStyle::transitions>::createHandler()); 2085 setPropertyHandler(CSSPropertyWebkitTransitionDuration, ApplyPropertyAnimation<double, &Animation::duration, &Animation::setDuration, &Animation::isDurationSet, &Animation::clearDuration, &Animation::initialAnimationDuration, &CSSToStyleMap::mapAnimationDuration, &RenderStyle::accessTransitions, &RenderStyle::transitions>::createHandler()); 2086 setPropertyHandler(CSSPropertyWebkitTransitionProperty, ApplyPropertyAnimation<CSSPropertyID, &Animation::property, &Animation::setProperty, &Animation::isPropertySet, &Animation::clearProperty, &Animation::initialAnimationProperty, &CSSToStyleMap::mapAnimationProperty, &RenderStyle::accessTransitions, &RenderStyle::transitions>::createHandler()); 2087 setPropertyHandler(CSSPropertyWebkitTransitionTimingFunction, ApplyPropertyAnimation<const PassRefPtr<TimingFunction>, &Animation::timingFunction, &Animation::setTimingFunction, &Animation::isTimingFunctionSet, &Animation::clearTimingFunction, &Animation::initialAnimationTimingFunction, &CSSToStyleMap::mapAnimationTimingFunction, &RenderStyle::accessTransitions, &RenderStyle::transitions>::createHandler()); 2087 2088 setPropertyHandler(CSSPropertyWebkitUserDrag, ApplyPropertyDefault<EUserDrag, &RenderStyle::userDrag, EUserDrag, &RenderStyle::setUserDrag, EUserDrag, &RenderStyle::initialUserDrag>::createHandler()); 2088 2089 setPropertyHandler(CSSPropertyWebkitUserModify, ApplyPropertyDefault<EUserModify, &RenderStyle::userModify, EUserModify, &RenderStyle::setUserModify, EUserModify, &RenderStyle::initialUserModify>::createHandler()); -
trunk/Source/WebCore/css/StyleResolver.cpp
r121129 r121164 9 9 * Copyright (c) 2011, Code Aurora Forum. All rights reserved. 10 10 * Copyright (C) Research In Motion Limited 2011. All rights reserved. 11 * Copyright (C) 2012 Google Inc. All rights reserved. 11 12 * 12 13 * This library is free software; you can redistribute it and/or … … 375 376 , m_scopeStackParentBoundsIndex(0) 376 377 #endif 378 , m_styleMap(this) 377 379 { 378 380 Element* root = document->documentElement(); … … 3741 3743 NinePieceImage mask; 3742 3744 mask.setMaskDefaults(); 3743 m apNinePieceImage(id, reflectValue->mask(), mask);3745 m_styleMap.mapNinePieceImage(id, reflectValue->mask(), mask); 3744 3746 reflection->setMask(mask); 3745 3747 … … 4429 4431 } 4430 4432 4431 void StyleResolver::mapFillAttachment(CSSPropertyID, FillLayer* layer, CSSValue* value)4432 {4433 if (value->isInitialValue()) {4434 layer->setAttachment(FillLayer::initialFillAttachment(layer->type()));4435 return;4436 }4437 4438 if (!value->isPrimitiveValue())4439 return;4440 4441 CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value);4442 switch (primitiveValue->getIdent()) {4443 case CSSValueFixed:4444 layer->setAttachment(FixedBackgroundAttachment);4445 break;4446 case CSSValueScroll:4447 layer->setAttachment(ScrollBackgroundAttachment);4448 break;4449 case CSSValueLocal:4450 layer->setAttachment(LocalBackgroundAttachment);4451 break;4452 default:4453 return;4454 }4455 }4456 4457 void StyleResolver::mapFillClip(CSSPropertyID, FillLayer* layer, CSSValue* value)4458 {4459 if (value->isInitialValue()) {4460 layer->setClip(FillLayer::initialFillClip(layer->type()));4461 return;4462 }4463 4464 if (!value->isPrimitiveValue())4465 return;4466 4467 CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value);4468 layer->setClip(*primitiveValue);4469 }4470 4471 void StyleResolver::mapFillComposite(CSSPropertyID, FillLayer* layer, CSSValue* value)4472 {4473 if (value->isInitialValue()) {4474 layer->setComposite(FillLayer::initialFillComposite(layer->type()));4475 return;4476 }4477 4478 if (!value->isPrimitiveValue())4479 return;4480 4481 CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value);4482 layer->setComposite(*primitiveValue);4483 }4484 4485 void StyleResolver::mapFillOrigin(CSSPropertyID, FillLayer* layer, CSSValue* value)4486 {4487 if (value->isInitialValue()) {4488 layer->setOrigin(FillLayer::initialFillOrigin(layer->type()));4489 return;4490 }4491 4492 if (!value->isPrimitiveValue())4493 return;4494 4495 CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value);4496 layer->setOrigin(*primitiveValue);4497 }4498 4499 4433 PassRefPtr<StyleImage> StyleResolver::styleImage(CSSPropertyID property, CSSValue* value) 4500 4434 { … … 4539 4473 } 4540 4474 #endif 4541 4542 void StyleResolver::mapFillImage(CSSPropertyID property, FillLayer* layer, CSSValue* value)4543 {4544 if (value->isInitialValue()) {4545 layer->setImage(FillLayer::initialFillImage(layer->type()));4546 return;4547 }4548 4549 layer->setImage(styleImage(property, value));4550 }4551 4552 void StyleResolver::mapFillRepeatX(CSSPropertyID, FillLayer* layer, CSSValue* value)4553 {4554 if (value->isInitialValue()) {4555 layer->setRepeatX(FillLayer::initialFillRepeatX(layer->type()));4556 return;4557 }4558 4559 if (!value->isPrimitiveValue())4560 return;4561 4562 CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value);4563 layer->setRepeatX(*primitiveValue);4564 }4565 4566 void StyleResolver::mapFillRepeatY(CSSPropertyID, FillLayer* layer, CSSValue* value)4567 {4568 if (value->isInitialValue()) {4569 layer->setRepeatY(FillLayer::initialFillRepeatY(layer->type()));4570 return;4571 }4572 4573 if (!value->isPrimitiveValue())4574 return;4575 4576 CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value);4577 layer->setRepeatY(*primitiveValue);4578 }4579 4580 void StyleResolver::mapFillSize(CSSPropertyID, FillLayer* layer, CSSValue* value)4581 {4582 if (!value->isPrimitiveValue()) {4583 layer->setSizeType(SizeNone);4584 return;4585 }4586 4587 CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value);4588 if (primitiveValue->getIdent() == CSSValueContain)4589 layer->setSizeType(Contain);4590 else if (primitiveValue->getIdent() == CSSValueCover)4591 layer->setSizeType(Cover);4592 else4593 layer->setSizeType(SizeLength);4594 4595 LengthSize b = FillLayer::initialFillSizeLength(layer->type());4596 4597 if (value->isInitialValue() || primitiveValue->getIdent() == CSSValueContain || primitiveValue->getIdent() == CSSValueCover) {4598 layer->setSizeLength(b);4599 return;4600 }4601 4602 float zoomFactor = m_style->effectiveZoom();4603 4604 Length firstLength;4605 Length secondLength;4606 4607 if (Pair* pair = primitiveValue->getPairValue()) {4608 CSSPrimitiveValue* first = static_cast<CSSPrimitiveValue*>(pair->first());4609 CSSPrimitiveValue* second = static_cast<CSSPrimitiveValue*>(pair->second());4610 firstLength = first->convertToLength<AnyConversion>(style(), m_rootElementStyle, zoomFactor);4611 secondLength = second->convertToLength<AnyConversion>(style(), m_rootElementStyle, zoomFactor);4612 } else {4613 firstLength = primitiveValue->convertToLength<AnyConversion>(style(), m_rootElementStyle, zoomFactor);4614 secondLength = Length();4615 }4616 4617 if (firstLength.isUndefined() || secondLength.isUndefined())4618 return;4619 4620 b.setWidth(firstLength);4621 b.setHeight(secondLength);4622 layer->setSizeLength(b);4623 }4624 4625 void StyleResolver::mapFillXPosition(CSSPropertyID, FillLayer* layer, CSSValue* value)4626 {4627 if (value->isInitialValue()) {4628 layer->setXPosition(FillLayer::initialFillXPosition(layer->type()));4629 return;4630 }4631 4632 if (!value->isPrimitiveValue())4633 return;4634 4635 float zoomFactor = m_style->effectiveZoom();4636 4637 CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value);4638 Length length;4639 if (primitiveValue->isLength())4640 length = primitiveValue->computeLength<Length>(style(), m_rootElementStyle, zoomFactor);4641 else if (primitiveValue->isPercentage())4642 length = Length(primitiveValue->getDoubleValue(), Percent);4643 else if (primitiveValue->isCalculatedPercentageWithLength())4644 length = Length(primitiveValue->cssCalcValue()->toCalcValue(style(), m_rootElementStyle, zoomFactor));4645 else if (primitiveValue->isViewportPercentageLength())4646 length = primitiveValue->viewportPercentageLength();4647 else4648 return;4649 layer->setXPosition(length);4650 }4651 4652 void StyleResolver::mapFillYPosition(CSSPropertyID, FillLayer* layer, CSSValue* value)4653 {4654 if (value->isInitialValue()) {4655 layer->setYPosition(FillLayer::initialFillYPosition(layer->type()));4656 return;4657 }4658 4659 if (!value->isPrimitiveValue())4660 return;4661 4662 float zoomFactor = m_style->effectiveZoom();4663 4664 CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value);4665 Length length;4666 if (primitiveValue->isLength())4667 length = primitiveValue->computeLength<Length>(style(), m_rootElementStyle, zoomFactor);4668 else if (primitiveValue->isPercentage())4669 length = Length(primitiveValue->getDoubleValue(), Percent);4670 else if (primitiveValue->isCalculatedPercentageWithLength())4671 length = Length(primitiveValue->cssCalcValue()->toCalcValue(style(), m_rootElementStyle, zoomFactor));4672 else if (primitiveValue->isViewportPercentageLength())4673 length = primitiveValue->viewportPercentageLength();4674 else4675 return;4676 layer->setYPosition(length);4677 }4678 4679 void StyleResolver::mapAnimationDelay(Animation* animation, CSSValue* value)4680 {4681 if (value->isInitialValue()) {4682 animation->setDelay(Animation::initialAnimationDelay());4683 return;4684 }4685 4686 if (!value->isPrimitiveValue())4687 return;4688 4689 CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value);4690 animation->setDelay(primitiveValue->computeTime<float, CSSPrimitiveValue::Seconds>());4691 }4692 4693 void StyleResolver::mapAnimationDirection(Animation* layer, CSSValue* value)4694 {4695 if (value->isInitialValue()) {4696 layer->setDirection(Animation::initialAnimationDirection());4697 return;4698 }4699 4700 if (!value->isPrimitiveValue())4701 return;4702 4703 CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value);4704 switch (primitiveValue->getIdent()) {4705 case CSSValueNormal:4706 layer->setDirection(Animation::AnimationDirectionNormal);4707 break;4708 case CSSValueAlternate:4709 layer->setDirection(Animation::AnimationDirectionAlternate);4710 break;4711 case CSSValueReverse:4712 layer->setDirection(Animation::AnimationDirectionReverse);4713 break;4714 case CSSValueAlternateReverse:4715 layer->setDirection(Animation::AnimationDirectionAlternateReverse);4716 break;4717 }4718 }4719 4720 void StyleResolver::mapAnimationDuration(Animation* animation, CSSValue* value)4721 {4722 if (value->isInitialValue()) {4723 animation->setDuration(Animation::initialAnimationDuration());4724 return;4725 }4726 4727 if (!value->isPrimitiveValue())4728 return;4729 4730 CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value);4731 animation->setDuration(primitiveValue->computeTime<float, CSSPrimitiveValue::Seconds>());4732 }4733 4734 void StyleResolver::mapAnimationFillMode(Animation* layer, CSSValue* value)4735 {4736 if (value->isInitialValue()) {4737 layer->setFillMode(Animation::initialAnimationFillMode());4738 return;4739 }4740 4741 if (!value->isPrimitiveValue())4742 return;4743 4744 CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value);4745 switch (primitiveValue->getIdent()) {4746 case CSSValueNone:4747 layer->setFillMode(AnimationFillModeNone);4748 break;4749 case CSSValueForwards:4750 layer->setFillMode(AnimationFillModeForwards);4751 break;4752 case CSSValueBackwards:4753 layer->setFillMode(AnimationFillModeBackwards);4754 break;4755 case CSSValueBoth:4756 layer->setFillMode(AnimationFillModeBoth);4757 break;4758 }4759 }4760 4761 void StyleResolver::mapAnimationIterationCount(Animation* animation, CSSValue* value)4762 {4763 if (value->isInitialValue()) {4764 animation->setIterationCount(Animation::initialAnimationIterationCount());4765 return;4766 }4767 4768 if (!value->isPrimitiveValue())4769 return;4770 4771 CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value);4772 if (primitiveValue->getIdent() == CSSValueInfinite)4773 animation->setIterationCount(-1);4774 else4775 animation->setIterationCount(primitiveValue->getFloatValue());4776 }4777 4778 void StyleResolver::mapAnimationName(Animation* layer, CSSValue* value)4779 {4780 if (value->isInitialValue()) {4781 layer->setName(Animation::initialAnimationName());4782 return;4783 }4784 4785 if (!value->isPrimitiveValue())4786 return;4787 4788 CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value);4789 if (primitiveValue->getIdent() == CSSValueNone)4790 layer->setIsNoneAnimation(true);4791 else4792 layer->setName(primitiveValue->getStringValue());4793 }4794 4795 void StyleResolver::mapAnimationPlayState(Animation* layer, CSSValue* value)4796 {4797 if (value->isInitialValue()) {4798 layer->setPlayState(Animation::initialAnimationPlayState());4799 return;4800 }4801 4802 if (!value->isPrimitiveValue())4803 return;4804 4805 CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value);4806 EAnimPlayState playState = (primitiveValue->getIdent() == CSSValuePaused) ? AnimPlayStatePaused : AnimPlayStatePlaying;4807 layer->setPlayState(playState);4808 }4809 4810 void StyleResolver::mapAnimationProperty(Animation* animation, CSSValue* value)4811 {4812 if (value->isInitialValue()) {4813 animation->setAnimationMode(Animation::AnimateAll);4814 animation->setProperty(CSSPropertyInvalid);4815 return;4816 }4817 4818 if (!value->isPrimitiveValue())4819 return;4820 4821 CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value);4822 if (primitiveValue->getIdent() == CSSValueAll) {4823 animation->setAnimationMode(Animation::AnimateAll);4824 animation->setProperty(CSSPropertyInvalid);4825 } else if (primitiveValue->getIdent() == CSSValueNone) {4826 animation->setAnimationMode(Animation::AnimateNone);4827 animation->setProperty(CSSPropertyInvalid);4828 } else {4829 animation->setAnimationMode(Animation::AnimateSingleProperty);4830 animation->setProperty(static_cast<CSSPropertyID>(primitiveValue->getIdent()));4831 }4832 }4833 4834 void StyleResolver::mapAnimationTimingFunction(Animation* animation, CSSValue* value)4835 {4836 if (value->isInitialValue()) {4837 animation->setTimingFunction(Animation::initialAnimationTimingFunction());4838 return;4839 }4840 4841 if (value->isPrimitiveValue()) {4842 CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value);4843 switch (primitiveValue->getIdent()) {4844 case CSSValueLinear:4845 animation->setTimingFunction(LinearTimingFunction::create());4846 break;4847 case CSSValueEase:4848 animation->setTimingFunction(CubicBezierTimingFunction::create());4849 break;4850 case CSSValueEaseIn:4851 animation->setTimingFunction(CubicBezierTimingFunction::create(0.42, 0.0, 1.0, 1.0));4852 break;4853 case CSSValueEaseOut:4854 animation->setTimingFunction(CubicBezierTimingFunction::create(0.0, 0.0, 0.58, 1.0));4855 break;4856 case CSSValueEaseInOut:4857 animation->setTimingFunction(CubicBezierTimingFunction::create(0.42, 0.0, 0.58, 1.0));4858 break;4859 case CSSValueStepStart:4860 animation->setTimingFunction(StepsTimingFunction::create(1, true));4861 break;4862 case CSSValueStepEnd:4863 animation->setTimingFunction(StepsTimingFunction::create(1, false));4864 break;4865 }4866 return;4867 }4868 4869 if (value->isCubicBezierTimingFunctionValue()) {4870 CSSCubicBezierTimingFunctionValue* cubicTimingFunction = static_cast<CSSCubicBezierTimingFunctionValue*>(value);4871 animation->setTimingFunction(CubicBezierTimingFunction::create(cubicTimingFunction->x1(), cubicTimingFunction->y1(), cubicTimingFunction->x2(), cubicTimingFunction->y2()));4872 } else if (value->isStepsTimingFunctionValue()) {4873 CSSStepsTimingFunctionValue* stepsTimingFunction = static_cast<CSSStepsTimingFunctionValue*>(value);4874 animation->setTimingFunction(StepsTimingFunction::create(stepsTimingFunction->numberOfSteps(), stepsTimingFunction->stepAtStart()));4875 } else if (value->isLinearTimingFunctionValue())4876 animation->setTimingFunction(LinearTimingFunction::create());4877 }4878 4879 void StyleResolver::mapNinePieceImage(CSSPropertyID property, CSSValue* value, NinePieceImage& image)4880 {4881 // If we're not a value list, then we are "none" and don't need to alter the empty image at all.4882 if (!value || !value->isValueList())4883 return;4884 4885 // Retrieve the border image value.4886 CSSValueList* borderImage = static_cast<CSSValueList*>(value);4887 4888 // Set the image (this kicks off the load).4889 CSSPropertyID imageProperty;4890 if (property == CSSPropertyWebkitBorderImage)4891 imageProperty = CSSPropertyBorderImageSource;4892 else if (property == CSSPropertyWebkitMaskBoxImage)4893 imageProperty = CSSPropertyWebkitMaskBoxImageSource;4894 else4895 imageProperty = property;4896 4897 for (unsigned i = 0 ; i < borderImage->length() ; ++i) {4898 CSSValue* current = borderImage->item(i);4899 4900 if (current->isImageValue() || current->isImageGeneratorValue()4901 #if ENABLE(CSS_IMAGE_SET)4902 || current->isImageSetValue()4903 #endif4904 )4905 image.setImage(styleImage(imageProperty, current));4906 else if (current->isBorderImageSliceValue())4907 mapNinePieceImageSlice(current, image);4908 else if (current->isValueList()) {4909 CSSValueList* slashList = static_cast<CSSValueList*>(current);4910 // Map in the image slices.4911 if (slashList->item(0) && slashList->item(0)->isBorderImageSliceValue())4912 mapNinePieceImageSlice(slashList->item(0), image);4913 4914 // Map in the border slices.4915 if (slashList->item(1))4916 image.setBorderSlices(mapNinePieceImageQuad(slashList->item(1)));4917 4918 // Map in the outset.4919 if (slashList->item(2))4920 image.setOutset(mapNinePieceImageQuad(slashList->item(2)));4921 } else if (current->isPrimitiveValue()) {4922 // Set the appropriate rules for stretch/round/repeat of the slices.4923 mapNinePieceImageRepeat(current, image);4924 }4925 }4926 4927 if (property == CSSPropertyWebkitBorderImage) {4928 // We have to preserve the legacy behavior of -webkit-border-image and make the border slices4929 // also set the border widths. We don't need to worry about percentages, since we don't even support4930 // those on real borders yet.4931 if (image.borderSlices().top().isFixed())4932 style()->setBorderTopWidth(image.borderSlices().top().value());4933 if (image.borderSlices().right().isFixed())4934 style()->setBorderRightWidth(image.borderSlices().right().value());4935 if (image.borderSlices().bottom().isFixed())4936 style()->setBorderBottomWidth(image.borderSlices().bottom().value());4937 if (image.borderSlices().left().isFixed())4938 style()->setBorderLeftWidth(image.borderSlices().left().value());4939 }4940 }4941 4942 void StyleResolver::mapNinePieceImageSlice(CSSValue* value, NinePieceImage& image)4943 {4944 if (!value || !value->isBorderImageSliceValue())4945 return;4946 4947 // Retrieve the border image value.4948 CSSBorderImageSliceValue* borderImageSlice = static_cast<CSSBorderImageSliceValue*>(value);4949 4950 // Set up a length box to represent our image slices.4951 LengthBox box;4952 Quad* slices = borderImageSlice->slices();4953 if (slices->top()->isPercentage())4954 box.m_top = Length(slices->top()->getDoubleValue(), Percent);4955 else4956 box.m_top = Length(slices->top()->getIntValue(CSSPrimitiveValue::CSS_NUMBER), Fixed);4957 if (slices->bottom()->isPercentage())4958 box.m_bottom = Length(slices->bottom()->getDoubleValue(), Percent);4959 else4960 box.m_bottom = Length((int)slices->bottom()->getFloatValue(CSSPrimitiveValue::CSS_NUMBER), Fixed);4961 if (slices->left()->isPercentage())4962 box.m_left = Length(slices->left()->getDoubleValue(), Percent);4963 else4964 box.m_left = Length(slices->left()->getIntValue(CSSPrimitiveValue::CSS_NUMBER), Fixed);4965 if (slices->right()->isPercentage())4966 box.m_right = Length(slices->right()->getDoubleValue(), Percent);4967 else4968 box.m_right = Length(slices->right()->getIntValue(CSSPrimitiveValue::CSS_NUMBER), Fixed);4969 image.setImageSlices(box);4970 4971 // Set our fill mode.4972 image.setFill(borderImageSlice->m_fill);4973 }4974 4975 LengthBox StyleResolver::mapNinePieceImageQuad(CSSValue* value)4976 {4977 if (!value || !value->isPrimitiveValue())4978 return LengthBox();4979 4980 // Get our zoom value.4981 float zoom = useSVGZoomRules() ? 1.0f : style()->effectiveZoom();4982 4983 // Retrieve the primitive value.4984 CSSPrimitiveValue* borderWidths = static_cast<CSSPrimitiveValue*>(value);4985 4986 // Set up a length box to represent our image slices.4987 LengthBox box; // Defaults to 'auto' so we don't have to handle that explicitly below.4988 Quad* slices = borderWidths->getQuadValue();4989 if (slices->top()->isNumber())4990 box.m_top = Length(slices->top()->getIntValue(), Relative);4991 else if (slices->top()->isPercentage())4992 box.m_top = Length(slices->top()->getDoubleValue(CSSPrimitiveValue::CSS_PERCENTAGE), Percent);4993 else if (slices->top()->getIdent() != CSSValueAuto)4994 box.m_top = slices->top()->computeLength<Length>(style(), rootElementStyle(), zoom);4995 4996 if (slices->right()->isNumber())4997 box.m_right = Length(slices->right()->getIntValue(), Relative);4998 else if (slices->right()->isPercentage())4999 box.m_right = Length(slices->right()->getDoubleValue(CSSPrimitiveValue::CSS_PERCENTAGE), Percent);5000 else if (slices->right()->getIdent() != CSSValueAuto)5001 box.m_right = slices->right()->computeLength<Length>(style(), rootElementStyle(), zoom);5002 5003 if (slices->bottom()->isNumber())5004 box.m_bottom = Length(slices->bottom()->getIntValue(), Relative);5005 else if (slices->bottom()->isPercentage())5006 box.m_bottom = Length(slices->bottom()->getDoubleValue(CSSPrimitiveValue::CSS_PERCENTAGE), Percent);5007 else if (slices->bottom()->getIdent() != CSSValueAuto)5008 box.m_bottom = slices->bottom()->computeLength<Length>(style(), rootElementStyle(), zoom);5009 5010 if (slices->left()->isNumber())5011 box.m_left = Length(slices->left()->getIntValue(), Relative);5012 else if (slices->left()->isPercentage())5013 box.m_left = Length(slices->left()->getDoubleValue(CSSPrimitiveValue::CSS_PERCENTAGE), Percent);5014 else if (slices->left()->getIdent() != CSSValueAuto)5015 box.m_left = slices->left()->computeLength<Length>(style(), rootElementStyle(), zoom);5016 5017 return box;5018 }5019 5020 void StyleResolver::mapNinePieceImageRepeat(CSSValue* value, NinePieceImage& image)5021 {5022 if (!value || !value->isPrimitiveValue())5023 return;5024 5025 CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value);5026 Pair* pair = primitiveValue->getPairValue();5027 if (!pair || !pair->first() || !pair->second())5028 return;5029 5030 int firstIdentifier = pair->first()->getIdent();5031 int secondIdentifier = pair->second()->getIdent();5032 5033 ENinePieceImageRule horizontalRule;5034 switch (firstIdentifier) {5035 case CSSValueStretch:5036 horizontalRule = StretchImageRule;5037 break;5038 case CSSValueRound:5039 horizontalRule = RoundImageRule;5040 break;5041 case CSSValueSpace:5042 horizontalRule = SpaceImageRule;5043 break;5044 default: // CSSValueRepeat5045 horizontalRule = RepeatImageRule;5046 break;5047 }5048 image.setHorizontalRule(horizontalRule);5049 5050 ENinePieceImageRule verticalRule;5051 switch (secondIdentifier) {5052 case CSSValueStretch:5053 verticalRule = StretchImageRule;5054 break;5055 case CSSValueRound:5056 verticalRule = RoundImageRule;5057 break;5058 case CSSValueSpace:5059 verticalRule = SpaceImageRule;5060 break;5061 default: // CSSValueRepeat5062 verticalRule = RepeatImageRule;5063 break;5064 }5065 image.setVerticalRule(verticalRule);5066 }5067 4475 5068 4476 void StyleResolver::checkForTextSizeAdjust() -
trunk/Source/WebCore/css/StyleResolver.h
r120816 r121164 24 24 25 25 #include "CSSRule.h" 26 #include "CSSToStyleMap.h" 26 27 #include "CSSValueList.h" 27 28 #include "LinkHash.h" … … 412 413 static Length convertToFloatLength(CSSPrimitiveValue*, RenderStyle*, RenderStyle* rootStyle, double multiplier = 1); 413 414 415 CSSToStyleMap* styleMap() { return &m_styleMap; } 416 414 417 private: 415 418 static RenderStyle* s_styleNotYetAvailable; … … 420 423 void cacheBorderAndBackground(); 421 424 422 void mapFillAttachment(CSSPropertyID, FillLayer*, CSSValue*);423 void mapFillClip(CSSPropertyID, FillLayer*, CSSValue*);424 void mapFillComposite(CSSPropertyID, FillLayer*, CSSValue*);425 void mapFillOrigin(CSSPropertyID, FillLayer*, CSSValue*);426 void mapFillImage(CSSPropertyID, FillLayer*, CSSValue*);427 void mapFillRepeatX(CSSPropertyID, FillLayer*, CSSValue*);428 void mapFillRepeatY(CSSPropertyID, FillLayer*, CSSValue*);429 void mapFillSize(CSSPropertyID, FillLayer*, CSSValue*);430 void mapFillXPosition(CSSPropertyID, FillLayer*, CSSValue*);431 void mapFillYPosition(CSSPropertyID, FillLayer*, CSSValue*);432 433 void mapAnimationDelay(Animation*, CSSValue*);434 void mapAnimationDirection(Animation*, CSSValue*);435 void mapAnimationDuration(Animation*, CSSValue*);436 void mapAnimationFillMode(Animation*, CSSValue*);437 void mapAnimationIterationCount(Animation*, CSSValue*);438 void mapAnimationName(Animation*, CSSValue*);439 void mapAnimationPlayState(Animation*, CSSValue*);440 void mapAnimationProperty(Animation*, CSSValue*);441 void mapAnimationTimingFunction(Animation*, CSSValue*);442 443 public:444 void mapNinePieceImage(CSSPropertyID, CSSValue*, NinePieceImage&);445 void mapNinePieceImageSlice(CSSValue*, NinePieceImage&);446 LengthBox mapNinePieceImageQuad(CSSValue*);447 void mapNinePieceImageRepeat(CSSValue*, NinePieceImage&);448 425 private: 449 426 bool canShareStyleWithControl(StyledElement*) const; … … 547 524 #endif 548 525 526 CSSToStyleMap m_styleMap; 527 549 528 friend class StyleBuilder; 550 529 friend bool operator==(const MatchedProperties&, const MatchedProperties&);
Note: See TracChangeset
for help on using the changeset viewer.