Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(267)

Side by Side Diff: Source/core/css/ComputedStyleCSSValueMapping.cpp

Issue 1105103003: Update renderer in core/css. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 return cssValuePool().createValue(CSSValueAlpha); 143 return cssValuePool().createValue(CSSValueAlpha);
144 case MaskLuminance: 144 case MaskLuminance:
145 return cssValuePool().createValue(CSSValueLuminance); 145 return cssValuePool().createValue(CSSValueLuminance);
146 } 146 }
147 147
148 ASSERT_NOT_REACHED(); 148 ASSERT_NOT_REACHED();
149 149
150 return nullptr; 150 return nullptr;
151 } 151 }
152 152
153 static PassRefPtrWillBeRawPtr<CSSValue> valueForPositionOffset(const ComputedSty le& style, CSSPropertyID propertyID, const LayoutObject* renderer) 153 static PassRefPtrWillBeRawPtr<CSSValue> valueForPositionOffset(const ComputedSty le& style, CSSPropertyID propertyID, const LayoutObject* layoutObject)
154 { 154 {
155 Length offset; 155 Length offset;
156 switch (propertyID) { 156 switch (propertyID) {
157 case CSSPropertyLeft: 157 case CSSPropertyLeft:
158 offset = style.left(); 158 offset = style.left();
159 break; 159 break;
160 case CSSPropertyRight: 160 case CSSPropertyRight:
161 offset = style.right(); 161 offset = style.right();
162 break; 162 break;
163 case CSSPropertyTop: 163 case CSSPropertyTop:
164 offset = style.top(); 164 offset = style.top();
165 break; 165 break;
166 case CSSPropertyBottom: 166 case CSSPropertyBottom:
167 offset = style.bottom(); 167 offset = style.bottom();
168 break; 168 break;
169 default: 169 default:
170 return nullptr; 170 return nullptr;
171 } 171 }
172 172
173 if (offset.isPercent() && renderer && renderer->isBox() && renderer->isPosit ioned()) { 173 if (offset.isPercent() && layoutObject && layoutObject->isBox() && layoutObj ect->isPositioned()) {
174 LayoutUnit containingBlockSize = (propertyID == CSSPropertyLeft || prope rtyID == CSSPropertyRight) ? 174 LayoutUnit containingBlockSize = (propertyID == CSSPropertyLeft || prope rtyID == CSSPropertyRight) ?
175 toLayoutBox(renderer)->containingBlockLogicalWidthForContent() : 175 toLayoutBox(layoutObject)->containingBlockLogicalWidthForContent() :
176 toLayoutBox(renderer)->containingBlockLogicalHeightForGetComputedSty le(); 176 toLayoutBox(layoutObject)->containingBlockLogicalHeightForGetCompute dStyle();
177 return zoomAdjustedPixelValue(valueForLength(offset, containingBlockSize ), style); 177 return zoomAdjustedPixelValue(valueForLength(offset, containingBlockSize ), style);
178 } 178 }
179 if (offset.isAuto()) { 179 if (offset.isAuto()) {
180 // FIXME: It's not enough to simply return "auto" values for one offset if the other side is defined. 180 // FIXME: It's not enough to simply return "auto" values for one offset if the other side is defined.
181 // In other words if left is auto and right is not auto, then left's com puted value is negative right(). 181 // In other words if left is auto and right is not auto, then left's com puted value is negative right().
182 // So we should get the opposite length unit and see if it is auto. 182 // So we should get the opposite length unit and see if it is auto.
183 return cssValuePool().createIdentifierValue(CSSValueAuto); 183 return cssValuePool().createIdentifierValue(CSSValueAuto);
184 } 184 }
185 185
186 return zoomAdjustedPixelValueForLength(offset, style); 186 return zoomAdjustedPixelValueForLength(offset, style);
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
389 RefPtrWillBeRawPtr<CSSValueList> result = CSSValueList::createSpaceSeparated (); 389 RefPtrWillBeRawPtr<CSSValueList> result = CSSValueList::createSpaceSeparated ();
390 if (positionType == LegacyPosition) 390 if (positionType == LegacyPosition)
391 result->append(CSSPrimitiveValue::createIdentifier(CSSValueLegacy)); 391 result->append(CSSPrimitiveValue::createIdentifier(CSSValueLegacy));
392 result->append(CSSPrimitiveValue::create(itemPosition)); 392 result->append(CSSPrimitiveValue::create(itemPosition));
393 if (itemPosition >= ItemPositionCenter && overflowAlignment != OverflowAlign mentDefault) 393 if (itemPosition >= ItemPositionCenter && overflowAlignment != OverflowAlign mentDefault)
394 result->append(CSSPrimitiveValue::create(overflowAlignment)); 394 result->append(CSSPrimitiveValue::create(overflowAlignment));
395 ASSERT(result->length() <= 2); 395 ASSERT(result->length() <= 2);
396 return result.release(); 396 return result.release();
397 } 397 }
398 398
399 static PassRefPtrWillBeRawPtr<CSSValueList> valuesForGridShorthand(const StylePr opertyShorthand& shorthand, const ComputedStyle& style, const LayoutObject* rend erer, Node* styledNode, bool allowVisitedStyle) 399 static PassRefPtrWillBeRawPtr<CSSValueList> valuesForGridShorthand(const StylePr opertyShorthand& shorthand, const ComputedStyle& style, const LayoutObject* layo utObject, Node* styledNode, bool allowVisitedStyle)
400 { 400 {
401 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSlashSeparated() ; 401 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSlashSeparated() ;
402 for (size_t i = 0; i < shorthand.length(); ++i) { 402 for (size_t i = 0; i < shorthand.length(); ++i) {
403 RefPtrWillBeRawPtr<CSSValue> value = ComputedStyleCSSValueMapping::get(s horthand.properties()[i], style, renderer, styledNode, allowVisitedStyle); 403 RefPtrWillBeRawPtr<CSSValue> value = ComputedStyleCSSValueMapping::get(s horthand.properties()[i], style, layoutObject, styledNode, allowVisitedStyle);
404 ASSERT(value); 404 ASSERT(value);
405 list->append(value.release()); 405 list->append(value.release());
406 } 406 }
407 return list.release(); 407 return list.release();
408 } 408 }
409 409
410 static PassRefPtrWillBeRawPtr<CSSValueList> valuesForShorthandProperty(const Sty lePropertyShorthand& shorthand, const ComputedStyle& style, const LayoutObject* renderer, Node* styledNode, bool allowVisitedStyle) 410 static PassRefPtrWillBeRawPtr<CSSValueList> valuesForShorthandProperty(const Sty lePropertyShorthand& shorthand, const ComputedStyle& style, const LayoutObject* layoutObject, Node* styledNode, bool allowVisitedStyle)
411 { 411 {
412 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated() ; 412 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated() ;
413 for (size_t i = 0; i < shorthand.length(); ++i) { 413 for (size_t i = 0; i < shorthand.length(); ++i) {
414 RefPtrWillBeRawPtr<CSSValue> value = ComputedStyleCSSValueMapping::get(s horthand.properties()[i], style, renderer, styledNode, allowVisitedStyle); 414 RefPtrWillBeRawPtr<CSSValue> value = ComputedStyleCSSValueMapping::get(s horthand.properties()[i], style, layoutObject, styledNode, allowVisitedStyle);
415 ASSERT(value); 415 ASSERT(value);
416 list->append(value); 416 list->append(value);
417 } 417 }
418 return list.release(); 418 return list.release();
419 } 419 }
420 420
421 static PassRefPtrWillBeRawPtr<CSSValueList> valuesForBackgroundShorthand(const C omputedStyle& style, const LayoutObject* renderer, Node* styledNode, bool allowV isitedStyle) 421 static PassRefPtrWillBeRawPtr<CSSValueList> valuesForBackgroundShorthand(const C omputedStyle& style, const LayoutObject* layoutObject, Node* styledNode, bool al lowVisitedStyle)
422 { 422 {
423 RefPtrWillBeRawPtr<CSSValueList> ret = CSSValueList::createCommaSeparated(); 423 RefPtrWillBeRawPtr<CSSValueList> ret = CSSValueList::createCommaSeparated();
424 const FillLayer* currLayer = &style.backgroundLayers(); 424 const FillLayer* currLayer = &style.backgroundLayers();
425 for (; currLayer; currLayer = currLayer->next()) { 425 for (; currLayer; currLayer = currLayer->next()) {
426 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSlashSeparat ed(); 426 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSlashSeparat ed();
427 RefPtrWillBeRawPtr<CSSValueList> beforeSlash = CSSValueList::createSpace Separated(); 427 RefPtrWillBeRawPtr<CSSValueList> beforeSlash = CSSValueList::createSpace Separated();
428 if (!currLayer->next()) { // color only for final layer 428 if (!currLayer->next()) { // color only for final layer
429 RefPtrWillBeRawPtr<CSSValue> value = ComputedStyleCSSValueMapping::g et(CSSPropertyBackgroundColor, style, renderer, styledNode, allowVisitedStyle); 429 RefPtrWillBeRawPtr<CSSValue> value = ComputedStyleCSSValueMapping::g et(CSSPropertyBackgroundColor, style, layoutObject, styledNode, allowVisitedStyl e);
430 ASSERT(value); 430 ASSERT(value);
431 beforeSlash->append(value); 431 beforeSlash->append(value);
432 } 432 }
433 beforeSlash->append(currLayer->image() ? currLayer->image()->cssValue() : cssValuePool().createIdentifierValue(CSSValueNone)); 433 beforeSlash->append(currLayer->image() ? currLayer->image()->cssValue() : cssValuePool().createIdentifierValue(CSSValueNone));
434 beforeSlash->append(valueForFillRepeat(currLayer->repeatX(), currLayer-> repeatY())); 434 beforeSlash->append(valueForFillRepeat(currLayer->repeatX(), currLayer-> repeatY()));
435 beforeSlash->append(cssValuePool().createValue(currLayer->attachment())) ; 435 beforeSlash->append(cssValuePool().createValue(currLayer->attachment())) ;
436 beforeSlash->append(createPositionListForLayer(CSSPropertyBackgroundPosi tion, *currLayer, style)); 436 beforeSlash->append(createPositionListForLayer(CSSPropertyBackgroundPosi tion, *currLayer, style));
437 list->append(beforeSlash); 437 list->append(beforeSlash);
438 RefPtrWillBeRawPtr<CSSValueList> afterSlash = CSSValueList::createSpaceS eparated(); 438 RefPtrWillBeRawPtr<CSSValueList> afterSlash = CSSValueList::createSpaceS eparated();
439 afterSlash->append(valueForFillSize(currLayer->size(), style)); 439 afterSlash->append(valueForFillSize(currLayer->size(), style));
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
572 const Vector<String>& namedGridLines = orderedNamedGridLines.get(i); 572 const Vector<String>& namedGridLines = orderedNamedGridLines.get(i);
573 if (namedGridLines.isEmpty()) 573 if (namedGridLines.isEmpty())
574 return; 574 return;
575 575
576 RefPtrWillBeRawPtr<CSSGridLineNamesValue> lineNames = CSSGridLineNamesValue: :create(); 576 RefPtrWillBeRawPtr<CSSGridLineNamesValue> lineNames = CSSGridLineNamesValue: :create();
577 for (size_t j = 0; j < namedGridLines.size(); ++j) 577 for (size_t j = 0; j < namedGridLines.size(); ++j)
578 lineNames->append(cssValuePool().createValue(namedGridLines[j], CSSPrimi tiveValue::CSS_CUSTOM_IDENT)); 578 lineNames->append(cssValuePool().createValue(namedGridLines[j], CSSPrimi tiveValue::CSS_CUSTOM_IDENT));
579 list.append(lineNames.release()); 579 list.append(lineNames.release());
580 } 580 }
581 581
582 static PassRefPtrWillBeRawPtr<CSSValue> valueForGridTrackList(GridTrackSizingDir ection direction, const LayoutObject* renderer, const ComputedStyle& style) 582 static PassRefPtrWillBeRawPtr<CSSValue> valueForGridTrackList(GridTrackSizingDir ection direction, const LayoutObject* layoutObject, const ComputedStyle& style)
583 { 583 {
584 const Vector<GridTrackSize>& trackSizes = direction == ForColumns ? style.gr idTemplateColumns() : style.gridTemplateRows(); 584 const Vector<GridTrackSize>& trackSizes = direction == ForColumns ? style.gr idTemplateColumns() : style.gridTemplateRows();
585 const OrderedNamedGridLines& orderedNamedGridLines = direction == ForColumns ? style.orderedNamedGridColumnLines() : style.orderedNamedGridRowLines(); 585 const OrderedNamedGridLines& orderedNamedGridLines = direction == ForColumns ? style.orderedNamedGridColumnLines() : style.orderedNamedGridRowLines();
586 bool isLayoutGrid = renderer && renderer->isLayoutGrid(); 586 bool isLayoutGrid = layoutObject && layoutObject->isLayoutGrid();
587 587
588 // Handle the 'none' case. 588 // Handle the 'none' case.
589 bool trackListIsEmpty = trackSizes.isEmpty(); 589 bool trackListIsEmpty = trackSizes.isEmpty();
590 if (isLayoutGrid && trackListIsEmpty) { 590 if (isLayoutGrid && trackListIsEmpty) {
591 // For grids we should consider every listed track, whether implicitly o r explicitly created. If we don't have 591 // For grids we should consider every listed track, whether implicitly o r explicitly created. If we don't have
592 // any explicit track and there are no children then there are no implic it tracks. We cannot simply check the 592 // any explicit track and there are no children then there are no implic it tracks. We cannot simply check the
593 // number of rows/columns in our internal grid representation because it 's always at least 1x1 (see r143331). 593 // number of rows/columns in our internal grid representation because it 's always at least 1x1 (see r143331).
594 trackListIsEmpty = !toLayoutBlock(renderer)->firstChild(); 594 trackListIsEmpty = !toLayoutBlock(layoutObject)->firstChild();
595 } 595 }
596 596
597 if (trackListIsEmpty) { 597 if (trackListIsEmpty) {
598 ASSERT(orderedNamedGridLines.isEmpty()); 598 ASSERT(orderedNamedGridLines.isEmpty());
599 return cssValuePool().createIdentifierValue(CSSValueNone); 599 return cssValuePool().createIdentifierValue(CSSValueNone);
600 } 600 }
601 601
602 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated() ; 602 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated() ;
603 if (isLayoutGrid) { 603 if (isLayoutGrid) {
604 const Vector<LayoutUnit>& trackPositions = direction == ForColumns ? toL ayoutGrid(renderer)->columnPositions() : toLayoutGrid(renderer)->rowPositions(); 604 const Vector<LayoutUnit>& trackPositions = direction == ForColumns ? toL ayoutGrid(layoutObject)->columnPositions() : toLayoutGrid(layoutObject)->rowPosi tions();
605 // There are at least #tracks + 1 grid lines (trackPositions). Apart fro m that, the grid container can generate implicit grid tracks, 605 // There are at least #tracks + 1 grid lines (trackPositions). Apart fro m that, the grid container can generate implicit grid tracks,
606 // so we'll have more trackPositions than trackSizes as the latter only contain the explicit grid. 606 // so we'll have more trackPositions than trackSizes as the latter only contain the explicit grid.
607 ASSERT(trackPositions.size() - 1 >= trackSizes.size()); 607 ASSERT(trackPositions.size() - 1 >= trackSizes.size());
608 608
609 for (size_t i = 0; i < trackPositions.size() - 1; ++i) { 609 for (size_t i = 0; i < trackPositions.size() - 1; ++i) {
610 addValuesForNamedGridLinesAtIndex(orderedNamedGridLines, i, *list); 610 addValuesForNamedGridLinesAtIndex(orderedNamedGridLines, i, *list);
611 list->append(zoomAdjustedPixelValue(trackPositions[i + 1] - trackPos itions[i], style)); 611 list->append(zoomAdjustedPixelValue(trackPositions[i + 1] - trackPos itions[i], style));
612 } 612 }
613 } else { 613 } else {
614 for (size_t i = 0; i < trackSizes.size(); ++i) { 614 for (size_t i = 0; i < trackSizes.size(); ++i) {
(...skipping 20 matching lines...) Expand all
635 list->append(cssValuePool().createValue(position.spanPosition(), CSSPrim itiveValue::CSS_NUMBER)); 635 list->append(cssValuePool().createValue(position.spanPosition(), CSSPrim itiveValue::CSS_NUMBER));
636 } else { 636 } else {
637 list->append(cssValuePool().createValue(position.integerPosition(), CSSP rimitiveValue::CSS_NUMBER)); 637 list->append(cssValuePool().createValue(position.integerPosition(), CSSP rimitiveValue::CSS_NUMBER));
638 } 638 }
639 639
640 if (!position.namedGridLine().isNull()) 640 if (!position.namedGridLine().isNull())
641 list->append(cssValuePool().createValue(position.namedGridLine(), CSSPri mitiveValue::CSS_CUSTOM_IDENT)); 641 list->append(cssValuePool().createValue(position.namedGridLine(), CSSPri mitiveValue::CSS_CUSTOM_IDENT));
642 return list; 642 return list;
643 } 643 }
644 644
645 static LayoutRect sizingBox(const LayoutObject* renderer) 645 static LayoutRect sizingBox(const LayoutObject* layoutObject)
646 { 646 {
647 if (!renderer->isBox()) 647 if (!layoutObject->isBox())
648 return LayoutRect(); 648 return LayoutRect();
649 649
650 const LayoutBox* box = toLayoutBox(renderer); 650 const LayoutBox* box = toLayoutBox(layoutObject);
651 return box->style()->boxSizing() == BORDER_BOX ? box->borderBoxRect() : box- >computedCSSContentBoxRect(); 651 return box->style()->boxSizing() == BORDER_BOX ? box->borderBoxRect() : box- >computedCSSContentBoxRect();
652 } 652 }
653 653
654 static PassRefPtrWillBeRawPtr<CSSValue> scrollBlocksOnFlagsToCSSValue(WebScrollB locksOn scrollBlocksOn) 654 static PassRefPtrWillBeRawPtr<CSSValue> scrollBlocksOnFlagsToCSSValue(WebScrollB locksOn scrollBlocksOn)
655 { 655 {
656 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated() ; 656 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated() ;
657 657
658 if (scrollBlocksOn == WebScrollBlocksOnNone) 658 if (scrollBlocksOn == WebScrollBlocksOnNone)
659 return cssValuePool().createIdentifierValue(CSSValueNone); 659 return cssValuePool().createIdentifierValue(CSSValueNone);
660 660
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
925 925
926 transformValue->append(zoomAdjustedNumberValue(transform.m41(), style)); 926 transformValue->append(zoomAdjustedNumberValue(transform.m41(), style));
927 transformValue->append(zoomAdjustedNumberValue(transform.m42(), style)); 927 transformValue->append(zoomAdjustedNumberValue(transform.m42(), style));
928 transformValue->append(zoomAdjustedNumberValue(transform.m43(), style)); 928 transformValue->append(zoomAdjustedNumberValue(transform.m43(), style));
929 transformValue->append(cssValuePool().createValue(transform.m44(), CSSPr imitiveValue::CSS_NUMBER)); 929 transformValue->append(cssValuePool().createValue(transform.m44(), CSSPr imitiveValue::CSS_NUMBER));
930 } 930 }
931 931
932 return transformValue.release(); 932 return transformValue.release();
933 } 933 }
934 934
935 static PassRefPtrWillBeRawPtr<CSSValue> computedTransform(const LayoutObject* re nderer, const ComputedStyle& style) 935 static PassRefPtrWillBeRawPtr<CSSValue> computedTransform(const LayoutObject* la youtObject, const ComputedStyle& style)
936 { 936 {
937 if (!renderer || !renderer->hasTransformRelatedProperty() || !style.hasTrans form()) 937 if (!layoutObject || !layoutObject->hasTransformRelatedProperty() || !style. hasTransform())
938 return cssValuePool().createIdentifierValue(CSSValueNone); 938 return cssValuePool().createIdentifierValue(CSSValueNone);
939 939
940 IntRect box; 940 IntRect box;
941 if (renderer->isBox()) 941 if (layoutObject->isBox())
942 box = pixelSnappedIntRect(toLayoutBox(renderer)->borderBoxRect()); 942 box = pixelSnappedIntRect(toLayoutBox(layoutObject)->borderBoxRect());
943 943
944 TransformationMatrix transform; 944 TransformationMatrix transform;
945 style.applyTransform(transform, LayoutSize(box.size()), ComputedStyle::Exclu deTransformOrigin, ComputedStyle::ExcludeMotionPath); 945 style.applyTransform(transform, LayoutSize(box.size()), ComputedStyle::Exclu deTransformOrigin, ComputedStyle::ExcludeMotionPath);
946 946
947 // FIXME: Need to print out individual functions (https://bugs.webkit.org/sh ow_bug.cgi?id=23924) 947 // FIXME: Need to print out individual functions (https://bugs.webkit.org/sh ow_bug.cgi?id=23924)
948 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated() ; 948 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated() ;
949 list->append(valueForMatrixTransform(transform, style)); 949 list->append(valueForMatrixTransform(transform, style));
950 950
951 return list.release(); 951 return list.release();
952 } 952 }
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
1038 1038
1039 ASSERT(shapeValue->type() == ShapeValue::Shape); 1039 ASSERT(shapeValue->type() == ShapeValue::Shape);
1040 1040
1041 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated() ; 1041 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated() ;
1042 list->append(valueForBasicShape(style, shapeValue->shape())); 1042 list->append(valueForBasicShape(style, shapeValue->shape()));
1043 if (shapeValue->cssBox() != BoxMissing) 1043 if (shapeValue->cssBox() != BoxMissing)
1044 list->append(cssValuePool().createValue(shapeValue->cssBox())); 1044 list->append(cssValuePool().createValue(shapeValue->cssBox()));
1045 return list.release(); 1045 return list.release();
1046 } 1046 }
1047 1047
1048 static PassRefPtrWillBeRawPtr<CSSValueList> valuesForSidesShorthand(const StyleP ropertyShorthand& shorthand, const ComputedStyle& style, const LayoutObject* ren derer, Node* styledNode, bool allowVisitedStyle) 1048 static PassRefPtrWillBeRawPtr<CSSValueList> valuesForSidesShorthand(const StyleP ropertyShorthand& shorthand, const ComputedStyle& style, const LayoutObject* lay outObject, Node* styledNode, bool allowVisitedStyle)
1049 { 1049 {
1050 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated() ; 1050 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated() ;
1051 // Assume the properties are in the usual order top, right, bottom, left. 1051 // Assume the properties are in the usual order top, right, bottom, left.
1052 RefPtrWillBeRawPtr<CSSValue> topValue = ComputedStyleCSSValueMapping::get(sh orthand.properties()[0], style, renderer, styledNode, allowVisitedStyle); 1052 RefPtrWillBeRawPtr<CSSValue> topValue = ComputedStyleCSSValueMapping::get(sh orthand.properties()[0], style, layoutObject, styledNode, allowVisitedStyle);
1053 RefPtrWillBeRawPtr<CSSValue> rightValue = ComputedStyleCSSValueMapping::get( shorthand.properties()[1], style, renderer, styledNode, allowVisitedStyle); 1053 RefPtrWillBeRawPtr<CSSValue> rightValue = ComputedStyleCSSValueMapping::get( shorthand.properties()[1], style, layoutObject, styledNode, allowVisitedStyle);
1054 RefPtrWillBeRawPtr<CSSValue> bottomValue = ComputedStyleCSSValueMapping::get (shorthand.properties()[2], style, renderer, styledNode, allowVisitedStyle); 1054 RefPtrWillBeRawPtr<CSSValue> bottomValue = ComputedStyleCSSValueMapping::get (shorthand.properties()[2], style, layoutObject, styledNode, allowVisitedStyle);
1055 RefPtrWillBeRawPtr<CSSValue> leftValue = ComputedStyleCSSValueMapping::get(s horthand.properties()[3], style, renderer, styledNode, allowVisitedStyle); 1055 RefPtrWillBeRawPtr<CSSValue> leftValue = ComputedStyleCSSValueMapping::get(s horthand.properties()[3], style, layoutObject, styledNode, allowVisitedStyle);
1056 1056
1057 // All 4 properties must be specified. 1057 // All 4 properties must be specified.
1058 if (!topValue || !rightValue || !bottomValue || !leftValue) 1058 if (!topValue || !rightValue || !bottomValue || !leftValue)
1059 return nullptr; 1059 return nullptr;
1060 1060
1061 bool showLeft = !compareCSSValuePtr(rightValue, leftValue); 1061 bool showLeft = !compareCSSValuePtr(rightValue, leftValue);
1062 bool showBottom = !compareCSSValuePtr(topValue, bottomValue) || showLeft; 1062 bool showBottom = !compareCSSValuePtr(topValue, bottomValue) || showLeft;
1063 bool showRight = !compareCSSValuePtr(topValue, rightValue) || showBottom; 1063 bool showRight = !compareCSSValuePtr(topValue, rightValue) || showBottom;
1064 1064
1065 list->append(topValue.release()); 1065 list->append(topValue.release());
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
1277 default: 1277 default:
1278 ASSERT_NOT_REACHED(); 1278 ASSERT_NOT_REACHED();
1279 break; 1279 break;
1280 } 1280 }
1281 list->append(filterValue.release()); 1281 list->append(filterValue.release());
1282 } 1282 }
1283 1283
1284 return list.release(); 1284 return list.release();
1285 } 1285 }
1286 1286
1287 PassRefPtrWillBeRawPtr<CSSValue> ComputedStyleCSSValueMapping::get(CSSPropertyID propertyID, const ComputedStyle& style, const LayoutObject* renderer, Node* sty ledNode, bool allowVisitedStyle) 1287 PassRefPtrWillBeRawPtr<CSSValue> ComputedStyleCSSValueMapping::get(CSSPropertyID propertyID, const ComputedStyle& style, const LayoutObject* layoutObject, Node* styledNode, bool allowVisitedStyle)
1288 { 1288 {
1289 const SVGComputedStyle& svgStyle = style.svgStyle(); 1289 const SVGComputedStyle& svgStyle = style.svgStyle();
1290 propertyID = CSSProperty::resolveDirectionAwareProperty(propertyID, style.di rection(), style.writingMode()); 1290 propertyID = CSSProperty::resolveDirectionAwareProperty(propertyID, style.di rection(), style.writingMode());
1291 switch (propertyID) { 1291 switch (propertyID) {
1292 case CSSPropertyInvalid: 1292 case CSSPropertyInvalid:
1293 return nullptr; 1293 return nullptr;
1294 1294
1295 case CSSPropertyBackgroundColor: 1295 case CSSPropertyBackgroundColor:
1296 return allowVisitedStyle ? cssValuePool().createColorValue(style.visited DependentColor(CSSPropertyBackgroundColor).rgb()) : currentColorOrValidColor(sty le, style.backgroundColor()); 1296 return allowVisitedStyle ? cssValuePool().createColorValue(style.visited DependentColor(CSSPropertyBackgroundColor).rgb()) : currentColorOrValidColor(sty le, style.backgroundColor());
1297 case CSSPropertyBackgroundImage: 1297 case CSSPropertyBackgroundImage:
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
1417 return cssValuePool().createValue(style.borderLeftStyle()); 1417 return cssValuePool().createValue(style.borderLeftStyle());
1418 case CSSPropertyBorderTopWidth: 1418 case CSSPropertyBorderTopWidth:
1419 return zoomAdjustedPixelValue(style.borderTopWidth(), style); 1419 return zoomAdjustedPixelValue(style.borderTopWidth(), style);
1420 case CSSPropertyBorderRightWidth: 1420 case CSSPropertyBorderRightWidth:
1421 return zoomAdjustedPixelValue(style.borderRightWidth(), style); 1421 return zoomAdjustedPixelValue(style.borderRightWidth(), style);
1422 case CSSPropertyBorderBottomWidth: 1422 case CSSPropertyBorderBottomWidth:
1423 return zoomAdjustedPixelValue(style.borderBottomWidth(), style); 1423 return zoomAdjustedPixelValue(style.borderBottomWidth(), style);
1424 case CSSPropertyBorderLeftWidth: 1424 case CSSPropertyBorderLeftWidth:
1425 return zoomAdjustedPixelValue(style.borderLeftWidth(), style); 1425 return zoomAdjustedPixelValue(style.borderLeftWidth(), style);
1426 case CSSPropertyBottom: 1426 case CSSPropertyBottom:
1427 return valueForPositionOffset(style, CSSPropertyBottom, renderer); 1427 return valueForPositionOffset(style, CSSPropertyBottom, layoutObject);
1428 case CSSPropertyWebkitBoxAlign: 1428 case CSSPropertyWebkitBoxAlign:
1429 return cssValuePool().createValue(style.boxAlign()); 1429 return cssValuePool().createValue(style.boxAlign());
1430 case CSSPropertyWebkitBoxDecorationBreak: 1430 case CSSPropertyWebkitBoxDecorationBreak:
1431 if (style.boxDecorationBreak() == DSLICE) 1431 if (style.boxDecorationBreak() == DSLICE)
1432 return cssValuePool().createIdentifierValue(CSSValueSlice); 1432 return cssValuePool().createIdentifierValue(CSSValueSlice);
1433 return cssValuePool().createIdentifierValue(CSSValueClone); 1433 return cssValuePool().createIdentifierValue(CSSValueClone);
1434 case CSSPropertyWebkitBoxDirection: 1434 case CSSPropertyWebkitBoxDirection:
1435 return cssValuePool().createValue(style.boxDirection()); 1435 return cssValuePool().createValue(style.boxDirection());
1436 case CSSPropertyWebkitBoxFlex: 1436 case CSSPropertyWebkitBoxFlex:
1437 return cssValuePool().createValue(style.boxFlex(), CSSPrimitiveValue::CS S_NUMBER); 1437 return cssValuePool().createValue(style.boxFlex(), CSSPrimitiveValue::CS S_NUMBER);
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
1512 return cssValuePool().createValue(style.display()); 1512 return cssValuePool().createValue(style.display());
1513 case CSSPropertyEmptyCells: 1513 case CSSPropertyEmptyCells:
1514 return cssValuePool().createValue(style.emptyCells()); 1514 return cssValuePool().createValue(style.emptyCells());
1515 case CSSPropertyAlignContent: 1515 case CSSPropertyAlignContent:
1516 return valueForContentPositionAndDistributionWithOverflowAlignment(resol veContentAlignmentAuto(style.alignContentPosition(), style.alignContentDistribut ion(), styledNode), style.alignContentOverflowAlignment(), style.alignContentDis tribution()); 1516 return valueForContentPositionAndDistributionWithOverflowAlignment(resol veContentAlignmentAuto(style.alignContentPosition(), style.alignContentDistribut ion(), styledNode), style.alignContentOverflowAlignment(), style.alignContentDis tribution());
1517 case CSSPropertyAlignItems: 1517 case CSSPropertyAlignItems:
1518 return valueForItemPositionWithOverflowAlignment(resolveAlignmentAuto(st yle.alignItemsPosition(), styledNode), style.alignItemsOverflowAlignment(), NonL egacyPosition); 1518 return valueForItemPositionWithOverflowAlignment(resolveAlignmentAuto(st yle.alignItemsPosition(), styledNode), style.alignItemsOverflowAlignment(), NonL egacyPosition);
1519 case CSSPropertyAlignSelf: 1519 case CSSPropertyAlignSelf:
1520 return valueForItemPositionWithOverflowAlignment(resolveAlignmentAuto(st yle.alignSelfPosition(), styledNode->parentNode()), style.alignSelfOverflowAlign ment(), NonLegacyPosition); 1520 return valueForItemPositionWithOverflowAlignment(resolveAlignmentAuto(st yle.alignSelfPosition(), styledNode->parentNode()), style.alignSelfOverflowAlign ment(), NonLegacyPosition);
1521 case CSSPropertyFlex: 1521 case CSSPropertyFlex:
1522 return valuesForShorthandProperty(flexShorthand(), style, renderer, styl edNode, allowVisitedStyle); 1522 return valuesForShorthandProperty(flexShorthand(), style, layoutObject, styledNode, allowVisitedStyle);
1523 case CSSPropertyFlexBasis: 1523 case CSSPropertyFlexBasis:
1524 return zoomAdjustedPixelValueForLength(style.flexBasis(), style); 1524 return zoomAdjustedPixelValueForLength(style.flexBasis(), style);
1525 case CSSPropertyFlexDirection: 1525 case CSSPropertyFlexDirection:
1526 return cssValuePool().createValue(style.flexDirection()); 1526 return cssValuePool().createValue(style.flexDirection());
1527 case CSSPropertyFlexFlow: 1527 case CSSPropertyFlexFlow:
1528 return valuesForShorthandProperty(flexFlowShorthand(), style, renderer, styledNode, allowVisitedStyle); 1528 return valuesForShorthandProperty(flexFlowShorthand(), style, layoutObje ct, styledNode, allowVisitedStyle);
1529 case CSSPropertyFlexGrow: 1529 case CSSPropertyFlexGrow:
1530 return cssValuePool().createValue(style.flexGrow()); 1530 return cssValuePool().createValue(style.flexGrow());
1531 case CSSPropertyFlexShrink: 1531 case CSSPropertyFlexShrink:
1532 return cssValuePool().createValue(style.flexShrink()); 1532 return cssValuePool().createValue(style.flexShrink());
1533 case CSSPropertyFlexWrap: 1533 case CSSPropertyFlexWrap:
1534 return cssValuePool().createValue(style.flexWrap()); 1534 return cssValuePool().createValue(style.flexWrap());
1535 case CSSPropertyJustifyContent: 1535 case CSSPropertyJustifyContent:
1536 return valueForContentPositionAndDistributionWithOverflowAlignment(resol veContentAlignmentAuto(style.justifyContentPosition(), style.justifyContentDistr ibution(), styledNode), style.justifyContentOverflowAlignment(), style.justifyCo ntentDistribution()); 1536 return valueForContentPositionAndDistributionWithOverflowAlignment(resol veContentAlignmentAuto(style.justifyContentPosition(), style.justifyContentDistr ibution(), styledNode), style.justifyContentOverflowAlignment(), style.justifyCo ntentDistribution());
1537 case CSSPropertyOrder: 1537 case CSSPropertyOrder:
1538 return cssValuePool().createValue(style.order(), CSSPrimitiveValue::CSS_ NUMBER); 1538 return cssValuePool().createValue(style.order(), CSSPrimitiveValue::CSS_ NUMBER);
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
1610 // one for grid-definition-{rows|columns} but not for the grid-auto-{rows|co lumns} as things like 1610 // one for grid-definition-{rows|columns} but not for the grid-auto-{rows|co lumns} as things like
1611 // grid-auto-columns: 2fr; cannot be resolved to a value in pixels as the '2 fr' means very different things 1611 // grid-auto-columns: 2fr; cannot be resolved to a value in pixels as the '2 fr' means very different things
1612 // depending on the size of the explicit grid or the number of implicit trac ks added to the grid. See 1612 // depending on the size of the explicit grid or the number of implicit trac ks added to the grid. See
1613 // http://lists.w3.org/Archives/Public/www-style/2013Nov/0014.html 1613 // http://lists.w3.org/Archives/Public/www-style/2013Nov/0014.html
1614 case CSSPropertyGridAutoColumns: 1614 case CSSPropertyGridAutoColumns:
1615 return specifiedValueForGridTrackSize(style.gridAutoColumns(), style); 1615 return specifiedValueForGridTrackSize(style.gridAutoColumns(), style);
1616 case CSSPropertyGridAutoRows: 1616 case CSSPropertyGridAutoRows:
1617 return specifiedValueForGridTrackSize(style.gridAutoRows(), style); 1617 return specifiedValueForGridTrackSize(style.gridAutoRows(), style);
1618 1618
1619 case CSSPropertyGridTemplateColumns: 1619 case CSSPropertyGridTemplateColumns:
1620 return valueForGridTrackList(ForColumns, renderer, style); 1620 return valueForGridTrackList(ForColumns, layoutObject, style);
1621 case CSSPropertyGridTemplateRows: 1621 case CSSPropertyGridTemplateRows:
1622 return valueForGridTrackList(ForRows, renderer, style); 1622 return valueForGridTrackList(ForRows, layoutObject, style);
1623 1623
1624 case CSSPropertyGridColumnStart: 1624 case CSSPropertyGridColumnStart:
1625 return valueForGridPosition(style.gridColumnStart()); 1625 return valueForGridPosition(style.gridColumnStart());
1626 case CSSPropertyGridColumnEnd: 1626 case CSSPropertyGridColumnEnd:
1627 return valueForGridPosition(style.gridColumnEnd()); 1627 return valueForGridPosition(style.gridColumnEnd());
1628 case CSSPropertyGridRowStart: 1628 case CSSPropertyGridRowStart:
1629 return valueForGridPosition(style.gridRowStart()); 1629 return valueForGridPosition(style.gridRowStart());
1630 case CSSPropertyGridRowEnd: 1630 case CSSPropertyGridRowEnd:
1631 return valueForGridPosition(style.gridRowEnd()); 1631 return valueForGridPosition(style.gridRowEnd());
1632 case CSSPropertyGridColumn: 1632 case CSSPropertyGridColumn:
1633 return valuesForGridShorthand(gridColumnShorthand(), style, renderer, st yledNode, allowVisitedStyle); 1633 return valuesForGridShorthand(gridColumnShorthand(), style, layoutObject , styledNode, allowVisitedStyle);
1634 case CSSPropertyGridRow: 1634 case CSSPropertyGridRow:
1635 return valuesForGridShorthand(gridRowShorthand(), style, renderer, style dNode, allowVisitedStyle); 1635 return valuesForGridShorthand(gridRowShorthand(), style, layoutObject, s tyledNode, allowVisitedStyle);
1636 case CSSPropertyGridArea: 1636 case CSSPropertyGridArea:
1637 return valuesForGridShorthand(gridAreaShorthand(), style, renderer, styl edNode, allowVisitedStyle); 1637 return valuesForGridShorthand(gridAreaShorthand(), style, layoutObject, styledNode, allowVisitedStyle);
1638 case CSSPropertyGridTemplate: 1638 case CSSPropertyGridTemplate:
1639 return valuesForGridShorthand(gridTemplateShorthand(), style, renderer, styledNode, allowVisitedStyle); 1639 return valuesForGridShorthand(gridTemplateShorthand(), style, layoutObje ct, styledNode, allowVisitedStyle);
1640 case CSSPropertyGrid: 1640 case CSSPropertyGrid:
1641 return valuesForGridShorthand(gridShorthand(), style, renderer, styledNo de, allowVisitedStyle); 1641 return valuesForGridShorthand(gridShorthand(), style, layoutObject, styl edNode, allowVisitedStyle);
1642 case CSSPropertyGridTemplateAreas: 1642 case CSSPropertyGridTemplateAreas:
1643 if (!style.namedGridAreaRowCount()) { 1643 if (!style.namedGridAreaRowCount()) {
1644 ASSERT(!style.namedGridAreaColumnCount()); 1644 ASSERT(!style.namedGridAreaColumnCount());
1645 return cssValuePool().createIdentifierValue(CSSValueNone); 1645 return cssValuePool().createIdentifierValue(CSSValueNone);
1646 } 1646 }
1647 1647
1648 return CSSGridTemplateAreasValue::create(style.namedGridArea(), style.na medGridAreaRowCount(), style.namedGridAreaColumnCount()); 1648 return CSSGridTemplateAreasValue::create(style.namedGridArea(), style.na medGridAreaRowCount(), style.namedGridAreaColumnCount());
1649 1649
1650 case CSSPropertyHeight: 1650 case CSSPropertyHeight:
1651 if (renderer) { 1651 if (layoutObject) {
1652 // According to http://www.w3.org/TR/CSS2/visudet.html#the-height-pr operty, 1652 // According to http://www.w3.org/TR/CSS2/visudet.html#the-height-pr operty,
1653 // the "height" property does not apply for non-replaced inline elem ents. 1653 // the "height" property does not apply for non-replaced inline elem ents.
1654 if (!renderer->isReplaced() && renderer->isInline()) 1654 if (!layoutObject->isReplaced() && layoutObject->isInline())
1655 return cssValuePool().createIdentifierValue(CSSValueAuto); 1655 return cssValuePool().createIdentifierValue(CSSValueAuto);
1656 return zoomAdjustedPixelValue(sizingBox(renderer).height(), style); 1656 return zoomAdjustedPixelValue(sizingBox(layoutObject).height(), styl e);
1657 } 1657 }
1658 return zoomAdjustedPixelValueForLength(style.height(), style); 1658 return zoomAdjustedPixelValueForLength(style.height(), style);
1659 case CSSPropertyWebkitHighlight: 1659 case CSSPropertyWebkitHighlight:
1660 if (style.highlight() == nullAtom) 1660 if (style.highlight() == nullAtom)
1661 return cssValuePool().createIdentifierValue(CSSValueNone); 1661 return cssValuePool().createIdentifierValue(CSSValueNone);
1662 return cssValuePool().createValue(style.highlight(), CSSPrimitiveValue:: CSS_STRING); 1662 return cssValuePool().createValue(style.highlight(), CSSPrimitiveValue:: CSS_STRING);
1663 case CSSPropertyWebkitHyphenateCharacter: 1663 case CSSPropertyWebkitHyphenateCharacter:
1664 if (style.hyphenationString().isNull()) 1664 if (style.hyphenationString().isNull())
1665 return cssValuePool().createIdentifierValue(CSSValueAuto); 1665 return cssValuePool().createIdentifierValue(CSSValueAuto);
1666 return cssValuePool().createValue(style.hyphenationString(), CSSPrimitiv eValue::CSS_STRING); 1666 return cssValuePool().createValue(style.hyphenationString(), CSSPrimitiv eValue::CSS_STRING);
1667 case CSSPropertyImageRendering: 1667 case CSSPropertyImageRendering:
1668 return CSSPrimitiveValue::create(style.imageRendering()); 1668 return CSSPrimitiveValue::create(style.imageRendering());
1669 case CSSPropertyIsolation: 1669 case CSSPropertyIsolation:
1670 return cssValuePool().createValue(style.isolation()); 1670 return cssValuePool().createValue(style.isolation());
1671 case CSSPropertyJustifyItems: 1671 case CSSPropertyJustifyItems:
1672 return valueForItemPositionWithOverflowAlignment(resolveAlignmentAuto(st yle.justifyItemsPosition(), styledNode), style.justifyItemsOverflowAlignment(), style.justifyItemsPositionType()); 1672 return valueForItemPositionWithOverflowAlignment(resolveAlignmentAuto(st yle.justifyItemsPosition(), styledNode), style.justifyItemsOverflowAlignment(), style.justifyItemsPositionType());
1673 case CSSPropertyJustifySelf: 1673 case CSSPropertyJustifySelf:
1674 return valueForItemPositionWithOverflowAlignment(resolveAlignmentAuto(st yle.justifySelfPosition(), styledNode->parentNode()), style.justifySelfOverflowA lignment(), NonLegacyPosition); 1674 return valueForItemPositionWithOverflowAlignment(resolveAlignmentAuto(st yle.justifySelfPosition(), styledNode->parentNode()), style.justifySelfOverflowA lignment(), NonLegacyPosition);
1675 case CSSPropertyLeft: 1675 case CSSPropertyLeft:
1676 return valueForPositionOffset(style, CSSPropertyLeft, renderer); 1676 return valueForPositionOffset(style, CSSPropertyLeft, layoutObject);
1677 case CSSPropertyLetterSpacing: 1677 case CSSPropertyLetterSpacing:
1678 if (!style.letterSpacing()) 1678 if (!style.letterSpacing())
1679 return cssValuePool().createIdentifierValue(CSSValueNormal); 1679 return cssValuePool().createIdentifierValue(CSSValueNormal);
1680 return zoomAdjustedPixelValue(style.letterSpacing(), style); 1680 return zoomAdjustedPixelValue(style.letterSpacing(), style);
1681 case CSSPropertyWebkitLineClamp: 1681 case CSSPropertyWebkitLineClamp:
1682 if (style.lineClamp().isNone()) 1682 if (style.lineClamp().isNone())
1683 return cssValuePool().createIdentifierValue(CSSValueNone); 1683 return cssValuePool().createIdentifierValue(CSSValueNone);
1684 return cssValuePool().createValue(style.lineClamp().value(), style.lineC lamp().isPercentage() ? CSSPrimitiveValue::CSS_PERCENTAGE : CSSPrimitiveValue::C SS_NUMBER); 1684 return cssValuePool().createValue(style.lineClamp().value(), style.lineC lamp().isPercentage() ? CSSPrimitiveValue::CSS_PERCENTAGE : CSSPrimitiveValue::C SS_NUMBER);
1685 case CSSPropertyLineHeight: 1685 case CSSPropertyLineHeight:
1686 return valueForLineHeight(style); 1686 return valueForLineHeight(style);
1687 case CSSPropertyListStyleImage: 1687 case CSSPropertyListStyleImage:
1688 if (style.listStyleImage()) 1688 if (style.listStyleImage())
1689 return style.listStyleImage()->cssValue(); 1689 return style.listStyleImage()->cssValue();
1690 return cssValuePool().createIdentifierValue(CSSValueNone); 1690 return cssValuePool().createIdentifierValue(CSSValueNone);
1691 case CSSPropertyListStylePosition: 1691 case CSSPropertyListStylePosition:
1692 return cssValuePool().createValue(style.listStylePosition()); 1692 return cssValuePool().createValue(style.listStylePosition());
1693 case CSSPropertyListStyleType: 1693 case CSSPropertyListStyleType:
1694 return cssValuePool().createValue(style.listStyleType()); 1694 return cssValuePool().createValue(style.listStyleType());
1695 case CSSPropertyWebkitLocale: 1695 case CSSPropertyWebkitLocale:
1696 if (style.locale().isNull()) 1696 if (style.locale().isNull())
1697 return cssValuePool().createIdentifierValue(CSSValueAuto); 1697 return cssValuePool().createIdentifierValue(CSSValueAuto);
1698 return cssValuePool().createValue(style.locale(), CSSPrimitiveValue::CSS _STRING); 1698 return cssValuePool().createValue(style.locale(), CSSPrimitiveValue::CSS _STRING);
1699 case CSSPropertyMarginTop: { 1699 case CSSPropertyMarginTop: {
1700 Length marginTop = style.marginTop(); 1700 Length marginTop = style.marginTop();
1701 if (marginTop.isFixed() || !renderer || !renderer->isBox()) 1701 if (marginTop.isFixed() || !layoutObject || !layoutObject->isBox())
1702 return zoomAdjustedPixelValueForLength(marginTop, style); 1702 return zoomAdjustedPixelValueForLength(marginTop, style);
1703 return zoomAdjustedPixelValue(toLayoutBox(renderer)->marginTop(), style) ; 1703 return zoomAdjustedPixelValue(toLayoutBox(layoutObject)->marginTop(), st yle);
1704 } 1704 }
1705 case CSSPropertyMarginRight: { 1705 case CSSPropertyMarginRight: {
1706 Length marginRight = style.marginRight(); 1706 Length marginRight = style.marginRight();
1707 if (marginRight.isFixed() || !renderer || !renderer->isBox()) 1707 if (marginRight.isFixed() || !layoutObject || !layoutObject->isBox())
1708 return zoomAdjustedPixelValueForLength(marginRight, style); 1708 return zoomAdjustedPixelValueForLength(marginRight, style);
1709 float value; 1709 float value;
1710 if (marginRight.isPercent()) { 1710 if (marginRight.isPercent()) {
1711 // LayoutBox gives a marginRight() that is the distance between the right-edge of the child box 1711 // LayoutBox gives a marginRight() that is the distance between the right-edge of the child box
1712 // and the right-edge of the containing box, when display == BLOCK. Let's calculate the absolute 1712 // and the right-edge of the containing box, when display == BLOCK. Let's calculate the absolute
1713 // value of the specified margin-right % instead of relying on Layou tBox's marginRight() value. 1713 // value of the specified margin-right % instead of relying on Layou tBox's marginRight() value.
1714 value = minimumValueForLength(marginRight, toLayoutBox(renderer)->co ntainingBlockLogicalWidthForContent()).toFloat(); 1714 value = minimumValueForLength(marginRight, toLayoutBox(layoutObject) ->containingBlockLogicalWidthForContent()).toFloat();
1715 } else { 1715 } else {
1716 value = toLayoutBox(renderer)->marginRight().toFloat(); 1716 value = toLayoutBox(layoutObject)->marginRight().toFloat();
1717 } 1717 }
1718 return zoomAdjustedPixelValue(value, style); 1718 return zoomAdjustedPixelValue(value, style);
1719 } 1719 }
1720 case CSSPropertyMarginBottom: { 1720 case CSSPropertyMarginBottom: {
1721 Length marginBottom = style.marginBottom(); 1721 Length marginBottom = style.marginBottom();
1722 if (marginBottom.isFixed() || !renderer || !renderer->isBox()) 1722 if (marginBottom.isFixed() || !layoutObject || !layoutObject->isBox())
1723 return zoomAdjustedPixelValueForLength(marginBottom, style); 1723 return zoomAdjustedPixelValueForLength(marginBottom, style);
1724 return zoomAdjustedPixelValue(toLayoutBox(renderer)->marginBottom(), sty le); 1724 return zoomAdjustedPixelValue(toLayoutBox(layoutObject)->marginBottom(), style);
1725 } 1725 }
1726 case CSSPropertyMarginLeft: { 1726 case CSSPropertyMarginLeft: {
1727 Length marginLeft = style.marginLeft(); 1727 Length marginLeft = style.marginLeft();
1728 if (marginLeft.isFixed() || !renderer || !renderer->isBox()) 1728 if (marginLeft.isFixed() || !layoutObject || !layoutObject->isBox())
1729 return zoomAdjustedPixelValueForLength(marginLeft, style); 1729 return zoomAdjustedPixelValueForLength(marginLeft, style);
1730 return zoomAdjustedPixelValue(toLayoutBox(renderer)->marginLeft(), style ); 1730 return zoomAdjustedPixelValue(toLayoutBox(layoutObject)->marginLeft(), s tyle);
1731 } 1731 }
1732 case CSSPropertyWebkitUserModify: 1732 case CSSPropertyWebkitUserModify:
1733 return cssValuePool().createValue(style.userModify()); 1733 return cssValuePool().createValue(style.userModify());
1734 case CSSPropertyMaxHeight: { 1734 case CSSPropertyMaxHeight: {
1735 const Length& maxHeight = style.maxHeight(); 1735 const Length& maxHeight = style.maxHeight();
1736 if (maxHeight.isMaxSizeNone()) 1736 if (maxHeight.isMaxSizeNone())
1737 return cssValuePool().createIdentifierValue(CSSValueNone); 1737 return cssValuePool().createIdentifierValue(CSSValueNone);
1738 return zoomAdjustedPixelValueForLength(maxHeight, style); 1738 return zoomAdjustedPixelValueForLength(maxHeight, style);
1739 } 1739 }
1740 case CSSPropertyMaxWidth: { 1740 case CSSPropertyMaxWidth: {
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1780 case CSSPropertyOverflow: 1780 case CSSPropertyOverflow:
1781 return cssValuePool().createValue(max(style.overflowX(), style.overflowY ())); 1781 return cssValuePool().createValue(max(style.overflowX(), style.overflowY ()));
1782 case CSSPropertyOverflowWrap: 1782 case CSSPropertyOverflowWrap:
1783 return cssValuePool().createValue(style.overflowWrap()); 1783 return cssValuePool().createValue(style.overflowWrap());
1784 case CSSPropertyOverflowX: 1784 case CSSPropertyOverflowX:
1785 return cssValuePool().createValue(style.overflowX()); 1785 return cssValuePool().createValue(style.overflowX());
1786 case CSSPropertyOverflowY: 1786 case CSSPropertyOverflowY:
1787 return cssValuePool().createValue(style.overflowY()); 1787 return cssValuePool().createValue(style.overflowY());
1788 case CSSPropertyPaddingTop: { 1788 case CSSPropertyPaddingTop: {
1789 Length paddingTop = style.paddingTop(); 1789 Length paddingTop = style.paddingTop();
1790 if (paddingTop.isFixed() || !renderer || !renderer->isBox()) 1790 if (paddingTop.isFixed() || !layoutObject || !layoutObject->isBox())
1791 return zoomAdjustedPixelValueForLength(paddingTop, style); 1791 return zoomAdjustedPixelValueForLength(paddingTop, style);
1792 return zoomAdjustedPixelValue(toLayoutBox(renderer)->computedCSSPaddingT op(), style); 1792 return zoomAdjustedPixelValue(toLayoutBox(layoutObject)->computedCSSPadd ingTop(), style);
1793 } 1793 }
1794 case CSSPropertyPaddingRight: { 1794 case CSSPropertyPaddingRight: {
1795 Length paddingRight = style.paddingRight(); 1795 Length paddingRight = style.paddingRight();
1796 if (paddingRight.isFixed() || !renderer || !renderer->isBox()) 1796 if (paddingRight.isFixed() || !layoutObject || !layoutObject->isBox())
1797 return zoomAdjustedPixelValueForLength(paddingRight, style); 1797 return zoomAdjustedPixelValueForLength(paddingRight, style);
1798 return zoomAdjustedPixelValue(toLayoutBox(renderer)->computedCSSPaddingR ight(), style); 1798 return zoomAdjustedPixelValue(toLayoutBox(layoutObject)->computedCSSPadd ingRight(), style);
1799 } 1799 }
1800 case CSSPropertyPaddingBottom: { 1800 case CSSPropertyPaddingBottom: {
1801 Length paddingBottom = style.paddingBottom(); 1801 Length paddingBottom = style.paddingBottom();
1802 if (paddingBottom.isFixed() || !renderer || !renderer->isBox()) 1802 if (paddingBottom.isFixed() || !layoutObject || !layoutObject->isBox())
1803 return zoomAdjustedPixelValueForLength(paddingBottom, style); 1803 return zoomAdjustedPixelValueForLength(paddingBottom, style);
1804 return zoomAdjustedPixelValue(toLayoutBox(renderer)->computedCSSPaddingB ottom(), style); 1804 return zoomAdjustedPixelValue(toLayoutBox(layoutObject)->computedCSSPadd ingBottom(), style);
1805 } 1805 }
1806 case CSSPropertyPaddingLeft: { 1806 case CSSPropertyPaddingLeft: {
1807 Length paddingLeft = style.paddingLeft(); 1807 Length paddingLeft = style.paddingLeft();
1808 if (paddingLeft.isFixed() || !renderer || !renderer->isBox()) 1808 if (paddingLeft.isFixed() || !layoutObject || !layoutObject->isBox())
1809 return zoomAdjustedPixelValueForLength(paddingLeft, style); 1809 return zoomAdjustedPixelValueForLength(paddingLeft, style);
1810 return zoomAdjustedPixelValue(toLayoutBox(renderer)->computedCSSPaddingL eft(), style); 1810 return zoomAdjustedPixelValue(toLayoutBox(layoutObject)->computedCSSPadd ingLeft(), style);
1811 } 1811 }
1812 case CSSPropertyPageBreakAfter: 1812 case CSSPropertyPageBreakAfter:
1813 return cssValuePool().createValue(style.pageBreakAfter()); 1813 return cssValuePool().createValue(style.pageBreakAfter());
1814 case CSSPropertyPageBreakBefore: 1814 case CSSPropertyPageBreakBefore:
1815 return cssValuePool().createValue(style.pageBreakBefore()); 1815 return cssValuePool().createValue(style.pageBreakBefore());
1816 case CSSPropertyPageBreakInside: { 1816 case CSSPropertyPageBreakInside: {
1817 EPageBreak pageBreak = style.pageBreakInside(); 1817 EPageBreak pageBreak = style.pageBreakInside();
1818 ASSERT(pageBreak != PBALWAYS); 1818 ASSERT(pageBreak != PBALWAYS);
1819 if (pageBreak == PBALWAYS) 1819 if (pageBreak == PBALWAYS)
1820 return nullptr; 1820 return nullptr;
1821 return cssValuePool().createValue(style.pageBreakInside()); 1821 return cssValuePool().createValue(style.pageBreakInside());
1822 } 1822 }
1823 case CSSPropertyPosition: 1823 case CSSPropertyPosition:
1824 return cssValuePool().createValue(style.position()); 1824 return cssValuePool().createValue(style.position());
1825 case CSSPropertyRight: 1825 case CSSPropertyRight:
1826 return valueForPositionOffset(style, CSSPropertyRight, renderer); 1826 return valueForPositionOffset(style, CSSPropertyRight, layoutObject);
1827 case CSSPropertyWebkitRubyPosition: 1827 case CSSPropertyWebkitRubyPosition:
1828 return cssValuePool().createValue(style.rubyPosition()); 1828 return cssValuePool().createValue(style.rubyPosition());
1829 case CSSPropertyScrollBehavior: 1829 case CSSPropertyScrollBehavior:
1830 return cssValuePool().createValue(style.scrollBehavior()); 1830 return cssValuePool().createValue(style.scrollBehavior());
1831 case CSSPropertyScrollBlocksOn: 1831 case CSSPropertyScrollBlocksOn:
1832 return scrollBlocksOnFlagsToCSSValue(style.scrollBlocksOn()); 1832 return scrollBlocksOnFlagsToCSSValue(style.scrollBlocksOn());
1833 case CSSPropertyTableLayout: 1833 case CSSPropertyTableLayout:
1834 return cssValuePool().createValue(style.tableLayout()); 1834 return cssValuePool().createValue(style.tableLayout());
1835 case CSSPropertyTextAlign: 1835 case CSSPropertyTextAlign:
1836 return cssValuePool().createValue(style.textAlign()); 1836 return cssValuePool().createValue(style.textAlign());
1837 case CSSPropertyTextAlignLast: 1837 case CSSPropertyTextAlignLast:
1838 return cssValuePool().createValue(style.textAlignLast()); 1838 return cssValuePool().createValue(style.textAlignLast());
1839 case CSSPropertyTextDecoration: 1839 case CSSPropertyTextDecoration:
1840 if (RuntimeEnabledFeatures::css3TextDecorationsEnabled()) 1840 if (RuntimeEnabledFeatures::css3TextDecorationsEnabled())
1841 return valuesForShorthandProperty(textDecorationShorthand(), style, renderer, styledNode, allowVisitedStyle); 1841 return valuesForShorthandProperty(textDecorationShorthand(), style, layoutObject, styledNode, allowVisitedStyle);
1842 // Fall through. 1842 // Fall through.
1843 case CSSPropertyTextDecorationLine: 1843 case CSSPropertyTextDecorationLine:
1844 return renderTextDecorationFlagsToCSSValue(style.textDecoration()); 1844 return renderTextDecorationFlagsToCSSValue(style.textDecoration());
1845 case CSSPropertyTextDecorationStyle: 1845 case CSSPropertyTextDecorationStyle:
1846 return valueForTextDecorationStyle(style.textDecorationStyle()); 1846 return valueForTextDecorationStyle(style.textDecorationStyle());
1847 case CSSPropertyTextDecorationColor: 1847 case CSSPropertyTextDecorationColor:
1848 return currentColorOrValidColor(style, style.textDecorationColor()); 1848 return currentColorOrValidColor(style, style.textDecorationColor());
1849 case CSSPropertyTextJustify: 1849 case CSSPropertyTextJustify:
1850 return cssValuePool().createValue(style.textJustify()); 1850 return cssValuePool().createValue(style.textJustify());
1851 case CSSPropertyTextUnderlinePosition: 1851 case CSSPropertyTextUnderlinePosition:
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
1899 return cssValuePool().createIdentifierValue(CSSValueClip); 1899 return cssValuePool().createIdentifierValue(CSSValueClip);
1900 case CSSPropertyWebkitTextSecurity: 1900 case CSSPropertyWebkitTextSecurity:
1901 return cssValuePool().createValue(style.textSecurity()); 1901 return cssValuePool().createValue(style.textSecurity());
1902 case CSSPropertyWebkitTextStrokeColor: 1902 case CSSPropertyWebkitTextStrokeColor:
1903 return currentColorOrValidColor(style, style.textStrokeColor()); 1903 return currentColorOrValidColor(style, style.textStrokeColor());
1904 case CSSPropertyWebkitTextStrokeWidth: 1904 case CSSPropertyWebkitTextStrokeWidth:
1905 return zoomAdjustedPixelValue(style.textStrokeWidth(), style); 1905 return zoomAdjustedPixelValue(style.textStrokeWidth(), style);
1906 case CSSPropertyTextTransform: 1906 case CSSPropertyTextTransform:
1907 return cssValuePool().createValue(style.textTransform()); 1907 return cssValuePool().createValue(style.textTransform());
1908 case CSSPropertyTop: 1908 case CSSPropertyTop:
1909 return valueForPositionOffset(style, CSSPropertyTop, renderer); 1909 return valueForPositionOffset(style, CSSPropertyTop, layoutObject);
1910 case CSSPropertyTouchAction: 1910 case CSSPropertyTouchAction:
1911 return touchActionFlagsToCSSValue(style.touchAction()); 1911 return touchActionFlagsToCSSValue(style.touchAction());
1912 case CSSPropertyUnicodeBidi: 1912 case CSSPropertyUnicodeBidi:
1913 return cssValuePool().createValue(style.unicodeBidi()); 1913 return cssValuePool().createValue(style.unicodeBidi());
1914 case CSSPropertyVerticalAlign: 1914 case CSSPropertyVerticalAlign:
1915 switch (style.verticalAlign()) { 1915 switch (style.verticalAlign()) {
1916 case BASELINE: 1916 case BASELINE:
1917 return cssValuePool().createIdentifierValue(CSSValueBaseline); 1917 return cssValuePool().createIdentifierValue(CSSValueBaseline);
1918 case MIDDLE: 1918 case MIDDLE:
1919 return cssValuePool().createIdentifierValue(CSSValueMiddle); 1919 return cssValuePool().createIdentifierValue(CSSValueMiddle);
(...skipping 16 matching lines...) Expand all
1936 } 1936 }
1937 ASSERT_NOT_REACHED(); 1937 ASSERT_NOT_REACHED();
1938 return nullptr; 1938 return nullptr;
1939 case CSSPropertyVisibility: 1939 case CSSPropertyVisibility:
1940 return cssValuePool().createValue(style.visibility()); 1940 return cssValuePool().createValue(style.visibility());
1941 case CSSPropertyWhiteSpace: 1941 case CSSPropertyWhiteSpace:
1942 return cssValuePool().createValue(style.whiteSpace()); 1942 return cssValuePool().createValue(style.whiteSpace());
1943 case CSSPropertyWidows: 1943 case CSSPropertyWidows:
1944 return cssValuePool().createValue(style.widows(), CSSPrimitiveValue::CSS _NUMBER); 1944 return cssValuePool().createValue(style.widows(), CSSPrimitiveValue::CSS _NUMBER);
1945 case CSSPropertyWidth: 1945 case CSSPropertyWidth:
1946 if (renderer) { 1946 if (layoutObject) {
1947 // According to http://www.w3.org/TR/CSS2/visudet.html#the-width-pro perty, 1947 // According to http://www.w3.org/TR/CSS2/visudet.html#the-width-pro perty,
1948 // the "width" property does not apply for non-replaced inline eleme nts. 1948 // the "width" property does not apply for non-replaced inline eleme nts.
1949 if (!renderer->isReplaced() && renderer->isInline()) 1949 if (!layoutObject->isReplaced() && layoutObject->isInline())
1950 return cssValuePool().createIdentifierValue(CSSValueAuto); 1950 return cssValuePool().createIdentifierValue(CSSValueAuto);
1951 return zoomAdjustedPixelValue(sizingBox(renderer).width(), style); 1951 return zoomAdjustedPixelValue(sizingBox(layoutObject).width(), style );
1952 } 1952 }
1953 return zoomAdjustedPixelValueForLength(style.width(), style); 1953 return zoomAdjustedPixelValueForLength(style.width(), style);
1954 case CSSPropertyWillChange: 1954 case CSSPropertyWillChange:
1955 return valueForWillChange(style.willChangeProperties(), style.willChange Contents(), style.willChangeScrollPosition()); 1955 return valueForWillChange(style.willChangeProperties(), style.willChange Contents(), style.willChangeScrollPosition());
1956 case CSSPropertyWordBreak: 1956 case CSSPropertyWordBreak:
1957 return cssValuePool().createValue(style.wordBreak()); 1957 return cssValuePool().createValue(style.wordBreak());
1958 case CSSPropertyWordSpacing: 1958 case CSSPropertyWordSpacing:
1959 return zoomAdjustedPixelValue(style.wordSpacing(), style); 1959 return zoomAdjustedPixelValue(style.wordSpacing(), style);
1960 case CSSPropertyWordWrap: 1960 case CSSPropertyWordWrap:
1961 return cssValuePool().createValue(style.overflowWrap()); 1961 return cssValuePool().createValue(style.overflowWrap());
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
2128 return cssValuePool().createValue(style.marginAfterCollapse()); 2128 return cssValuePool().createValue(style.marginAfterCollapse());
2129 case CSSPropertyWebkitMarginTopCollapse: 2129 case CSSPropertyWebkitMarginTopCollapse:
2130 case CSSPropertyWebkitMarginBeforeCollapse: 2130 case CSSPropertyWebkitMarginBeforeCollapse:
2131 return cssValuePool().createValue(style.marginBeforeCollapse()); 2131 return cssValuePool().createValue(style.marginBeforeCollapse());
2132 case CSSPropertyPerspective: 2132 case CSSPropertyPerspective:
2133 if (!style.hasPerspective()) 2133 if (!style.hasPerspective())
2134 return cssValuePool().createIdentifierValue(CSSValueNone); 2134 return cssValuePool().createIdentifierValue(CSSValueNone);
2135 return zoomAdjustedPixelValue(style.perspective(), style); 2135 return zoomAdjustedPixelValue(style.perspective(), style);
2136 case CSSPropertyPerspectiveOrigin: { 2136 case CSSPropertyPerspectiveOrigin: {
2137 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparat ed(); 2137 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparat ed();
2138 if (renderer) { 2138 if (layoutObject) {
2139 LayoutRect box; 2139 LayoutRect box;
2140 if (renderer->isBox()) 2140 if (layoutObject->isBox())
2141 box = toLayoutBox(renderer)->borderBoxRect(); 2141 box = toLayoutBox(layoutObject)->borderBoxRect();
2142 2142
2143 list->append(zoomAdjustedPixelValue(minimumValueForLength(style.pers pectiveOriginX(), box.width()), style)); 2143 list->append(zoomAdjustedPixelValue(minimumValueForLength(style.pers pectiveOriginX(), box.width()), style));
2144 list->append(zoomAdjustedPixelValue(minimumValueForLength(style.pers pectiveOriginY(), box.height()), style)); 2144 list->append(zoomAdjustedPixelValue(minimumValueForLength(style.pers pectiveOriginY(), box.height()), style));
2145 } else { 2145 } else {
2146 list->append(zoomAdjustedPixelValueForLength(style.perspectiveOrigin X(), style)); 2146 list->append(zoomAdjustedPixelValueForLength(style.perspectiveOrigin X(), style));
2147 list->append(zoomAdjustedPixelValueForLength(style.perspectiveOrigin Y(), style)); 2147 list->append(zoomAdjustedPixelValueForLength(style.perspectiveOrigin Y(), style));
2148 } 2148 }
2149 return list.release(); 2149 return list.release();
2150 } 2150 }
2151 case CSSPropertyWebkitRtlOrdering: 2151 case CSSPropertyWebkitRtlOrdering:
(...skipping 18 matching lines...) Expand all
2170 RefPtrWillBeRawPtr<Rect> rect = Rect::create(); 2170 RefPtrWillBeRawPtr<Rect> rect = Rect::create();
2171 rect->setTop(zoomAdjustedPixelValue(style.clip().top().value(), style)); 2171 rect->setTop(zoomAdjustedPixelValue(style.clip().top().value(), style));
2172 rect->setRight(zoomAdjustedPixelValue(style.clip().right().value(), styl e)); 2172 rect->setRight(zoomAdjustedPixelValue(style.clip().right().value(), styl e));
2173 rect->setBottom(zoomAdjustedPixelValue(style.clip().bottom().value(), st yle)); 2173 rect->setBottom(zoomAdjustedPixelValue(style.clip().bottom().value(), st yle));
2174 rect->setLeft(zoomAdjustedPixelValue(style.clip().left().value(), style) ); 2174 rect->setLeft(zoomAdjustedPixelValue(style.clip().left().value(), style) );
2175 return cssValuePool().createValue(rect.release()); 2175 return cssValuePool().createValue(rect.release());
2176 } 2176 }
2177 case CSSPropertySpeak: 2177 case CSSPropertySpeak:
2178 return cssValuePool().createValue(style.speak()); 2178 return cssValuePool().createValue(style.speak());
2179 case CSSPropertyTransform: 2179 case CSSPropertyTransform:
2180 return computedTransform(renderer, style); 2180 return computedTransform(layoutObject, style);
2181 case CSSPropertyTransformOrigin: { 2181 case CSSPropertyTransformOrigin: {
2182 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparat ed(); 2182 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparat ed();
2183 if (renderer) { 2183 if (layoutObject) {
2184 LayoutRect box; 2184 LayoutRect box;
2185 if (renderer->isBox()) 2185 if (layoutObject->isBox())
2186 box = toLayoutBox(renderer)->borderBoxRect(); 2186 box = toLayoutBox(layoutObject)->borderBoxRect();
2187 2187
2188 list->append(zoomAdjustedPixelValue(minimumValueForLength(style.tran sformOriginX(), box.width()), style)); 2188 list->append(zoomAdjustedPixelValue(minimumValueForLength(style.tran sformOriginX(), box.width()), style));
2189 list->append(zoomAdjustedPixelValue(minimumValueForLength(style.tran sformOriginY(), box.height()), style)); 2189 list->append(zoomAdjustedPixelValue(minimumValueForLength(style.tran sformOriginY(), box.height()), style));
2190 if (style.transformOriginZ() != 0) 2190 if (style.transformOriginZ() != 0)
2191 list->append(zoomAdjustedPixelValue(style.transformOriginZ(), st yle)); 2191 list->append(zoomAdjustedPixelValue(style.transformOriginZ(), st yle));
2192 } else { 2192 } else {
2193 list->append(zoomAdjustedPixelValueForLength(style.transformOriginX( ), style)); 2193 list->append(zoomAdjustedPixelValueForLength(style.transformOriginX( ), style));
2194 list->append(zoomAdjustedPixelValueForLength(style.transformOriginY( ), style)); 2194 list->append(zoomAdjustedPixelValueForLength(style.transformOriginY( ), style));
2195 if (style.transformOriginZ() != 0) 2195 if (style.transformOriginZ() != 0)
2196 list->append(zoomAdjustedPixelValue(style.transformOriginZ(), st yle)); 2196 list->append(zoomAdjustedPixelValue(style.transformOriginZ(), st yle));
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
2265 case CSSPropertyMixBlendMode: 2265 case CSSPropertyMixBlendMode:
2266 return cssValuePool().createValue(style.blendMode()); 2266 return cssValuePool().createValue(style.blendMode());
2267 2267
2268 case CSSPropertyBackgroundBlendMode: { 2268 case CSSPropertyBackgroundBlendMode: {
2269 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createCommaSeparat ed(); 2269 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createCommaSeparat ed();
2270 for (const FillLayer* currLayer = &style.backgroundLayers(); currLayer; currLayer = currLayer->next()) 2270 for (const FillLayer* currLayer = &style.backgroundLayers(); currLayer; currLayer = currLayer->next())
2271 list->append(cssValuePool().createValue(currLayer->blendMode())); 2271 list->append(cssValuePool().createValue(currLayer->blendMode()));
2272 return list.release(); 2272 return list.release();
2273 } 2273 }
2274 case CSSPropertyBackground: 2274 case CSSPropertyBackground:
2275 return valuesForBackgroundShorthand(style, renderer, styledNode, allowVi sitedStyle); 2275 return valuesForBackgroundShorthand(style, layoutObject, styledNode, all owVisitedStyle);
2276 case CSSPropertyBorder: { 2276 case CSSPropertyBorder: {
2277 RefPtrWillBeRawPtr<CSSValue> value = get(CSSPropertyBorderTop, style, re nderer, styledNode, allowVisitedStyle); 2277 RefPtrWillBeRawPtr<CSSValue> value = get(CSSPropertyBorderTop, style, la youtObject, styledNode, allowVisitedStyle);
2278 const CSSPropertyID properties[] = { 2278 const CSSPropertyID properties[] = {
2279 CSSPropertyBorderRight, 2279 CSSPropertyBorderRight,
2280 CSSPropertyBorderBottom, 2280 CSSPropertyBorderBottom,
2281 CSSPropertyBorderLeft 2281 CSSPropertyBorderLeft
2282 }; 2282 };
2283 for (size_t i = 0; i < WTF_ARRAY_LENGTH(properties); ++i) { 2283 for (size_t i = 0; i < WTF_ARRAY_LENGTH(properties); ++i) {
2284 if (!compareCSSValuePtr<CSSValue>(value, get(properties[i], style, r enderer, styledNode, allowVisitedStyle))) 2284 if (!compareCSSValuePtr<CSSValue>(value, get(properties[i], style, l ayoutObject, styledNode, allowVisitedStyle)))
2285 return nullptr; 2285 return nullptr;
2286 } 2286 }
2287 return value.release(); 2287 return value.release();
2288 } 2288 }
2289 case CSSPropertyBorderBottom: 2289 case CSSPropertyBorderBottom:
2290 return valuesForShorthandProperty(borderBottomShorthand(), style, render er, styledNode, allowVisitedStyle); 2290 return valuesForShorthandProperty(borderBottomShorthand(), style, layout Object, styledNode, allowVisitedStyle);
2291 case CSSPropertyBorderColor: 2291 case CSSPropertyBorderColor:
2292 return valuesForSidesShorthand(borderColorShorthand(), style, renderer, styledNode, allowVisitedStyle); 2292 return valuesForSidesShorthand(borderColorShorthand(), style, layoutObje ct, styledNode, allowVisitedStyle);
2293 case CSSPropertyBorderLeft: 2293 case CSSPropertyBorderLeft:
2294 return valuesForShorthandProperty(borderLeftShorthand(), style, renderer , styledNode, allowVisitedStyle); 2294 return valuesForShorthandProperty(borderLeftShorthand(), style, layoutOb ject, styledNode, allowVisitedStyle);
2295 case CSSPropertyBorderImage: 2295 case CSSPropertyBorderImage:
2296 return valueForNinePieceImage(style.borderImage(), style); 2296 return valueForNinePieceImage(style.borderImage(), style);
2297 case CSSPropertyBorderRadius: 2297 case CSSPropertyBorderRadius:
2298 return valueForBorderRadiusShorthand(style); 2298 return valueForBorderRadiusShorthand(style);
2299 case CSSPropertyBorderRight: 2299 case CSSPropertyBorderRight:
2300 return valuesForShorthandProperty(borderRightShorthand(), style, rendere r, styledNode, allowVisitedStyle); 2300 return valuesForShorthandProperty(borderRightShorthand(), style, layoutO bject, styledNode, allowVisitedStyle);
2301 case CSSPropertyBorderStyle: 2301 case CSSPropertyBorderStyle:
2302 return valuesForSidesShorthand(borderStyleShorthand(), style, renderer, styledNode, allowVisitedStyle); 2302 return valuesForSidesShorthand(borderStyleShorthand(), style, layoutObje ct, styledNode, allowVisitedStyle);
2303 case CSSPropertyBorderTop: 2303 case CSSPropertyBorderTop:
2304 return valuesForShorthandProperty(borderTopShorthand(), style, renderer, styledNode, allowVisitedStyle); 2304 return valuesForShorthandProperty(borderTopShorthand(), style, layoutObj ect, styledNode, allowVisitedStyle);
2305 case CSSPropertyBorderWidth: 2305 case CSSPropertyBorderWidth:
2306 return valuesForSidesShorthand(borderWidthShorthand(), style, renderer, styledNode, allowVisitedStyle); 2306 return valuesForSidesShorthand(borderWidthShorthand(), style, layoutObje ct, styledNode, allowVisitedStyle);
2307 case CSSPropertyWebkitColumnRule: 2307 case CSSPropertyWebkitColumnRule:
2308 return valuesForShorthandProperty(webkitColumnRuleShorthand(), style, re nderer, styledNode, allowVisitedStyle); 2308 return valuesForShorthandProperty(webkitColumnRuleShorthand(), style, la youtObject, styledNode, allowVisitedStyle);
2309 case CSSPropertyWebkitColumns: 2309 case CSSPropertyWebkitColumns:
2310 return valuesForShorthandProperty(webkitColumnsShorthand(), style, rende rer, styledNode, allowVisitedStyle); 2310 return valuesForShorthandProperty(webkitColumnsShorthand(), style, layou tObject, styledNode, allowVisitedStyle);
2311 case CSSPropertyListStyle: 2311 case CSSPropertyListStyle:
2312 return valuesForShorthandProperty(listStyleShorthand(), style, renderer, styledNode, allowVisitedStyle); 2312 return valuesForShorthandProperty(listStyleShorthand(), style, layoutObj ect, styledNode, allowVisitedStyle);
2313 case CSSPropertyMargin: 2313 case CSSPropertyMargin:
2314 return valuesForSidesShorthand(marginShorthand(), style, renderer, style dNode, allowVisitedStyle); 2314 return valuesForSidesShorthand(marginShorthand(), style, layoutObject, s tyledNode, allowVisitedStyle);
2315 case CSSPropertyOutline: 2315 case CSSPropertyOutline:
2316 return valuesForShorthandProperty(outlineShorthand(), style, renderer, s tyledNode, allowVisitedStyle); 2316 return valuesForShorthandProperty(outlineShorthand(), style, layoutObjec t, styledNode, allowVisitedStyle);
2317 case CSSPropertyPadding: 2317 case CSSPropertyPadding:
2318 return valuesForSidesShorthand(paddingShorthand(), style, renderer, styl edNode, allowVisitedStyle); 2318 return valuesForSidesShorthand(paddingShorthand(), style, layoutObject, styledNode, allowVisitedStyle);
2319 // Individual properties not part of the spec. 2319 // Individual properties not part of the spec.
2320 case CSSPropertyBackgroundRepeatX: 2320 case CSSPropertyBackgroundRepeatX:
2321 case CSSPropertyBackgroundRepeatY: 2321 case CSSPropertyBackgroundRepeatY:
2322 return nullptr; 2322 return nullptr;
2323 2323
2324 case CSSPropertyMotion: 2324 case CSSPropertyMotion:
2325 ASSERT(RuntimeEnabledFeatures::cssMotionPathEnabled()); 2325 ASSERT(RuntimeEnabledFeatures::cssMotionPathEnabled());
2326 return valuesForShorthandProperty(motionShorthand(), style, renderer, st yledNode, allowVisitedStyle); 2326 return valuesForShorthandProperty(motionShorthand(), style, layoutObject , styledNode, allowVisitedStyle);
2327 2327
2328 case CSSPropertyMotionPath: { 2328 case CSSPropertyMotionPath: {
2329 ASSERT(RuntimeEnabledFeatures::cssMotionPathEnabled()); 2329 ASSERT(RuntimeEnabledFeatures::cssMotionPathEnabled());
2330 const StyleMotionPath* styleMotionPath = style.motionPath(); 2330 const StyleMotionPath* styleMotionPath = style.motionPath();
2331 if (!styleMotionPath) 2331 if (!styleMotionPath)
2332 return cssValuePool().createIdentifierValue(CSSValueNone); 2332 return cssValuePool().createIdentifierValue(CSSValueNone);
2333 2333
2334 ASSERT(styleMotionPath->isPathStyleMotionPath()); 2334 ASSERT(styleMotionPath->isPathStyleMotionPath());
2335 return CSSPathValue::create(toPathStyleMotionPath(styleMotionPath)->path String()); 2335 return CSSPathValue::create(toPathStyleMotionPath(styleMotionPath)->path String());
2336 } 2336 }
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
2543 case CSSPropertyAll: 2543 case CSSPropertyAll:
2544 return nullptr; 2544 return nullptr;
2545 default: 2545 default:
2546 break; 2546 break;
2547 } 2547 }
2548 ASSERT_NOT_REACHED(); 2548 ASSERT_NOT_REACHED();
2549 return nullptr; 2549 return nullptr;
2550 } 2550 }
2551 2551
2552 } 2552 }
OLDNEW
« no previous file with comments | « Source/core/css/ComputedStyleCSSValueMapping.h ('k') | Source/core/css/invalidation/StyleInvalidator.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698