Source/WebCore/ChangeLog

 12013-02-20 Lamarque V. Souza <Lamarque.Souza@basyskom.com>
 2
 3 [css3-text] Add rendering support for -webkit-text-underline-position
 4 https://bugs.webkit.org/show_bug.cgi?id=102795
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 This patch intends to add rendering support for "text-underline-position"
 9 CSS3 property. Parsing support is implemented in bug 102491.
 10
 11 Tests: fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic1.html
 12 fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic2.html
 13 fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic3.html
 14 fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic4.html
 15 fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic5.html
 16 fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto1.html
 17 fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto2.html
 18 fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto3.html
 19 fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto4.html
 20 fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto5.html
 21 fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under1.html
 22 fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under2.html
 23 fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under3.html
 24 fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under4.html
 25 fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under5.html
 26
 27 * rendering/InlineFlowBox.cpp:
 28 (WebCore):
 29 (WebCore::InlineFlowBox::computeMaxLogicalTops):
 30 * rendering/InlineFlowBox.h:
 31 (InlineFlowBox):
 32 * rendering/InlineTextBox.cpp:
 33 (WebCore):
 34 (WebCore::computeUnderlineOffset):
 35 (WebCore::InlineTextBox::paintDecoration):
 36 * rendering/RootInlineBox.cpp:
 37 (WebCore::RootInlineBox::RootInlineBox):
 38 (WebCore::RootInlineBox::alignBoxesInBlockDirection):
 39 * rendering/RootInlineBox.h:
 40 (RootInlineBox):
 41 (WebCore::RootInlineBox::maxLogicalTop):
 42 * rendering/style/RenderStyle.h:
 43
 442013-02-20 Lamarque V. Souza <Lamarque.Souza@basyskom.com>
 45
 46 [css3-text] Add parsing support text-underline-position property from CSS3 Text
 47 https://bugs.webkit.org/show_bug.cgi?id=102491
 48
 49 Reviewed by NOBODY (OOPS!).
 50
 51 This patch intends to add parsing support for "text-underline-position" CSS3
 52 property. More details about it on the link below:
 53 http://dev.w3.org/csswg/css-text-decor-3/#text-underline-position-property
 54
 55 Test: fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-underline-position.html
 56
 57 * css/CSSComputedStyleDeclaration.cpp:
 58 (WebCore):
 59 (WebCore::renderTextUnderlinePositionFlagsToCSSValue):
 60 (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
 61 * css/CSSParser.cpp:
 62 (WebCore::CSSParser::parseValue):
 63 (WebCore):
 64 (WebCore::CSSParser::parseTextUnderlinePosition):
 65 * css/CSSParser.h:
 66 * css/CSSPrimitiveValueMappings.h:
 67 (WebCore):
 68 (WebCore::CSSPrimitiveValue::operator TextUnderlinePosition):
 69 * css/CSSProperty.cpp:
 70 (WebCore::CSSProperty::isInheritedProperty):
 71 Added parsing-related checks for text-underline-position property.
 72 * css/CSSPropertyNames.in: Added '-webkit-underline-position' property.
 73 * css/CSSValueKeywords.in: Added missing 'alphabetic' value. Enabled
 74 only if SVG is disabled because SVG also adds 'alphabetic' value.
 75 * css/StyleBuilder.cpp:
 76 (WebCore):
 77 (ApplyPropertyTextUnderlinePosition):
 78 (WebCore::ApplyPropertyTextUnderlinePosition::applyValue):
 79 (WebCore::ApplyPropertyTextUnderlinePosition::createHandler):
 80 (WebCore::StyleBuilder::StyleBuilder):
 81 Set property handler for text-underline-position (including bitwise aggregator).
 82 * rendering/style/RenderStyle.h:
 83 * rendering/style/RenderStyleConstants.h:
 84 (WebCore::operator| ):
 85 (WebCore::operator|=):
 86 Added bitwise TextUnderlinePosition enum with operator functions | and |= operator (used in StyleBuilder).
 87 (WebCore):
 88 * rendering/style/StyleRareInheritedData.cpp:
 89 (WebCore::StyleRareInheritedData::StyleRareInheritedData):
 90 (WebCore::StyleRareInheritedData::operator==):
 91 Added support for m_textUnderlinePosition on copy constructor and operator
 92 assignment functions.
 93 * rendering/style/StyleRareInheritedData.h:
 94 (StyleRareInheritedData): Added m_textUnderlinePosition here as it won't be used regularly.
 95
1962013-02-20 Yury Semikhatsky <yurys@chromium.org>
297
398 Web Inspector: fix message for non-existent domain warning

Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig

@@ENABLE_CSS_SHADERS = ENABLE_CSS_SHADERS;
5050ENABLE_CSS_STICKY_POSITION = ENABLE_CSS_STICKY_POSITION;
5151ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED = ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED;
5252ENABLE_CSS_VARIABLES = ;
53 ENABLE_CSS3_CONDITIONAL_RULES = ;
54 ENABLE_CSS3_TEXT = ;
 53ENABLE_CSS3_CONDITIONAL_RULES = ENABLE_CSS3_CONDITIONAL_RULES;
 54ENABLE_CSS3_TEXT = ENABLE_CSS3_TEXT;
5555ENABLE_CUSTOM_SCHEME_HANDLER = ;
5656ENABLE_DASHBOARD_SUPPORT = $(ENABLE_DASHBOARD_SUPPORT_$(PLATFORM_NAME));
5757ENABLE_DASHBOARD_SUPPORT_macosx = ENABLE_DASHBOARD_SUPPORT;

Source/WebCore/Configurations/FeatureDefines.xcconfig

@@ENABLE_CSS_SHADERS = ENABLE_CSS_SHADERS;
5050ENABLE_CSS_STICKY_POSITION = ENABLE_CSS_STICKY_POSITION;
5151ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED = ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED;
5252ENABLE_CSS_VARIABLES = ;
53 ENABLE_CSS3_CONDITIONAL_RULES = ;
54 ENABLE_CSS3_TEXT = ;
 53ENABLE_CSS3_CONDITIONAL_RULES = ENABLE_CSS3_CONDITIONAL_RULES;
 54ENABLE_CSS3_TEXT = ENABLE_CSS3_TEXT;
5555ENABLE_CUSTOM_SCHEME_HANDLER = ;
5656ENABLE_DASHBOARD_SUPPORT = $(ENABLE_DASHBOARD_SUPPORT_$(PLATFORM_NAME));
5757ENABLE_DASHBOARD_SUPPORT_macosx = ENABLE_DASHBOARD_SUPPORT;

Source/WebCore/GNUmakefile.features.am.in

@@feature_defines_defaults += \
77 ENABLE_CANVAS_PROXY=0 \
88 ENABLE_CHANNEL_MESSAGING=1 \
99 ENABLE_CSP_NEXT=0 \
10  ENABLE_CSS3_TEXT=0 \
 10 ENABLE_CSS3_TEXT=1 \
1111 ENABLE_CSS_BOX_DECORATION_BREAK=1 \
1212 ENABLE_CSS_COMPOSITING=0 \
1313 ENABLE_CSS_DEVICE_ADAPTATION=0 \

@@feature_defines_defaults += \
2121 ENABLE_CSS_STICKY_POSITION=0 \
2222 ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED=0 \
2323 ENABLE_CSS_VARIABLES=0 \
24  ENABLE_CSS3_CONDITIONAL_RULES=0 \
 24 ENABLE_CSS3_CONDITIONAL_RULES=1 \
2525 ENABLE_CUSTOM_SCHEME_HANDLER=0 \
2626 ENABLE_DASHBOARD_SUPPORT=0 \
2727 ENABLE_DATALIST_ELEMENT=0 \

Source/WebCore/css/CSSComputedStyleDeclaration.cpp

@@static const CSSPropertyID computedProperties[] = {
191191 CSSPropertyWebkitTextDecorationLine,
192192 CSSPropertyWebkitTextDecorationStyle,
193193 CSSPropertyWebkitTextAlignLast,
 194 CSSPropertyWebkitTextUnderlinePosition,
194195#endif // CSS3_TEXT
195196 CSSPropertyTextIndent,
196197 CSSPropertyTextRendering,

@@static PassRefPtr<CSSValue> renderTextDecorationStyleFlagsToCSSValue(TextDecorat
13361337 ASSERT_NOT_REACHED();
13371338 return cssValuePool().createExplicitInitialValue();
13381339}
 1340
 1341static PassRefPtr<CSSValue> renderTextUnderlinePositionFlagsToCSSValue(TextUnderlinePosition textUnderlinePosition)
 1342{
 1343 if (textUnderlinePosition == TextUnderlinePositionAuto)
 1344 return cssValuePool().createIdentifierValue(CSSValueAuto);
 1345
 1346 if (textUnderlinePosition == TextUnderlinePositionAlphabetic)
 1347 return cssValuePool().createIdentifierValue(CSSValueAlphabetic);
 1348
 1349 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated();
 1350 if (textUnderlinePosition & TextUnderlinePositionUnder)
 1351 list->append(cssValuePool().createIdentifierValue(CSSValueUnder));
 1352 if (textUnderlinePosition & TextUnderlinePositionLeft)
 1353 list->append(cssValuePool().createIdentifierValue(CSSValueLeft));
 1354 else if (textUnderlinePosition & TextUnderlinePositionRight)
 1355 list->append(cssValuePool().createIdentifierValue(CSSValueRight));
 1356
 1357 if (list->length())
 1358 return list;
 1359
 1360 ASSERT_NOT_REACHED();
 1361 return cssValuePool().createExplicitInitialValue();
 1362}
13391363#endif // CSS3_TEXT
13401364
13411365static PassRefPtr<CSSValue> fillRepeatToCSSValue(EFillRepeat xRepeat, EFillRepeat yRepeat)

@@PassRefPtr<CSSValue> CSSComputedStyleDeclaration::getPropertyCSSValue(CSSPropert
21342158 return renderTextDecorationStyleFlagsToCSSValue(style->textDecorationStyle());
21352159 case CSSPropertyWebkitTextAlignLast:
21362160 return cssValuePool().createValue(style->textAlignLast());
 2161 case CSSPropertyWebkitTextUnderlinePosition:
 2162 return renderTextUnderlinePositionFlagsToCSSValue(style->textUnderlinePosition());
21372163#endif // CSS3_TEXT
21382164 case CSSPropertyWebkitTextDecorationsInEffect:
21392165 return renderTextDecorationFlagsToCSSValue(style->textDecorationsInEffect());

Source/WebCore/css/CSSGrammar.y.in

@@static inline int cssyyerror(void*, const char*)
9797%token PAGE_SYM
9898%token MEDIA_SYM
9999#if ENABLE_CSS3_CONDITIONAL_RULES
 100/* Line added just to force this file to be processed during incremental build. */
100101%token SUPPORTS_SYM
101102#endif
102103%token FONT_FACE_SYM

Source/WebCore/css/CSSParser.cpp

@@bool CSSParser::parseValue(CSSPropertyID propId, bool important)
22832283 if (id == CSSValueSolid || id == CSSValueDouble || id == CSSValueDotted || id == CSSValueDashed || id == CSSValueWavy)
22842284 validPrimitive = true;
22852285 break;
 2286
 2287 case CSSPropertyWebkitTextUnderlinePosition:
 2288 // auto | alphabetic | [ under || [ left | right ] ]
 2289 return parseTextUnderlinePosition(important);
22862290#endif // CSS3_TEXT
22872291
22882292 case CSSPropertyZoom: // normal | reset | document | <number> | <percentage> | inherit

@@bool CSSParser::parseTextDecoration(CSSPropertyID propId, bool important)
90879091 return false;
90889092}
90899093
 9094#if ENABLE(CSS3_TEXT)
 9095bool CSSParser::parseTextUnderlinePosition(bool important)
 9096{
 9097 CSSParserValue* value = m_valueList->current();
 9098 if (value->id == CSSValueAuto) {
 9099 addProperty(CSSPropertyWebkitTextUnderlinePosition, cssValuePool().createIdentifierValue(value->id), important);
 9100 m_valueList->next();
 9101 return true;
 9102 }
 9103
 9104 if (value->id == CSSValueAlphabetic) {
 9105 addProperty(CSSPropertyWebkitTextUnderlinePosition, cssValuePool().createIdentifierValue(value->id), important);
 9106 m_valueList->next();
 9107 return true;
 9108 }
 9109
 9110 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated();
 9111 bool isValid = true;
 9112 bool leftOrRightAlreadyParsed = false;
 9113 while (isValid && value) {
 9114 switch (value->id) {
 9115 case CSSValueLeft:
 9116 case CSSValueRight:
 9117 if (leftOrRightAlreadyParsed) {
 9118 isValid = false;
 9119 break;
 9120 }
 9121 leftOrRightAlreadyParsed = true;
 9122 case CSSValueUnder:
 9123 list->append(cssValuePool().createIdentifierValue(value->id));
 9124 break;
 9125 default:
 9126 isValid = false;
 9127 break;
 9128 }
 9129 if (isValid)
 9130 value = m_valueList->next();
 9131 }
 9132
 9133 if (list->length() && isValid) {
 9134 addProperty(CSSPropertyWebkitTextUnderlinePosition, list.release(), important);
 9135 return true;
 9136 }
 9137
 9138 return false;
 9139}
 9140#endif // CSS3_TEXT
 9141
90909142bool CSSParser::parseTextEmphasisStyle(bool important)
90919143{
90929144 unsigned valueListSize = m_valueList->size();

Source/WebCore/css/CSSParser.h

@@public:
261261
262262 void addTextDecorationProperty(CSSPropertyID, PassRefPtr<CSSValue>, bool important);
263263 bool parseTextDecoration(CSSPropertyID propId, bool important);
 264#if ENABLE(CSS3_TEXT)
 265 bool parseTextUnderlinePosition(bool important);
 266#endif // CSS3_TEXT
264267
265268 bool parseLineBoxContain(bool important);
266269 bool parseCalculation(CSSParserValue*, CalculationPermittedValueRange);

Source/WebCore/css/CSSPrimitiveValueMappings.h

@@template<> inline CSSPrimitiveValue::operator TextDecorationStyle() const
23662366 ASSERT_NOT_REACHED();
23672367 return TextDecorationStyleSolid;
23682368}
 2369
 2370template<> inline CSSPrimitiveValue::operator TextUnderlinePosition() const
 2371{
 2372 switch (m_value.ident) {
 2373 case CSSValueAuto:
 2374 return TextUnderlinePositionAuto;
 2375 case CSSValueAlphabetic:
 2376 return TextUnderlinePositionAlphabetic;
 2377 case CSSValueUnder:
 2378 return TextUnderlinePositionUnder;
 2379 case CSSValueLeft:
 2380 return TextUnderlinePositionLeft;
 2381 case CSSValueRight:
 2382 return TextUnderlinePositionRight;
 2383 }
 2384
 2385 ASSERT_NOT_REACHED();
 2386 return TextUnderlinePositionAuto;
 2387}
23692388#endif // CSS3_TEXT
23702389
23712390template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ETextSecurity e)

Source/WebCore/css/CSSProperty.cpp

@@bool CSSProperty::isInheritedProperty(CSSPropertyID propertyID)
329329#if ENABLE(CSS3_TEXT)
330330 case CSSPropertyWebkitTextDecorationLine:
331331 case CSSPropertyWebkitTextAlignLast:
 332 case CSSPropertyWebkitTextUnderlinePosition:
332333#endif // CSS3_TEXT
333334 case CSSPropertyWebkitTextDecorationsInEffect:
334335 case CSSPropertyWebkitTextEmphasis:

Source/WebCore/css/CSSPropertyNames.in

@@z-index
363363-webkit-text-combine
364364-epub-text-combine = -webkit-text-combine
365365#if defined(ENABLE_CSS3_TEXT) && ENABLE_CSS3_TEXT
 366// Line added just to force this file to be processed during incremental build.
366367-webkit-text-decoration-line
367368-webkit-text-decoration-style
368369-webkit-text-align-last
 370-webkit-text-underline-position
369371#endif
370372-webkit-text-decorations-in-effect
371373-webkit-text-emphasis

Source/WebCore/css/CSSRule.idl

3939 const unsigned short WEBKIT_KEYFRAMES_RULE = 7;
4040 const unsigned short WEBKIT_KEYFRAME_RULE = 8;
4141#if defined(ENABLE_CSS3_CONDITIONAL_RULES) && ENABLE_CSS3_CONDITIONAL_RULES
 42 /* Line added just to force this file to be processed during incremental build. */
4243 const unsigned short SUPPORTS_RULE = 12;
4344#endif
4445#if defined(ENABLE_CSS_DEVICE_ADAPTATION) && ENABLE_CSS_DEVICE_ADAPTATION

Source/WebCore/css/CSSValueKeywords.in

@@thick
452452thin
453453underline
454454#if defined(ENABLE_CSS3_TEXT) && ENABLE_CSS3_TEXT
 455// Line added just to force this file to be processed during incremental build.
455456wavy
456457#endif
457458-webkit-nowrap

@@wrap
945946// -webkit-line-align
946947edges
947948
 949#if !(defined(ENABLE_SVG) && ENABLE_SVG) && defined(ENABLE_CSS3_TEXT) && ENABLE_CSS3_TEXT
 950// -webkit-text-underline-position
 951alphabetic
 952#endif // CSS3_TEXT
 953
948954// position
949955#if defined(ENABLE_CSS_STICKY_POSITION) && ENABLE_CSS_STICKY_POSITION
950956-webkit-sticky

Source/WebCore/css/DOMWindowCSS.h

@@namespace WebCore {
4040
4141class DOMWindowCSS : public RefCounted<DOMWindowCSS> {
4242public:
 43#if USE(V8)
 44 /* https://bugs.webkit.org/show_bug.cgi?id=106819
 45 * WebKit does not compile after commit
 46 * 05ccd1f76464bc0adc15d7fc256078bd497271c5 (svn trunk@142739) if
 47 * css3-conditional-rules is enabled. That commit added class DOMWindowCSS,
 48 * which miss a vtable required by the code generated by
 49 * Source/WebCore/bindings/scripts/CodeGeneratorV8.pm. Adding a virtual
 50 * destructor fixes the problem.
 51 */
 52 virtual ~DOMWindowCSS() { }
 53#endif
4354 static PassRefPtr<DOMWindowCSS> create();
4455
4556 bool supports(const String& property, const String& value) const;

Source/WebCore/css/StyleBuilder.cpp

@@public:
11491149 }
11501150};
11511151
 1152#if ENABLE(CSS3_TEXT)
 1153class ApplyPropertyTextUnderlinePosition {
 1154public:
 1155 static void applyValue(CSSPropertyID, StyleResolver* styleResolver, CSSValue* value)
 1156 {
 1157 // This is true if value is 'auto' or 'alphabetic'.
 1158 if (value->isPrimitiveValue()) {
 1159 TextUnderlinePosition t = *static_cast<CSSPrimitiveValue*>(value);
 1160 styleResolver->style()->setTextUnderlinePosition(t);
 1161 return;
 1162 }
 1163
 1164 TextUnderlinePosition t = static_cast<TextUnderlinePosition>(0);
 1165 for (CSSValueListIterator i(value); i.hasMore(); i.advance()) {
 1166 CSSValue* item = i.value();
 1167 ASSERT(item->isPrimitiveValue());
 1168 t |= *static_cast<CSSPrimitiveValue*>(item);
 1169 }
 1170 styleResolver->style()->setTextUnderlinePosition(t);
 1171 }
 1172 static PropertyHandler createHandler()
 1173 {
 1174 PropertyHandler handler = ApplyPropertyDefaultBase<TextUnderlinePosition, &RenderStyle::textUnderlinePosition, TextUnderlinePosition, &RenderStyle::setTextUnderlinePosition, TextUnderlinePosition, &RenderStyle::initialTextUnderlinePosition>::createHandler();
 1175 return PropertyHandler(handler.inheritFunction(), handler.initialFunction(), &applyValue);
 1176 }
 1177};
 1178#endif // CSS3_TEXT
 1179
11521180class ApplyPropertyLineHeight {
11531181public:
11541182 static void applyValue(CSSPropertyID, StyleResolver* styleResolver, CSSValue* value)

@@StyleBuilder::StyleBuilder()
19231951 setPropertyHandler(CSSPropertyWebkitTextDecorationLine, ApplyPropertyTextDecoration::createHandler());
19241952 setPropertyHandler(CSSPropertyWebkitTextDecorationStyle, ApplyPropertyDefault<TextDecorationStyle, &RenderStyle::textDecorationStyle, TextDecorationStyle, &RenderStyle::setTextDecorationStyle, TextDecorationStyle, &RenderStyle::initialTextDecorationStyle>::createHandler());
19251953 setPropertyHandler(CSSPropertyWebkitTextAlignLast, ApplyPropertyDefault<TextAlignLast, &RenderStyle::textAlignLast, TextAlignLast, &RenderStyle::setTextAlignLast, TextAlignLast, &RenderStyle::initialTextAlignLast>::createHandler());
 1954 setPropertyHandler(CSSPropertyWebkitTextUnderlinePosition, ApplyPropertyTextUnderlinePosition::createHandler());
19261955#endif // CSS3_TEXT
19271956 setPropertyHandler(CSSPropertyTextIndent, ApplyPropertyLength<&RenderStyle::textIndent, &RenderStyle::setTextIndent, &RenderStyle::initialTextIndent>::createHandler());
19281957 setPropertyHandler(CSSPropertyTextOverflow, ApplyPropertyDefault<TextOverflow, &RenderStyle::textOverflow, TextOverflow, &RenderStyle::setTextOverflow, TextOverflow, &RenderStyle::initialTextOverflow>::createHandler());

Source/WebCore/rendering/InlineFlowBox.cpp

@@void InlineFlowBox::placeBoxesInBlockDirection(LayoutUnit top, LayoutUnit maxHei
739739 }
740740}
741741
 742#if ENABLE(CSS3_TEXT)
 743void InlineFlowBox::computeMaxLogicalTops(float& maxLogicalTop)
 744{
 745 for (InlineBox* curr = firstChild(); curr; curr = curr->nextOnLine()) {
 746 if (curr->renderer()->isOutOfFlowPositioned())
 747 continue; // Positioned placeholders don't affect calculations.
 748
 749 if (descendantsHaveSameLineHeightAndBaseline())
 750 continue;
 751
 752 maxLogicalTop = max<float>(maxLogicalTop, curr->y());
 753 float localMaxLogicalTop = 0;
 754 if (curr->isInlineFlowBox())
 755 toInlineFlowBox(curr)->computeMaxLogicalTops(localMaxLogicalTop);
 756 maxLogicalTop = max<float>(maxLogicalTop, localMaxLogicalTop);
 757 }
 758}
 759#endif // CSS3_TEXT
 760
742761void InlineFlowBox::flipLinesInBlockDirection(LayoutUnit lineTop, LayoutUnit lineBottom)
743762{
744763 // Flip the box on the line such that the top is now relative to the lineBottom instead of the lineTop.

Source/WebCore/rendering/InlineFlowBox.h

@@protected:
319319 InlineFlowBox* m_prevLineBox; // The previous box that also uses our RenderObject
320320 InlineFlowBox* m_nextLineBox; // The next box that also uses our RenderObject
321321
 322#if ENABLE(CSS3_TEXT)
 323 // Maximum logicalTop among all children of an InlineFlowBox. Used to
 324 // calculate the offset for TextUnderlinePositionUnder.
 325 void computeMaxLogicalTops(float& maxLogicalTop);
 326#endif // CSS3_TEXT
322327private:
323328 unsigned m_includeLogicalLeftEdge : 1;
324329 unsigned m_includeLogicalRightEdge : 1;

Source/WebCore/rendering/InlineTextBox.cpp

@@static StrokeStyle textDecorationStyleToStrokeStyle(TextDecorationStyle decorati
958958 return strokeStyle;
959959}
960960
 961#if ENABLE(CSS3_TEXT)
 962static int computeUnderlineOffset(const TextUnderlinePosition underlinePosition, const FontMetrics& fontMetrics, const InlineTextBox* inlineTextBox, const int textDecorationThickness)
 963{
 964 // Compute the gap between the font and the underline. Use at least one
 965 // pixel gap, if underline is thick then use a bigger gap.
 966 const int gap = max<int>(1, ceilf(textDecorationThickness / 2.0));
 967
 968 if (underlinePosition == TextUnderlinePositionAuto) {
 969 // Position underline near the alphabetic baseline for horizontal text
 970 // (isHorizontal equals true).
 971 // FIXME: Default to TextUnderlinePositionUnderLeft for vertical text.
 972 return fontMetrics.ascent() + gap;
 973 }
 974
 975 if (underlinePosition == TextUnderlinePositionUnder) {
 976 // Position underline relative the under edge of the element's content box.
 977 const float offset2 = inlineTextBox->root()->maxLogicalTop() - inlineTextBox->logicalTop();
 978 if (offset2 > 0)
 979 return inlineTextBox->logicalHeight() + gap + offset2;
 980 return inlineTextBox->logicalHeight() + gap;
 981 }
 982
 983 // TODO: Implement TextUnderlinePositionUnderLeft and TextUnderlinePositionUnderRight.
 984
 985 // This is already correct for TextUnderlinePositionAlphabetic.
 986 return fontMetrics.ascent() + gap;
 987}
 988#endif // CSS3_TEXT
 989
961990void InlineTextBox::paintDecoration(GraphicsContext* context, const FloatPoint& boxOrigin, ETextDecoration deco, TextDecorationStyle decorationStyle, const ShadowData* shadow)
962991{
963992 // FIXME: We should improve this rule and not always just assume 1.

@@void InlineTextBox::paintDecoration(GraphicsContext* context, const FloatPoint&
10341063 context->setStrokeStyle(textDecorationStyleToStrokeStyle(decorationStyle));
10351064 if (deco & UNDERLINE) {
10361065 context->setStrokeColor(underline, colorSpace);
1037  // Leave one pixel of white between the baseline and the underline.
1038  context->drawLineForText(FloatPoint(localOrigin.x(), localOrigin.y() + baseline + 1), width, isPrinting);
10391066#if ENABLE(CSS3_TEXT)
 1067 TextUnderlinePosition underlinePosition = styleToUse->textUnderlinePosition();
 1068 const int underlineOffset = computeUnderlineOffset(underlinePosition, styleToUse->fontMetrics(), this, textDecorationThickness);
 1069 context->drawLineForText(FloatPoint(localOrigin.x(), localOrigin.y() + underlineOffset), width, isPrinting);
 1070
10401071 if (decorationStyle == TextDecorationStyleDouble)
1041  context->drawLineForText(FloatPoint(localOrigin.x(), localOrigin.y() + baseline + 1 + doubleOffset), width, isPrinting);
 1072 context->drawLineForText(FloatPoint(localOrigin.x(), localOrigin.y() + underlineOffset + doubleOffset), width, isPrinting);
 1073#else
 1074 // Leave one pixel of white between the baseline and the underline.
 1075 context->drawLineForText(FloatPoint(localOrigin.x(), localOrigin.y() + baseline + 1), width, isPrinting);
10421076#endif // CSS3_TEXT
10431077 }
10441078 if (deco & OVERLINE) {

Source/WebCore/rendering/RootInlineBox.cpp

@@RootInlineBox::RootInlineBox(RenderBlock* block)
5353 , m_lineBottom(0)
5454 , m_lineTopWithLeading(0)
5555 , m_lineBottomWithLeading(0)
 56#if ENABLE(CSS3_TEXT)
 57 , m_maxLogicalTop(0)
 58#endif // CSS3_TEXT
5659{
5760 setIsHorizontal(block->isHorizontalWritingMode());
5861}

@@LayoutUnit RootInlineBox::alignBoxesInBlockDirection(LayoutUnit heightOfBlock, G
279282 // SVG will handle vertical alignment on its own.
280283 if (isSVGRootInlineBox())
281284 return 0;
 285
 286 // FIXME: figure out how to call computeMaxLogicalTops() when SVG is enabled.
282287#endif
283288
284289 LayoutUnit maxPositionTop = 0;

@@LayoutUnit RootInlineBox::alignBoxesInBlockDirection(LayoutUnit heightOfBlock, G
331336 heightOfBlock += gridSnapAdjustment;
332337 }
333338
 339#if ENABLE(CSS3_TEXT)
 340 m_maxLogicalTop = 0;
 341 computeMaxLogicalTops(m_maxLogicalTop);
 342#endif // CSS3_TEXT
 343
334344 return heightOfBlock + maxHeight;
335345}
336346

Source/WebCore/rendering/RootInlineBox.h

@@public:
186186 return InlineFlowBox::logicalBottomLayoutOverflow(lineBottom());
187187 }
188188
 189#if ENABLE(CSS3_TEXT)
 190 // Used to calculate the underline offset for TextUnderlinePositionUnder.
 191 float maxLogicalTop() const { return m_maxLogicalTop; }
 192#endif // CSS3_TEXT
 193
189194 Node* getLogicalStartBoxWithNode(InlineBox*&) const;
190195 Node* getLogicalEndBoxWithNode(InlineBox*&) const;
191196

@@private:
220225 LayoutUnit m_lineTopWithLeading;
221226 LayoutUnit m_lineBottomWithLeading;
222227
 228#if ENABLE(CSS3_TEXT)
 229 // Maximum logicalTop among all children of an InlineFlowBox. Used to
 230 // calculate the offset for TextUnderlinePositionUnder.
 231 float m_maxLogicalTop;
 232#endif // CSS3_TEXT
 233
223234 struct LineFragmentationData {
224235 WTF_MAKE_NONCOPYABLE(LineFragmentationData); WTF_MAKE_FAST_ALLOCATED;
225236 public:

Source/WebCore/rendering/style/RenderStyle.h

@@public:
566566#if ENABLE(CSS3_TEXT)
567567 TextDecorationStyle textDecorationStyle() const { return static_cast<TextDecorationStyle>(rareNonInheritedData->m_textDecorationStyle); }
568568 TextAlignLast textAlignLast() const { return static_cast<TextAlignLast>(rareInheritedData->m_textAlignLast); }
 569 TextUnderlinePosition textUnderlinePosition() const { return static_cast<TextUnderlinePosition>(rareInheritedData->m_textUnderlinePosition); }
569570#else
570571 TextDecorationStyle textDecorationStyle() const { return TextDecorationStyleSolid; }
571572#endif // CSS3_TEXT

@@public:
11061107#if ENABLE(CSS3_TEXT)
11071108 void setTextDecorationStyle(TextDecorationStyle v) { SET_VAR(rareNonInheritedData, m_textDecorationStyle, v); }
11081109 void setTextAlignLast(TextAlignLast v) { SET_VAR(rareInheritedData, m_textAlignLast, v); }
 1110 void setTextUnderlinePosition(TextUnderlinePosition v) { SET_VAR(rareInheritedData, m_textUnderlinePosition, v); }
11091111#endif // CSS3_TEXT
11101112 void setDirection(TextDirection v) { inherited_flags._direction = v; }
11111113 void setLineHeight(Length specifiedLineHeight);

@@public:
15721574#if ENABLE(CSS3_TEXT)
15731575 static TextDecorationStyle initialTextDecorationStyle() { return TextDecorationStyleSolid; }
15741576 static TextAlignLast initialTextAlignLast() { return TextAlignLastAuto; }
 1577 static TextUnderlinePosition initialTextUnderlinePosition() { return TextUnderlinePositionAuto; }
15751578#endif // CSS3_TEXT
15761579 static float initialZoom() { return 1.0f; }
15771580 static int initialOutlineOffset() { return 0; }

Source/WebCore/rendering/style/RenderStyleConstants.h

@@enum TextAlignLast {
360360};
361361#endif // CSS3_TEXT
362362
 363#if ENABLE(CSS3_TEXT)
 364enum TextUnderlinePosition {
 365 TextUnderlinePositionAuto = 0x1, TextUnderlinePositionAlphabetic = 0x2, TextUnderlinePositionUnder = 0x4, TextUnderlinePositionLeft = 0x8, TextUnderlinePositionRight = 0x10
 366};
 367inline TextUnderlinePosition operator| (TextUnderlinePosition a, TextUnderlinePosition b) { return TextUnderlinePosition(int(a) | int(b)); }
 368inline TextUnderlinePosition& operator|=(TextUnderlinePosition& a, TextUnderlinePosition b) { return a = a | b; }
 369#endif // CSS3_TEXT
 370
363371enum EPageBreak {
364372 PBAUTO, PBALWAYS, PBAVOID
365373};

Source/WebCore/rendering/style/StyleRareInheritedData.cpp

@@StyleRareInheritedData::StyleRareInheritedData()
104104#endif
105105#if ENABLE(CSS3_TEXT)
106106 , m_textAlignLast(RenderStyle::initialTextAlignLast())
 107 , m_textUnderlinePosition(RenderStyle::initialTextUnderlinePosition())
107108#endif // CSS3_TEXT
108109 , m_rubyPosition(RenderStyle::initialRubyPosition())
109110 , hyphenationLimitBefore(-1)

@@StyleRareInheritedData::StyleRareInheritedData(const StyleRareInheritedData& o)
174175#endif
175176#if ENABLE(CSS3_TEXT)
176177 , m_textAlignLast(o.m_textAlignLast)
 178 , m_textUnderlinePosition(o.m_textUnderlinePosition)
177179#endif // CSS3_TEXT
178180 , m_rubyPosition(o.m_rubyPosition)
179181 , hyphenationString(o.hyphenationString)

@@bool StyleRareInheritedData::operator==(const StyleRareInheritedData& o) const
270272#endif
271273#if ENABLE(CSS3_TEXT)
272274 && m_textAlignLast == o.m_textAlignLast
 275 && m_textUnderlinePosition == o.m_textUnderlinePosition
273276#endif // CSS3_TEXT
274277 && m_rubyPosition == o.m_rubyPosition
275278 && m_lineSnap == o.m_lineSnap

Source/WebCore/rendering/style/StyleRareInheritedData.h

@@public:
118118#endif
119119#if ENABLE(CSS3_TEXT)
120120 unsigned m_textAlignLast : 3; // TextAlignLast
 121 unsigned m_textUnderlinePosition : 5; // TextUnderlinePosition
121122#endif // CSS3_TEXT
122123 unsigned m_rubyPosition : 1; // RubyPosition
123124

Source/WebKit/chromium/features.gypi

4040 'ENABLE_CANVAS_PROXY=1',
4141 'ENABLE_CHANNEL_MESSAGING=1',
4242 'ENABLE_CSP_NEXT=1',
43  'ENABLE_CSS3_CONDITIONAL_RULES=0',
44  'ENABLE_CSS3_TEXT=0',
 43 'ENABLE_CSS3_CONDITIONAL_RULES=1',
 44 'ENABLE_CSS3_TEXT=1',
4545 'ENABLE_CSS_BOX_DECORATION_BREAK=1',
4646 'ENABLE_CSS_COMPOSITING=0',
4747 'ENABLE_CSS_DEVICE_ADAPTATION=0',

Source/WebKit/mac/Configurations/FeatureDefines.xcconfig

@@ENABLE_CSS_SHADERS = ENABLE_CSS_SHADERS;
5050ENABLE_CSS_STICKY_POSITION = ENABLE_CSS_STICKY_POSITION;
5151ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED = ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED;
5252ENABLE_CSS_VARIABLES = ;
53 ENABLE_CSS3_CONDITIONAL_RULES = ;
54 ENABLE_CSS3_TEXT = ;
 53ENABLE_CSS3_CONDITIONAL_RULES = ENABLE_CSS3_CONDITIONAL_RULES;
 54ENABLE_CSS3_TEXT = ENABLE_CSS3_TEXT;
5555ENABLE_CUSTOM_SCHEME_HANDLER = ;
5656ENABLE_DASHBOARD_SUPPORT = $(ENABLE_DASHBOARD_SUPPORT_$(PLATFORM_NAME));
5757ENABLE_DASHBOARD_SUPPORT_macosx = ENABLE_DASHBOARD_SUPPORT;

Source/WebKit2/Configurations/FeatureDefines.xcconfig

@@ENABLE_CSS_SHADERS = ENABLE_CSS_SHADERS;
5050ENABLE_CSS_STICKY_POSITION = ENABLE_CSS_STICKY_POSITION;
5151ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED = ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED;
5252ENABLE_CSS_VARIABLES = ;
53 ENABLE_CSS3_CONDITIONAL_RULES = ;
54 ENABLE_CSS3_TEXT = ;
 53ENABLE_CSS3_CONDITIONAL_RULES = ENABLE_CSS3_CONDITIONAL_RULES;
 54ENABLE_CSS3_TEXT = ENABLE_CSS3_TEXT;
5555ENABLE_CUSTOM_SCHEME_HANDLER = ;
5656ENABLE_DASHBOARD_SUPPORT = $(ENABLE_DASHBOARD_SUPPORT_$(PLATFORM_NAME));
5757ENABLE_DASHBOARD_SUPPORT_macosx = ENABLE_DASHBOARD_SUPPORT;

Source/autotools/ReadCommandLineArguments.m4

@@AC_ARG_ENABLE([introspection],
207207 [enable_introspection=no])
208208AC_MSG_RESULT([$enable_introspection])
209209
210 
 210# check whether to enable CSS3 conditional rules support
 211AC_MSG_CHECKING([whether to enable CSS3 conditional rules support])
 212AC_ARG_ENABLE(css3_conditional_rules,
 213 AC_HELP_STRING([--enable-conditional-rules],
 214 [enable CSS3 conditional rules support [default=yes]]),
 215 [],[enable_css3_conditional_rules="yes"])
 216AC_MSG_RESULT([$enable_css3_conditional_rules])
 217AM_CONDITIONAL([ENABLE_CSS3_CONDITIONAL_RULES],[test "$enable_css3_conditional_rules" = "yes"])
 218
 219# check whether to enable CSS3 text decoration support
 220AC_MSG_CHECKING([whether to enable CSS3 text decoration support])
 221AC_ARG_ENABLE(css3_text,
 222 AC_HELP_STRING([--enable-css3-text-decoration],
 223 [enable CSS3 text decoration support [default=yes]]),
 224 [],[enable_css3_text="yes"])
 225AC_MSG_RESULT([$enable_css3_text])
 226AM_CONDITIONAL([ENABLE_CSS3_TEXT],[test "$enable_css3_text" = "yes"])

Source/cmake/OptionsCommon.cmake

@@set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)")
3737
3838set(LIB_INSTALL_DIR "lib${LIB_SUFFIX}" CACHE PATH "Where to install libraries (lib${LIB_SUFFIX})")
3939set(EXEC_INSTALL_DIR "bin" CACHE PATH "Where to install executables")
 40
 41WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS3_CONDITIONAL_RULES ON)
 42WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS3_TEXT ON)

Source/cmake/WebKitFeatures.cmake

@@macro(WEBKIT_OPTION_BEGIN)
2222 WEBKIT_OPTION_DEFINE(ENABLE_CANVAS_PROXY "Toggle CanvasProxy support" OFF)
2323 WEBKIT_OPTION_DEFINE(ENABLE_CHANNEL_MESSAGING "Toggle MessageChannel and MessagePort support" ON)
2424 WEBKIT_OPTION_DEFINE(ENABLE_CSP_NEXT "Toggle Content Security Policy 1.1 support" OFF)
25  WEBKIT_OPTION_DEFINE(ENABLE_CSS3_CONDITIONAL_RULES "Toggle CSS3 Conditional Rules support" OFF)
26  WEBKIT_OPTION_DEFINE(ENABLE_CSS3_TEXT "Toggle CSS3 Text support" OFF)
 25 WEBKIT_OPTION_DEFINE(ENABLE_CSS3_CONDITIONAL_RULES "Toggle CSS3 Conditional Rules support" ON)
 26 WEBKIT_OPTION_DEFINE(ENABLE_CSS3_TEXT "Toggle CSS3 Text support" ON)
2727 WEBKIT_OPTION_DEFINE(ENABLE_CSS_BOX_DECORATION_BREAK "Toggle Box Decoration break (CSS Backgrounds and Borders) support" ON)
2828 WEBKIT_OPTION_DEFINE(ENABLE_CSS_COMPOSITING "Toggle CSS COMPOSITING support" OFF)
2929 WEBKIT_OPTION_DEFINE(ENABLE_CSS_DEVICE_ADAPTATION "Toggle CSS Device Adaptation support" OFF)

Tools/Scripts/webkitperl/FeatureList.pm

@@my @features = (
186186 define => "ENABLE_CSS_FILTERS", default => isAppleWebKit() || isBlackBerry(), value => \$cssFiltersSupport },
187187
188188 { option => "css3-conditional-rules", desc => "Toggle CSS3 Conditional Rules support (i.e. \@supports)",
189  define => "ENABLE_CSS3_CONDITIONAL_RULES", default => 0, value => \$css3ConditionalRulesSupport },
 189 define => "ENABLE_CSS3_CONDITIONAL_RULES", default => 1, value => \$css3ConditionalRulesSupport },
190190
191191 { option => "css3-text", desc => "Toggle CSS3 Text support",
192  define => "ENABLE_CSS3_TEXT", default => (isEfl() || isGtk()), value => \$css3TextSupport },
 192 define => "ENABLE_CSS3_TEXT", default => 1, value => \$css3TextSupport },
193193
194194 { option => "css-box-decoration-break", desc => "Toggle CSS box-decoration-break support",
195195 define => "ENABLE_CSS_BOX_DECORATION_BREAK", default => 1, value => \$cssBoxDecorationBreakSupport },

Tools/qmake/mkspecs/features/features.pri

@@FEATURE_DEFAULTS = \
3434 ENABLE_CSS_STICKY_POSITION=1 \
3535 ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED=1 \
3636 ENABLE_CSS_VARIABLES=0 \
37  ENABLE_CSS3_CONDITIONAL_RULES=0 \
38  ENABLE_CSS3_TEXT=0 \
 37 ENABLE_CSS3_CONDITIONAL_RULES=1 \
 38 ENABLE_CSS3_TEXT=1 \
3939 ENABLE_DASHBOARD_SUPPORT=0 \
4040 ENABLE_DATAGRID=0 \
4141 ENABLE_DATALIST_ELEMENT=1 \

LayoutTests/ChangeLog

 12013-02-20 Lamarque V. Souza <Lamarque.Souza@basyskom.com>
 2
 3 [css3-text] Add rendering support for -webkit-text-underline-position
 4 https://bugs.webkit.org/show_bug.cgi?id=102795
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Added text-underline-position tests for 'text-underline-position' CSS3
 9 property, with 'webkit' prefix.
 10
 11 * fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic1-expected.txt: Added.
 12 * fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic1.html: Added.
 13 * fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic2-expected.txt: Added.
 14 * fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic2.html: Added.
 15 * fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic3-expected.txt: Added.
 16 * fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic3.html: Added.
 17 * fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic4-expected.txt: Added.
 18 * fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic4.html: Added.
 19 * fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic5-expected.txt: Added.
 20 * fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic5.html: Added.
 21 * fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto1-expected.txt: Added.
 22 * fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto1.html: Added.
 23 * fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto2-expected.txt: Added.
 24 * fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto2.html: Added.
 25 * fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto3-expected.txt: Added.
 26 * fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto3.html: Added.
 27 * fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto4-expected.txt: Added.
 28 * fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto4.html: Added.
 29 * fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto5-expected.txt: Added.
 30 * fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto5.html: Added.
 31 * fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under1-expected.txt: Added.
 32 * fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under1.html: Added.
 33 * fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under2-expected.txt: Added.
 34 * fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under2.html: Added.
 35 * fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under3-expected.txt: Added.
 36 * fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under3.html: Added.
 37 * fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under4-expected.txt: Added.
 38 * fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under4.html: Added.
 39 * fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under5-expected.txt: Added.
 40 * fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under5.html: Added.
 41 * platform/chromium-linux/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic1-expected.png: Added.
 42 * platform/chromium-linux/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic2-expected.png: Added.
 43 * platform/chromium-linux/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic3-expected.png: Added.
 44 * platform/chromium-linux/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic4-expected.png: Added.
 45 * platform/chromium-linux/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic5-expected.png: Added.
 46 * platform/chromium-linux/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto1-expected.png: Added.
 47 * platform/chromium-linux/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto2-expected.png: Added.
 48 * platform/chromium-linux/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto3-expected.png: Added.
 49 * platform/chromium-linux/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto4-expected.png: Added.
 50 * platform/chromium-linux/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto5-expected.png: Added.
 51 * platform/chromium-linux/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under1-expected.png: Added.
 52 * platform/chromium-linux/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under2-expected.png: Added.
 53 * platform/chromium-linux/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under3-expected.png: Added.
 54 * platform/chromium-linux/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under4-expected.png: Added.
 55 * platform/chromium-linux/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under5-expected.png: Added.
 56
 572013-02-20 Lamarque V. Souza <Lamarque.Souza@basyskom.com>
 58
 59 [css3-text] Add parsing support text-underline-position property from CSS3 Text
 60 https://bugs.webkit.org/show_bug.cgi?id=102491
 61
 62 Reviewed by NOBODY (OOPS!).
 63
 64 Added getComputedStyle layout tests for 'text-underline-position' CSS3
 65 property, with 'webkit' prefix.
 66
 67 * fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-underline-position.html: Added.
 68 * fast/css3-text/css3-text-decoration/getComputedStyle/script-tests/getComputedStyle-text-underline-position.js: Added.
 69 (testElementStyle):
 70 (testComputedStyle):
 71
1722013-02-20 Takashi Toyoshima <toyoshim@chromium.org>
273
374 Unreviewed, update expectation for chromium gardening.

LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-underline-position-expected.txt

 1Test to make sure -webkit-text-underline-position property returns values properly.
 2
 3On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 4
 5
 6Initial value:
 7PASS e.style.getPropertyCSSValue('-webkit-text-underline-position') is null
 8PASS computedStyle.webkitTextUnderlinePosition is 'auto'
 9PASS computedStyle.getPropertyCSSValue('-webkit-text-underline-position').toString() is '[object CSSPrimitiveValue]'
 10PASS computedStyle.getPropertyCSSValue('-webkit-text-underline-position').cssText is 'auto'
 11
 12Value '':
 13PASS e.style.getPropertyCSSValue('-webkit-text-underline-position') is null
 14PASS computedStyle.webkitTextUnderlinePosition is 'auto'
 15PASS computedStyle.getPropertyCSSValue('-webkit-text-underline-position').toString() is '[object CSSPrimitiveValue]'
 16PASS computedStyle.getPropertyCSSValue('-webkit-text-underline-position').cssText is 'auto'
 17
 18Initial value (explicit):
 19PASS e.style.webkitTextUnderlinePosition is 'initial'
 20PASS e.style.getPropertyCSSValue('-webkit-text-underline-position').toString() is '[object CSSValue]'
 21PASS e.style.getPropertyCSSValue('-webkit-text-underline-position').cssText is 'initial'
 22PASS computedStyle.webkitTextUnderlinePosition is 'auto'
 23PASS computedStyle.getPropertyCSSValue('-webkit-text-underline-position').toString() is '[object CSSPrimitiveValue]'
 24PASS computedStyle.getPropertyCSSValue('-webkit-text-underline-position').cssText is 'auto'
 25
 26Value 'auto':
 27PASS e.style.webkitTextUnderlinePosition is 'auto'
 28PASS e.style.getPropertyCSSValue('-webkit-text-underline-position').toString() is '[object CSSPrimitiveValue]'
 29PASS e.style.getPropertyCSSValue('-webkit-text-underline-position').cssText is 'auto'
 30PASS computedStyle.webkitTextUnderlinePosition is 'auto'
 31PASS computedStyle.getPropertyCSSValue('-webkit-text-underline-position').toString() is '[object CSSPrimitiveValue]'
 32PASS computedStyle.getPropertyCSSValue('-webkit-text-underline-position').cssText is 'auto'
 33
 34Value 'alphabetic':
 35PASS e.style.webkitTextUnderlinePosition is 'alphabetic'
 36PASS e.style.getPropertyCSSValue('-webkit-text-underline-position').toString() is '[object CSSPrimitiveValue]'
 37PASS e.style.getPropertyCSSValue('-webkit-text-underline-position').cssText is 'alphabetic'
 38PASS computedStyle.webkitTextUnderlinePosition is 'alphabetic'
 39PASS computedStyle.getPropertyCSSValue('-webkit-text-underline-position').toString() is '[object CSSPrimitiveValue]'
 40PASS computedStyle.getPropertyCSSValue('-webkit-text-underline-position').cssText is 'alphabetic'
 41
 42Value 'under':
 43PASS e.style.webkitTextUnderlinePosition is 'under'
 44PASS e.style.getPropertyCSSValue('-webkit-text-underline-position').toString() is '[object CSSValueList]'
 45PASS e.style.getPropertyCSSValue('-webkit-text-underline-position').cssText is 'under'
 46PASS computedStyle.webkitTextUnderlinePosition is 'under'
 47PASS computedStyle.getPropertyCSSValue('-webkit-text-underline-position').toString() is '[object CSSValueList]'
 48PASS computedStyle.getPropertyCSSValue('-webkit-text-underline-position').cssText is 'under'
 49
 50Value 'left':
 51PASS e.style.webkitTextUnderlinePosition is 'left'
 52PASS e.style.getPropertyCSSValue('-webkit-text-underline-position').toString() is '[object CSSValueList]'
 53PASS e.style.getPropertyCSSValue('-webkit-text-underline-position').cssText is 'left'
 54PASS computedStyle.webkitTextUnderlinePosition is 'left'
 55PASS computedStyle.getPropertyCSSValue('-webkit-text-underline-position').toString() is '[object CSSValueList]'
 56PASS computedStyle.getPropertyCSSValue('-webkit-text-underline-position').cssText is 'left'
 57
 58Value 'right':
 59PASS e.style.webkitTextUnderlinePosition is 'right'
 60PASS e.style.getPropertyCSSValue('-webkit-text-underline-position').toString() is '[object CSSValueList]'
 61PASS e.style.getPropertyCSSValue('-webkit-text-underline-position').cssText is 'right'
 62PASS computedStyle.webkitTextUnderlinePosition is 'right'
 63PASS computedStyle.getPropertyCSSValue('-webkit-text-underline-position').toString() is '[object CSSValueList]'
 64PASS computedStyle.getPropertyCSSValue('-webkit-text-underline-position').cssText is 'right'
 65
 66Value 'under left':
 67PASS e.style.webkitTextUnderlinePosition is 'under left'
 68PASS e.style.getPropertyCSSValue('-webkit-text-underline-position').toString() is '[object CSSValueList]'
 69PASS e.style.getPropertyCSSValue('-webkit-text-underline-position').cssText is 'under left'
 70PASS computedStyle.webkitTextUnderlinePosition is 'under left'
 71PASS computedStyle.getPropertyCSSValue('-webkit-text-underline-position').toString() is '[object CSSValueList]'
 72PASS computedStyle.getPropertyCSSValue('-webkit-text-underline-position').cssText is 'under left'
 73
 74Ancestor inherits values from parent:
 75PASS e.style.getPropertyCSSValue('-webkit-text-underline-position') is null
 76PASS computedStyle.webkitTextUnderlinePosition is 'under left'
 77PASS computedStyle.getPropertyCSSValue('-webkit-text-underline-position').toString() is '[object CSSValueList]'
 78PASS computedStyle.getPropertyCSSValue('-webkit-text-underline-position').cssText is 'under left'
 79
 80Value 'under right':
 81PASS e.style.webkitTextUnderlinePosition is 'under right'
 82PASS e.style.getPropertyCSSValue('-webkit-text-underline-position').toString() is '[object CSSValueList]'
 83PASS e.style.getPropertyCSSValue('-webkit-text-underline-position').cssText is 'under right'
 84PASS computedStyle.webkitTextUnderlinePosition is 'under right'
 85PASS computedStyle.getPropertyCSSValue('-webkit-text-underline-position').toString() is '[object CSSValueList]'
 86PASS computedStyle.getPropertyCSSValue('-webkit-text-underline-position').cssText is 'under right'
 87
 88Ancestor inherits values from parent:
 89PASS e.style.getPropertyCSSValue('-webkit-text-underline-position') is null
 90PASS computedStyle.webkitTextUnderlinePosition is 'under right'
 91PASS computedStyle.getPropertyCSSValue('-webkit-text-underline-position').toString() is '[object CSSValueList]'
 92PASS computedStyle.getPropertyCSSValue('-webkit-text-underline-position').cssText is 'under right'
 93
 94PASS successfullyParsed is true
 95
 96TEST COMPLETE
 97

LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-underline-position.html

 1<!DOCTYPE html>
 2<html>
 3<head>
 4<script src="../../../js/resources/js-test-pre.js"></script>
 5</head>
 6<body>
 7<script src="script-tests/getComputedStyle-text-underline-position.js"></script>
 8<script src="../../../js/resources/js-test-post.js"></script>
 9</body>
 10</html>

LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/script-tests/getComputedStyle-text-underline-position.js

 1function testElementStyle(propertyJS, propertyCSS, type, value)
 2{
 3 if (type != null) {
 4 shouldBe("e.style." + propertyJS, "'" + value + "'");
 5 shouldBe("e.style.getPropertyCSSValue('" + propertyCSS + "').toString()", "'" + type + "'");
 6 shouldBe("e.style.getPropertyCSSValue('" + propertyCSS + "').cssText", "'" + value + "'");
 7 } else
 8 shouldBeNull("e.style.getPropertyCSSValue('" + propertyCSS + "')");
 9}
 10
 11function testComputedStyle(propertyJS, propertyCSS, type, value)
 12{
 13 computedStyle = window.getComputedStyle(e, null);
 14 shouldBe("computedStyle." + propertyJS, "'" + value + "'");
 15 shouldBe("computedStyle.getPropertyCSSValue('" + propertyCSS + "').toString()", "'" + type + "'");
 16 shouldBe("computedStyle.getPropertyCSSValue('" + propertyCSS + "').cssText", "'" + value + "'");
 17}
 18
 19description("Test to make sure -webkit-text-underline-position property returns values properly.")
 20
 21var testContainer = document.createElement("div");
 22testContainer.contentEditable = true;
 23document.body.appendChild(testContainer);
 24
 25testContainer.innerHTML = '<div id="test">hello world</div>';
 26debug("Initial value:");
 27e = document.getElementById('test');
 28testElementStyle("webkitTextUnderlinePosition", "-webkit-text-underline-position", null, '');
 29testComputedStyle("webkitTextUnderlinePosition", "-webkit-text-underline-position", "[object CSSPrimitiveValue]", "auto");
 30debug('');
 31
 32debug("Value '':");
 33e.style.webkitTextUnderlinePosition = '';
 34testElementStyle("webkitTextUnderlinePosition", "-webkit-text-underline-position", null, '');
 35testComputedStyle("webkitTextUnderlinePosition", "-webkit-text-underline-position", "[object CSSPrimitiveValue]", "auto");
 36debug('');
 37
 38debug("Initial value (explicit):");
 39e.style.webkitTextUnderlinePosition = 'initial';
 40testElementStyle("webkitTextUnderlinePosition", "-webkit-text-underline-position", "[object CSSValue]", "initial");
 41testComputedStyle("webkitTextUnderlinePosition", "-webkit-text-underline-position", "[object CSSPrimitiveValue]", "auto");
 42debug('');
 43
 44debug("Value 'auto':");
 45e.style.webkitTextUnderlinePosition = 'auto';
 46testElementStyle("webkitTextUnderlinePosition", "-webkit-text-underline-position", "[object CSSPrimitiveValue]", "auto");
 47testComputedStyle("webkitTextUnderlinePosition", "-webkit-text-underline-position", "[object CSSPrimitiveValue]", "auto");
 48debug('');
 49
 50debug("Value 'alphabetic':");
 51e.style.webkitTextUnderlinePosition = 'alphabetic';
 52testElementStyle("webkitTextUnderlinePosition", "-webkit-text-underline-position", "[object CSSPrimitiveValue]", "alphabetic");
 53testComputedStyle("webkitTextUnderlinePosition", "-webkit-text-underline-position", "[object CSSPrimitiveValue]", "alphabetic");
 54debug('');
 55
 56debug("Value 'under':");
 57e.style.webkitTextUnderlinePosition = 'under';
 58testElementStyle("webkitTextUnderlinePosition", "-webkit-text-underline-position", "[object CSSValueList]", "under");
 59testComputedStyle("webkitTextUnderlinePosition", "-webkit-text-underline-position", "[object CSSValueList]", "under");
 60debug('');
 61
 62debug("Value 'left':");
 63e.style.webkitTextUnderlinePosition = 'left';
 64testElementStyle("webkitTextUnderlinePosition", "-webkit-text-underline-position", "[object CSSValueList]", "left");
 65testComputedStyle("webkitTextUnderlinePosition", "-webkit-text-underline-position", "[object CSSValueList]", "left");
 66debug('');
 67
 68debug("Value 'right':");
 69e.style.webkitTextUnderlinePosition = 'right';
 70testElementStyle("webkitTextUnderlinePosition", "-webkit-text-underline-position", "[object CSSValueList]", "right");
 71testComputedStyle("webkitTextUnderlinePosition", "-webkit-text-underline-position", "[object CSSValueList]", "right");
 72debug('');
 73
 74debug("Value 'under left':");
 75e.style.webkitTextUnderlinePosition = 'under left';
 76testElementStyle("webkitTextUnderlinePosition", "-webkit-text-underline-position", "[object CSSValueList]", "under left");
 77testComputedStyle("webkitTextUnderlinePosition", "-webkit-text-underline-position", "[object CSSValueList]", "under left");
 78debug('');
 79
 80testContainer.innerHTML = '<div id="test-parent" style="-webkit-text-underline-position: under left;">hello <span id="test-ancestor">world</span></div>';
 81debug("Ancestor inherits values from parent:");
 82e = document.getElementById('test-ancestor');
 83testElementStyle("webkitTextUnderlinePosition", "-webkit-text-underline-position", null, "");
 84testComputedStyle("webkitTextUnderlinePosition", "-webkit-text-underline-position", "[object CSSValueList]", "under left");
 85debug('');
 86
 87debug("Value 'under right':");
 88e.style.webkitTextUnderlinePosition = 'under right';
 89testElementStyle("webkitTextUnderlinePosition", "-webkit-text-underline-position", "[object CSSValueList]", "under right");
 90testComputedStyle("webkitTextUnderlinePosition", "-webkit-text-underline-position", "[object CSSValueList]", "under right");
 91debug('');
 92
 93testContainer.innerHTML = '<div id="test-parent" style="-webkit-text-underline-position: under right;">hello <span id="test-ancestor">world</span></div>';
 94debug("Ancestor inherits values from parent:");
 95e = document.getElementById('test-ancestor');
 96testElementStyle("webkitTextUnderlinePosition", "-webkit-text-underline-position", null, "");
 97testComputedStyle("webkitTextUnderlinePosition", "-webkit-text-underline-position", "[object CSSValueList]", "under right");
 98debug('');
 99
 100document.body.removeChild(testContainer);

LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic1-expected.txt

 1lorem ipsum
 2text-decoration in spanlorem ipsum
 3
 4lorem ipsum
 5text-decoration in spanlorem ipsum
 6
 7lorem ipsum
 8text-decoration in spanlorem ipsum

LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic1.html

 1<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
 2<html>
 3 <head>
 4 <!-- Bugzilla link: http://webkit.org/b/102795 -->
 5 <title>CSS Test: CSS3 text-underline-position</title>
 6 <link rel="help" href="http://dev.w3.org/csswg/css-text-decor-3/#text-underline-position-property"/>
 7 <meta name="flags" content="ahem"/>
 8 <script src="script.js"></script>
 9 <link rel="stylesheet" type="text/css" href="style.css">
 10 </head>
 11 <body>
 12 <div class="alphabetic"><p>lorem ipsum<br><span class="auto">text-decoration in span</span>lorem ipsum</p></div>
 13 <div><p class="alphabetic">lorem ipsum<br><span>text-decoration in span</span>lorem ipsum</p></div>
 14 <div><p class="alphabetic">lorem ipsum<br><span class="auto">text-decoration in span</span>lorem ipsum</p></div>
 15 </body>
 16</html>

LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic2-expected.txt

 1 1 lorem ipsum    2 lorem ipsum    3 lorem ipsum  
 2 4 lorem ipsum    5 lorem ipsum    6 lorem ipsum  

LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic2.html

 1<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
 2<html>
 3 <head>
 4 <!-- Bugzilla link: http://webkit.org/b/102795 -->
 5 <title>CSS Test: CSS3 text-underline-position</title>
 6 <link rel="help" href="http://dev.w3.org/csswg/css-text-decor-3/#text-underline-position-property"/>
 7 <meta name="flags" content="ahem"/>
 8 <script src="script.js"></script>
 9 <link rel="stylesheet" type="text/css" href="style.css">
 10 </head>
 11 <body>
 12 <div class="alphabetic"><p>&nbsp;1 lorem ipsum&nbsp;&nbsp;
 13 <span style="vertical-align: 3em;">&nbsp;2 lorem ipsum&nbsp;&nbsp;</span>
 14 <span style="vertical-align: -2em;">&nbsp;3 lorem ipsum&nbsp;&nbsp;</span><br>
 15 &nbsp;4 lorem ipsum&nbsp;&nbsp;
 16 <span style="vertical-align: middle">&nbsp;5 lorem ipsum&nbsp;&nbsp;
 17 <span style="vertical-align: middle">&nbsp;6 lorem ipsum&nbsp;&nbsp;</span></span></p>
 18 </div>
 19 </body>
 20</html>

LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic3-expected.txt

 1 1 lorem ipsum    2 lorem ipsum    3 lorem ipsum  
 2 4 lorem ipsum    5 lorem ipsum    6 lorem ipsum  

LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic3.html

 1<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
 2<html>
 3 <head>
 4 <!-- Bugzilla link: http://webkit.org/b/102795 -->
 5 <title>CSS Test: CSS3 text-underline-position</title>
 6 <link rel="help" href="http://dev.w3.org/csswg/css-text-decor-3/#text-underline-position-property"/>
 7 <meta name="flags" content="ahem"/>
 8 <script src="script.js"></script>
 9 <link rel="stylesheet" type="text/css" href="style.css">
 10 </head>
 11 <body>
 12 <div><p>
 13 <span class="alphabetic solid">&nbsp;1 lorem ipsum&nbsp;&nbsp;
 14 <span style="vertical-align: 3em;">&nbsp;2 lorem ipsum&nbsp;&nbsp;</span>
 15 <span style="vertical-align: -2em;">&nbsp;3 lorem ipsum&nbsp;&nbsp;</span></span><br>
 16 <span class="alphabetic solid">&nbsp;4 lorem ipsum&nbsp;&nbsp;
 17 <span style="vertical-align: middle">&nbsp;5 lorem ipsum&nbsp;&nbsp;
 18 <span style="vertical-align: middle">&nbsp;6 lorem ipsum&nbsp;&nbsp;</span></span></span>
 19 </p>
 20 </div>
 21 </body>
 22</html>

LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic4-expected.txt

 1 lorem ipsum           
 2 lorem ipsum           

LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic4.html

 1<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
 2<html>
 3 <head>
 4 <!-- Bugzilla link: http://webkit.org/b/102795 -->
 5 <title>CSS Test: CSS3 text-underline-position</title>
 6 <link rel="help" href="http://dev.w3.org/csswg/css-text-decor-3/#text-underline-position-property"/>
 7 <meta name="flags" content="ahem"/>
 8 <script src="script.js"></script>
 9 <link rel="stylesheet" type="text/css" href="style.css">
 10 </head>
 11 <body>
 12 <div><p>
 13 <span class="alphabetic solid" style="vertical-align: -3em;">&nbsp;lorem ipsum&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;</span><span>&nbsp;</span><br>
 14 <span class="alphabetic solid" style="vertical-align: -2em;">&nbsp;lorem ipsum&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;</span><span>&nbsp;</span>
 15 </p>
 16 </div>
 17 </body>
 18</html>

LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic5-expected.txt

 1 1 lorem ipsum    2 lorem ipsum    3 lorem ipsum  
 2 4 lorem ipsum    5 lorem ipsum    6 lorem ipsum  

LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic5.html

 1<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
 2<html>
 3 <head>
 4 <!-- Bugzilla link: http://webkit.org/b/102795 -->
 5 <title>CSS Test: CSS3 text-underline-position</title>
 6 <link rel="help" href="http://dev.w3.org/csswg/css-text-decor-3/#text-underline-position-property"/>
 7 <meta name="flags" content="ahem"/>
 8 <script src="script.js"></script>
 9 <link rel="stylesheet" type="text/css" href="style.css">
 10 </head>
 11 <body>
 12 <div><p class="alphabetic solid">
 13 &nbsp;1 lorem ipsum&nbsp;&nbsp;
 14 <span style="vertical-align: 3em;">&nbsp;2 lorem ipsum&nbsp;&nbsp;</span>
 15 <span style="vertical-align: -2em;">&nbsp;3 lorem ipsum&nbsp;&nbsp;</span><br>
 16 &nbsp;4 lorem ipsum&nbsp;&nbsp;
 17 <span style="vertical-align: middle">&nbsp;5 lorem ipsum&nbsp;&nbsp;
 18 <span style="vertical-align: middle">&nbsp;6 lorem ipsum&nbsp;&nbsp;</span></span>
 19 </p>
 20 </div>
 21 </body>
 22</html>

LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto1-expected.txt

 1lorem ipsum
 2text-decoration in spanlorem ipsum
 3
 4lorem ipsum
 5text-decoration in spanlorem ipsum
 6
 7lorem ipsum
 8text-decoration in spanlorem ipsum

LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto1.html

 1<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
 2<html>
 3 <head>
 4 <!-- Bugzilla link: http://webkit.org/b/102795 -->
 5 <title>CSS Test: CSS3 text-underline-position</title>
 6 <link rel="help" href="http://dev.w3.org/csswg/css-text-decor-3/#text-underline-position-property"/>
 7 <meta name="flags" content="ahem"/>
 8 <script src="script.js"></script>
 9 <link rel="stylesheet" type="text/css" href="style.css">
 10 </head>
 11 <body>
 12 <div class="auto"><p>lorem ipsum<br><span class="under">text-decoration in span</span>lorem ipsum</p></div>
 13 <div><p class="auto">lorem ipsum<br><span>text-decoration in span</span>lorem ipsum</p></div>
 14 <div><p class="auto">lorem ipsum<br><span class="under">text-decoration in span</span>lorem ipsum</p></div>
 15 </body>
 16</html>

LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto2-expected.txt

 1 1 lorem ipsum    2 lorem ipsum    3 lorem ipsum  
 2 4 lorem ipsum    5 lorem ipsum    6 lorem ipsum  

LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto2.html

 1<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
 2<html>
 3 <head>
 4 <!-- Bugzilla link: http://webkit.org/b/102795 -->
 5 <title>CSS Test: CSS3 text-underline-position</title>
 6 <link rel="help" href="http://dev.w3.org/csswg/css-text-decor-3/#text-underline-position-property"/>
 7 <meta name="flags" content="ahem"/>
 8 <script src="script.js"></script>
 9 <link rel="stylesheet" type="text/css" href="style.css">
 10 </head>
 11 <body>
 12 <div class="auto"><p>&nbsp;1 lorem ipsum&nbsp;&nbsp;
 13 <span style="vertical-align: 3em;">&nbsp;2 lorem ipsum&nbsp;&nbsp;</span>
 14 <span style="vertical-align: -2em;">&nbsp;3 lorem ipsum&nbsp;&nbsp;</span><br>
 15 &nbsp;4 lorem ipsum&nbsp;&nbsp;
 16 <span style="vertical-align: middle">&nbsp;5 lorem ipsum&nbsp;&nbsp;
 17 <span style="vertical-align: middle">&nbsp;6 lorem ipsum&nbsp;&nbsp;</span></span></p>
 18 </div>
 19 </body>
 20</html>

LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto3-expected.txt

 1 1 lorem ipsum    2 lorem ipsum    3 lorem ipsum  
 2 4 lorem ipsum    5 lorem ipsum    6 lorem ipsum  

LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto3.html

 1<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
 2<html>
 3 <head>
 4 <!-- Bugzilla link: http://webkit.org/b/102795 -->
 5 <title>CSS Test: CSS3 text-underline-position</title>
 6 <link rel="help" href="http://dev.w3.org/csswg/css-text-decor-3/#text-underline-position-property"/>
 7 <meta name="flags" content="ahem"/>
 8 <script src="script.js"></script>
 9 <link rel="stylesheet" type="text/css" href="style.css">
 10 </head>
 11 <body>
 12 <div><p>
 13 <span class="auto solid">&nbsp;1 lorem ipsum&nbsp;&nbsp;
 14 <span style="vertical-align: 3em;">&nbsp;2 lorem ipsum&nbsp;&nbsp;</span>
 15 <span style="vertical-align: -2em;">&nbsp;3 lorem ipsum&nbsp;&nbsp;</span></span><br>
 16 <span class="auto solid">&nbsp;4 lorem ipsum&nbsp;&nbsp;
 17 <span style="vertical-align: middle">&nbsp;5 lorem ipsum&nbsp;&nbsp;
 18 <span style="vertical-align: middle">&nbsp;6 lorem ipsum&nbsp;&nbsp;</span></span></span>
 19 </p>
 20 </div>
 21 </body>
 22</html>

LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto4-expected.txt

 1 lorem ipsum           
 2 lorem ipsum           

LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto4.html

 1<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
 2<html>
 3 <head>
 4 <!-- Bugzilla link: http://webkit.org/b/102795 -->
 5 <title>CSS Test: CSS3 text-underline-position</title>
 6 <link rel="help" href="http://dev.w3.org/csswg/css-text-decor-3/#text-underline-position-property"/>
 7 <meta name="flags" content="ahem"/>
 8 <script src="script.js"></script>
 9 <link rel="stylesheet" type="text/css" href="style.css">
 10 </head>
 11 <body>
 12 <div><p>
 13 <span class="auto solid" style="vertical-align: -3em;">&nbsp;lorem ipsum&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;</span><span>&nbsp;</span><br>
 14 <span class="auto solid" style="vertical-align: -2em;">&nbsp;lorem ipsum&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;</span><span>&nbsp;</span>
 15 </p>
 16 </div>
 17 </body>
 18</html>

LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto5-expected.txt

 1 1 lorem ipsum    2 lorem ipsum    3 lorem ipsum  
 2 4 lorem ipsum    5 lorem ipsum    6 lorem ipsum  

LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto5.html

 1<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
 2<html>
 3 <head>
 4 <!-- Bugzilla link: http://webkit.org/b/102795 -->
 5 <title>CSS Test: CSS3 text-underline-position</title>
 6 <link rel="help" href="http://dev.w3.org/csswg/css-text-decor-3/#text-underline-position-property"/>
 7 <meta name="flags" content="ahem"/>
 8 <script src="script.js"></script>
 9 <link rel="stylesheet" type="text/css" href="style.css">
 10 </head>
 11 <body>
 12 <div><p class="auto solid">
 13 &nbsp;1 lorem ipsum&nbsp;&nbsp;
 14 <span style="vertical-align: 3em;">&nbsp;2 lorem ipsum&nbsp;&nbsp;</span>
 15 <span style="vertical-align: -2em;">&nbsp;3 lorem ipsum&nbsp;&nbsp;</span><br>
 16 &nbsp;4 lorem ipsum&nbsp;&nbsp;
 17 <span style="vertical-align: middle">&nbsp;5 lorem ipsum&nbsp;&nbsp;
 18 <span style="vertical-align: middle">&nbsp;6 lorem ipsum&nbsp;&nbsp;</span></span>
 19 </p>
 20 </div>
 21 </body>
 22</html>

LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under1-expected.txt

 1lorem ipsum
 2text-decoration in spanlorem ipsum
 3
 4lorem ipsum
 5text-decoration in spanlorem ipsum
 6
 7lorem ipsum
 8text-decoration in spanlorem ipsum

LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under1.html

 1<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
 2<html>
 3 <head>
 4 <!-- Bugzilla link: http://webkit.org/b/102795 -->
 5 <title>CSS Test: CSS3 text-underline-position</title>
 6 <link rel="help" href="http://dev.w3.org/csswg/css-text-decor-3/#text-underline-position-property"/>
 7 <meta name="flags" content="ahem"/>
 8 <script src="script.js"></script>
 9 <link rel="stylesheet" type="text/css" href="style.css">
 10 </head>
 11 <body>
 12 <div class="under"><p>lorem ipsum<br><span class="auto">text-decoration in span</span>lorem ipsum</p></div>
 13 <div><p class="under">lorem ipsum<br><span>text-decoration in span</span>lorem ipsum</p></div>
 14 <div><p class="under">lorem ipsum<br><span class="auto">text-decoration in span</span>lorem ipsum</p></div>
 15 </body>
 16</html>

LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under2-expected.txt

 1 1 lorem ipsum    2 lorem ipsum    3 lorem ipsum  
 2 4 lorem ipsum    5 lorem ipsum    6 lorem ipsum  

LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under2.html

 1<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
 2<html>
 3 <head>
 4 <!-- Bugzilla link: http://webkit.org/b/102795 -->
 5 <title>CSS Test: CSS3 text-underline-position</title>
 6 <link rel="help" href="http://dev.w3.org/csswg/css-text-decor-3/#text-underline-position-property"/>
 7 <meta name="flags" content="ahem"/>
 8 <script src="script.js"></script>
 9 <link rel="stylesheet" type="text/css" href="style.css">
 10 </head>
 11 <body>
 12 <div class="under"><p>&nbsp;1 lorem ipsum&nbsp;&nbsp;
 13 <span style="vertical-align: 3em;">&nbsp;2 lorem ipsum&nbsp;&nbsp;</span>
 14 <span style="vertical-align: -2em;">&nbsp;3 lorem ipsum&nbsp;&nbsp;</span><br>
 15 &nbsp;4 lorem ipsum&nbsp;&nbsp;
 16 <span style="vertical-align: middle">&nbsp;5 lorem ipsum&nbsp;&nbsp;
 17 <span style="vertical-align: middle">&nbsp;6 lorem ipsum&nbsp;&nbsp;</span></span></p>
 18 </div>
 19 </body>
 20</html>

LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under3-expected.txt

 1 1 lorem ipsum    2 lorem ipsum    3 lorem ipsum  
 2 4 lorem ipsum    5 lorem ipsum    6 lorem ipsum  

LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under3.html

 1<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
 2<html>
 3 <head>
 4 <!-- Bugzilla link: http://webkit.org/b/102795 -->
 5 <title>CSS Test: CSS3 text-underline-position</title>
 6 <link rel="help" href="http://dev.w3.org/csswg/css-text-decor-3/#text-underline-position-property"/>
 7 <meta name="flags" content="ahem"/>
 8 <script src="script.js"></script>
 9 <link rel="stylesheet" type="text/css" href="style.css">
 10 </head>
 11 <body>
 12 <div><p>
 13 <span class="under solid">&nbsp;1 lorem ipsum&nbsp;&nbsp;
 14 <span style="vertical-align: 3em;">&nbsp;2 lorem ipsum&nbsp;&nbsp;</span>
 15 <span style="vertical-align: -2em;">&nbsp;3 lorem ipsum&nbsp;&nbsp;</span></span><br>
 16 <span class="under solid">&nbsp;4 lorem ipsum&nbsp;&nbsp;
 17 <span style="vertical-align: middle">&nbsp;5 lorem ipsum&nbsp;&nbsp;
 18 <span style="vertical-align: middle">&nbsp;6 lorem ipsum&nbsp;&nbsp;</span></span></span>
 19 </p>
 20 </div>
 21 </body>
 22</html>

LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under4-expected.txt

 1 lorem ipsum           
 2 lorem ipsum           

LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under4.html

 1<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
 2<html>
 3 <head>
 4 <!-- Bugzilla link: http://webkit.org/b/102795 -->
 5 <title>CSS Test: CSS3 text-underline-position</title>
 6 <link rel="help" href="http://dev.w3.org/csswg/css-text-decor-3/#text-underline-position-property"/>
 7 <meta name="flags" content="ahem"/>
 8 <script src="script.js"></script>
 9 <link rel="stylesheet" type="text/css" href="style.css">
 10 </head>
 11 <body>
 12 <div><p>
 13 <span class="under solid" style="vertical-align: -3em;">&nbsp;lorem ipsum&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;</span><span>&nbsp;</span><br>
 14 <span class="under solid" style="vertical-align: -2em;">&nbsp;lorem ipsum&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;</span><span>&nbsp;</span>
 15 </p>
 16 </div>
 17 </body>
 18</html>

LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under5-expected.txt

 1 1 lorem ipsum    2 lorem ipsum    3 lorem ipsum  
 2 4 lorem ipsum    5 lorem ipsum    6 lorem ipsum  

LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under5.html

 1<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
 2<html>
 3 <head>
 4 <!-- Bugzilla link: http://webkit.org/b/102795 -->
 5 <title>CSS Test: CSS3 text-underline-position</title>
 6 <link rel="help" href="http://dev.w3.org/csswg/css-text-decor-3/#text-underline-position-property"/>
 7 <meta name="flags" content="ahem"/>
 8 <script src="script.js"></script>
 9 <link rel="stylesheet" type="text/css" href="style.css">
 10 </head>
 11 <body>
 12 <div><p class="under solid">
 13 &nbsp;1 lorem ipsum&nbsp;&nbsp;
 14 <span style="vertical-align: 3em;">&nbsp;2 lorem ipsum&nbsp;&nbsp;</span>
 15 <span style="vertical-align: -2em;">&nbsp;3 lorem ipsum&nbsp;&nbsp;</span><br>
 16 &nbsp;4 lorem ipsum&nbsp;&nbsp;
 17 <span style="vertical-align: middle">&nbsp;5 lorem ipsum&nbsp;&nbsp;
 18 <span style="vertical-align: middle">&nbsp;6 lorem ipsum&nbsp;&nbsp;</span></span>
 19 </p>
 20 </div>
 21 </body>
 22</html>

LayoutTests/platform/chromium-linux/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic1-expected.png

Exception raised during decoding git binary patch:
Error running git apply --directory=/tmp
with patch:
diff --git a/PrettyPatch20260325-3692-rxndae.bin b/PrettyPatch20260325-3692-rxndae.bin
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 0
HcmV?d00001

...
error: invalid path '/tmp/PrettyPatch20260325-3692-rxndae.bin'

/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:924:in `run_git_apply_on_patch'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:935:in `extract_contents_from_git_binary_literal_chunk'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:950:in `extract_contents_from_remote'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:713:in `initialize'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `new'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `block in parse'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `collect'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `parse'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:21:in `prettify'
/var/www/html/PrettyPatch/prettify.rb:30:in `<main>'

LayoutTests/platform/chromium-linux/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic2-expected.png

Exception raised during decoding git binary patch:
Error running git apply --directory=/tmp
with patch:
diff --git a/PrettyPatch20260325-3692-1gpxpmx.bin b/PrettyPatch20260325-3692-1gpxpmx.bin
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 0
HcmV?d00001

...
error: invalid path '/tmp/PrettyPatch20260325-3692-1gpxpmx.bin'

/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:924:in `run_git_apply_on_patch'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:935:in `extract_contents_from_git_binary_literal_chunk'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:950:in `extract_contents_from_remote'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:713:in `initialize'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `new'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `block in parse'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `collect'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `parse'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:21:in `prettify'
/var/www/html/PrettyPatch/prettify.rb:30:in `<main>'

LayoutTests/platform/chromium-linux/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic3-expected.png

Exception raised during decoding git binary patch:
Error running git apply --directory=/tmp
with patch:
diff --git a/PrettyPatch20260325-3692-zzht5y.bin b/PrettyPatch20260325-3692-zzht5y.bin
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 0
HcmV?d00001

...
error: invalid path '/tmp/PrettyPatch20260325-3692-zzht5y.bin'

/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:924:in `run_git_apply_on_patch'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:935:in `extract_contents_from_git_binary_literal_chunk'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:950:in `extract_contents_from_remote'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:713:in `initialize'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `new'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `block in parse'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `collect'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `parse'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:21:in `prettify'
/var/www/html/PrettyPatch/prettify.rb:30:in `<main>'

LayoutTests/platform/chromium-linux/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic4-expected.png

Exception raised during decoding git binary patch:
Error running git apply --directory=/tmp
with patch:
diff --git a/PrettyPatch20260325-3692-16d4iyl.bin b/PrettyPatch20260325-3692-16d4iyl.bin
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 0
HcmV?d00001

...
error: invalid path '/tmp/PrettyPatch20260325-3692-16d4iyl.bin'

/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:924:in `run_git_apply_on_patch'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:935:in `extract_contents_from_git_binary_literal_chunk'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:950:in `extract_contents_from_remote'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:713:in `initialize'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `new'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `block in parse'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `collect'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `parse'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:21:in `prettify'
/var/www/html/PrettyPatch/prettify.rb:30:in `<main>'

LayoutTests/platform/chromium-linux/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic5-expected.png

Exception raised during decoding git binary patch:
Error running git apply --directory=/tmp
with patch:
diff --git a/PrettyPatch20260325-3692-1yht8xq.bin b/PrettyPatch20260325-3692-1yht8xq.bin
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 0
HcmV?d00001

...
error: invalid path '/tmp/PrettyPatch20260325-3692-1yht8xq.bin'

/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:924:in `run_git_apply_on_patch'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:935:in `extract_contents_from_git_binary_literal_chunk'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:950:in `extract_contents_from_remote'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:713:in `initialize'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `new'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `block in parse'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `collect'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `parse'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:21:in `prettify'
/var/www/html/PrettyPatch/prettify.rb:30:in `<main>'

LayoutTests/platform/chromium-linux/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto1-expected.png

Exception raised during decoding git binary patch:
Error running git apply --directory=/tmp
with patch:
diff --git a/PrettyPatch20260325-3692-1y1ehsd.bin b/PrettyPatch20260325-3692-1y1ehsd.bin
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 0
HcmV?d00001

...
error: invalid path '/tmp/PrettyPatch20260325-3692-1y1ehsd.bin'

/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:924:in `run_git_apply_on_patch'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:935:in `extract_contents_from_git_binary_literal_chunk'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:950:in `extract_contents_from_remote'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:713:in `initialize'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `new'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `block in parse'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `collect'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `parse'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:21:in `prettify'
/var/www/html/PrettyPatch/prettify.rb:30:in `<main>'

LayoutTests/platform/chromium-linux/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto2-expected.png

Exception raised during decoding git binary patch:
Error running git apply --directory=/tmp
with patch:
diff --git a/PrettyPatch20260325-3692-1tnwdvo.bin b/PrettyPatch20260325-3692-1tnwdvo.bin
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 0
HcmV?d00001

...
error: invalid path '/tmp/PrettyPatch20260325-3692-1tnwdvo.bin'

/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:924:in `run_git_apply_on_patch'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:935:in `extract_contents_from_git_binary_literal_chunk'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:950:in `extract_contents_from_remote'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:713:in `initialize'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `new'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `block in parse'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `collect'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `parse'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:21:in `prettify'
/var/www/html/PrettyPatch/prettify.rb:30:in `<main>'

LayoutTests/platform/chromium-linux/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto3-expected.png

Exception raised during decoding git binary patch:
Error running git apply --directory=/tmp
with patch:
diff --git a/PrettyPatch20260325-3692-1mu5fdr.bin b/PrettyPatch20260325-3692-1mu5fdr.bin
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 0
HcmV?d00001

...
error: invalid path '/tmp/PrettyPatch20260325-3692-1mu5fdr.bin'

/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:924:in `run_git_apply_on_patch'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:935:in `extract_contents_from_git_binary_literal_chunk'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:950:in `extract_contents_from_remote'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:713:in `initialize'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `new'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `block in parse'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `collect'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `parse'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:21:in `prettify'
/var/www/html/PrettyPatch/prettify.rb:30:in `<main>'

LayoutTests/platform/chromium-linux/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto4-expected.png

Exception raised during decoding git binary patch:
Error running git apply --directory=/tmp
with patch:
diff --git a/PrettyPatch20260325-3692-y471pa.bin b/PrettyPatch20260325-3692-y471pa.bin
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 0
HcmV?d00001

...
error: invalid path '/tmp/PrettyPatch20260325-3692-y471pa.bin'

/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:924:in `run_git_apply_on_patch'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:935:in `extract_contents_from_git_binary_literal_chunk'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:950:in `extract_contents_from_remote'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:713:in `initialize'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `new'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `block in parse'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `collect'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `parse'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:21:in `prettify'
/var/www/html/PrettyPatch/prettify.rb:30:in `<main>'

LayoutTests/platform/chromium-linux/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto5-expected.png

Exception raised during decoding git binary patch:
Error running git apply --directory=/tmp
with patch:
diff --git a/PrettyPatch20260325-3692-1d2zlpa.bin b/PrettyPatch20260325-3692-1d2zlpa.bin
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 0
HcmV?d00001

...
error: invalid path '/tmp/PrettyPatch20260325-3692-1d2zlpa.bin'

/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:924:in `run_git_apply_on_patch'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:935:in `extract_contents_from_git_binary_literal_chunk'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:950:in `extract_contents_from_remote'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:713:in `initialize'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `new'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `block in parse'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `collect'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `parse'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:21:in `prettify'
/var/www/html/PrettyPatch/prettify.rb:30:in `<main>'

LayoutTests/platform/chromium-linux/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under1-expected.png

Exception raised during decoding git binary patch:
Error running git apply --directory=/tmp
with patch:
diff --git a/PrettyPatch20260325-3692-1uwibz9.bin b/PrettyPatch20260325-3692-1uwibz9.bin
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 0
HcmV?d00001

...
error: invalid path '/tmp/PrettyPatch20260325-3692-1uwibz9.bin'

/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:924:in `run_git_apply_on_patch'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:935:in `extract_contents_from_git_binary_literal_chunk'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:950:in `extract_contents_from_remote'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:713:in `initialize'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `new'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `block in parse'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `collect'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `parse'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:21:in `prettify'
/var/www/html/PrettyPatch/prettify.rb:30:in `<main>'

LayoutTests/platform/chromium-linux/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under2-expected.png

Exception raised during decoding git binary patch:
Error running git apply --directory=/tmp
with patch:
diff --git a/PrettyPatch20260325-3692-1lm3za3.bin b/PrettyPatch20260325-3692-1lm3za3.bin
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 0
HcmV?d00001

...
error: invalid path '/tmp/PrettyPatch20260325-3692-1lm3za3.bin'

/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:924:in `run_git_apply_on_patch'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:935:in `extract_contents_from_git_binary_literal_chunk'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:950:in `extract_contents_from_remote'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:713:in `initialize'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `new'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `block in parse'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `collect'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `parse'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:21:in `prettify'
/var/www/html/PrettyPatch/prettify.rb:30:in `<main>'

LayoutTests/platform/chromium-linux/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under3-expected.png

Exception raised during decoding git binary patch:
Error running git apply --directory=/tmp
with patch:
diff --git a/PrettyPatch20260325-3692-1nefj0i.bin b/PrettyPatch20260325-3692-1nefj0i.bin
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 0
HcmV?d00001

...
error: invalid path '/tmp/PrettyPatch20260325-3692-1nefj0i.bin'

/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:924:in `run_git_apply_on_patch'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:935:in `extract_contents_from_git_binary_literal_chunk'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:950:in `extract_contents_from_remote'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:713:in `initialize'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `new'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `block in parse'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `collect'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `parse'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:21:in `prettify'
/var/www/html/PrettyPatch/prettify.rb:30:in `<main>'

LayoutTests/platform/chromium-linux/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under4-expected.png

Exception raised during decoding git binary patch:
Error running git apply --directory=/tmp
with patch:
diff --git a/PrettyPatch20260325-3692-1bu30j0.bin b/PrettyPatch20260325-3692-1bu30j0.bin
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 0
HcmV?d00001

...
error: invalid path '/tmp/PrettyPatch20260325-3692-1bu30j0.bin'

/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:924:in `run_git_apply_on_patch'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:935:in `extract_contents_from_git_binary_literal_chunk'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:950:in `extract_contents_from_remote'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:713:in `initialize'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `new'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `block in parse'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `collect'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `parse'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:21:in `prettify'
/var/www/html/PrettyPatch/prettify.rb:30:in `<main>'

LayoutTests/platform/chromium-linux/fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under5-expected.png

Exception raised during decoding git binary patch:
Error running git apply --directory=/tmp
with patch:
diff --git a/PrettyPatch20260325-3692-1a7mavl.bin b/PrettyPatch20260325-3692-1a7mavl.bin
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 0
HcmV?d00001

...
error: invalid path '/tmp/PrettyPatch20260325-3692-1a7mavl.bin'

/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:924:in `run_git_apply_on_patch'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:935:in `extract_contents_from_git_binary_literal_chunk'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:950:in `extract_contents_from_remote'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:713:in `initialize'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `new'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `block in parse'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `collect'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:845:in `parse'
/var/www/bugs.webkit.org/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:21:in `prettify'
/var/www/html/PrettyPatch/prettify.rb:30:in `<main>'

LayoutTests/platform/chromium/TestExpectations

@@webkit.org/b/85262 fast/media/mq-resolution-dpi-dpcm-warning.html [ Skip ]
222222# CSS image-orientation is not yet enabled.
223223webkit.org/b/89052 fast/css/image-orientation
224224
225 # CSS3 Text support is not yet enabled (needs ENABLE_CSS3_TEXT).
 225# Those two still lack -expected.png files. See https://bugs.webkit.org/show_bug.cgi?id=100546.
226226webkit.org/b/58491 fast/css3-text/css3-text-decoration
227227webkit.org/b/76173 fast/css3-text/css3-text-align-last
228228

WebKitLibraries/win/tools/vsprops/FeatureDefines.vsprops

5353 />
5454 <UserMacro
5555 Name="ENABLE_CSS3_CONDITIONAL_RULES"
56  Value=""
 56 Value="ENABLE_CSS3_CONDITIONAL_RULES"
5757 PerformEnvironmentSet="true"
5858 />
5959 <UserMacro
6060 Name="ENABLE_CSS3_TEXT"
61  Value=""
 61 Value="ENABLE_CSS3_TEXT"
6262 PerformEnvironmentSet="true"
6363 />
6464 <UserMacro

WebKitLibraries/win/tools/vsprops/FeatureDefinesCairo.vsprops

4848 />
4949 <UserMacro
5050 Name="ENABLE_CSS3_CONDITIONAL_RULES"
51  Value=""
 51 Value="ENABLE_CSS3_CONDITIONAL_RULES"
5252 PerformEnvironmentSet="true"
5353 />
5454 <UserMacro
5555 Name="ENABLE_CSS3_TEXT"
56  Value=""
 56 Value="ENABLE_CSS3_TEXT"
5757 PerformEnvironmentSet="true"
5858 />
5959 <UserMacro