Source/WebCore/ChangeLog

 12015-03-06 Brent Fulgham <bfulgham@apple.com>
 2
 3 Add 'initial' keyword support for scroll snap CSS properties
 4 https://bugs.webkit.org/show_bug.cgi?id=136345
 5 <rdar://problem/18162325>
 6
 7 Reviewed by NOBODY (OOPS!).
 8
 9 Tested by css3/scroll-snap/scroll-snap-initial.html
 10
 11 The existing implementation already had 'initial' keyword support, but did not fully follow
 12 the CSS specification. In particular, the 'initial' state for the scroll-snap-points-x and
 13 scroll-snap-points-y properties was not handled correctly.
 14
 15 Revise implementation to represent ScrollSnapPoints as a pointer, so that 'none' is a valid
 16 state.
 17
 18 * css/CSSComputedStyleDeclaration.cpp:
 19 (WebCore::scrollSnapPoints): If 'points' is null, return CSSValueNone.
 20 * css/CSSPropertyNames.in: Provide custom initial/inherit handles for snap point x/y sets.
 21 * css/StyleBuilderConverter.h:
 22 (WebCore::StyleBuilderConverter::convertScrollSnapPoints): Update to represent ScrollSnapPoints
 23 as a pointer.
 24 * css/StyleBuilderCustom.h:
 25 (WebCore::StyleBuilderCustom::applyInitialWebkitScrollSnapPointsX): Provide custom pointer-based
 26 implementation for ScrollSnapPoints.
 27 (WebCore::StyleBuilderCustom::applyInheritWebkitScrollSnapPointsX): Ditto.
 28 (WebCore::StyleBuilderCustom::applyInitialWebkitScrollSnapPointsY): Ditto.
 29 (WebCore::StyleBuilderCustom::applyInheritWebkitScrollSnapPointsY): Ditto."
 30 * page/scrolling/AxisScrollSnapOffsets.cpp:
 31 (WebCore::updateFromStyle): Handle ScrollSnapPoints as pointers.
 32 (WebCore::updateSnapOffsetsForScrollableArea): Ditto.
 33 * rendering/style/RenderStyle.cpp:
 34 (WebCore::RenderStyle::scrollSnapPointsX): Update to use pointer-based representation of ScrollSnapPoints.
 35 (WebCore::RenderStyle::scrollSnapPointsY): Ditto.
 36 (WebCore::RenderStyle::setScrollSnapPointsX): Ditto.
 37 (WebCore::RenderStyle::setScrollSnapPointsY): Ditto.
 38 (WebCore::RenderStyle::initialScrollSnapPointsX): Deleted.
 39 (WebCore::RenderStyle::initialScrollSnapPointsY): Deleted.
 40 * rendering/style/RenderStyle.h:
 41 * rendering/style/StyleScrollSnapPoints.cpp:
 42 (WebCore::StyleScrollSnapPoints::StyleScrollSnapPoints): Revise constructor to handle pointer argument.
 43 * rendering/style/StyleScrollSnapPoints.h:
 44
1452015-03-05 Roger Fong <roger_fong@apple.com>
246
347 Reskin Captions button and container on OSX.
181184

Source/WebCore/css/CSSComputedStyleDeclaration.cpp

@@static Ref<CSSValueList> getTransitionPr
11061106}
11071107
11081108#if ENABLE(CSS_SCROLL_SNAP)
1109 
11101109static Ref<CSSValueList> scrollSnapDestination(RenderStyle& style, const LengthSize& destination)
11111110{
11121111 auto list = CSSValueList::createSpaceSeparated();

@@static Ref<CSSValueList> scrollSnapDesti
11151114 return list;
11161115}
11171116
1118 static Ref<CSSValue> scrollSnapPoints(RenderStyle& style, const ScrollSnapPoints& points)
 1117static Ref<CSSValue> scrollSnapPoints(RenderStyle& style, const ScrollSnapPoints* points)
11191118{
1120  if (points.usesElements)
 1119 if (!points)
 1120 return cssValuePool().createIdentifierValue(CSSValueNone);
 1121
 1122 if (points->usesElements)
11211123 return cssValuePool().createIdentifierValue(CSSValueElements);
11221124 auto list = CSSValueList::createSpaceSeparated();
1123  for (auto& point : points.offsets)
 1125 for (auto& point : points->offsets)
11241126 list.get().append(percentageOrZoomAdjustedValue(point, &style));
1125  if (points.hasRepeat)
1126  list.get().append(cssValuePool().createValue(LengthRepeat::create(percentageOrZoomAdjustedValue(points.repeatOffset, &style))));
 1127 if (points->hasRepeat)
 1128 list.get().append(cssValuePool().createValue(LengthRepeat::create(percentageOrZoomAdjustedValue(points->repeatOffset, &style))));
11271129 return WTF::move(list);
11281130}
11291131

@@static Ref<CSSValue> scrollSnapCoordinat
11431145
11441146 return WTF::move(list);
11451147}
1146 
11471148#endif
11481149
11491150static Ref<CSSValueList> getDelayValue(const AnimationList* animList)
181156

Source/WebCore/css/CSSPropertyNames.in

@@order
560560-webkit-print-color-adjust [Inherited]
561561-webkit-rtl-ordering [Inherited, Setter=setRTLOrdering, Initial=initialRTLOrdering]
562562#if defined(ENABLE_CSS_SCROLL_SNAP)
563 -webkit-scroll-snap-points-x [Converter=ScrollSnapPoints]
564 -webkit-scroll-snap-points-y [Converter=ScrollSnapPoints]
 563-webkit-scroll-snap-points-x [Converter=ScrollSnapPoints, Custom=Initial|Inherit]
 564-webkit-scroll-snap-points-y [Converter=ScrollSnapPoints, Custom=Initial|Inherit]
565565-webkit-scroll-snap-type
566566-webkit-scroll-snap-destination [Converter=SnapCoordinatePair]
567567-webkit-scroll-snap-coordinate [Converter=ScrollSnapCoordinates, NameForMethods=ScrollSnapCoordinates]
181156

Source/WebCore/css/StyleBuilderConverter.h

@@public:
9090 static TextDecorationSkip convertTextDecorationSkip(StyleResolver&, CSSValue&);
9191 static PassRefPtr<ShapeValue> convertShapeValue(StyleResolver&, CSSValue&);
9292#if ENABLE(CSS_SCROLL_SNAP)
93  static ScrollSnapPoints convertScrollSnapPoints(StyleResolver&, CSSValue&);
 93 static std::unique_ptr<ScrollSnapPoints> convertScrollSnapPoints(StyleResolver&, CSSValue&);
9494 static LengthSize convertSnapCoordinatePair(StyleResolver&, CSSValue&, size_t offset = 0);
9595 static Vector<LengthSize> convertScrollSnapCoordinates(StyleResolver&, CSSValue&);
9696#endif

@@inline Length StyleBuilderConverter::par
708708 return downcast<CSSPrimitiveValue>(value).convertToLength<FixedIntegerConversion | PercentConversion | AutoConversion>(styleResolver.state().cssToLengthConversionData());
709709}
710710
711 inline ScrollSnapPoints StyleBuilderConverter::convertScrollSnapPoints(StyleResolver& styleResolver, CSSValue& value)
 711inline std::unique_ptr<ScrollSnapPoints> StyleBuilderConverter::convertScrollSnapPoints(StyleResolver& styleResolver, CSSValue& value)
712712{
713  ScrollSnapPoints points;
 713 auto points = std::make_unique<ScrollSnapPoints>();
714714
715715 if (is<CSSPrimitiveValue>(value)) {
716716 ASSERT(downcast<CSSPrimitiveValue>(value).getValueID() == CSSValueElements);
717  points.usesElements = true;
 717 points->usesElements = true;
718718 return points;
719719 }
720720
721  points.hasRepeat = false;
 721 points->hasRepeat = false;
722722 for (auto& currentValue : downcast<CSSValueList>(value)) {
723723 auto& itemValue = downcast<CSSPrimitiveValue>(currentValue.get());
724724 if (auto* lengthRepeat = itemValue.getLengthRepeatValue()) {
725725 if (auto* interval = lengthRepeat->interval()) {
726  points.repeatOffset = parseSnapCoordinate(styleResolver, *interval);
727  points.hasRepeat = true;
 726 points->repeatOffset = parseSnapCoordinate(styleResolver, *interval);
 727 points->hasRepeat = true;
728728 break;
729729 }
730730 }
731  points.offsets.append(parseSnapCoordinate(styleResolver, itemValue));
 731 points->offsets.append(parseSnapCoordinate(styleResolver, itemValue));
732732 }
733733
734734 return points;
181156

Source/WebCore/css/StyleBuilderCustom.h

@@public:
128128#endif
129129 static void applyValueWebkitWritingMode(StyleResolver&, CSSValue&);
130130 static void applyValueAlt(StyleResolver&, CSSValue&);
 131#if ENABLE(CSS_SCROLL_SNAP)
 132 static void applyInitialWebkitScrollSnapPointsX(StyleResolver&);
 133 static void applyInheritWebkitScrollSnapPointsX(StyleResolver&);
 134 static void applyInitialWebkitScrollSnapPointsY(StyleResolver&);
 135 static void applyInheritWebkitScrollSnapPointsY(StyleResolver&);
 136#endif
131137
132138private:
133139 static void resetEffectiveZoom(StyleResolver&);

@@void StyleBuilderCustom::applyValueAlt(S
16931699 styleResolver.style()->setContentAltText(emptyAtom);
16941700}
16951701
 1702#if ENABLE(CSS_SCROLL_SNAP)
 1703inline void StyleBuilderCustom::applyInitialWebkitScrollSnapPointsX(StyleResolver& styleResolver)
 1704{
 1705 styleResolver.style()->setScrollSnapPointsX(nullptr);
 1706}
 1707inline void StyleBuilderCustom::applyInheritWebkitScrollSnapPointsX(StyleResolver& styleResolver)
 1708{
 1709 styleResolver.style()->setScrollSnapPointsX(styleResolver.parentStyle()->scrollSnapPointsX() ? std::make_unique<ScrollSnapPoints>(*styleResolver.parentStyle()->scrollSnapPointsX()) : nullptr);
 1710}
 1711inline void StyleBuilderCustom::applyInitialWebkitScrollSnapPointsY(StyleResolver& styleResolver)
 1712{
 1713 styleResolver.style()->setScrollSnapPointsY(nullptr);
 1714}
 1715inline void StyleBuilderCustom::applyInheritWebkitScrollSnapPointsY(StyleResolver& styleResolver)
 1716{
 1717 styleResolver.style()->setScrollSnapPointsY(styleResolver.parentStyle()->scrollSnapPointsY() ? std::make_unique<ScrollSnapPoints>(*styleResolver.parentStyle()->scrollSnapPointsY()) : nullptr);
 1718}
 1719#endif
 1720
 1721
16961722} // namespace WebCore
16971723
16981724#endif // StyleBuilderCustom_h
181156

Source/WebCore/page/scrolling/AxisScrollSnapOffsets.cpp

11/*
2  * Copyright (C) 2014 Apple Inc. All rights reserved.
 2 * Copyright (C) 2014-2015 Apple Inc. All rights reserved.
33 *
44 * Redistribution and use in source and binary forms, with or without
55 * modification, are permitted provided that the following conditions

@@static void updateFromStyle(Vector<Layou
7575 snapOffsetSubsequence.append(0);
7676
7777 bool isHorizontalAxis = axis == ScrollEventAxis::Horizontal;
78  auto& points = isHorizontalAxis ? style.scrollSnapPointsX() : style.scrollSnapPointsY();
 78 auto* points = isHorizontalAxis ? style.scrollSnapPointsX() : style.scrollSnapPointsY();
7979 auto& destination = style.scrollSnapDestination();
80  bool hasRepeat = points.hasRepeat;
81  LayoutUnit repeatOffset = valueForLength(points.repeatOffset, viewSize);
 80 bool hasRepeat = points ? points->hasRepeat : false;
 81 LayoutUnit repeatOffset = points ? valueForLength(points->repeatOffset, viewSize) : LayoutUnit();
8282 LayoutUnit destinationOffset = valueForLength(isHorizontalAxis ? destination.width() : destination.height(), viewSize);
8383 LayoutUnit curSnapPositionShift = 0;
8484 LayoutUnit maxScrollOffset = scrollSize - viewSize;

@@void updateSnapOffsetsForScrollableArea(
130130 Vector<LayoutUnit> horizontalSnapOffsetSubsequence;
131131 Vector<LayoutUnit> verticalSnapOffsetSubsequence;
132132
133  if (scrollingElementStyle.scrollSnapPointsX().usesElements || scrollingElementStyle.scrollSnapPointsY().usesElements) {
134  bool shouldAddHorizontalChildOffsets = scrollingElementStyle.scrollSnapPointsX().usesElements && canComputeHorizontalOffsets;
135  bool shouldAddVerticalChildOffsets = scrollingElementStyle.scrollSnapPointsY().usesElements && canComputeVerticalOffsets;
 133 bool scrollSnapPointsXUsesElements = scrollingElementStyle.scrollSnapPointsX() ? scrollingElementStyle.scrollSnapPointsX()->usesElements : false;
 134 bool scrollSnapPointsYUsesElements = scrollingElementStyle.scrollSnapPointsY() ? scrollingElementStyle.scrollSnapPointsY()->usesElements : false;
 135
 136 if (scrollSnapPointsXUsesElements || scrollSnapPointsYUsesElements) {
 137 bool shouldAddHorizontalChildOffsets = scrollSnapPointsXUsesElements && canComputeHorizontalOffsets;
 138 bool shouldAddVerticalChildOffsets = scrollSnapPointsYUsesElements && canComputeVerticalOffsets;
136139 appendChildSnapOffsets(scrollingElement, shouldAddHorizontalChildOffsets, horizontalSnapOffsetSubsequence, shouldAddVerticalChildOffsets, verticalSnapOffsetSubsequence);
137140 }
138141
139  if (!scrollingElementStyle.scrollSnapPointsX().usesElements && canComputeHorizontalOffsets) {
140  for (auto& snapLength : scrollingElementStyle.scrollSnapPointsX().offsets)
 142 if (scrollingElementStyle.scrollSnapPointsX() && !scrollSnapPointsXUsesElements && canComputeHorizontalOffsets) {
 143 for (auto& snapLength : scrollingElementStyle.scrollSnapPointsX()->offsets)
141144 horizontalSnapOffsetSubsequence.append(valueForLength(snapLength, viewWidth));
142145 }
143146
144  if (!scrollingElementStyle.scrollSnapPointsY().usesElements && canComputeVerticalOffsets) {
145  for (auto& snapLength : scrollingElementStyle.scrollSnapPointsY().offsets)
 147 if (scrollingElementStyle.scrollSnapPointsY() && !scrollSnapPointsYUsesElements && canComputeVerticalOffsets) {
 148 for (auto& snapLength : scrollingElementStyle.scrollSnapPointsY()->offsets)
146149 verticalSnapOffsetSubsequence.append(valueForLength(snapLength, viewHeight));
147150 }
148151
181156

Source/WebCore/rendering/style/RenderStyle.cpp

11/*
22 * Copyright (C) 1999 Antti Koivisto (koivisto@kde.org)
3  * Copyright (C) 2004-2014 Apple Inc. All rights reserved.
 3 * Copyright (C) 2004-2015 Apple Inc. All rights reserved.
44 * Copyright (C) 2011 Adobe Systems Incorporated. All rights reserved.
55 *
66 * This library is free software; you can redistribute it and/or

@@void RenderStyle::setColumnStylesFromPag
18621862}
18631863
18641864#if ENABLE(CSS_SCROLL_SNAP)
1865 
1866 ScrollSnapPoints RenderStyle::initialScrollSnapPointsX()
1867 {
1868  return ScrollSnapPoints();
1869 }
1870 
1871 ScrollSnapPoints RenderStyle::initialScrollSnapPointsY()
1872 {
1873  return ScrollSnapPoints();
1874 }
1875 
18761865LengthSize RenderStyle::initialScrollSnapDestination()
18771866{
18781867 return defaultScrollSnapDestination();

@@Vector<LengthSize> RenderStyle::initialS
18831872 return Vector<LengthSize>();
18841873}
18851874
1886 const ScrollSnapPoints& RenderStyle::scrollSnapPointsX() const
 1875const ScrollSnapPoints* RenderStyle::scrollSnapPointsX() const
18871876{
1888  return rareNonInheritedData->m_scrollSnapPoints->xPoints;
 1877 return rareNonInheritedData->m_scrollSnapPoints->xPoints.get();
18891878}
18901879
1891 const ScrollSnapPoints& RenderStyle::scrollSnapPointsY() const
 1880const ScrollSnapPoints* RenderStyle::scrollSnapPointsY() const
18921881{
1893  return rareNonInheritedData->m_scrollSnapPoints->yPoints;
 1882 return rareNonInheritedData->m_scrollSnapPoints->yPoints.get();
18941883}
18951884
18961885const LengthSize& RenderStyle::scrollSnapDestination() const

@@const Vector<LengthSize>& RenderStyle::s
19031892 return rareNonInheritedData->m_scrollSnapPoints->coordinates;
19041893}
19051894
1906 void RenderStyle::setScrollSnapPointsX(ScrollSnapPoints points)
 1895void RenderStyle::setScrollSnapPointsX(std::unique_ptr<ScrollSnapPoints> points)
19071896{
1908  if (rareNonInheritedData->m_scrollSnapPoints->xPoints == points)
 1897 if (rareNonInheritedData->m_scrollSnapPoints->xPoints.get() == points.get())
19091898 return;
19101899 rareNonInheritedData.access()->m_scrollSnapPoints.access()->xPoints = WTF::move(points);
19111900}
19121901
1913 void RenderStyle::setScrollSnapPointsY(ScrollSnapPoints points)
 1902void RenderStyle::setScrollSnapPointsY(std::unique_ptr<ScrollSnapPoints> points)
19141903{
1915  if (rareNonInheritedData->m_scrollSnapPoints->yPoints == points)
 1904 if (rareNonInheritedData->m_scrollSnapPoints->yPoints.get() == points.get())
19161905 return;
19171906 rareNonInheritedData.access()->m_scrollSnapPoints.access()->yPoints = WTF::move(points);
19181907}
181156

Source/WebCore/rendering/style/RenderStyle.h

@@public:
10801080
10811081#if ENABLE(CSS_SCROLL_SNAP)
10821082 ScrollSnapType scrollSnapType() const { return static_cast<ScrollSnapType>(rareNonInheritedData->m_scrollSnapType); }
1083  const ScrollSnapPoints& scrollSnapPointsX() const;
1084  const ScrollSnapPoints& scrollSnapPointsY() const;
 1083 const ScrollSnapPoints* scrollSnapPointsX() const;
 1084 const ScrollSnapPoints* scrollSnapPointsY() const;
10851085 const LengthSize& scrollSnapDestination() const;
10861086 const Vector<LengthSize>& scrollSnapCoordinates() const;
10871087#endif

@@public:
16251625
16261626#if ENABLE(CSS_SCROLL_SNAP)
16271627 void setScrollSnapType(ScrollSnapType type) { SET_VAR(rareNonInheritedData, m_scrollSnapType, static_cast<unsigned>(type)); }
1628  void setScrollSnapPointsX(ScrollSnapPoints);
1629  void setScrollSnapPointsY(ScrollSnapPoints);
 1628 void setScrollSnapPointsX(std::unique_ptr<ScrollSnapPoints>);
 1629 void setScrollSnapPointsY(std::unique_ptr<ScrollSnapPoints>);
16301630 void setScrollSnapDestination(LengthSize);
16311631 void setScrollSnapCoordinates(Vector<LengthSize>);
16321632#endif

@@public:
19591959 static ImageResolutionSource initialImageResolutionSource() { return ImageResolutionSpecified; }
19601960 static ImageResolutionSnap initialImageResolutionSnap() { return ImageResolutionNoSnap; }
19611961 static float initialImageResolution() { return 1; }
1962  static StyleImage* initialBorderImageSource() { return 0; }
1963  static StyleImage* initialMaskBoxImageSource() { return 0; }
 1962 static StyleImage* initialBorderImageSource() { return nullptr; }
 1963 static StyleImage* initialMaskBoxImageSource() { return nullptr; }
19641964 static PrintColorAdjust initialPrintColorAdjust() { return PrintColorAdjustEconomy; }
19651965 static QuotesData* initialQuotes() { return nullptr; }
19661966 static const AtomicString& initialContentAltText() { return emptyAtom; }
19671967
19681968#if ENABLE(CSS_SCROLL_SNAP)
19691969 static ScrollSnapType initialScrollSnapType() { return ScrollSnapType::None; }
1970  static ScrollSnapPoints initialScrollSnapPointsX();
1971  static ScrollSnapPoints initialScrollSnapPointsY();
 1970 static ScrollSnapPoints* initialScrollSnapPointsX() { return nullptr; }
 1971 static ScrollSnapPoints* initialScrollSnapPointsY() { return nullptr; }
19721972 static LengthSize initialScrollSnapDestination();
19731973 static Vector<LengthSize> initialScrollSnapCoordinates();
19741974#endif
181156

Source/WebCore/rendering/style/StyleScrollSnapPoints.cpp

@@StyleScrollSnapPoints::StyleScrollSnapPo
5757
5858inline StyleScrollSnapPoints::StyleScrollSnapPoints(const StyleScrollSnapPoints& other)
5959 : RefCounted()
60  , xPoints(other.xPoints)
61  , yPoints(other.yPoints)
 60 , xPoints(other.xPoints ? std::make_unique<ScrollSnapPoints>(*other.xPoints) : nullptr)
 61 , yPoints(other.yPoints ? std::make_unique<ScrollSnapPoints>(*other.yPoints) : nullptr)
6262 , destination(other.destination)
6363 , coordinates(other.coordinates)
6464{
181156

Source/WebCore/rendering/style/StyleScrollSnapPoints.h

@@public:
5353 static Ref<StyleScrollSnapPoints> create() { return adoptRef(*new StyleScrollSnapPoints); }
5454 Ref<StyleScrollSnapPoints> copy() const;
5555
56  ScrollSnapPoints xPoints;
57  ScrollSnapPoints yPoints;
 56 std::unique_ptr<ScrollSnapPoints> xPoints;
 57 std::unique_ptr<ScrollSnapPoints> yPoints;
5858 LengthSize destination;
5959 Vector<LengthSize> coordinates;
6060
181156

LayoutTests/ChangeLog

 12015-03-06 Brent Fulgham <bfulgham@apple.com>
 2
 3 Add 'initial' keyword support for scroll snap CSS properties
 4 https://bugs.webkit.org/show_bug.cgi?id=136345
 5 <rdar://problem/18162325>
 6
 7 Reviewed by NOBODY (OOPS!).
 8
 9 * css3/scroll-snap/scroll-snap-initial.html: Added.
 10 * css3/scroll-snap/scroll-snap-initial-expected.txt: Added.
 11 * platform/efl/TestExpectations:
 12 * platform/gtk/TestExpectations:
 13 * platform/win/TestExpectations:
 14
1152015-03-06 Joseph Pecoraro <pecoraro@apple.com>
216
317 ES6: Object Literal Extensions - Methods
181184

LayoutTests/css3/scroll-snap/scroll-snap-initial-expected.txt

 1Tests 'initial' on scroll snap properties.
 2
 3On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 4
 5
 6PASS noInitial.style['-webkit-scroll-snap-type'] is ""
 7PASS window.getComputedStyle(noInitial).getPropertyValue('-webkit-scroll-snap-type') is "mandatory"
 8PASS noInitial.style['-webkit-scroll-snap-points-x'] is ""
 9PASS window.getComputedStyle(noInitial).getPropertyValue('-webkit-scroll-snap-points-x') is "repeat(100%)"
 10PASS noInitial.style['-webkit-scroll-snap-points-y'] is ""
 11PASS window.getComputedStyle(noInitial).getPropertyValue('-webkit-scroll-snap-points-y') is "repeat(100%)"
 12PASS noInitial.style['-webkit-scroll-snap-destination'] is ""
 13PASS window.getComputedStyle(noInitial).getPropertyValue('-webkit-scroll-snap-destination') is "10% 11%"
 14PASS noInitial.style['-webkit-scroll-snap-coordinate'] is ""
 15PASS window.getComputedStyle(noInitial).getPropertyValue('-webkit-scroll-snap-coordinate') is "none"
 16PASS initialType.style['-webkit-scroll-snap-type'] is "initial"
 17PASS window.getComputedStyle(initialType).getPropertyValue('-webkit-scroll-snap-type') is "none"
 18PASS initialType.style['-webkit-scroll-snap-points-x'] is ""
 19PASS window.getComputedStyle(initialType).getPropertyValue('-webkit-scroll-snap-points-x') is "repeat(100%)"
 20PASS initialType.style['-webkit-scroll-snap-points-y'] is ""
 21PASS window.getComputedStyle(initialType).getPropertyValue('-webkit-scroll-snap-points-y') is "repeat(100%)"
 22PASS initialType.style['-webkit-scroll-snap-destination'] is ""
 23PASS window.getComputedStyle(initialType).getPropertyValue('-webkit-scroll-snap-destination') is "0px 0px"
 24PASS initialType.style['-webkit-scroll-snap-coordinate'] is ""
 25PASS window.getComputedStyle(initialType).getPropertyValue('-webkit-scroll-snap-coordinate') is "15px 122px"
 26PASS initialXPoints.style['-webkit-scroll-snap-type'] is ""
 27PASS window.getComputedStyle(initialXPoints).getPropertyValue('-webkit-scroll-snap-type') is "mandatory"
 28PASS initialXPoints.style['-webkit-scroll-snap-points-x'] is "initial"
 29PASS window.getComputedStyle(initialXPoints).getPropertyValue('-webkit-scroll-snap-points-x') is "none"
 30PASS initialXPoints.style['-webkit-scroll-snap-points-y'] is ""
 31PASS window.getComputedStyle(initialXPoints).getPropertyValue('-webkit-scroll-snap-points-y') is "repeat(100%)"
 32PASS initialXPoints.style['-webkit-scroll-snap-destination'] is ""
 33PASS window.getComputedStyle(initialXPoints).getPropertyValue('-webkit-scroll-snap-destination') is "50% 70%"
 34PASS initialXPoints.style['-webkit-scroll-snap-coordinate'] is ""
 35PASS window.getComputedStyle(initialXPoints).getPropertyValue('-webkit-scroll-snap-coordinate') is "100% 50%"
 36PASS initialYPoints.style['-webkit-scroll-snap-type'] is ""
 37PASS window.getComputedStyle(initialYPoints).getPropertyValue('-webkit-scroll-snap-type') is "mandatory"
 38PASS initialYPoints.style['-webkit-scroll-snap-points-x'] is ""
 39PASS window.getComputedStyle(initialYPoints).getPropertyValue('-webkit-scroll-snap-points-x') is "repeat(100%)"
 40PASS initialYPoints.style['-webkit-scroll-snap-points-y'] is "initial"
 41PASS window.getComputedStyle(initialYPoints).getPropertyValue('-webkit-scroll-snap-points-y') is "none"
 42PASS initialYPoints.style['-webkit-scroll-snap-destination'] is ""
 43PASS window.getComputedStyle(initialYPoints).getPropertyValue('-webkit-scroll-snap-destination') is "10px 20px"
 44PASS initialYPoints.style['-webkit-scroll-snap-coordinate'] is ""
 45PASS window.getComputedStyle(initialYPoints).getPropertyValue('-webkit-scroll-snap-coordinate') is "50% 100%"
 46PASS initialDestination.style['-webkit-scroll-snap-type'] is ""
 47PASS window.getComputedStyle(initialDestination).getPropertyValue('-webkit-scroll-snap-type') is "proximity"
 48PASS initialDestination.style['-webkit-scroll-snap-points-x'] is ""
 49PASS window.getComputedStyle(initialDestination).getPropertyValue('-webkit-scroll-snap-points-x') is "repeat(100%)"
 50PASS initialDestination.style['-webkit-scroll-snap-points-y'] is ""
 51PASS window.getComputedStyle(initialDestination).getPropertyValue('-webkit-scroll-snap-points-y') is "repeat(100%)"
 52PASS initialDestination.style['-webkit-scroll-snap-destination'] is "initial"
 53PASS window.getComputedStyle(initialDestination).getPropertyValue('-webkit-scroll-snap-destination') is "0px 0px"
 54PASS initialDestination.style['-webkit-scroll-snap-coordinate'] is ""
 55PASS window.getComputedStyle(initialDestination).getPropertyValue('-webkit-scroll-snap-coordinate') is "10px 10px"
 56PASS initialSnapCoordinate.style['-webkit-scroll-snap-type'] is ""
 57PASS window.getComputedStyle(initialSnapCoordinate).getPropertyValue('-webkit-scroll-snap-type') is "mandatory"
 58PASS initialSnapCoordinate.style['-webkit-scroll-snap-points-x'] is ""
 59PASS window.getComputedStyle(initialSnapCoordinate).getPropertyValue('-webkit-scroll-snap-points-x') is "repeat(100%)"
 60PASS initialSnapCoordinate.style['-webkit-scroll-snap-points-y'] is ""
 61PASS window.getComputedStyle(initialSnapCoordinate).getPropertyValue('-webkit-scroll-snap-points-y') is "repeat(100%)"
 62PASS initialSnapCoordinate.style['-webkit-scroll-snap-destination'] is ""
 63PASS window.getComputedStyle(initialSnapCoordinate).getPropertyValue('-webkit-scroll-snap-destination') is "10% 10%"
 64PASS initialSnapCoordinate.style['-webkit-scroll-snap-coordinate'] is "initial"
 65PASS window.getComputedStyle(initialSnapCoordinate).getPropertyValue('-webkit-scroll-snap-coordinate') is "none"
 66PASS allInitial.style['-webkit-scroll-snap-type'] is "initial"
 67PASS window.getComputedStyle(allInitial).getPropertyValue('-webkit-scroll-snap-type') is "none"
 68PASS allInitial.style['-webkit-scroll-snap-points-x'] is "initial"
 69PASS window.getComputedStyle(allInitial).getPropertyValue('-webkit-scroll-snap-points-x') is "none"
 70PASS allInitial.style['-webkit-scroll-snap-points-y'] is "initial"
 71PASS window.getComputedStyle(allInitial).getPropertyValue('-webkit-scroll-snap-points-y') is "none"
 72PASS allInitial.style['-webkit-scroll-snap-destination'] is "initial"
 73PASS window.getComputedStyle(allInitial).getPropertyValue('-webkit-scroll-snap-destination') is "0px 0px"
 74PASS allInitial.style['-webkit-scroll-snap-coordinate'] is "initial"
 75PASS window.getComputedStyle(allInitial).getPropertyValue('-webkit-scroll-snap-coordinate') is "none"
 76PASS allInitialY.style['-webkit-scroll-snap-type'] is "initial"
 77PASS window.getComputedStyle(allInitialY).getPropertyValue('-webkit-scroll-snap-type') is "none"
 78PASS allInitialY.style['-webkit-scroll-snap-points-x'] is "initial"
 79PASS window.getComputedStyle(allInitialY).getPropertyValue('-webkit-scroll-snap-points-x') is "none"
 80PASS allInitialY.style['-webkit-scroll-snap-points-y'] is "initial"
 81PASS window.getComputedStyle(allInitialY).getPropertyValue('-webkit-scroll-snap-points-y') is "none"
 82PASS allInitialY.style['-webkit-scroll-snap-destination'] is "initial"
 83PASS window.getComputedStyle(allInitialY).getPropertyValue('-webkit-scroll-snap-destination') is "0px 0px"
 84PASS allInitialY.style['-webkit-scroll-snap-coordinate'] is "initial"
 85PASS window.getComputedStyle(allInitialY).getPropertyValue('-webkit-scroll-snap-coordinate') is "none"
 86PASS successfullyParsed is true
 87
 88TEST COMPLETE
 89
0

LayoutTests/css3/scroll-snap/scroll-snap-initial.html

 1<!DOCTYPE html>
 2<html>
 3 <head>
 4 <style>
 5 .horizontalGallery {
 6 width: 400px;
 7 height: 50px;
 8 overflow-y: hidden;
 9 overflow-x: auto;
 10 }
 11 .verticalGallery {
 12 width: 400px;
 13 height: 50px;
 14 display: inline-block;
 15 overflow-x: hidden;
 16 overflow-y: auto;
 17 }
 18 .horizontalGalleryDrawer {
 19 width: 3000px;
 20 height: 50px;
 21 }
 22 .verticalGalleryDrawer {
 23 width: 400px;
 24 height: 300px;
 25 }
 26 .colorBox {
 27 height: 50px;
 28 width: 400px;
 29 float: left;
 30 }
 31
 32 .noInitial {
 33 -webkit-scroll-snap-type: mandatory;
 34 -webkit-scroll-snap-points-x: repeat(100%);
 35 -webkit-scroll-snap-points-y: repeat(100%);
 36 -webkit-scroll-snap-destination: 10% 11%;
 37 -webkit-scroll-snap-coordinate: none;
 38 }
 39
 40 .initialType {
 41 -webkit-scroll-snap-type: initial;
 42 -webkit-scroll-snap-points-x: repeat(100%);
 43 -webkit-scroll-snap-points-y: repeat(100%);
 44 -webkit-scroll-snap-destination: 0px 0px;
 45 -webkit-scroll-snap-coordinate: 15px 122px;
 46 }
 47
 48 .initialXPoints {
 49 -webkit-scroll-snap-type: mandatory;
 50 -webkit-scroll-snap-points-x: initial;
 51 -webkit-scroll-snap-points-y: repeat(100%);
 52 -webkit-scroll-snap-destination: 50% 70%;
 53 -webkit-scroll-snap-coordinate: 100% 50%;
 54 }
 55
 56 .initialYPoints {
 57 -webkit-scroll-snap-type: mandatory;
 58 -webkit-scroll-snap-points-x: repeat(100%);
 59 -webkit-scroll-snap-points-y: initial;
 60 -webkit-scroll-snap-destination: 10px 20px;
 61 -webkit-scroll-snap-coordinate: 50% 100%;
 62 }
 63
 64 .initialDestination {
 65 -webkit-scroll-snap-type: proximity;
 66 -webkit-scroll-snap-points-x: repeat(100%);
 67 -webkit-scroll-snap-points-y: repeat(100%);
 68 -webkit-scroll-snap-destination: initial;
 69 -webkit-scroll-snap-coordinate: 10px 10px;
 70 }
 71
 72 .initialSnapCoordinate {
 73 -webkit-scroll-snap-type: mandatory;
 74 -webkit-scroll-snap-points-x: repeat(100%);
 75 -webkit-scroll-snap-points-y: repeat(100%);
 76 -webkit-scroll-snap-destination: 10% 10%;
 77 -webkit-scroll-snap-coordinate: initial;
 78 }
 79
 80 .allInitial {
 81 -webkit-scroll-snap-type: initial;
 82 -webkit-scroll-snap-points-x: initial;
 83 -webkit-scroll-snap-points-y: initial;
 84 -webkit-scroll-snap-destination: initial;
 85 -webkit-scroll-snap-coordinate: initial
 86 }
 87
 88 #item0 { background-color: red; }
 89 #item1 { background-color: green; }
 90 #item2 { background-color: blue; }
 91 #item3 { background-color: aqua; }
 92 #item4 { background-color: yellow; }
 93 #item5 { background-color: fuchsia; }
 94 </style>
 95 <script src="../../resources/js-test-pre.js"></script>
 96 </head>
 97 <body>
 98 <div style="width: 400px">
 99 <div id="noInitial" class="horizontalGallery noInitial">
 100 <div class="horizontalGalleryDrawer">
 101 <div id="item0" class="colorBox"></div>
 102 <div id="item1" class="colorBox"></div>
 103 <div id="item2" class="colorBox"></div>
 104 <div id="item3" class="colorBox"></div>
 105 <div id="item4" class="colorBox"></div>
 106 <div id="item5" class="colorBox"></div>
 107 </div>
 108 </div>
 109 <div id="initialType" class="horizontalGallery initialType" style="-webkit-scroll-snap-type: initial">
 110 <div class="horizontalGalleryDrawer">
 111 <div id="item0" class="colorBox"></div>
 112 <div id="item1" class="colorBox"></div>
 113 <div id="item2" class="colorBox"></div>
 114 <div id="item3" class="colorBox"></div>
 115 <div id="item4" class="colorBox"></div>
 116 <div id="item5" class="colorBox"></div>
 117 </div>
 118 </div>
 119 <div id="initialXPoints" class="horizontalGallery initialXPoints" style="-webkit-scroll-snap-points-x: initial">
 120 <div class="horizontalGalleryDrawer">
 121 <div id="item0" class="colorBox"></div>
 122 <div id="item1" class="colorBox"></div>
 123 <div id="item2" class="colorBox"></div>
 124 <div id="item3" class="colorBox"></div>
 125 <div id="item4" class="colorBox"></div>
 126 <div id="item5" class="colorBox"></div>
 127 </div>
 128 </div>
 129 <div id="initialYPoints" class="horizontalGallery initialYPoints" style="-webkit-scroll-snap-points-y: initial">
 130 <div class="horizontalGalleryDrawer">
 131 <div id="item0" class="colorBox"></div>
 132 <div id="item1" class="colorBox"></div>
 133 <div id="item2" class="colorBox"></div>
 134 <div id="item3" class="colorBox"></div>
 135 <div id="item4" class="colorBox"></div>
 136 <div id="item5" class="colorBox"></div>
 137 </div>
 138 </div>
 139 <div id="initialDestination" class="horizontalGallery initialDestination" style="-webkit-scroll-snap-destination: initial">
 140 <div class="horizontalGalleryDrawer">
 141 <div id="item0" class="colorBox"></div>
 142 <div id="item1" class="colorBox"></div>
 143 <div id="item2" class="colorBox"></div>
 144 <div id="item3" class="colorBox"></div>
 145 <div id="item4" class="colorBox"></div>
 146 <div id="item5" class="colorBox"></div>
 147 </div>
 148 </div>
 149 <div id="initialSnapCoordinate" class="horizontalGallery initialSnapCoordinate" style="-webkit-scroll-snap-coordinate: initial">
 150 <div class="horizontalGalleryDrawer">
 151 <div id="item0" class="colorBox"></div>
 152 <div id="item1" class="colorBox"></div>
 153 <div id="item2" class="colorBox"></div>
 154 <div id="item3" class="colorBox"></div>
 155 <div id="item4" class="colorBox"></div>
 156 <div id="item5" class="colorBox"></div>
 157 </div>
 158 </div>
 159 <div id="allInitial" class="horizontalGallery allInitial" style="-webkit-scroll-snap-type: initial; -webkit-scroll-snap-points-x: initial; -webkit-scroll-snap-points-y: initial; -webkit-scroll-snap-destination: initial; -webkit-scroll-snap-coordinate: initial">
 160 <div class="horizontalGalleryDrawer">
 161 <div id="item0" class="colorBox"></div>
 162 <div id="item1" class="colorBox"></div>
 163 <div id="item2" class="colorBox"></div>
 164 <div id="item3" class="colorBox"></div>
 165 <div id="item4" class="colorBox"></div>
 166 <div id="item5" class="colorBox"></div>
 167 </div>
 168 </div>
 169 <div id="allInitialY" class="verticalGallery noInitial" style="-webkit-scroll-snap-type: initial; -webkit-scroll-snap-points-x: initial; -webkit-scroll-snap-points-y: initial; -webkit-scroll-snap-destination: initial; -webkit-scroll-snap-coordinate: initial">
 170 <div class="verticalGalleryDrawer">
 171 <div id="item0" class="colorBox"></div>
 172 <div id="item1" class="colorBox"></div>
 173 <div id="item2" class="colorBox"></div>
 174 <div id="item3" class="colorBox"></div>
 175 <div id="item4" class="colorBox"></div>
 176 <div id="item5" class="colorBox"></div>
 177 </div>
 178 </div>
 179 </div>
 180 <div id="console"></div>
 181 <script>
 182 description("Tests 'initial' on scroll snap properties.");
 183
 184 var noInitial = document.getElementById('noInitial');
 185 shouldBeEmptyString("noInitial.style['-webkit-scroll-snap-type']");
 186 shouldBeEqualToString("window.getComputedStyle(noInitial).getPropertyValue('-webkit-scroll-snap-type')", "mandatory");
 187 shouldBeEmptyString("noInitial.style['-webkit-scroll-snap-points-x']");
 188 shouldBeEqualToString("window.getComputedStyle(noInitial).getPropertyValue('-webkit-scroll-snap-points-x')", "repeat(100%)");
 189 shouldBeEmptyString("noInitial.style['-webkit-scroll-snap-points-y']");
 190 shouldBeEqualToString("window.getComputedStyle(noInitial).getPropertyValue('-webkit-scroll-snap-points-y')", "repeat(100%)");
 191 shouldBeEmptyString("noInitial.style['-webkit-scroll-snap-destination']");
 192 shouldBeEqualToString("window.getComputedStyle(noInitial).getPropertyValue('-webkit-scroll-snap-destination')", "10% 11%");
 193 shouldBeEmptyString("noInitial.style['-webkit-scroll-snap-coordinate']");
 194 shouldBeEqualToString("window.getComputedStyle(noInitial).getPropertyValue('-webkit-scroll-snap-coordinate')", "none");
 195
 196 var initialType = document.getElementById('initialType');
 197 shouldBeEqualToString("initialType.style['-webkit-scroll-snap-type']", "initial");
 198 shouldBeEqualToString("window.getComputedStyle(initialType).getPropertyValue('-webkit-scroll-snap-type')", "none");
 199 shouldBeEmptyString("initialType.style['-webkit-scroll-snap-points-x']");
 200 shouldBeEqualToString("window.getComputedStyle(initialType).getPropertyValue('-webkit-scroll-snap-points-x')", "repeat(100%)");
 201 shouldBeEmptyString("initialType.style['-webkit-scroll-snap-points-y']");
 202 shouldBeEqualToString("window.getComputedStyle(initialType).getPropertyValue('-webkit-scroll-snap-points-y')", "repeat(100%)");
 203 shouldBeEmptyString("initialType.style['-webkit-scroll-snap-destination']");
 204 shouldBeEqualToString("window.getComputedStyle(initialType).getPropertyValue('-webkit-scroll-snap-destination')", "0px 0px");
 205 shouldBeEmptyString("initialType.style['-webkit-scroll-snap-coordinate']");
 206 shouldBeEqualToString("window.getComputedStyle(initialType).getPropertyValue('-webkit-scroll-snap-coordinate')", "15px 122px");
 207
 208 var initialXPoints = document.getElementById('initialXPoints');
 209 shouldBeEmptyString("initialXPoints.style['-webkit-scroll-snap-type']");
 210 shouldBeEqualToString("window.getComputedStyle(initialXPoints).getPropertyValue('-webkit-scroll-snap-type')", "mandatory");
 211 shouldBeEqualToString("initialXPoints.style['-webkit-scroll-snap-points-x']", "initial");
 212 shouldBeEqualToString("window.getComputedStyle(initialXPoints).getPropertyValue('-webkit-scroll-snap-points-x')", "none");
 213 shouldBeEmptyString("initialXPoints.style['-webkit-scroll-snap-points-y']");
 214 shouldBeEqualToString("window.getComputedStyle(initialXPoints).getPropertyValue('-webkit-scroll-snap-points-y')", "repeat(100%)");
 215 shouldBeEmptyString("initialXPoints.style['-webkit-scroll-snap-destination']");
 216 shouldBeEqualToString("window.getComputedStyle(initialXPoints).getPropertyValue('-webkit-scroll-snap-destination')", "50% 70%");
 217 shouldBeEmptyString("initialXPoints.style['-webkit-scroll-snap-coordinate']");
 218 shouldBeEqualToString("window.getComputedStyle(initialXPoints).getPropertyValue('-webkit-scroll-snap-coordinate')", "100% 50%");
 219
 220 var initialYPoints = document.getElementById('initialYPoints');
 221 shouldBeEmptyString("initialYPoints.style['-webkit-scroll-snap-type']");
 222 shouldBeEqualToString("window.getComputedStyle(initialYPoints).getPropertyValue('-webkit-scroll-snap-type')", "mandatory");
 223 shouldBeEmptyString("initialYPoints.style['-webkit-scroll-snap-points-x']");
 224 shouldBeEqualToString("window.getComputedStyle(initialYPoints).getPropertyValue('-webkit-scroll-snap-points-x')", "repeat(100%)");
 225 shouldBeEqualToString("initialYPoints.style['-webkit-scroll-snap-points-y']", "initial");
 226 shouldBeEqualToString("window.getComputedStyle(initialYPoints).getPropertyValue('-webkit-scroll-snap-points-y')", "none");
 227 shouldBeEmptyString("initialYPoints.style['-webkit-scroll-snap-destination']");
 228 shouldBeEqualToString("window.getComputedStyle(initialYPoints).getPropertyValue('-webkit-scroll-snap-destination')", "10px 20px");
 229 shouldBeEmptyString("initialYPoints.style['-webkit-scroll-snap-coordinate']");
 230 shouldBeEqualToString("window.getComputedStyle(initialYPoints).getPropertyValue('-webkit-scroll-snap-coordinate')", "50% 100%");
 231
 232 var initialDestination = document.getElementById('initialDestination');
 233 shouldBeEmptyString("initialDestination.style['-webkit-scroll-snap-type']");
 234 shouldBeEqualToString("window.getComputedStyle(initialDestination).getPropertyValue('-webkit-scroll-snap-type')", "proximity");
 235 shouldBeEmptyString("initialDestination.style['-webkit-scroll-snap-points-x']");
 236 shouldBeEqualToString("window.getComputedStyle(initialDestination).getPropertyValue('-webkit-scroll-snap-points-x')", "repeat(100%)");
 237 shouldBeEmptyString("initialDestination.style['-webkit-scroll-snap-points-y']");
 238 shouldBeEqualToString("window.getComputedStyle(initialDestination).getPropertyValue('-webkit-scroll-snap-points-y')", "repeat(100%)");
 239 shouldBeEqualToString("initialDestination.style['-webkit-scroll-snap-destination']", "initial");
 240 shouldBeEqualToString("window.getComputedStyle(initialDestination).getPropertyValue('-webkit-scroll-snap-destination')", "0px 0px");
 241 shouldBeEmptyString("initialDestination.style['-webkit-scroll-snap-coordinate']");
 242 shouldBeEqualToString("window.getComputedStyle(initialDestination).getPropertyValue('-webkit-scroll-snap-coordinate')", "10px 10px");
 243
 244 var initialSnapCoordinate = document.getElementById('initialSnapCoordinate');
 245 shouldBeEmptyString("initialSnapCoordinate.style['-webkit-scroll-snap-type']");
 246 shouldBeEqualToString("window.getComputedStyle(initialSnapCoordinate).getPropertyValue('-webkit-scroll-snap-type')", "mandatory");
 247 shouldBeEmptyString("initialSnapCoordinate.style['-webkit-scroll-snap-points-x']");
 248 shouldBeEqualToString("window.getComputedStyle(initialSnapCoordinate).getPropertyValue('-webkit-scroll-snap-points-x')", "repeat(100%)");
 249 shouldBeEmptyString("initialSnapCoordinate.style['-webkit-scroll-snap-points-y']");
 250 shouldBeEqualToString("window.getComputedStyle(initialSnapCoordinate).getPropertyValue('-webkit-scroll-snap-points-y')", "repeat(100%)");
 251 shouldBeEmptyString("initialSnapCoordinate.style['-webkit-scroll-snap-destination']");
 252 shouldBeEqualToString("window.getComputedStyle(initialSnapCoordinate).getPropertyValue('-webkit-scroll-snap-destination')", "10% 10%");
 253 shouldBeEqualToString("initialSnapCoordinate.style['-webkit-scroll-snap-coordinate']", "initial");
 254 shouldBeEqualToString("window.getComputedStyle(initialSnapCoordinate).getPropertyValue('-webkit-scroll-snap-coordinate')", "none");
 255
 256 var allInitial = document.getElementById('allInitial');
 257 shouldBeEqualToString("allInitial.style['-webkit-scroll-snap-type']", "initial");
 258 shouldBeEqualToString("window.getComputedStyle(allInitial).getPropertyValue('-webkit-scroll-snap-type')", "none");
 259 shouldBeEqualToString("allInitial.style['-webkit-scroll-snap-points-x']", "initial");
 260 shouldBeEqualToString("window.getComputedStyle(allInitial).getPropertyValue('-webkit-scroll-snap-points-x')", "none");
 261 shouldBeEqualToString("allInitial.style['-webkit-scroll-snap-points-y']", "initial");
 262 shouldBeEqualToString("window.getComputedStyle(allInitial).getPropertyValue('-webkit-scroll-snap-points-y')", "none");
 263 shouldBeEqualToString("allInitial.style['-webkit-scroll-snap-destination']", "initial");
 264 shouldBeEqualToString("window.getComputedStyle(allInitial).getPropertyValue('-webkit-scroll-snap-destination')", "0px 0px");
 265 shouldBeEqualToString("allInitial.style['-webkit-scroll-snap-coordinate']", "initial");
 266 shouldBeEqualToString("window.getComputedStyle(allInitial).getPropertyValue('-webkit-scroll-snap-coordinate')", "none");
 267
 268 var allInitialY = document.getElementById('allInitialY');
 269 shouldBeEqualToString("allInitialY.style['-webkit-scroll-snap-type']", "initial");
 270 shouldBeEqualToString("window.getComputedStyle(allInitialY).getPropertyValue('-webkit-scroll-snap-type')", "none");
 271 shouldBeEqualToString("allInitialY.style['-webkit-scroll-snap-points-x']", "initial");
 272 shouldBeEqualToString("window.getComputedStyle(allInitialY).getPropertyValue('-webkit-scroll-snap-points-x')", "none");
 273 shouldBeEqualToString("allInitialY.style['-webkit-scroll-snap-points-y']", "initial");
 274 shouldBeEqualToString("window.getComputedStyle(allInitialY).getPropertyValue('-webkit-scroll-snap-points-y')", "none");
 275 shouldBeEqualToString("allInitialY.style['-webkit-scroll-snap-destination']", "initial");
 276 shouldBeEqualToString("window.getComputedStyle(allInitialY).getPropertyValue('-webkit-scroll-snap-destination')", "0px 0px");
 277 shouldBeEqualToString("allInitialY.style['-webkit-scroll-snap-coordinate']", "initial");
 278 shouldBeEqualToString("window.getComputedStyle(allInitialY).getPropertyValue('-webkit-scroll-snap-coordinate')", "none");
 279 </script>
 280 <script src="../../resources/js-test-post.js"></script>
 281 </body>
 282</html>
 283
0

LayoutTests/platform/efl/TestExpectations

@@media/media-captions.html
5959fast/dom/Window/slow-unload-handler.html
6060fast/dom/Window/slow-unload-handler-only-frame-is-stopped.html
6161
 62# Need a scroll snap point implementation
 63css3/scroll-snap [ Skip ]
 64
6265# ----------------------------------------
6366# Tests which also fail in other platforms
6467# ----------------------------------------
181156

LayoutTests/platform/gtk/TestExpectations

@@webkit.org/b/142291 fast/clip/clip-when-
620620webkit.org/b/142291 fast/layers/no-clipping-overflow-hidden-hardware-acceleration.html [ ImageOnlyFailure ]
621621webkit.org/b/142291 fast/regions/repaint/fixed-in-named-flow-cb-changed.html [ ImageOnlyFailure ]
622622
623 
 623# TODO Scroll snap points
 624css3/scroll-snap [ Skip ]
624625#////////////////////////////////////////////////////////////////////////////////////////
625626# End of Expected failures
626627#////////////////////////////////////////////////////////////////////////////////////////
181156

LayoutTests/platform/win/TestExpectations

@@webkit.org/b/35013 svg/zoom/text/ [ Skip
591591
592592# TODO Attachment elements do not provide a custom renderer
593593webkit.org/b/142260 fast/attachment [ Skip ]
 594
 595# TODO Scroll snap points
 596css3/scroll-snap [ Skip ]
594597################################################################################
595598########### End Missing Functionality Prevents Testing ##############
596599################################################################################
181156