Diff
Modified: trunk/LayoutTests/ChangeLog (99901 => 99902)
--- trunk/LayoutTests/ChangeLog 2011-11-10 22:52:30 UTC (rev 99901)
+++ trunk/LayoutTests/ChangeLog 2011-11-10 22:59:46 UTC (rev 99902)
@@ -1,3 +1,18 @@
+2011-11-10 David Hyatt <[email protected]>
+
+ https://bugs.webkit.org/show_bug.cgi?id=72060
+
+ Add tests for line-grid-snap parsing.
+
+ Reviewed by Dan Bernstein.
+
+ * fast/css/getComputedStyle/computed-style-expected.txt:
+ * fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
+ * fast/line-grid/line-grid-snap-parsing-expected.txt: Added.
+ * fast/line-grid/line-grid-snap-parsing.html: Added.
+ * fast/line-grid/script-tests/line-grid-snap-parsing.js: Added.
+ * svg/css/getComputedStyle-basic-expected.txt:
+
2011-11-10 Stephen White <[email protected]>
[chromium] Pre-emptively mark a canvas test as failing for next Skia roll.
Modified: trunk/LayoutTests/fast/css/getComputedStyle/computed-style-expected.txt (99901 => 99902)
--- trunk/LayoutTests/fast/css/getComputedStyle/computed-style-expected.txt 2011-11-10 22:52:30 UTC (rev 99901)
+++ trunk/LayoutTests/fast/css/getComputedStyle/computed-style-expected.txt 2011-11-10 22:59:46 UTC (rev 99902)
@@ -153,6 +153,7 @@
-webkit-line-break: normal;
-webkit-line-clamp: none;
-webkit-line-grid: none;
+-webkit-line-grid-snap: none;
-webkit-locale: auto;
-webkit-margin-before-collapse: collapse;
-webkit-margin-after-collapse: collapse;
Modified: trunk/LayoutTests/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt (99901 => 99902)
--- trunk/LayoutTests/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt 2011-11-10 22:52:30 UTC (rev 99901)
+++ trunk/LayoutTests/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt 2011-11-10 22:59:46 UTC (rev 99902)
@@ -152,6 +152,7 @@
-webkit-line-break: normal
-webkit-line-clamp: none
-webkit-line-grid: none
+ -webkit-line-grid-snap: none
-webkit-locale: auto
-webkit-margin-before-collapse: collapse
-webkit-margin-after-collapse: collapse
Added: trunk/LayoutTests/fast/line-grid/line-grid-snap-parsing-expected.txt (0 => 99902)
--- trunk/LayoutTests/fast/line-grid/line-grid-snap-parsing-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/line-grid/line-grid-snap-parsing-expected.txt 2011-11-10 22:59:46 UTC (rev 99902)
@@ -0,0 +1,23 @@
+Test parsing of the CSS line-grid property.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS test("-webkit-line-grid-snap: none") is "none"
+PASS test("-webkit-line-grid-snap: baseline") is "baseline"
+PASS test("-webkit-line-grid-snap: bounds") is "bounds"
+PASS test("-webkit-line-grid-snap: ;") is ""
+PASS test("-webkit-line-grid-snap: 1") is ""
+PASS test("-webkit-line-grid-snap: 1.2") is ""
+PASS test("-webkit-line-grid-snap: -1") is ""
+PASS test("-webkit-line-grid-snap: 12px") is ""
+PASS testComputedStyle("none") is "none"
+PASS testComputedStyle("") is "none"
+PASS testComputedStyle("12px") is "none"
+PASS testInherited("none") is "none"
+PASS testInherited("baseline") is "baseline"
+PASS testInherited("bounds") is "bounds"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/fast/line-grid/line-grid-snap-parsing.html (0 => 99902)
--- trunk/LayoutTests/fast/line-grid/line-grid-snap-parsing.html (rev 0)
+++ trunk/LayoutTests/fast/line-grid/line-grid-snap-parsing.html 2011-11-10 22:59:46 UTC (rev 99902)
@@ -0,0 +1,10 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src=""
+</head>
+<body>
+<script src=""
+<script src=""
+</body>
+</html>
Added: trunk/LayoutTests/fast/line-grid/script-tests/line-grid-snap-parsing.js (0 => 99902)
--- trunk/LayoutTests/fast/line-grid/script-tests/line-grid-snap-parsing.js (rev 0)
+++ trunk/LayoutTests/fast/line-grid/script-tests/line-grid-snap-parsing.js 2011-11-10 22:59:46 UTC (rev 99902)
@@ -0,0 +1,49 @@
+description('Test parsing of the CSS line-grid property.');
+
+function test(declaration) {
+ var div = document.createElement("div");
+ div.setAttribute("style", declaration);
+ return div.style.webkitLineGridSnap;
+}
+
+function testComputedStyle(value) {
+ var div = document.createElement("div");
+ document.body.appendChild(div);
+ div.style.setProperty("-webkit-line-grid-snap", value);
+ var webkitFlowComputedValue = getComputedStyle(div).getPropertyValue("-webkit-line-grid-snap");
+ document.body.removeChild(div);
+ return webkitFlowComputedValue;
+}
+
+function testInherited(parentValue) {
+ var parentDiv = document.createElement("div");
+ document.body.appendChild(parentDiv);
+ parentDiv.style.setProperty("-webkit-line-grid-snap", parentValue);
+
+ var childDiv = document.createElement("div");
+ parentDiv.appendChild(childDiv);
+
+ var childWebKitFlowComputedValue = getComputedStyle(childDiv).getPropertyValue("-webkit-line-grid-snap");
+
+ parentDiv.removeChild(childDiv);
+ document.body.removeChild(parentDiv);
+
+ return childWebKitFlowComputedValue;
+}
+
+shouldBeEqualToString('test("-webkit-line-grid-snap: none")', "none");
+shouldBeEqualToString('test("-webkit-line-grid-snap: baseline")', "baseline");
+shouldBeEqualToString('test("-webkit-line-grid-snap: bounds")', "bounds");
+shouldBeEqualToString('test("-webkit-line-grid-snap: ;")', "");
+shouldBeEqualToString('test("-webkit-line-grid-snap: 1")', "");
+shouldBeEqualToString('test("-webkit-line-grid-snap: 1.2")', "");
+shouldBeEqualToString('test("-webkit-line-grid-snap: -1")', "");
+shouldBeEqualToString('test("-webkit-line-grid-snap: 12px")', "");
+
+shouldBeEqualToString('testComputedStyle("none")', "none");
+shouldBeEqualToString('testComputedStyle("")', "none");
+shouldBeEqualToString('testComputedStyle("12px")', "none");
+
+shouldBeEqualToString('testInherited("none")', "none");
+shouldBeEqualToString('testInherited("baseline")', "baseline");
+shouldBeEqualToString('testInherited("bounds")', "bounds");
Modified: trunk/LayoutTests/svg/css/getComputedStyle-basic-expected.txt (99901 => 99902)
--- trunk/LayoutTests/svg/css/getComputedStyle-basic-expected.txt 2011-11-10 22:52:30 UTC (rev 99901)
+++ trunk/LayoutTests/svg/css/getComputedStyle-basic-expected.txt 2011-11-10 22:59:46 UTC (rev 99902)
@@ -304,6 +304,8 @@
rect: style.getPropertyCSSValue(-webkit-line-clamp) : [object CSSPrimitiveValue]
rect: style.getPropertyValue(-webkit-line-grid) : none
rect: style.getPropertyCSSValue(-webkit-line-grid) : [object CSSPrimitiveValue]
+rect: style.getPropertyValue(-webkit-line-grid-snap) : none
+rect: style.getPropertyCSSValue(-webkit-line-grid-snap) : [object CSSPrimitiveValue]
rect: style.getPropertyValue(-webkit-locale) : auto
rect: style.getPropertyCSSValue(-webkit-locale) : [object CSSPrimitiveValue]
rect: style.getPropertyValue(-webkit-margin-before-collapse) : collapse
@@ -790,6 +792,8 @@
g: style.getPropertyCSSValue(-webkit-line-clamp) : [object CSSPrimitiveValue]
g: style.getPropertyValue(-webkit-line-grid) : none
g: style.getPropertyCSSValue(-webkit-line-grid) : [object CSSPrimitiveValue]
+g: style.getPropertyValue(-webkit-line-grid-snap) : none
+g: style.getPropertyCSSValue(-webkit-line-grid-snap) : [object CSSPrimitiveValue]
g: style.getPropertyValue(-webkit-locale) : auto
g: style.getPropertyCSSValue(-webkit-locale) : [object CSSPrimitiveValue]
g: style.getPropertyValue(-webkit-margin-before-collapse) : collapse
Modified: trunk/Source/WebCore/ChangeLog (99901 => 99902)
--- trunk/Source/WebCore/ChangeLog 2011-11-10 22:52:30 UTC (rev 99901)
+++ trunk/Source/WebCore/ChangeLog 2011-11-10 22:59:46 UTC (rev 99902)
@@ -1,3 +1,39 @@
+2011-11-10 David Hyatt <[email protected]>
+
+ https://bugs.webkit.org/show_bug.cgi?id=72060
+
+ [CSS Line Grid] Add support for the line-grid-snap property to control snapping to the nearest
+ enclosing grid.
+
+ Reviewed by Dan Bernstein.
+
+ Added fast/line-grid/line-grid-snap-parsing.html.
+
+ * css/CSSComputedStyleDeclaration.cpp:
+ (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::parseValue):
+ * css/CSSPrimitiveValueMappings.h:
+ (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
+ (WebCore::CSSPrimitiveValue::operator LineGridSnap):
+ * css/CSSProperty.cpp:
+ (WebCore::CSSProperty::isInheritedProperty):
+ * css/CSSPropertyNames.in:
+ * css/CSSStyleSelector.cpp:
+ (WebCore::CSSStyleSelector::applyProperty):
+ * css/CSSValueKeywords.in:
+ * rendering/style/RenderStyle.cpp:
+ (WebCore::RenderStyle::diff):
+ * rendering/style/RenderStyle.h:
+ (WebCore::InheritedFlags::lineGridSnap):
+ (WebCore::InheritedFlags::setLineGridSnap):
+ (WebCore::InheritedFlags::initialLineGridSnap):
+ * rendering/style/RenderStyleConstants.h:
+ * rendering/style/StyleRareInheritedData.cpp:
+ (WebCore::StyleRareInheritedData::StyleRareInheritedData):
+ (WebCore::StyleRareInheritedData::operator==):
+ * rendering/style/StyleRareInheritedData.h:
+
2011-11-10 Kentaro Hara <[email protected]>
CodeGeneratorV8.pm can generate Event constructors
Modified: trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp (99901 => 99902)
--- trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp 2011-11-10 22:52:30 UTC (rev 99901)
+++ trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp 2011-11-10 22:59:46 UTC (rev 99902)
@@ -227,6 +227,7 @@
CSSPropertyWebkitLineBreak,
CSSPropertyWebkitLineClamp,
CSSPropertyWebkitLineGrid,
+ CSSPropertyWebkitLineGridSnap,
CSSPropertyWebkitLocale,
CSSPropertyWebkitMarginBeforeCollapse,
CSSPropertyWebkitMarginAfterCollapse,
@@ -1997,6 +1998,8 @@
if (style->lineGrid().isNull())
return primitiveValueCache->createIdentifierValue(CSSValueNone);
return primitiveValueCache->createValue(style->lineGrid(), CSSPrimitiveValue::CSS_STRING);
+ case CSSPropertyWebkitLineGridSnap:
+ return CSSPrimitiveValue::create(style->lineGridSnap());
case CSSPropertyWebkitWritingMode:
return primitiveValueCache->createValue(style->writingMode());
case CSSPropertyWebkitTextCombine:
Modified: trunk/Source/WebCore/css/CSSParser.cpp (99901 => 99902)
--- trunk/Source/WebCore/css/CSSParser.cpp 2011-11-10 22:52:30 UTC (rev 99901)
+++ trunk/Source/WebCore/css/CSSParser.cpp 2011-11-10 22:59:46 UTC (rev 99902)
@@ -1942,6 +1942,10 @@
}
}
break;
+ case CSSPropertyWebkitLineGridSnap:
+ if (id == CSSValueNone || id == CSSValueBaseline || id == CSSValueBounds)
+ validPrimitive = true;
+ break;
case CSSPropertyWebkitLocale:
if (id == CSSValueAuto || value->unit == CSSPrimitiveValue::CSS_STRING)
validPrimitive = true;
Modified: trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h (99901 => 99902)
--- trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h 2011-11-10 22:52:30 UTC (rev 99901)
+++ trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h 2011-11-10 22:59:46 UTC (rev 99902)
@@ -3014,6 +3014,38 @@
}
}
+template<> inline CSSPrimitiveValue::CSSPrimitiveValue(LineGridSnap gridSnap)
+ : CSSValue(PrimitiveClass)
+{
+ m_primitiveUnitType = CSS_IDENT;
+ switch (gridSnap) {
+ case LineGridSnapNone:
+ m_value.ident = CSSValueNone;
+ break;
+ case LineGridSnapBaseline:
+ m_value.ident = CSSValueBaseline;
+ break;
+ case LineGridSnapBounds:
+ m_value.ident = CSSValueBounds;
+ break;
+ }
+}
+
+template<> inline CSSPrimitiveValue::operator LineGridSnap() const
+{
+ switch (m_value.ident) {
+ case CSSValueNone:
+ return LineGridSnapNone;
+ case CSSValueBaseline:
+ return LineGridSnapBaseline;
+ case CSSValueBounds:
+ return LineGridSnapBounds;
+ default:
+ ASSERT_NOT_REACHED();
+ return LineGridSnapNone;
+ }
+}
+
template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ESpeak e)
: CSSValue(PrimitiveClass)
{
Modified: trunk/Source/WebCore/css/CSSProperty.cpp (99901 => 99902)
--- trunk/Source/WebCore/css/CSSProperty.cpp 2011-11-10 22:52:30 UTC (rev 99901)
+++ trunk/Source/WebCore/css/CSSProperty.cpp 2011-11-10 22:59:46 UTC (rev 99902)
@@ -334,6 +334,7 @@
case CSSPropertyWebkitLineBoxContain:
case CSSPropertyWebkitLineBreak:
case CSSPropertyWebkitLineGrid:
+ case CSSPropertyWebkitLineGridSnap:
case CSSPropertyWebkitNbspMode:
case CSSPropertyWebkitPrintColorAdjust:
case CSSPropertyWebkitRtlOrdering:
Modified: trunk/Source/WebCore/css/CSSPropertyNames.in (99901 => 99902)
--- trunk/Source/WebCore/css/CSSPropertyNames.in 2011-11-10 22:52:30 UTC (rev 99901)
+++ trunk/Source/WebCore/css/CSSPropertyNames.in 2011-11-10 22:59:46 UTC (rev 99902)
@@ -271,6 +271,7 @@
-webkit-line-break
-webkit-line-clamp
-webkit-line-grid
+-webkit-line-grid-snap
-webkit-logical-width
-webkit-logical-height
-webkit-margin-after-collapse
Modified: trunk/Source/WebCore/css/CSSStyleSelector.cpp (99901 => 99902)
--- trunk/Source/WebCore/css/CSSStyleSelector.cpp 2011-11-10 22:52:30 UTC (rev 99901)
+++ trunk/Source/WebCore/css/CSSStyleSelector.cpp 2011-11-10 22:59:46 UTC (rev 99902)
@@ -3408,6 +3408,9 @@
else
m_style->setLineGrid(primitiveValue->getStringValue());
return;
+ case CSSPropertyWebkitLineGridSnap:
+ HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE(lineGridSnap, LineGridSnap)
+ return;
case CSSPropertyWebkitRegionBreakBefore:
HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE_WITH_VALUE(regionBreakBefore, RegionBreakBefore, PageBreak)
return;
Modified: trunk/Source/WebCore/css/CSSValueKeywords.in (99901 => 99902)
--- trunk/Source/WebCore/css/CSSValueKeywords.in 2011-11-10 22:52:30 UTC (rev 99901)
+++ trunk/Source/WebCore/css/CSSValueKeywords.in 2011-11-10 22:59:46 UTC (rev 99902)
@@ -827,6 +827,11 @@
inline-box
replaced
+// -webkit-line-grid-snap
+//none
+//baseline
+bounds
+
// -webkit-font-feature-settings
on
off
Modified: trunk/Source/WebCore/rendering/style/RenderStyle.cpp (99901 => 99902)
--- trunk/Source/WebCore/rendering/style/RenderStyle.cpp 2011-11-10 22:52:30 UTC (rev 99901)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.cpp 2011-11-10 22:59:46 UTC (rev 99902)
@@ -461,7 +461,9 @@
|| rareInheritedData->textEmphasisMark != other->rareInheritedData->textEmphasisMark
|| rareInheritedData->textEmphasisPosition != other->rareInheritedData->textEmphasisPosition
|| rareInheritedData->textEmphasisCustomMark != other->rareInheritedData->textEmphasisCustomMark
- || rareInheritedData->m_lineBoxContain != other->rareInheritedData->m_lineBoxContain)
+ || rareInheritedData->m_lineBoxContain != other->rareInheritedData->m_lineBoxContain
+ || rareInheritedData->m_lineGrid != other->rareInheritedData->m_lineGrid
+ || rareInheritedData->m_lineGridSnap != other->rareInheritedData->m_lineGridSnap)
return StyleDifferenceLayout;
if (!rareInheritedData->shadowDataEquivalent(*other->rareInheritedData.get()))
Modified: trunk/Source/WebCore/rendering/style/RenderStyle.h (99901 => 99902)
--- trunk/Source/WebCore/rendering/style/RenderStyle.h 2011-11-10 22:52:30 UTC (rev 99901)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.h 2011-11-10 22:59:46 UTC (rev 99902)
@@ -812,7 +812,8 @@
RegionOverflow regionOverflow() const { return static_cast<RegionOverflow>(rareNonInheritedData->m_regionOverflow); }
const AtomicString& lineGrid() const { return rareInheritedData->m_lineGrid; }
-
+ LineGridSnap lineGridSnap() const { return static_cast<LineGridSnap>(rareInheritedData->m_lineGridSnap); }
+
// Apple-specific property getter methods
EPointerEvents pointerEvents() const { return static_cast<EPointerEvents>(inherited_flags._pointerEvents); }
const AnimationList* animations() const { return rareNonInheritedData->m_animations.get(); }
@@ -1195,6 +1196,7 @@
// End CSS3 Setters
void setLineGrid(const AtomicString& lineGrid) { SET_VAR(rareInheritedData, m_lineGrid, lineGrid); }
+ void setLineGridSnap(LineGridSnap lineGridSnap) { SET_VAR(rareInheritedData, m_lineGridSnap, lineGridSnap); }
void setFlowThread(const AtomicString& flowThread) { SET_VAR(rareNonInheritedData, m_flowThread, flowThread); }
void setRegionThread(const AtomicString& regionThread) { SET_VAR(rareNonInheritedData, m_regionThread, regionThread); }
@@ -1481,6 +1483,7 @@
static PrintColorAdjust initialPrintColorAdjust() { return PrintColorAdjustEconomy; }
static const AtomicString& initialLineGrid() { return nullAtom; }
+ static LineGridSnap initialLineGridSnap() { return LineGridSnapNone; }
static const AtomicString& initialFlowThread() { return nullAtom; }
static const AtomicString& initialRegionThread() { return nullAtom; }
Modified: trunk/Source/WebCore/rendering/style/RenderStyleConstants.h (99901 => 99902)
--- trunk/Source/WebCore/rendering/style/RenderStyleConstants.h 2011-11-10 22:52:30 UTC (rev 99901)
+++ trunk/Source/WebCore/rendering/style/RenderStyleConstants.h 2011-11-10 22:59:46 UTC (rev 99902)
@@ -457,6 +457,8 @@
enum ColumnAxis { HorizontalColumnAxis, VerticalColumnAxis, AutoColumnAxis };
+enum LineGridSnap { LineGridSnapNone, LineGridSnapBaseline, LineGridSnapBounds };
+
} // namespace WebCore
#endif // RenderStyleConstants_h
Modified: trunk/Source/WebCore/rendering/style/StyleRareInheritedData.cpp (99901 => 99902)
--- trunk/Source/WebCore/rendering/style/StyleRareInheritedData.cpp 2011-11-10 22:52:30 UTC (rev 99901)
+++ trunk/Source/WebCore/rendering/style/StyleRareInheritedData.cpp 2011-11-10 22:59:46 UTC (rev 99902)
@@ -53,6 +53,7 @@
, textEmphasisPosition(TextEmphasisPositionOver)
, m_lineBoxContain(RenderStyle::initialLineBoxContain())
, m_imageRendering(RenderStyle::initialImageRendering())
+ , m_lineGridSnap(RenderStyle::initialLineGridSnap())
, hyphenationLimitBefore(-1)
, hyphenationLimitAfter(-1)
, hyphenationLimitLines(-1)
@@ -96,6 +97,7 @@
, textEmphasisPosition(o.textEmphasisPosition)
, m_lineBoxContain(o.m_lineBoxContain)
, m_imageRendering(o.m_imageRendering)
+ , m_lineGridSnap(o.m_lineGridSnap)
, hyphenationString(o.hyphenationString)
, hyphenationLimitBefore(o.hyphenationLimitBefore)
, hyphenationLimitAfter(o.hyphenationLimitAfter)
@@ -165,7 +167,8 @@
&& textEmphasisCustomMark == o.textEmphasisCustomMark
&& QuotesData::equal(quotes.get(), o.quotes.get())
&& m_lineGrid == o.m_lineGrid
- && m_imageRendering == o.m_imageRendering;
+ && m_imageRendering == o.m_imageRendering
+ && m_lineGridSnap == o.m_lineGridSnap;
}
bool StyleRareInheritedData::shadowDataEquivalent(const StyleRareInheritedData& o) const
Modified: trunk/Source/WebCore/rendering/style/StyleRareInheritedData.h (99901 => 99902)
--- trunk/Source/WebCore/rendering/style/StyleRareInheritedData.h 2011-11-10 22:52:30 UTC (rev 99901)
+++ trunk/Source/WebCore/rendering/style/StyleRareInheritedData.h 2011-11-10 22:59:46 UTC (rev 99902)
@@ -91,8 +91,8 @@
unsigned m_lineBoxContain: 7; // LineBoxContain
// CSS Image Values Level 3
unsigned m_imageRendering : 2; // EImageRendering
+ unsigned m_lineGridSnap : 2; // LineGridSnap
-
AtomicString hyphenationString;
short hyphenationLimitBefore;
short hyphenationLimitAfter;