OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2004 Zack Rusin <zack@kde.org> | 2 * Copyright (C) 2004 Zack Rusin <zack@kde.org> |
3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc.
All rights reserved. | 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc.
All rights reserved. |
4 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> | 4 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> |
5 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> | 5 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> |
6 * Copyright (C) 2011 Sencha, Inc. All rights reserved. | 6 * Copyright (C) 2011 Sencha, Inc. All rights reserved. |
7 * Copyright (C) 2015 Google Inc. All rights reserved. | 7 * Copyright (C) 2015 Google Inc. All rights reserved. |
8 * | 8 * |
9 * This library is free software; you can redistribute it and/or | 9 * This library is free software; you can redistribute it and/or |
10 * modify it under the terms of the GNU Lesser General Public | 10 * modify it under the terms of the GNU Lesser General Public |
(...skipping 27 matching lines...) Expand all Loading... |
38 #include "core/css/CSSPathValue.h" | 38 #include "core/css/CSSPathValue.h" |
39 #include "core/css/CSSPrimitiveValueMappings.h" | 39 #include "core/css/CSSPrimitiveValueMappings.h" |
40 #include "core/css/CSSReflectValue.h" | 40 #include "core/css/CSSReflectValue.h" |
41 #include "core/css/CSSShadowValue.h" | 41 #include "core/css/CSSShadowValue.h" |
42 #include "core/css/CSSTimingFunctionValue.h" | 42 #include "core/css/CSSTimingFunctionValue.h" |
43 #include "core/css/CSSTransformValue.h" | 43 #include "core/css/CSSTransformValue.h" |
44 #include "core/css/CSSValueList.h" | 44 #include "core/css/CSSValueList.h" |
45 #include "core/css/CSSValuePool.h" | 45 #include "core/css/CSSValuePool.h" |
46 #include "core/css/Pair.h" | 46 #include "core/css/Pair.h" |
47 #include "core/css/Rect.h" | 47 #include "core/css/Rect.h" |
| 48 #include "core/layout/LayoutObject.h" |
48 #include "core/rendering/RenderBlock.h" | 49 #include "core/rendering/RenderBlock.h" |
49 #include "core/rendering/RenderBox.h" | 50 #include "core/rendering/RenderBox.h" |
50 #include "core/rendering/RenderGrid.h" | 51 #include "core/rendering/RenderGrid.h" |
51 #include "core/rendering/RenderObject.h" | |
52 #include "core/rendering/style/ContentData.h" | 52 #include "core/rendering/style/ContentData.h" |
53 #include "core/rendering/style/PathStyleMotionPath.h" | 53 #include "core/rendering/style/PathStyleMotionPath.h" |
54 #include "core/rendering/style/RenderStyle.h" | 54 #include "core/rendering/style/RenderStyle.h" |
55 #include "core/rendering/style/ShadowList.h" | 55 #include "core/rendering/style/ShadowList.h" |
56 #include "platform/LengthFunctions.h" | 56 #include "platform/LengthFunctions.h" |
57 | 57 |
58 namespace blink { | 58 namespace blink { |
59 | 59 |
60 inline static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> zoomAdjustedPixelValue(d
ouble value, const RenderStyle& style) | 60 inline static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> zoomAdjustedPixelValue(d
ouble value, const RenderStyle& style) |
61 { | 61 { |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
137 return cssValuePool().createValue(CSSValueAlpha); | 137 return cssValuePool().createValue(CSSValueAlpha); |
138 case MaskLuminance: | 138 case MaskLuminance: |
139 return cssValuePool().createValue(CSSValueLuminance); | 139 return cssValuePool().createValue(CSSValueLuminance); |
140 } | 140 } |
141 | 141 |
142 ASSERT_NOT_REACHED(); | 142 ASSERT_NOT_REACHED(); |
143 | 143 |
144 return nullptr; | 144 return nullptr; |
145 } | 145 } |
146 | 146 |
147 static PassRefPtrWillBeRawPtr<CSSValue> valueForPositionOffset(const RenderStyle
& style, CSSPropertyID propertyID, const RenderObject* renderer) | 147 static PassRefPtrWillBeRawPtr<CSSValue> valueForPositionOffset(const RenderStyle
& style, CSSPropertyID propertyID, const LayoutObject* renderer) |
148 { | 148 { |
149 Length offset; | 149 Length offset; |
150 switch (propertyID) { | 150 switch (propertyID) { |
151 case CSSPropertyLeft: | 151 case CSSPropertyLeft: |
152 offset = style.left(); | 152 offset = style.left(); |
153 break; | 153 break; |
154 case CSSPropertyRight: | 154 case CSSPropertyRight: |
155 offset = style.right(); | 155 offset = style.right(); |
156 break; | 156 break; |
157 case CSSPropertyTop: | 157 case CSSPropertyTop: |
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
383 RefPtrWillBeRawPtr<CSSValueList> result = CSSValueList::createSpaceSeparated
(); | 383 RefPtrWillBeRawPtr<CSSValueList> result = CSSValueList::createSpaceSeparated
(); |
384 if (positionType == LegacyPosition) | 384 if (positionType == LegacyPosition) |
385 result->append(CSSPrimitiveValue::createIdentifier(CSSValueLegacy)); | 385 result->append(CSSPrimitiveValue::createIdentifier(CSSValueLegacy)); |
386 result->append(CSSPrimitiveValue::create(itemPosition)); | 386 result->append(CSSPrimitiveValue::create(itemPosition)); |
387 if (itemPosition >= ItemPositionCenter && overflowAlignment != OverflowAlign
mentDefault) | 387 if (itemPosition >= ItemPositionCenter && overflowAlignment != OverflowAlign
mentDefault) |
388 result->append(CSSPrimitiveValue::create(overflowAlignment)); | 388 result->append(CSSPrimitiveValue::create(overflowAlignment)); |
389 ASSERT(result->length() <= 2); | 389 ASSERT(result->length() <= 2); |
390 return result.release(); | 390 return result.release(); |
391 } | 391 } |
392 | 392 |
393 static PassRefPtrWillBeRawPtr<CSSValueList> valuesForGridShorthand(const StylePr
opertyShorthand& shorthand, const RenderStyle& style, const RenderObject* render
er, Node* styledNode, bool allowVisitedStyle) | 393 static PassRefPtrWillBeRawPtr<CSSValueList> valuesForGridShorthand(const StylePr
opertyShorthand& shorthand, const RenderStyle& style, const LayoutObject* render
er, Node* styledNode, bool allowVisitedStyle) |
394 { | 394 { |
395 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSlashSeparated()
; | 395 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSlashSeparated()
; |
396 for (size_t i = 0; i < shorthand.length(); ++i) { | 396 for (size_t i = 0; i < shorthand.length(); ++i) { |
397 RefPtrWillBeRawPtr<CSSValue> value = RenderStyleCSSValueMapping::get(sho
rthand.properties()[i], style, renderer, styledNode, allowVisitedStyle); | 397 RefPtrWillBeRawPtr<CSSValue> value = RenderStyleCSSValueMapping::get(sho
rthand.properties()[i], style, renderer, styledNode, allowVisitedStyle); |
398 ASSERT(value); | 398 ASSERT(value); |
399 list->append(value.release()); | 399 list->append(value.release()); |
400 } | 400 } |
401 return list.release(); | 401 return list.release(); |
402 } | 402 } |
403 | 403 |
404 static PassRefPtrWillBeRawPtr<CSSValueList> valuesForShorthandProperty(const Sty
lePropertyShorthand& shorthand, const RenderStyle& style, const RenderObject* re
nderer, Node* styledNode, bool allowVisitedStyle) | 404 static PassRefPtrWillBeRawPtr<CSSValueList> valuesForShorthandProperty(const Sty
lePropertyShorthand& shorthand, const RenderStyle& style, const LayoutObject* re
nderer, Node* styledNode, bool allowVisitedStyle) |
405 { | 405 { |
406 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated()
; | 406 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated()
; |
407 for (size_t i = 0; i < shorthand.length(); ++i) { | 407 for (size_t i = 0; i < shorthand.length(); ++i) { |
408 RefPtrWillBeRawPtr<CSSValue> value = RenderStyleCSSValueMapping::get(sho
rthand.properties()[i], style, renderer, styledNode, allowVisitedStyle); | 408 RefPtrWillBeRawPtr<CSSValue> value = RenderStyleCSSValueMapping::get(sho
rthand.properties()[i], style, renderer, styledNode, allowVisitedStyle); |
409 ASSERT(value); | 409 ASSERT(value); |
410 list->append(value); | 410 list->append(value); |
411 } | 411 } |
412 return list.release(); | 412 return list.release(); |
413 } | 413 } |
414 | 414 |
415 static PassRefPtrWillBeRawPtr<CSSValueList> valuesForBackgroundShorthand(const R
enderStyle& style, const RenderObject* renderer, Node* styledNode, bool allowVis
itedStyle) | 415 static PassRefPtrWillBeRawPtr<CSSValueList> valuesForBackgroundShorthand(const R
enderStyle& style, const LayoutObject* renderer, Node* styledNode, bool allowVis
itedStyle) |
416 { | 416 { |
417 RefPtrWillBeRawPtr<CSSValueList> ret = CSSValueList::createCommaSeparated(); | 417 RefPtrWillBeRawPtr<CSSValueList> ret = CSSValueList::createCommaSeparated(); |
418 const FillLayer* currLayer = &style.backgroundLayers(); | 418 const FillLayer* currLayer = &style.backgroundLayers(); |
419 for (; currLayer; currLayer = currLayer->next()) { | 419 for (; currLayer; currLayer = currLayer->next()) { |
420 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSlashSeparat
ed(); | 420 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSlashSeparat
ed(); |
421 RefPtrWillBeRawPtr<CSSValueList> beforeSlash = CSSValueList::createSpace
Separated(); | 421 RefPtrWillBeRawPtr<CSSValueList> beforeSlash = CSSValueList::createSpace
Separated(); |
422 if (!currLayer->next()) { // color only for final layer | 422 if (!currLayer->next()) { // color only for final layer |
423 RefPtrWillBeRawPtr<CSSValue> value = RenderStyleCSSValueMapping::get
(CSSPropertyBackgroundColor, style, renderer, styledNode, allowVisitedStyle); | 423 RefPtrWillBeRawPtr<CSSValue> value = RenderStyleCSSValueMapping::get
(CSSPropertyBackgroundColor, style, renderer, styledNode, allowVisitedStyle); |
424 ASSERT(value); | 424 ASSERT(value); |
425 beforeSlash->append(value); | 425 beforeSlash->append(value); |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
562 const Vector<String>& namedGridLines = orderedNamedGridLines.get(i); | 562 const Vector<String>& namedGridLines = orderedNamedGridLines.get(i); |
563 if (namedGridLines.isEmpty()) | 563 if (namedGridLines.isEmpty()) |
564 return; | 564 return; |
565 | 565 |
566 RefPtrWillBeRawPtr<CSSGridLineNamesValue> lineNames = CSSGridLineNamesValue:
:create(); | 566 RefPtrWillBeRawPtr<CSSGridLineNamesValue> lineNames = CSSGridLineNamesValue:
:create(); |
567 for (size_t j = 0; j < namedGridLines.size(); ++j) | 567 for (size_t j = 0; j < namedGridLines.size(); ++j) |
568 lineNames->append(cssValuePool().createValue(namedGridLines[j], CSSPrimi
tiveValue::CSS_STRING)); | 568 lineNames->append(cssValuePool().createValue(namedGridLines[j], CSSPrimi
tiveValue::CSS_STRING)); |
569 list.append(lineNames.release()); | 569 list.append(lineNames.release()); |
570 } | 570 } |
571 | 571 |
572 static PassRefPtrWillBeRawPtr<CSSValue> valueForGridTrackList(GridTrackSizingDir
ection direction, const RenderObject* renderer, const RenderStyle& style) | 572 static PassRefPtrWillBeRawPtr<CSSValue> valueForGridTrackList(GridTrackSizingDir
ection direction, const LayoutObject* renderer, const RenderStyle& style) |
573 { | 573 { |
574 const Vector<GridTrackSize>& trackSizes = direction == ForColumns ? style.gr
idTemplateColumns() : style.gridTemplateRows(); | 574 const Vector<GridTrackSize>& trackSizes = direction == ForColumns ? style.gr
idTemplateColumns() : style.gridTemplateRows(); |
575 const OrderedNamedGridLines& orderedNamedGridLines = direction == ForColumns
? style.orderedNamedGridColumnLines() : style.orderedNamedGridRowLines(); | 575 const OrderedNamedGridLines& orderedNamedGridLines = direction == ForColumns
? style.orderedNamedGridColumnLines() : style.orderedNamedGridRowLines(); |
576 bool isRenderGrid = renderer && renderer->isRenderGrid(); | 576 bool isRenderGrid = renderer && renderer->isRenderGrid(); |
577 | 577 |
578 // Handle the 'none' case. | 578 // Handle the 'none' case. |
579 bool trackListIsEmpty = trackSizes.isEmpty(); | 579 bool trackListIsEmpty = trackSizes.isEmpty(); |
580 if (isRenderGrid && trackListIsEmpty) { | 580 if (isRenderGrid && trackListIsEmpty) { |
581 // For grids we should consider every listed track, whether implicitly o
r explicitly created. If we don't have | 581 // For grids we should consider every listed track, whether implicitly o
r explicitly created. If we don't have |
582 // any explicit track and there are no children then there are no implic
it tracks. We cannot simply check the | 582 // any explicit track and there are no children then there are no implic
it tracks. We cannot simply check the |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
625 list->append(cssValuePool().createValue(position.spanPosition(), CSSPrim
itiveValue::CSS_NUMBER)); | 625 list->append(cssValuePool().createValue(position.spanPosition(), CSSPrim
itiveValue::CSS_NUMBER)); |
626 } else { | 626 } else { |
627 list->append(cssValuePool().createValue(position.integerPosition(), CSSP
rimitiveValue::CSS_NUMBER)); | 627 list->append(cssValuePool().createValue(position.integerPosition(), CSSP
rimitiveValue::CSS_NUMBER)); |
628 } | 628 } |
629 | 629 |
630 if (!position.namedGridLine().isNull()) | 630 if (!position.namedGridLine().isNull()) |
631 list->append(cssValuePool().createValue(position.namedGridLine(), CSSPri
mitiveValue::CSS_STRING)); | 631 list->append(cssValuePool().createValue(position.namedGridLine(), CSSPri
mitiveValue::CSS_STRING)); |
632 return list; | 632 return list; |
633 } | 633 } |
634 | 634 |
635 static LayoutRect sizingBox(const RenderObject* renderer) | 635 static LayoutRect sizingBox(const LayoutObject* renderer) |
636 { | 636 { |
637 if (!renderer->isBox()) | 637 if (!renderer->isBox()) |
638 return LayoutRect(); | 638 return LayoutRect(); |
639 | 639 |
640 const RenderBox* box = toRenderBox(renderer); | 640 const RenderBox* box = toRenderBox(renderer); |
641 return box->style()->boxSizing() == BORDER_BOX ? box->borderBoxRect() : box-
>computedCSSContentBoxRect(); | 641 return box->style()->boxSizing() == BORDER_BOX ? box->borderBoxRect() : box-
>computedCSSContentBoxRect(); |
642 } | 642 } |
643 | 643 |
644 static PassRefPtrWillBeRawPtr<CSSValue> scrollBlocksOnFlagsToCSSValue(WebScrollB
locksOn scrollBlocksOn) | 644 static PassRefPtrWillBeRawPtr<CSSValue> scrollBlocksOnFlagsToCSSValue(WebScrollB
locksOn scrollBlocksOn) |
645 { | 645 { |
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
915 | 915 |
916 transformValue->append(zoomAdjustedNumberValue(transform.m41(), style)); | 916 transformValue->append(zoomAdjustedNumberValue(transform.m41(), style)); |
917 transformValue->append(zoomAdjustedNumberValue(transform.m42(), style)); | 917 transformValue->append(zoomAdjustedNumberValue(transform.m42(), style)); |
918 transformValue->append(zoomAdjustedNumberValue(transform.m43(), style)); | 918 transformValue->append(zoomAdjustedNumberValue(transform.m43(), style)); |
919 transformValue->append(cssValuePool().createValue(transform.m44(), CSSPr
imitiveValue::CSS_NUMBER)); | 919 transformValue->append(cssValuePool().createValue(transform.m44(), CSSPr
imitiveValue::CSS_NUMBER)); |
920 } | 920 } |
921 | 921 |
922 return transformValue.release(); | 922 return transformValue.release(); |
923 } | 923 } |
924 | 924 |
925 static PassRefPtrWillBeRawPtr<CSSValue> computedTransform(const RenderObject* re
nderer, const RenderStyle& style) | 925 static PassRefPtrWillBeRawPtr<CSSValue> computedTransform(const LayoutObject* re
nderer, const RenderStyle& style) |
926 { | 926 { |
927 if (!renderer || !renderer->hasTransformRelatedProperty() || !style.hasTrans
form()) | 927 if (!renderer || !renderer->hasTransformRelatedProperty() || !style.hasTrans
form()) |
928 return cssValuePool().createIdentifierValue(CSSValueNone); | 928 return cssValuePool().createIdentifierValue(CSSValueNone); |
929 | 929 |
930 IntRect box; | 930 IntRect box; |
931 if (renderer->isBox()) | 931 if (renderer->isBox()) |
932 box = pixelSnappedIntRect(toRenderBox(renderer)->borderBoxRect()); | 932 box = pixelSnappedIntRect(toRenderBox(renderer)->borderBoxRect()); |
933 | 933 |
934 TransformationMatrix transform; | 934 TransformationMatrix transform; |
935 style.applyTransform(transform, LayoutSize(box.size()), RenderStyle::Exclude
TransformOrigin, RenderStyle::ExcludeMotionPath); | 935 style.applyTransform(transform, LayoutSize(box.size()), RenderStyle::Exclude
TransformOrigin, RenderStyle::ExcludeMotionPath); |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1028 | 1028 |
1029 ASSERT(shapeValue->type() == ShapeValue::Shape); | 1029 ASSERT(shapeValue->type() == ShapeValue::Shape); |
1030 | 1030 |
1031 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated()
; | 1031 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated()
; |
1032 list->append(valueForBasicShape(style, shapeValue->shape())); | 1032 list->append(valueForBasicShape(style, shapeValue->shape())); |
1033 if (shapeValue->cssBox() != BoxMissing) | 1033 if (shapeValue->cssBox() != BoxMissing) |
1034 list->append(cssValuePool().createValue(shapeValue->cssBox())); | 1034 list->append(cssValuePool().createValue(shapeValue->cssBox())); |
1035 return list.release(); | 1035 return list.release(); |
1036 } | 1036 } |
1037 | 1037 |
1038 static PassRefPtrWillBeRawPtr<CSSValueList> valuesForSidesShorthand(const StyleP
ropertyShorthand& shorthand, const RenderStyle& style, const RenderObject* rende
rer, Node* styledNode, bool allowVisitedStyle) | 1038 static PassRefPtrWillBeRawPtr<CSSValueList> valuesForSidesShorthand(const StyleP
ropertyShorthand& shorthand, const RenderStyle& style, const LayoutObject* rende
rer, Node* styledNode, bool allowVisitedStyle) |
1039 { | 1039 { |
1040 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated()
; | 1040 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated()
; |
1041 // Assume the properties are in the usual order top, right, bottom, left. | 1041 // Assume the properties are in the usual order top, right, bottom, left. |
1042 RefPtrWillBeRawPtr<CSSValue> topValue = RenderStyleCSSValueMapping::get(shor
thand.properties()[0], style, renderer, styledNode, allowVisitedStyle); | 1042 RefPtrWillBeRawPtr<CSSValue> topValue = RenderStyleCSSValueMapping::get(shor
thand.properties()[0], style, renderer, styledNode, allowVisitedStyle); |
1043 RefPtrWillBeRawPtr<CSSValue> rightValue = RenderStyleCSSValueMapping::get(sh
orthand.properties()[1], style, renderer, styledNode, allowVisitedStyle); | 1043 RefPtrWillBeRawPtr<CSSValue> rightValue = RenderStyleCSSValueMapping::get(sh
orthand.properties()[1], style, renderer, styledNode, allowVisitedStyle); |
1044 RefPtrWillBeRawPtr<CSSValue> bottomValue = RenderStyleCSSValueMapping::get(s
horthand.properties()[2], style, renderer, styledNode, allowVisitedStyle); | 1044 RefPtrWillBeRawPtr<CSSValue> bottomValue = RenderStyleCSSValueMapping::get(s
horthand.properties()[2], style, renderer, styledNode, allowVisitedStyle); |
1045 RefPtrWillBeRawPtr<CSSValue> leftValue = RenderStyleCSSValueMapping::get(sho
rthand.properties()[3], style, renderer, styledNode, allowVisitedStyle); | 1045 RefPtrWillBeRawPtr<CSSValue> leftValue = RenderStyleCSSValueMapping::get(sho
rthand.properties()[3], style, renderer, styledNode, allowVisitedStyle); |
1046 | 1046 |
1047 // All 4 properties must be specified. | 1047 // All 4 properties must be specified. |
1048 if (!topValue || !rightValue || !bottomValue || !leftValue) | 1048 if (!topValue || !rightValue || !bottomValue || !leftValue) |
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1271 default: | 1271 default: |
1272 filterValue = CSSFilterValue::create(CSSFilterValue::UnknownFilterOp
eration); | 1272 filterValue = CSSFilterValue::create(CSSFilterValue::UnknownFilterOp
eration); |
1273 break; | 1273 break; |
1274 } | 1274 } |
1275 list->append(filterValue.release()); | 1275 list->append(filterValue.release()); |
1276 } | 1276 } |
1277 | 1277 |
1278 return list.release(); | 1278 return list.release(); |
1279 } | 1279 } |
1280 | 1280 |
1281 PassRefPtrWillBeRawPtr<CSSValue> RenderStyleCSSValueMapping::get(CSSPropertyID p
ropertyID, const RenderStyle& style, const RenderObject* renderer, Node* styledN
ode, bool allowVisitedStyle) | 1281 PassRefPtrWillBeRawPtr<CSSValue> RenderStyleCSSValueMapping::get(CSSPropertyID p
ropertyID, const RenderStyle& style, const LayoutObject* renderer, Node* styledN
ode, bool allowVisitedStyle) |
1282 { | 1282 { |
1283 const SVGRenderStyle& svgStyle = style.svgStyle(); | 1283 const SVGRenderStyle& svgStyle = style.svgStyle(); |
1284 propertyID = CSSProperty::resolveDirectionAwareProperty(propertyID, style.di
rection(), style.writingMode()); | 1284 propertyID = CSSProperty::resolveDirectionAwareProperty(propertyID, style.di
rection(), style.writingMode()); |
1285 switch (propertyID) { | 1285 switch (propertyID) { |
1286 case CSSPropertyInvalid: | 1286 case CSSPropertyInvalid: |
1287 return nullptr; | 1287 return nullptr; |
1288 | 1288 |
1289 case CSSPropertyBackgroundColor: | 1289 case CSSPropertyBackgroundColor: |
1290 return allowVisitedStyle ? cssValuePool().createColorValue(style.visited
DependentColor(CSSPropertyBackgroundColor).rgb()) : currentColorOrValidColor(sty
le, style.backgroundColor()); | 1290 return allowVisitedStyle ? cssValuePool().createColorValue(style.visited
DependentColor(CSSPropertyBackgroundColor).rgb()) : currentColorOrValidColor(sty
le, style.backgroundColor()); |
1291 case CSSPropertyBackgroundImage: | 1291 case CSSPropertyBackgroundImage: |
(...skipping 1270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2562 return nullptr; | 2562 return nullptr; |
2563 | 2563 |
2564 case CSSPropertyAll: | 2564 case CSSPropertyAll: |
2565 return nullptr; | 2565 return nullptr; |
2566 } | 2566 } |
2567 ASSERT_NOT_REACHED(); | 2567 ASSERT_NOT_REACHED(); |
2568 return nullptr; | 2568 return nullptr; |
2569 } | 2569 } |
2570 | 2570 |
2571 } | 2571 } |
OLD | NEW |