| 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 * | 7 * |
| 8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
| 9 * modify it under the terms of the GNU Lesser General Public | 9 * modify it under the terms of the GNU Lesser General Public |
| 10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
| (...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 454 | 454 |
| 455 RefPtr<Quad> quad = Quad::create(); | 455 RefPtr<Quad> quad = Quad::create(); |
| 456 quad->setTop(top); | 456 quad->setTop(top); |
| 457 quad->setRight(right); | 457 quad->setRight(right); |
| 458 quad->setBottom(bottom); | 458 quad->setBottom(bottom); |
| 459 quad->setLeft(left); | 459 quad->setLeft(left); |
| 460 | 460 |
| 461 return CSSBorderImageSliceValue::create(cssValuePool().createValue(quad.rele
ase()), image.fill()); | 461 return CSSBorderImageSliceValue::create(cssValuePool().createValue(quad.rele
ase()), image.fill()); |
| 462 } | 462 } |
| 463 | 463 |
| 464 static PassRefPtr<CSSPrimitiveValue> valueForNinePieceImageQuad(const BorderImag
eLengthBox& box, const RenderStyle* style) | 464 static PassRefPtr<CSSPrimitiveValue> valueForNinePieceImageQuad(const BorderImag
eLengthBox& box, const RenderStyle& style) |
| 465 { | 465 { |
| 466 // Create the slices. | 466 // Create the slices. |
| 467 RefPtr<CSSPrimitiveValue> top; | 467 RefPtr<CSSPrimitiveValue> top; |
| 468 RefPtr<CSSPrimitiveValue> right; | 468 RefPtr<CSSPrimitiveValue> right; |
| 469 RefPtr<CSSPrimitiveValue> bottom; | 469 RefPtr<CSSPrimitiveValue> bottom; |
| 470 RefPtr<CSSPrimitiveValue> left; | 470 RefPtr<CSSPrimitiveValue> left; |
| 471 | 471 |
| 472 if (box.top().isNumber()) | 472 if (box.top().isNumber()) |
| 473 top = cssValuePool().createValue(box.top().number(), CSSPrimitiveValue::
CSS_NUMBER); | 473 top = cssValuePool().createValue(box.top().number(), CSSPrimitiveValue::
CSS_NUMBER); |
| 474 else | 474 else |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 519 RefPtr<CSSPrimitiveValue> verticalRepeat; | 519 RefPtr<CSSPrimitiveValue> verticalRepeat; |
| 520 | 520 |
| 521 horizontalRepeat = cssValuePool().createIdentifierValue(valueForRepeatRule(i
mage.horizontalRule())); | 521 horizontalRepeat = cssValuePool().createIdentifierValue(valueForRepeatRule(i
mage.horizontalRule())); |
| 522 if (image.horizontalRule() == image.verticalRule()) | 522 if (image.horizontalRule() == image.verticalRule()) |
| 523 verticalRepeat = horizontalRepeat; | 523 verticalRepeat = horizontalRepeat; |
| 524 else | 524 else |
| 525 verticalRepeat = cssValuePool().createIdentifierValue(valueForRepeatRule
(image.verticalRule())); | 525 verticalRepeat = cssValuePool().createIdentifierValue(valueForRepeatRule
(image.verticalRule())); |
| 526 return cssValuePool().createValue(Pair::create(horizontalRepeat.release(), v
erticalRepeat.release(), Pair::DropIdenticalValues)); | 526 return cssValuePool().createValue(Pair::create(horizontalRepeat.release(), v
erticalRepeat.release(), Pair::DropIdenticalValues)); |
| 527 } | 527 } |
| 528 | 528 |
| 529 static PassRefPtr<CSSValue> valueForNinePieceImage(const NinePieceImage& image,
const RenderStyle* style) | 529 static PassRefPtr<CSSValue> valueForNinePieceImage(const NinePieceImage& image,
const RenderStyle& style) |
| 530 { | 530 { |
| 531 if (!image.hasImage()) | 531 if (!image.hasImage()) |
| 532 return cssValuePool().createIdentifierValue(CSSValueNone); | 532 return cssValuePool().createIdentifierValue(CSSValueNone); |
| 533 | 533 |
| 534 // Image first. | 534 // Image first. |
| 535 RefPtr<CSSValue> imageValue; | 535 RefPtr<CSSValue> imageValue; |
| 536 if (image.image()) | 536 if (image.image()) |
| 537 imageValue = image.image()->cssValue(); | 537 imageValue = image.image()->cssValue(); |
| 538 | 538 |
| 539 // Create the image slice. | 539 // Create the image slice. |
| 540 RefPtr<CSSBorderImageSliceValue> imageSlices = valueForNinePieceImageSlice(i
mage); | 540 RefPtr<CSSBorderImageSliceValue> imageSlices = valueForNinePieceImageSlice(i
mage); |
| 541 | 541 |
| 542 // Create the border area slices. | 542 // Create the border area slices. |
| 543 RefPtr<CSSValue> borderSlices = valueForNinePieceImageQuad(image.borderSlice
s(), style); | 543 RefPtr<CSSValue> borderSlices = valueForNinePieceImageQuad(image.borderSlice
s(), style); |
| 544 | 544 |
| 545 // Create the border outset. | 545 // Create the border outset. |
| 546 RefPtr<CSSValue> outset = valueForNinePieceImageQuad(image.outset(), style); | 546 RefPtr<CSSValue> outset = valueForNinePieceImageQuad(image.outset(), style); |
| 547 | 547 |
| 548 // Create the repeat rules. | 548 // Create the repeat rules. |
| 549 RefPtr<CSSValue> repeat = valueForNinePieceImageRepeat(image); | 549 RefPtr<CSSValue> repeat = valueForNinePieceImageRepeat(image); |
| 550 | 550 |
| 551 return createBorderImageValue(imageValue.release(), imageSlices.release(), b
orderSlices.release(), outset.release(), repeat.release()); | 551 return createBorderImageValue(imageValue.release(), imageSlices.release(), b
orderSlices.release(), outset.release(), repeat.release()); |
| 552 } | 552 } |
| 553 | 553 |
| 554 inline static PassRefPtr<CSSPrimitiveValue> zoomAdjustedPixelValue(double value,
const RenderStyle* style) | 554 inline static PassRefPtr<CSSPrimitiveValue> zoomAdjustedPixelValue(double value,
const RenderStyle& style) |
| 555 { | 555 { |
| 556 return cssValuePool().createValue(adjustFloatForAbsoluteZoom(value, style),
CSSPrimitiveValue::CSS_PX); | 556 return cssValuePool().createValue(adjustFloatForAbsoluteZoom(value, style),
CSSPrimitiveValue::CSS_PX); |
| 557 } | 557 } |
| 558 | 558 |
| 559 inline static PassRefPtr<CSSPrimitiveValue> zoomAdjustedNumberValue(double value
, const RenderStyle* style) | 559 inline static PassRefPtr<CSSPrimitiveValue> zoomAdjustedNumberValue(double value
, const RenderStyle& style) |
| 560 { | 560 { |
| 561 return cssValuePool().createValue(value / style->effectiveZoom(), CSSPrimiti
veValue::CSS_NUMBER); | 561 return cssValuePool().createValue(value / style.effectiveZoom(), CSSPrimitiv
eValue::CSS_NUMBER); |
| 562 } | 562 } |
| 563 | 563 |
| 564 static PassRefPtr<CSSPrimitiveValue> zoomAdjustedPixelValueForLength(const Lengt
h& length, const RenderStyle* style) | 564 static PassRefPtr<CSSPrimitiveValue> zoomAdjustedPixelValueForLength(const Lengt
h& length, const RenderStyle& style) |
| 565 { | 565 { |
| 566 if (length.isFixed()) | 566 if (length.isFixed()) |
| 567 return zoomAdjustedPixelValue(length.value(), style); | 567 return zoomAdjustedPixelValue(length.value(), style); |
| 568 return cssValuePool().createValue(length, style); | 568 return cssValuePool().createValue(length, style); |
| 569 } | 569 } |
| 570 | 570 |
| 571 static PassRefPtr<CSSValue> valueForReflection(const StyleReflection* reflection
, const RenderStyle* style) | 571 static PassRefPtr<CSSValue> valueForReflection(const StyleReflection* reflection
, const RenderStyle& style) |
| 572 { | 572 { |
| 573 if (!reflection) | 573 if (!reflection) |
| 574 return cssValuePool().createIdentifierValue(CSSValueNone); | 574 return cssValuePool().createIdentifierValue(CSSValueNone); |
| 575 | 575 |
| 576 RefPtr<CSSPrimitiveValue> offset; | 576 RefPtr<CSSPrimitiveValue> offset; |
| 577 if (reflection->offset().isPercent()) | 577 if (reflection->offset().isPercent()) |
| 578 offset = cssValuePool().createValue(reflection->offset().percent(), CSSP
rimitiveValue::CSS_PERCENTAGE); | 578 offset = cssValuePool().createValue(reflection->offset().percent(), CSSP
rimitiveValue::CSS_PERCENTAGE); |
| 579 else | 579 else |
| 580 offset = zoomAdjustedPixelValue(reflection->offset().value(), style); | 580 offset = zoomAdjustedPixelValue(reflection->offset().value(), style); |
| 581 | 581 |
| 582 RefPtr<CSSPrimitiveValue> direction; | 582 RefPtr<CSSPrimitiveValue> direction; |
| 583 switch (reflection->direction()) { | 583 switch (reflection->direction()) { |
| 584 case ReflectionBelow: | 584 case ReflectionBelow: |
| 585 direction = cssValuePool().createIdentifierValue(CSSValueBelow); | 585 direction = cssValuePool().createIdentifierValue(CSSValueBelow); |
| 586 break; | 586 break; |
| 587 case ReflectionAbove: | 587 case ReflectionAbove: |
| 588 direction = cssValuePool().createIdentifierValue(CSSValueAbove); | 588 direction = cssValuePool().createIdentifierValue(CSSValueAbove); |
| 589 break; | 589 break; |
| 590 case ReflectionLeft: | 590 case ReflectionLeft: |
| 591 direction = cssValuePool().createIdentifierValue(CSSValueLeft); | 591 direction = cssValuePool().createIdentifierValue(CSSValueLeft); |
| 592 break; | 592 break; |
| 593 case ReflectionRight: | 593 case ReflectionRight: |
| 594 direction = cssValuePool().createIdentifierValue(CSSValueRight); | 594 direction = cssValuePool().createIdentifierValue(CSSValueRight); |
| 595 break; | 595 break; |
| 596 } | 596 } |
| 597 | 597 |
| 598 return CSSReflectValue::create(direction.release(), offset.release(), valueF
orNinePieceImage(reflection->mask(), style)); | 598 return CSSReflectValue::create(direction.release(), offset.release(), valueF
orNinePieceImage(reflection->mask(), style)); |
| 599 } | 599 } |
| 600 | 600 |
| 601 static PassRefPtr<CSSValueList> createPositionListForLayer(CSSPropertyID propert
yID, const FillLayer* layer, const RenderStyle* style) | 601 static PassRefPtr<CSSValueList> createPositionListForLayer(CSSPropertyID propert
yID, const FillLayer* layer, const RenderStyle& style) |
| 602 { | 602 { |
| 603 ASSERT_UNUSED(propertyID, propertyID == CSSPropertyBackgroundPosition || pro
pertyID == CSSPropertyWebkitMaskPosition); | 603 ASSERT_UNUSED(propertyID, propertyID == CSSPropertyBackgroundPosition || pro
pertyID == CSSPropertyWebkitMaskPosition); |
| 604 RefPtr<CSSValueList> positionList = CSSValueList::createSpaceSeparated(); | 604 RefPtr<CSSValueList> positionList = CSSValueList::createSpaceSeparated(); |
| 605 positionList->append(cssValuePool().createValue(layer->backgroundXOrigin()))
; | 605 positionList->append(cssValuePool().createValue(layer->backgroundXOrigin()))
; |
| 606 positionList->append(zoomAdjustedPixelValueForLength(layer->xPosition(), sty
le)); | 606 positionList->append(zoomAdjustedPixelValueForLength(layer->xPosition(), sty
le)); |
| 607 positionList->append(cssValuePool().createValue(layer->backgroundYOrigin()))
; | 607 positionList->append(cssValuePool().createValue(layer->backgroundYOrigin()))
; |
| 608 positionList->append(zoomAdjustedPixelValueForLength(layer->yPosition(), sty
le)); | 608 positionList->append(zoomAdjustedPixelValueForLength(layer->yPosition(), sty
le)); |
| 609 return positionList.release(); | 609 return positionList.release(); |
| 610 } | 610 } |
| 611 | 611 |
| 612 static PassRefPtr<CSSValue> valueForPositionOffset(RenderStyle* style, CSSProper
tyID propertyID, const RenderObject* renderer, RenderView* renderView) | 612 static PassRefPtr<CSSValue> valueForPositionOffset(RenderStyle& style, CSSProper
tyID propertyID, const RenderObject* renderer, RenderView* renderView) |
| 613 { | 613 { |
| 614 if (!style) | |
| 615 return 0; | |
| 616 | |
| 617 Length l; | 614 Length l; |
| 618 switch (propertyID) { | 615 switch (propertyID) { |
| 619 case CSSPropertyLeft: | 616 case CSSPropertyLeft: |
| 620 l = style->left(); | 617 l = style.left(); |
| 621 break; | 618 break; |
| 622 case CSSPropertyRight: | 619 case CSSPropertyRight: |
| 623 l = style->right(); | 620 l = style.right(); |
| 624 break; | 621 break; |
| 625 case CSSPropertyTop: | 622 case CSSPropertyTop: |
| 626 l = style->top(); | 623 l = style.top(); |
| 627 break; | 624 break; |
| 628 case CSSPropertyBottom: | 625 case CSSPropertyBottom: |
| 629 l = style->bottom(); | 626 l = style.bottom(); |
| 630 break; | 627 break; |
| 631 default: | 628 default: |
| 632 return 0; | 629 return 0; |
| 633 } | 630 } |
| 634 | 631 |
| 635 if (l.isPercent() && renderer && renderer->isBox()) { | 632 if (l.isPercent() && renderer && renderer->isBox()) { |
| 636 LayoutUnit containingBlockSize = (propertyID == CSSPropertyLeft || prope
rtyID == CSSPropertyRight) ? | 633 LayoutUnit containingBlockSize = (propertyID == CSSPropertyLeft || prope
rtyID == CSSPropertyRight) ? |
| 637 toRenderBox(renderer)->containingBlockLogicalWidthForContent() : | 634 toRenderBox(renderer)->containingBlockLogicalWidthForContent() : |
| 638 toRenderBox(renderer)->containingBlockLogicalHeightForContent(Exclud
eMarginBorderPadding); | 635 toRenderBox(renderer)->containingBlockLogicalHeightForContent(Exclud
eMarginBorderPadding); |
| 639 return zoomAdjustedPixelValue(valueForLength(l, containingBlockSize, 0),
style); | 636 return zoomAdjustedPixelValue(valueForLength(l, containingBlockSize, 0),
style); |
| 640 } | 637 } |
| 641 if (l.isViewportPercentage()) | 638 if (l.isViewportPercentage()) |
| 642 return zoomAdjustedPixelValue(valueForLength(l, 0, renderView), style); | 639 return zoomAdjustedPixelValue(valueForLength(l, 0, renderView), style); |
| 643 if (l.isAuto()) { | 640 if (l.isAuto()) { |
| 644 // FIXME: It's not enough to simply return "auto" values for one offset
if the other side is defined. | 641 // FIXME: It's not enough to simply return "auto" values for one offset
if the other side is defined. |
| 645 // In other words if left is auto and right is not auto, then left's com
puted value is negative right(). | 642 // In other words if left is auto and right is not auto, then left's com
puted value is negative right(). |
| 646 // So we should get the opposite length unit and see if it is auto. | 643 // So we should get the opposite length unit and see if it is auto. |
| 647 return cssValuePool().createValue(l); | 644 return cssValuePool().createValue(l); |
| 648 } | 645 } |
| 649 | 646 |
| 650 return zoomAdjustedPixelValueForLength(l, style); | 647 return zoomAdjustedPixelValueForLength(l, style); |
| 651 } | 648 } |
| 652 | 649 |
| 653 PassRefPtr<CSSPrimitiveValue> CSSComputedStyleDeclaration::currentColorOrValidCo
lor(const RenderStyle* style, const Color& color) const | 650 PassRefPtr<CSSPrimitiveValue> CSSComputedStyleDeclaration::currentColorOrValidCo
lor(const RenderStyle& style, const Color& color) const |
| 654 { | 651 { |
| 655 // This function does NOT look at visited information, so that computed styl
e doesn't expose that. | 652 // This function does NOT look at visited information, so that computed styl
e doesn't expose that. |
| 656 if (!color.isValid()) | 653 if (!color.isValid()) |
| 657 return cssValuePool().createColorValue(style->color().rgb()); | 654 return cssValuePool().createColorValue(style.color().rgb()); |
| 658 return cssValuePool().createColorValue(color.rgb()); | 655 return cssValuePool().createColorValue(color.rgb()); |
| 659 } | 656 } |
| 660 | 657 |
| 661 static PassRefPtr<CSSValueList> valuesForBorderRadiusCorner(LengthSize radius, c
onst RenderStyle* style) | 658 static PassRefPtr<CSSValueList> valuesForBorderRadiusCorner(LengthSize radius, c
onst RenderStyle& style) |
| 662 { | 659 { |
| 663 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); | 660 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); |
| 664 if (radius.width().type() == Percent) | 661 if (radius.width().type() == Percent) |
| 665 list->append(cssValuePool().createValue(radius.width().percent(), CSSPri
mitiveValue::CSS_PERCENTAGE)); | 662 list->append(cssValuePool().createValue(radius.width().percent(), CSSPri
mitiveValue::CSS_PERCENTAGE)); |
| 666 else | 663 else |
| 667 list->append(zoomAdjustedPixelValueForLength(radius.width(), style)); | 664 list->append(zoomAdjustedPixelValueForLength(radius.width(), style)); |
| 668 if (radius.height().type() == Percent) | 665 if (radius.height().type() == Percent) |
| 669 list->append(cssValuePool().createValue(radius.height().percent(), CSSPr
imitiveValue::CSS_PERCENTAGE)); | 666 list->append(cssValuePool().createValue(radius.height().percent(), CSSPr
imitiveValue::CSS_PERCENTAGE)); |
| 670 else | 667 else |
| 671 list->append(zoomAdjustedPixelValueForLength(radius.height(), style)); | 668 list->append(zoomAdjustedPixelValueForLength(radius.height(), style)); |
| 672 return list.release(); | 669 return list.release(); |
| 673 } | 670 } |
| 674 | 671 |
| 675 static PassRefPtr<CSSValue> valueForBorderRadiusCorner(LengthSize radius, const
RenderStyle* style) | 672 static PassRefPtr<CSSValue> valueForBorderRadiusCorner(LengthSize radius, const
RenderStyle& style) |
| 676 { | 673 { |
| 677 RefPtr<CSSValueList> list = valuesForBorderRadiusCorner(radius, style); | 674 RefPtr<CSSValueList> list = valuesForBorderRadiusCorner(radius, style); |
| 678 if (list->item(0)->equals(*list->item(1))) | 675 if (list->item(0)->equals(*list->item(1))) |
| 679 return list->item(0); | 676 return list->item(0); |
| 680 return list.release(); | 677 return list.release(); |
| 681 } | 678 } |
| 682 | 679 |
| 683 static PassRefPtr<CSSValueList> valueForBorderRadiusShorthand(const RenderStyle*
style) | 680 static PassRefPtr<CSSValueList> valueForBorderRadiusShorthand(const RenderStyle&
style) |
| 684 { | 681 { |
| 685 RefPtr<CSSValueList> list = CSSValueList::createSlashSeparated(); | 682 RefPtr<CSSValueList> list = CSSValueList::createSlashSeparated(); |
| 686 | 683 |
| 687 bool showHorizontalBottomLeft = style->borderTopRightRadius().width() != sty
le->borderBottomLeftRadius().width(); | 684 bool showHorizontalBottomLeft = style.borderTopRightRadius().width() != styl
e.borderBottomLeftRadius().width(); |
| 688 bool showHorizontalBottomRight = showHorizontalBottomLeft || (style->borderB
ottomRightRadius().width() != style->borderTopLeftRadius().width()); | 685 bool showHorizontalBottomRight = showHorizontalBottomLeft || (style.borderBo
ttomRightRadius().width() != style.borderTopLeftRadius().width()); |
| 689 bool showHorizontalTopRight = showHorizontalBottomRight || (style->borderTop
RightRadius().width() != style->borderTopLeftRadius().width()); | 686 bool showHorizontalTopRight = showHorizontalBottomRight || (style.borderTopR
ightRadius().width() != style.borderTopLeftRadius().width()); |
| 690 | 687 |
| 691 bool showVerticalBottomLeft = style->borderTopRightRadius().height() != styl
e->borderBottomLeftRadius().height(); | 688 bool showVerticalBottomLeft = style.borderTopRightRadius().height() != style
.borderBottomLeftRadius().height(); |
| 692 bool showVerticalBottomRight = showVerticalBottomLeft || (style->borderBotto
mRightRadius().height() != style->borderTopLeftRadius().height()); | 689 bool showVerticalBottomRight = showVerticalBottomLeft || (style.borderBottom
RightRadius().height() != style.borderTopLeftRadius().height()); |
| 693 bool showVerticalTopRight = showVerticalBottomRight || (style->borderTopRigh
tRadius().height() != style->borderTopLeftRadius().height()); | 690 bool showVerticalTopRight = showVerticalBottomRight || (style.borderTopRight
Radius().height() != style.borderTopLeftRadius().height()); |
| 694 | 691 |
| 695 RefPtr<CSSValueList> topLeftRadius = valuesForBorderRadiusCorner(style->bord
erTopLeftRadius(), style); | 692 RefPtr<CSSValueList> topLeftRadius = valuesForBorderRadiusCorner(style.borde
rTopLeftRadius(), style); |
| 696 RefPtr<CSSValueList> topRightRadius = valuesForBorderRadiusCorner(style->bor
derTopRightRadius(), style); | 693 RefPtr<CSSValueList> topRightRadius = valuesForBorderRadiusCorner(style.bord
erTopRightRadius(), style); |
| 697 RefPtr<CSSValueList> bottomRightRadius = valuesForBorderRadiusCorner(style->
borderBottomRightRadius(), style); | 694 RefPtr<CSSValueList> bottomRightRadius = valuesForBorderRadiusCorner(style.b
orderBottomRightRadius(), style); |
| 698 RefPtr<CSSValueList> bottomLeftRadius = valuesForBorderRadiusCorner(style->b
orderBottomLeftRadius(), style); | 695 RefPtr<CSSValueList> bottomLeftRadius = valuesForBorderRadiusCorner(style.bo
rderBottomLeftRadius(), style); |
| 699 | 696 |
| 700 RefPtr<CSSValueList> horizontalRadii = CSSValueList::createSpaceSeparated(); | 697 RefPtr<CSSValueList> horizontalRadii = CSSValueList::createSpaceSeparated(); |
| 701 horizontalRadii->append(topLeftRadius->item(0)); | 698 horizontalRadii->append(topLeftRadius->item(0)); |
| 702 if (showHorizontalTopRight) | 699 if (showHorizontalTopRight) |
| 703 horizontalRadii->append(topRightRadius->item(0)); | 700 horizontalRadii->append(topRightRadius->item(0)); |
| 704 if (showHorizontalBottomRight) | 701 if (showHorizontalBottomRight) |
| 705 horizontalRadii->append(bottomRightRadius->item(0)); | 702 horizontalRadii->append(bottomRightRadius->item(0)); |
| 706 if (showHorizontalBottomLeft) | 703 if (showHorizontalBottomLeft) |
| 707 horizontalRadii->append(bottomLeftRadius->item(0)); | 704 horizontalRadii->append(bottomLeftRadius->item(0)); |
| 708 | 705 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 725 | 722 |
| 726 static LayoutRect sizingBox(RenderObject* renderer) | 723 static LayoutRect sizingBox(RenderObject* renderer) |
| 727 { | 724 { |
| 728 if (!renderer->isBox()) | 725 if (!renderer->isBox()) |
| 729 return LayoutRect(); | 726 return LayoutRect(); |
| 730 | 727 |
| 731 RenderBox* box = toRenderBox(renderer); | 728 RenderBox* box = toRenderBox(renderer); |
| 732 return box->style()->boxSizing() == BORDER_BOX ? box->borderBoxRect() : box-
>computedCSSContentBoxRect(); | 729 return box->style()->boxSizing() == BORDER_BOX ? box->borderBoxRect() : box-
>computedCSSContentBoxRect(); |
| 733 } | 730 } |
| 734 | 731 |
| 735 static PassRefPtr<CSSTransformValue> valueForMatrixTransform(const Transformatio
nMatrix& transform, const RenderStyle* style) | 732 static PassRefPtr<CSSTransformValue> valueForMatrixTransform(const Transformatio
nMatrix& transform, const RenderStyle& style) |
| 736 { | 733 { |
| 737 RefPtr<CSSTransformValue> transformValue; | 734 RefPtr<CSSTransformValue> transformValue; |
| 738 if (transform.isAffine()) { | 735 if (transform.isAffine()) { |
| 739 transformValue = CSSTransformValue::create(CSSTransformValue::MatrixTran
sformOperation); | 736 transformValue = CSSTransformValue::create(CSSTransformValue::MatrixTran
sformOperation); |
| 740 | 737 |
| 741 transformValue->append(cssValuePool().createValue(transform.a(), CSSPrim
itiveValue::CSS_NUMBER)); | 738 transformValue->append(cssValuePool().createValue(transform.a(), CSSPrim
itiveValue::CSS_NUMBER)); |
| 742 transformValue->append(cssValuePool().createValue(transform.b(), CSSPrim
itiveValue::CSS_NUMBER)); | 739 transformValue->append(cssValuePool().createValue(transform.b(), CSSPrim
itiveValue::CSS_NUMBER)); |
| 743 transformValue->append(cssValuePool().createValue(transform.c(), CSSPrim
itiveValue::CSS_NUMBER)); | 740 transformValue->append(cssValuePool().createValue(transform.c(), CSSPrim
itiveValue::CSS_NUMBER)); |
| 744 transformValue->append(cssValuePool().createValue(transform.d(), CSSPrim
itiveValue::CSS_NUMBER)); | 741 transformValue->append(cssValuePool().createValue(transform.d(), CSSPrim
itiveValue::CSS_NUMBER)); |
| 745 transformValue->append(zoomAdjustedNumberValue(transform.e(), style)); | 742 transformValue->append(zoomAdjustedNumberValue(transform.e(), style)); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 764 | 761 |
| 765 transformValue->append(zoomAdjustedNumberValue(transform.m41(), style)); | 762 transformValue->append(zoomAdjustedNumberValue(transform.m41(), style)); |
| 766 transformValue->append(zoomAdjustedNumberValue(transform.m42(), style)); | 763 transformValue->append(zoomAdjustedNumberValue(transform.m42(), style)); |
| 767 transformValue->append(zoomAdjustedNumberValue(transform.m43(), style)); | 764 transformValue->append(zoomAdjustedNumberValue(transform.m43(), style)); |
| 768 transformValue->append(cssValuePool().createValue(transform.m44(), CSSPr
imitiveValue::CSS_NUMBER)); | 765 transformValue->append(cssValuePool().createValue(transform.m44(), CSSPr
imitiveValue::CSS_NUMBER)); |
| 769 } | 766 } |
| 770 | 767 |
| 771 return transformValue.release(); | 768 return transformValue.release(); |
| 772 } | 769 } |
| 773 | 770 |
| 774 static PassRefPtr<CSSValue> computedTransform(RenderObject* renderer, const Rend
erStyle* style) | 771 static PassRefPtr<CSSValue> computedTransform(RenderObject* renderer, const Rend
erStyle& style) |
| 775 { | 772 { |
| 776 if (!renderer || !renderer->hasTransform() || !style->hasTransform()) | 773 if (!renderer || !renderer->hasTransform() || !style.hasTransform()) |
| 777 return cssValuePool().createIdentifierValue(CSSValueNone); | 774 return cssValuePool().createIdentifierValue(CSSValueNone); |
| 778 | 775 |
| 779 IntRect box; | 776 IntRect box; |
| 780 if (renderer->isBox()) | 777 if (renderer->isBox()) |
| 781 box = pixelSnappedIntRect(toRenderBox(renderer)->borderBoxRect()); | 778 box = pixelSnappedIntRect(toRenderBox(renderer)->borderBoxRect()); |
| 782 | 779 |
| 783 TransformationMatrix transform; | 780 TransformationMatrix transform; |
| 784 style->applyTransform(transform, box.size(), RenderStyle::ExcludeTransformOr
igin); | 781 style.applyTransform(transform, box.size(), RenderStyle::ExcludeTransformOri
gin); |
| 785 | 782 |
| 786 // FIXME: Need to print out individual functions (https://bugs.webkit.org/sh
ow_bug.cgi?id=23924) | 783 // FIXME: Need to print out individual functions (https://bugs.webkit.org/sh
ow_bug.cgi?id=23924) |
| 787 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); | 784 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); |
| 788 list->append(valueForMatrixTransform(transform, style)); | 785 list->append(valueForMatrixTransform(transform, style)); |
| 789 | 786 |
| 790 return list.release(); | 787 return list.release(); |
| 791 } | 788 } |
| 792 | 789 |
| 793 static PassRefPtr<CSSValue> valueForCustomFilterArrayParameter(const CustomFilte
rArrayParameter* arrayParameter) | 790 static PassRefPtr<CSSValue> valueForCustomFilterArrayParameter(const CustomFilte
rArrayParameter* arrayParameter) |
| 794 { | 791 { |
| 795 RefPtr<CSSArrayFunctionValue> arrayParameterValue = CSSArrayFunctionValue::c
reate(); | 792 RefPtr<CSSArrayFunctionValue> arrayParameterValue = CSSArrayFunctionValue::c
reate(); |
| 796 for (unsigned i = 0, size = arrayParameter->size(); i < size; ++i) | 793 for (unsigned i = 0, size = arrayParameter->size(); i < size; ++i) |
| 797 arrayParameterValue->append(cssValuePool().createValue(arrayParameter->v
alueAt(i), CSSPrimitiveValue::CSS_NUMBER)); | 794 arrayParameterValue->append(cssValuePool().createValue(arrayParameter->v
alueAt(i), CSSPrimitiveValue::CSS_NUMBER)); |
| 798 return arrayParameterValue.release(); | 795 return arrayParameterValue.release(); |
| 799 } | 796 } |
| 800 | 797 |
| 801 static PassRefPtr<CSSValue> valueForCustomFilterNumberParameter(const CustomFilt
erNumberParameter* numberParameter) | 798 static PassRefPtr<CSSValue> valueForCustomFilterNumberParameter(const CustomFilt
erNumberParameter* numberParameter) |
| 802 { | 799 { |
| 803 RefPtr<CSSValueList> numberParameterValue = CSSValueList::createSpaceSeparat
ed(); | 800 RefPtr<CSSValueList> numberParameterValue = CSSValueList::createSpaceSeparat
ed(); |
| 804 for (unsigned i = 0; i < numberParameter->size(); ++i) | 801 for (unsigned i = 0; i < numberParameter->size(); ++i) |
| 805 numberParameterValue->append(cssValuePool().createValue(numberParameter-
>valueAt(i), CSSPrimitiveValue::CSS_NUMBER)); | 802 numberParameterValue->append(cssValuePool().createValue(numberParameter-
>valueAt(i), CSSPrimitiveValue::CSS_NUMBER)); |
| 806 return numberParameterValue.release(); | 803 return numberParameterValue.release(); |
| 807 } | 804 } |
| 808 | 805 |
| 809 static PassRefPtr<CSSValue> valueForCustomFilterTransformParameter(const RenderO
bject* renderer, const RenderStyle* style, const CustomFilterTransformParameter*
transformParameter) | 806 static PassRefPtr<CSSValue> valueForCustomFilterTransformParameter(const RenderO
bject* renderer, const RenderStyle& style, const CustomFilterTransformParameter*
transformParameter) |
| 810 { | 807 { |
| 811 IntSize size; | 808 IntSize size; |
| 812 if (renderer && renderer->isBox()) | 809 if (renderer && renderer->isBox()) |
| 813 size = pixelSnappedIntRect(toRenderBox(renderer)->borderBoxRect()).size(
); | 810 size = pixelSnappedIntRect(toRenderBox(renderer)->borderBoxRect()).size(
); |
| 814 | 811 |
| 815 TransformationMatrix transform; | 812 TransformationMatrix transform; |
| 816 transformParameter->applyTransform(transform, size); | 813 transformParameter->applyTransform(transform, size); |
| 817 // FIXME: Need to print out individual functions (https://bugs.webkit.org/sh
ow_bug.cgi?id=23924) | 814 // FIXME: Need to print out individual functions (https://bugs.webkit.org/sh
ow_bug.cgi?id=23924) |
| 818 return valueForMatrixTransform(transform, style); | 815 return valueForMatrixTransform(transform, style); |
| 819 } | 816 } |
| 820 | 817 |
| 821 static PassRefPtr<CSSValue> valueForCustomFilterParameter(const RenderObject* re
nderer, const RenderStyle* style, const CustomFilterParameter* parameter) | 818 static PassRefPtr<CSSValue> valueForCustomFilterParameter(const RenderObject* re
nderer, const RenderStyle& style, const CustomFilterParameter* parameter) |
| 822 { | 819 { |
| 823 // FIXME: Add here computed style for the other types: boolean, transform, m
atrix, texture. | 820 // FIXME: Add here computed style for the other types: boolean, transform, m
atrix, texture. |
| 824 ASSERT(parameter); | 821 ASSERT(parameter); |
| 825 switch (parameter->parameterType()) { | 822 switch (parameter->parameterType()) { |
| 826 case CustomFilterParameter::Array: | 823 case CustomFilterParameter::Array: |
| 827 return valueForCustomFilterArrayParameter(static_cast<const CustomFilter
ArrayParameter*>(parameter)); | 824 return valueForCustomFilterArrayParameter(static_cast<const CustomFilter
ArrayParameter*>(parameter)); |
| 828 case CustomFilterParameter::Number: | 825 case CustomFilterParameter::Number: |
| 829 return valueForCustomFilterNumberParameter(static_cast<const CustomFilte
rNumberParameter*>(parameter)); | 826 return valueForCustomFilterNumberParameter(static_cast<const CustomFilte
rNumberParameter*>(parameter)); |
| 830 case CustomFilterParameter::Transform: | 827 case CustomFilterParameter::Transform: |
| 831 return valueForCustomFilterTransformParameter(renderer, style, static_ca
st<const CustomFilterTransformParameter*>(parameter)); | 828 return valueForCustomFilterTransformParameter(renderer, style, static_ca
st<const CustomFilterTransformParameter*>(parameter)); |
| 832 } | 829 } |
| 833 | 830 |
| 834 ASSERT_NOT_REACHED(); | 831 ASSERT_NOT_REACHED(); |
| 835 return 0; | 832 return 0; |
| 836 } | 833 } |
| 837 | 834 |
| 838 PassRefPtr<CSSValue> CSSComputedStyleDeclaration::valueForFilter(const RenderObj
ect* renderer, const RenderStyle* style) const | 835 PassRefPtr<CSSValue> CSSComputedStyleDeclaration::valueForFilter(const RenderObj
ect* renderer, const RenderStyle& style) const |
| 839 { | 836 { |
| 840 if (style->filter().operations().isEmpty()) | 837 if (style.filter().operations().isEmpty()) |
| 841 return cssValuePool().createIdentifierValue(CSSValueNone); | 838 return cssValuePool().createIdentifierValue(CSSValueNone); |
| 842 | 839 |
| 843 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); | 840 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); |
| 844 | 841 |
| 845 RefPtr<CSSFilterValue> filterValue; | 842 RefPtr<CSSFilterValue> filterValue; |
| 846 | 843 |
| 847 Vector<RefPtr<FilterOperation> >::const_iterator end = style->filter().opera
tions().end(); | 844 Vector<RefPtr<FilterOperation> >::const_iterator end = style.filter().operat
ions().end(); |
| 848 for (Vector<RefPtr<FilterOperation> >::const_iterator it = style->filter().o
perations().begin(); it != end; ++it) { | 845 for (Vector<RefPtr<FilterOperation> >::const_iterator it = style.filter().op
erations().begin(); it != end; ++it) { |
| 849 FilterOperation* filterOperation = (*it).get(); | 846 FilterOperation* filterOperation = (*it).get(); |
| 850 switch (filterOperation->getOperationType()) { | 847 switch (filterOperation->getOperationType()) { |
| 851 case FilterOperation::REFERENCE: { | 848 case FilterOperation::REFERENCE: { |
| 852 ReferenceFilterOperation* referenceOperation = static_cast<Reference
FilterOperation*>(filterOperation); | 849 ReferenceFilterOperation* referenceOperation = static_cast<Reference
FilterOperation*>(filterOperation); |
| 853 filterValue = CSSFilterValue::create(CSSFilterValue::ReferenceFilter
Operation); | 850 filterValue = CSSFilterValue::create(CSSFilterValue::ReferenceFilter
Operation); |
| 854 filterValue->append(cssValuePool().createValue(referenceOperation->u
rl(), CSSPrimitiveValue::CSS_STRING)); | 851 filterValue->append(cssValuePool().createValue(referenceOperation->u
rl(), CSSPrimitiveValue::CSS_STRING)); |
| 855 break; | 852 break; |
| 856 } | 853 } |
| 857 case FilterOperation::GRAYSCALE: { | 854 case FilterOperation::GRAYSCALE: { |
| 858 BasicColorMatrixFilterOperation* colorMatrixOperation = static_cast<
BasicColorMatrixFilterOperation*>(filterOperation); | 855 BasicColorMatrixFilterOperation* colorMatrixOperation = static_cast<
BasicColorMatrixFilterOperation*>(filterOperation); |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 981 default: | 978 default: |
| 982 filterValue = CSSFilterValue::create(CSSFilterValue::UnknownFilterOp
eration); | 979 filterValue = CSSFilterValue::create(CSSFilterValue::UnknownFilterOp
eration); |
| 983 break; | 980 break; |
| 984 } | 981 } |
| 985 list->append(filterValue.release()); | 982 list->append(filterValue.release()); |
| 986 } | 983 } |
| 987 | 984 |
| 988 return list.release(); | 985 return list.release(); |
| 989 } | 986 } |
| 990 | 987 |
| 991 static PassRefPtr<CSSValue> valueForGridTrackBreadth(const GridLength& trackBrea
dth, const RenderStyle* style, RenderView* renderView) | 988 static PassRefPtr<CSSValue> valueForGridTrackBreadth(const GridLength& trackBrea
dth, const RenderStyle& style, RenderView* renderView) |
| 992 { | 989 { |
| 993 if (!trackBreadth.isLength()) | 990 if (!trackBreadth.isLength()) |
| 994 return cssValuePool().createValue(trackBreadth.flex(), CSSPrimitiveValue
::CSS_FR); | 991 return cssValuePool().createValue(trackBreadth.flex(), CSSPrimitiveValue
::CSS_FR); |
| 995 | 992 |
| 996 const Length& trackBreadthLength = trackBreadth.length(); | 993 const Length& trackBreadthLength = trackBreadth.length(); |
| 997 if (trackBreadthLength.isAuto()) | 994 if (trackBreadthLength.isAuto()) |
| 998 return cssValuePool().createIdentifierValue(CSSValueAuto); | 995 return cssValuePool().createIdentifierValue(CSSValueAuto); |
| 999 if (trackBreadthLength.isViewportPercentage()) | 996 if (trackBreadthLength.isViewportPercentage()) |
| 1000 return zoomAdjustedPixelValue(valueForLength(trackBreadthLength, 0, rend
erView), style); | 997 return zoomAdjustedPixelValue(valueForLength(trackBreadthLength, 0, rend
erView), style); |
| 1001 return zoomAdjustedPixelValueForLength(trackBreadthLength, style); | 998 return zoomAdjustedPixelValueForLength(trackBreadthLength, style); |
| 1002 } | 999 } |
| 1003 | 1000 |
| 1004 static PassRefPtr<CSSValue> specifiedValueForGridTrackSize(const GridTrackSize&
trackSize, const RenderStyle* style, RenderView* renderView) | 1001 static PassRefPtr<CSSValue> specifiedValueForGridTrackSize(const GridTrackSize&
trackSize, const RenderStyle& style, RenderView* renderView) |
| 1005 { | 1002 { |
| 1006 switch (trackSize.type()) { | 1003 switch (trackSize.type()) { |
| 1007 case LengthTrackSizing: | 1004 case LengthTrackSizing: |
| 1008 return valueForGridTrackBreadth(trackSize.length(), style, renderView); | 1005 return valueForGridTrackBreadth(trackSize.length(), style, renderView); |
| 1009 case MinMaxTrackSizing: | 1006 case MinMaxTrackSizing: |
| 1010 RefPtr<CSSValueList> minMaxTrackBreadths = CSSValueList::createCommaSepa
rated(); | 1007 RefPtr<CSSValueList> minMaxTrackBreadths = CSSValueList::createCommaSepa
rated(); |
| 1011 minMaxTrackBreadths->append(valueForGridTrackBreadth(trackSize.minTrackB
readth(), style, renderView)); | 1008 minMaxTrackBreadths->append(valueForGridTrackBreadth(trackSize.minTrackB
readth(), style, renderView)); |
| 1012 minMaxTrackBreadths->append(valueForGridTrackBreadth(trackSize.maxTrackB
readth(), style, renderView)); | 1009 minMaxTrackBreadths->append(valueForGridTrackBreadth(trackSize.maxTrackB
readth(), style, renderView)); |
| 1013 return CSSFunctionValue::create("minmax(", minMaxTrackBreadths); | 1010 return CSSFunctionValue::create("minmax(", minMaxTrackBreadths); |
| 1014 } | 1011 } |
| 1015 ASSERT_NOT_REACHED(); | 1012 ASSERT_NOT_REACHED(); |
| 1016 return 0; | 1013 return 0; |
| 1017 } | 1014 } |
| 1018 | 1015 |
| 1019 static void addValuesForNamedGridLinesAtIndex(const OrderedNamedGridLines& order
edNamedGridLines, size_t i, CSSValueList& list) | 1016 static void addValuesForNamedGridLinesAtIndex(const OrderedNamedGridLines& order
edNamedGridLines, size_t i, CSSValueList& list) |
| 1020 { | 1017 { |
| 1021 const Vector<String>& namedGridLines = orderedNamedGridLines.get(i); | 1018 const Vector<String>& namedGridLines = orderedNamedGridLines.get(i); |
| 1022 for (size_t j = 0; j < namedGridLines.size(); ++j) | 1019 for (size_t j = 0; j < namedGridLines.size(); ++j) |
| 1023 list.append(cssValuePool().createValue(namedGridLines[j], CSSPrimitiveVa
lue::CSS_STRING)); | 1020 list.append(cssValuePool().createValue(namedGridLines[j], CSSPrimitiveVa
lue::CSS_STRING)); |
| 1024 } | 1021 } |
| 1025 | 1022 |
| 1026 static PassRefPtr<CSSValue> valueForGridTrackList(GridTrackSizingDirection direc
tion, RenderObject* renderer, const RenderStyle* style, RenderView* renderView) | 1023 static PassRefPtr<CSSValue> valueForGridTrackList(GridTrackSizingDirection direc
tion, RenderObject* renderer, const RenderStyle& style, RenderView* renderView) |
| 1027 { | 1024 { |
| 1028 const Vector<GridTrackSize>& trackSizes = direction == ForColumns ? style->g
ridDefinitionColumns() : style->gridDefinitionRows(); | 1025 const Vector<GridTrackSize>& trackSizes = direction == ForColumns ? style.gr
idDefinitionColumns() : style.gridDefinitionRows(); |
| 1029 const OrderedNamedGridLines& orderedNamedGridLines = direction == ForColumns
? style->orderedNamedGridColumnLines() : style->orderedNamedGridRowLines(); | 1026 const OrderedNamedGridLines& orderedNamedGridLines = direction == ForColumns
? style.orderedNamedGridColumnLines() : style.orderedNamedGridRowLines(); |
| 1030 | 1027 |
| 1031 // Handle the 'none' case here. | 1028 // Handle the 'none' case here. |
| 1032 if (!trackSizes.size()) { | 1029 if (!trackSizes.size()) { |
| 1033 ASSERT(orderedNamedGridLines.isEmpty()); | 1030 ASSERT(orderedNamedGridLines.isEmpty()); |
| 1034 return cssValuePool().createIdentifierValue(CSSValueNone); | 1031 return cssValuePool().createIdentifierValue(CSSValueNone); |
| 1035 } | 1032 } |
| 1036 | 1033 |
| 1037 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); | 1034 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); |
| 1038 if (renderer && renderer->isRenderGrid()) { | 1035 if (renderer && renderer->isRenderGrid()) { |
| 1039 const Vector<LayoutUnit>& trackPositions = direction == ForColumns ? toR
enderGrid(renderer)->columnPositions() : toRenderGrid(renderer)->rowPositions(); | 1036 const Vector<LayoutUnit>& trackPositions = direction == ForColumns ? toR
enderGrid(renderer)->columnPositions() : toRenderGrid(renderer)->rowPositions(); |
| (...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1294 m_node->document().updateLayoutIgnorePendingStylesheets(); | 1291 m_node->document().updateLayoutIgnorePendingStylesheets(); |
| 1295 | 1292 |
| 1296 RefPtr<RenderStyle> style = m_node->computedStyle(m_pseudoElementSpecifier); | 1293 RefPtr<RenderStyle> style = m_node->computedStyle(m_pseudoElementSpecifier); |
| 1297 if (!style) | 1294 if (!style) |
| 1298 return 0; | 1295 return 0; |
| 1299 | 1296 |
| 1300 if (int keywordSize = style->fontDescription().keywordSize()) | 1297 if (int keywordSize = style->fontDescription().keywordSize()) |
| 1301 return cssValuePool().createIdentifierValue(cssIdentifierForFontSizeKeyw
ord(keywordSize)); | 1298 return cssValuePool().createIdentifierValue(cssIdentifierForFontSizeKeyw
ord(keywordSize)); |
| 1302 | 1299 |
| 1303 | 1300 |
| 1304 return zoomAdjustedPixelValue(style->fontDescription().computedPixelSize(),
style.get()); | 1301 return zoomAdjustedPixelValue(style->fontDescription().computedPixelSize(),
*style); |
| 1305 } | 1302 } |
| 1306 | 1303 |
| 1307 bool CSSComputedStyleDeclaration::useFixedFontDefaultSize() const | 1304 bool CSSComputedStyleDeclaration::useFixedFontDefaultSize() const |
| 1308 { | 1305 { |
| 1309 if (!m_node) | 1306 if (!m_node) |
| 1310 return false; | 1307 return false; |
| 1311 | 1308 |
| 1312 RefPtr<RenderStyle> style = m_node->computedStyle(m_pseudoElementSpecifier); | 1309 RefPtr<RenderStyle> style = m_node->computedStyle(m_pseudoElementSpecifier); |
| 1313 if (!style) | 1310 if (!style) |
| 1314 return false; | 1311 return false; |
| 1315 | 1312 |
| 1316 return style->fontDescription().useFixedDefaultSize(); | 1313 return style->fontDescription().useFixedDefaultSize(); |
| 1317 } | 1314 } |
| 1318 | 1315 |
| 1319 PassRefPtr<CSSValue> CSSComputedStyleDeclaration::valueForShadowData(const Shado
wData& shadow, const RenderStyle* style, bool useSpread) const | 1316 PassRefPtr<CSSValue> CSSComputedStyleDeclaration::valueForShadowData(const Shado
wData& shadow, const RenderStyle& style, bool useSpread) const |
| 1320 { | 1317 { |
| 1321 RefPtr<CSSPrimitiveValue> x = zoomAdjustedPixelValue(shadow.x(), style); | 1318 RefPtr<CSSPrimitiveValue> x = zoomAdjustedPixelValue(shadow.x(), style); |
| 1322 RefPtr<CSSPrimitiveValue> y = zoomAdjustedPixelValue(shadow.y(), style); | 1319 RefPtr<CSSPrimitiveValue> y = zoomAdjustedPixelValue(shadow.y(), style); |
| 1323 RefPtr<CSSPrimitiveValue> blur = zoomAdjustedPixelValue(shadow.blur(), style
); | 1320 RefPtr<CSSPrimitiveValue> blur = zoomAdjustedPixelValue(shadow.blur(), style
); |
| 1324 RefPtr<CSSPrimitiveValue> spread = useSpread ? zoomAdjustedPixelValue(shadow
.spread(), style) : PassRefPtr<CSSPrimitiveValue>(); | 1321 RefPtr<CSSPrimitiveValue> spread = useSpread ? zoomAdjustedPixelValue(shadow
.spread(), style) : PassRefPtr<CSSPrimitiveValue>(); |
| 1325 RefPtr<CSSPrimitiveValue> shadowStyle = shadow.style() == Normal ? PassRefPt
r<CSSPrimitiveValue>() : cssValuePool().createIdentifierValue(CSSValueInset); | 1322 RefPtr<CSSPrimitiveValue> shadowStyle = shadow.style() == Normal ? PassRefPt
r<CSSPrimitiveValue>() : cssValuePool().createIdentifierValue(CSSValueInset); |
| 1326 RefPtr<CSSPrimitiveValue> color = currentColorOrValidColor(style, shadow.col
or()); | 1323 RefPtr<CSSPrimitiveValue> color = currentColorOrValidColor(style, shadow.col
or()); |
| 1327 return CSSShadowValue::create(x.release(), y.release(), blur.release(), spre
ad.release(), shadowStyle.release(), color.release()); | 1324 return CSSShadowValue::create(x.release(), y.release(), blur.release(), spre
ad.release(), shadowStyle.release(), color.release()); |
| 1328 } | 1325 } |
| 1329 | 1326 |
| 1330 PassRefPtr<CSSValue> CSSComputedStyleDeclaration::valueForShadowList(const Shado
wList* shadowList, const RenderStyle* style, bool useSpread) const | 1327 PassRefPtr<CSSValue> CSSComputedStyleDeclaration::valueForShadowList(const Shado
wList* shadowList, const RenderStyle& style, bool useSpread) const |
| 1331 { | 1328 { |
| 1332 if (!shadowList) | 1329 if (!shadowList) |
| 1333 return cssValuePool().createIdentifierValue(CSSValueNone); | 1330 return cssValuePool().createIdentifierValue(CSSValueNone); |
| 1334 | 1331 |
| 1335 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); | 1332 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); |
| 1336 size_t shadowCount = shadowList->shadows().size(); | 1333 size_t shadowCount = shadowList->shadows().size(); |
| 1337 for (size_t i = 0; i < shadowCount; ++i) | 1334 for (size_t i = 0; i < shadowCount; ++i) |
| 1338 list->append(valueForShadowData(shadowList->shadows()[i], style, useSpre
ad)); | 1335 list->append(valueForShadowData(shadowList->shadows()[i], style, useSpre
ad)); |
| 1339 return list.release(); | 1336 return list.release(); |
| 1340 } | 1337 } |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1427 return cssValuePool().createValue(CSSValueAlpha); | 1424 return cssValuePool().createValue(CSSValueAlpha); |
| 1428 case MaskLuminance: | 1425 case MaskLuminance: |
| 1429 return cssValuePool().createValue(CSSValueLuminance); | 1426 return cssValuePool().createValue(CSSValueLuminance); |
| 1430 } | 1427 } |
| 1431 | 1428 |
| 1432 ASSERT_NOT_REACHED(); | 1429 ASSERT_NOT_REACHED(); |
| 1433 | 1430 |
| 1434 return 0; | 1431 return 0; |
| 1435 } | 1432 } |
| 1436 | 1433 |
| 1437 static PassRefPtr<CSSValue> valueForFillSize(const FillSize& fillSize, const Ren
derStyle* style) | 1434 static PassRefPtr<CSSValue> valueForFillSize(const FillSize& fillSize, const Ren
derStyle& style) |
| 1438 { | 1435 { |
| 1439 if (fillSize.type == Contain) | 1436 if (fillSize.type == Contain) |
| 1440 return cssValuePool().createIdentifierValue(CSSValueContain); | 1437 return cssValuePool().createIdentifierValue(CSSValueContain); |
| 1441 | 1438 |
| 1442 if (fillSize.type == Cover) | 1439 if (fillSize.type == Cover) |
| 1443 return cssValuePool().createIdentifierValue(CSSValueCover); | 1440 return cssValuePool().createIdentifierValue(CSSValueCover); |
| 1444 | 1441 |
| 1445 if (fillSize.size.height().isAuto()) | 1442 if (fillSize.size.height().isAuto()) |
| 1446 return zoomAdjustedPixelValueForLength(fillSize.size.width(), style); | 1443 return zoomAdjustedPixelValueForLength(fillSize.size.width(), style); |
| 1447 | 1444 |
| 1448 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); | 1445 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); |
| 1449 list->append(zoomAdjustedPixelValueForLength(fillSize.size.width(), style)); | 1446 list->append(zoomAdjustedPixelValueForLength(fillSize.size.width(), style)); |
| 1450 list->append(zoomAdjustedPixelValueForLength(fillSize.size.height(), style))
; | 1447 list->append(zoomAdjustedPixelValueForLength(fillSize.size.height(), style))
; |
| 1451 return list.release(); | 1448 return list.release(); |
| 1452 } | 1449 } |
| 1453 | 1450 |
| 1454 static PassRefPtr<CSSValue> valueForContentData(const RenderStyle* style) | 1451 static PassRefPtr<CSSValue> valueForContentData(const RenderStyle& style) |
| 1455 { | 1452 { |
| 1456 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); | 1453 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); |
| 1457 for (const ContentData* contentData = style->contentData(); contentData; con
tentData = contentData->next()) { | 1454 for (const ContentData* contentData = style.contentData(); contentData; cont
entData = contentData->next()) { |
| 1458 if (contentData->isCounter()) { | 1455 if (contentData->isCounter()) { |
| 1459 const CounterContent* counter = static_cast<const CounterContentData
*>(contentData)->counter(); | 1456 const CounterContent* counter = static_cast<const CounterContentData
*>(contentData)->counter(); |
| 1460 ASSERT(counter); | 1457 ASSERT(counter); |
| 1461 list->append(cssValuePool().createValue(counter->identifier(), CSSPr
imitiveValue::CSS_COUNTER_NAME)); | 1458 list->append(cssValuePool().createValue(counter->identifier(), CSSPr
imitiveValue::CSS_COUNTER_NAME)); |
| 1462 } else if (contentData->isImage()) { | 1459 } else if (contentData->isImage()) { |
| 1463 const StyleImage* image = static_cast<const ImageContentData*>(conte
ntData)->image(); | 1460 const StyleImage* image = static_cast<const ImageContentData*>(conte
ntData)->image(); |
| 1464 ASSERT(image); | 1461 ASSERT(image); |
| 1465 list->append(image->cssValue()); | 1462 list->append(image->cssValue()); |
| 1466 } else if (contentData->isText()) | 1463 } else if (contentData->isText()) |
| 1467 list->append(cssValuePool().createValue(static_cast<const TextConten
tData*>(contentData)->text(), CSSPrimitiveValue::CSS_STRING)); | 1464 list->append(cssValuePool().createValue(static_cast<const TextConten
tData*>(contentData)->text(), CSSPrimitiveValue::CSS_STRING)); |
| 1468 } | 1465 } |
| 1469 if (style->hasFlowFrom()) | 1466 if (style.hasFlowFrom()) |
| 1470 list->append(cssValuePool().createValue(style->regionThread(), CSSPrimit
iveValue::CSS_STRING)); | 1467 list->append(cssValuePool().createValue(style.regionThread(), CSSPrimiti
veValue::CSS_STRING)); |
| 1471 return list.release(); | 1468 return list.release(); |
| 1472 } | 1469 } |
| 1473 | 1470 |
| 1474 static PassRefPtr<CSSValue> valueForCounterDirectives(const RenderStyle* style,
CSSPropertyID propertyID) | 1471 static PassRefPtr<CSSValue> valueForCounterDirectives(const RenderStyle& style,
CSSPropertyID propertyID) |
| 1475 { | 1472 { |
| 1476 const CounterDirectiveMap* map = style->counterDirectives(); | 1473 const CounterDirectiveMap* map = style.counterDirectives(); |
| 1477 if (!map) | 1474 if (!map) |
| 1478 return 0; | 1475 return 0; |
| 1479 | 1476 |
| 1480 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); | 1477 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); |
| 1481 for (CounterDirectiveMap::const_iterator it = map->begin(); it != map->end()
; ++it) { | 1478 for (CounterDirectiveMap::const_iterator it = map->begin(); it != map->end()
; ++it) { |
| 1482 list->append(cssValuePool().createValue(it->key, CSSPrimitiveValue::CSS_
STRING)); | 1479 list->append(cssValuePool().createValue(it->key, CSSPrimitiveValue::CSS_
STRING)); |
| 1483 short number = propertyID == CSSPropertyCounterIncrement ? it->value.inc
rementValue() : it->value.resetValue(); | 1480 short number = propertyID == CSSPropertyCounterIncrement ? it->value.inc
rementValue() : it->value.resetValue(); |
| 1484 list->append(cssValuePool().createValue((double)number, CSSPrimitiveValu
e::CSS_NUMBER)); | 1481 list->append(cssValuePool().createValue((double)number, CSSPrimitiveValu
e::CSS_NUMBER)); |
| 1485 } | 1482 } |
| 1486 return list.release(); | 1483 return list.release(); |
| 1487 } | 1484 } |
| 1488 | 1485 |
| 1489 static void logUnimplementedPropertyID(CSSPropertyID propertyID) | 1486 static void logUnimplementedPropertyID(CSSPropertyID propertyID) |
| 1490 { | 1487 { |
| 1491 DEFINE_STATIC_LOCAL(HashSet<CSSPropertyID>, propertyIDSet, ()); | 1488 DEFINE_STATIC_LOCAL(HashSet<CSSPropertyID>, propertyIDSet, ()); |
| 1492 if (!propertyIDSet.add(propertyID).isNewEntry) | 1489 if (!propertyIDSet.add(propertyID).isNewEntry) |
| 1493 return; | 1490 return; |
| 1494 | 1491 |
| 1495 LOG_ERROR("WebKit does not yet implement getComputedStyle for '%s'.", getPro
pertyName(propertyID)); | 1492 LOG_ERROR("WebKit does not yet implement getComputedStyle for '%s'.", getPro
pertyName(propertyID)); |
| 1496 } | 1493 } |
| 1497 | 1494 |
| 1498 static PassRefPtr<CSSValueList> valueForFontFamily(RenderStyle* style) | 1495 static PassRefPtr<CSSValueList> valueForFontFamily(RenderStyle& style) |
| 1499 { | 1496 { |
| 1500 const FontFamily& firstFamily = style->fontDescription().family(); | 1497 const FontFamily& firstFamily = style.fontDescription().family(); |
| 1501 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); | 1498 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); |
| 1502 for (const FontFamily* family = &firstFamily; family; family = family->next(
)) | 1499 for (const FontFamily* family = &firstFamily; family; family = family->next(
)) |
| 1503 list->append(valueForFamily(family->family())); | 1500 list->append(valueForFamily(family->family())); |
| 1504 return list.release(); | 1501 return list.release(); |
| 1505 } | 1502 } |
| 1506 | 1503 |
| 1507 static PassRefPtr<CSSPrimitiveValue> valueForLineHeight(RenderStyle* style, Rend
erView* renderView) | 1504 static PassRefPtr<CSSPrimitiveValue> valueForLineHeight(RenderStyle& style, Rend
erView* renderView) |
| 1508 { | 1505 { |
| 1509 Length length = style->lineHeight(); | 1506 Length length = style.lineHeight(); |
| 1510 if (length.isNegative()) | 1507 if (length.isNegative()) |
| 1511 return cssValuePool().createIdentifierValue(CSSValueNormal); | 1508 return cssValuePool().createIdentifierValue(CSSValueNormal); |
| 1512 | 1509 |
| 1513 return zoomAdjustedPixelValue(floatValueForLength(length, style->fontDescrip
tion().specifiedSize(), renderView), style); | 1510 return zoomAdjustedPixelValue(floatValueForLength(length, style.fontDescript
ion().specifiedSize(), renderView), style); |
| 1514 } | 1511 } |
| 1515 | 1512 |
| 1516 static PassRefPtr<CSSPrimitiveValue> valueForFontSize(RenderStyle* style) | 1513 static PassRefPtr<CSSPrimitiveValue> valueForFontSize(RenderStyle& style) |
| 1517 { | 1514 { |
| 1518 return zoomAdjustedPixelValue(style->fontDescription().computedPixelSize(),
style); | 1515 return zoomAdjustedPixelValue(style.fontDescription().computedPixelSize(), s
tyle); |
| 1519 } | 1516 } |
| 1520 | 1517 |
| 1521 static PassRefPtr<CSSPrimitiveValue> valueForFontStyle(RenderStyle* style) | 1518 static PassRefPtr<CSSPrimitiveValue> valueForFontStyle(RenderStyle& style) |
| 1522 { | 1519 { |
| 1523 if (style->fontDescription().italic()) | 1520 if (style.fontDescription().italic()) |
| 1524 return cssValuePool().createIdentifierValue(CSSValueItalic); | 1521 return cssValuePool().createIdentifierValue(CSSValueItalic); |
| 1525 return cssValuePool().createIdentifierValue(CSSValueNormal); | 1522 return cssValuePool().createIdentifierValue(CSSValueNormal); |
| 1526 } | 1523 } |
| 1527 | 1524 |
| 1528 static PassRefPtr<CSSPrimitiveValue> valueForFontVariant(RenderStyle* style) | 1525 static PassRefPtr<CSSPrimitiveValue> valueForFontVariant(RenderStyle& style) |
| 1529 { | 1526 { |
| 1530 if (style->fontDescription().smallCaps()) | 1527 if (style.fontDescription().smallCaps()) |
| 1531 return cssValuePool().createIdentifierValue(CSSValueSmallCaps); | 1528 return cssValuePool().createIdentifierValue(CSSValueSmallCaps); |
| 1532 return cssValuePool().createIdentifierValue(CSSValueNormal); | 1529 return cssValuePool().createIdentifierValue(CSSValueNormal); |
| 1533 } | 1530 } |
| 1534 | 1531 |
| 1535 static PassRefPtr<CSSPrimitiveValue> valueForFontWeight(RenderStyle* style) | 1532 static PassRefPtr<CSSPrimitiveValue> valueForFontWeight(RenderStyle& style) |
| 1536 { | 1533 { |
| 1537 switch (style->fontDescription().weight()) { | 1534 switch (style.fontDescription().weight()) { |
| 1538 case FontWeight100: | 1535 case FontWeight100: |
| 1539 return cssValuePool().createIdentifierValue(CSSValue100); | 1536 return cssValuePool().createIdentifierValue(CSSValue100); |
| 1540 case FontWeight200: | 1537 case FontWeight200: |
| 1541 return cssValuePool().createIdentifierValue(CSSValue200); | 1538 return cssValuePool().createIdentifierValue(CSSValue200); |
| 1542 case FontWeight300: | 1539 case FontWeight300: |
| 1543 return cssValuePool().createIdentifierValue(CSSValue300); | 1540 return cssValuePool().createIdentifierValue(CSSValue300); |
| 1544 case FontWeightNormal: | 1541 case FontWeightNormal: |
| 1545 return cssValuePool().createIdentifierValue(CSSValueNormal); | 1542 return cssValuePool().createIdentifierValue(CSSValueNormal); |
| 1546 case FontWeight500: | 1543 case FontWeight500: |
| 1547 return cssValuePool().createIdentifierValue(CSSValue500); | 1544 return cssValuePool().createIdentifierValue(CSSValue500); |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1699 else | 1696 else |
| 1700 list->append(cssValuePool().createIdentifierValue(CSSValueNo
ne)); | 1697 list->append(cssValuePool().createIdentifierValue(CSSValueNo
ne)); |
| 1701 } | 1698 } |
| 1702 return list.release(); | 1699 return list.release(); |
| 1703 } | 1700 } |
| 1704 case CSSPropertyBackgroundSize: | 1701 case CSSPropertyBackgroundSize: |
| 1705 case CSSPropertyWebkitBackgroundSize: | 1702 case CSSPropertyWebkitBackgroundSize: |
| 1706 case CSSPropertyWebkitMaskSize: { | 1703 case CSSPropertyWebkitMaskSize: { |
| 1707 const FillLayer* layers = propertyID == CSSPropertyWebkitMaskSize ?
style->maskLayers() : style->backgroundLayers(); | 1704 const FillLayer* layers = propertyID == CSSPropertyWebkitMaskSize ?
style->maskLayers() : style->backgroundLayers(); |
| 1708 if (!layers->next()) | 1705 if (!layers->next()) |
| 1709 return valueForFillSize(layers->size(), style.get()); | 1706 return valueForFillSize(layers->size(), *style); |
| 1710 | 1707 |
| 1711 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); | 1708 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); |
| 1712 for (const FillLayer* currLayer = layers; currLayer; currLayer = cur
rLayer->next()) | 1709 for (const FillLayer* currLayer = layers; currLayer; currLayer = cur
rLayer->next()) |
| 1713 list->append(valueForFillSize(currLayer->size(), style.get())); | 1710 list->append(valueForFillSize(currLayer->size(), *style)); |
| 1714 | 1711 |
| 1715 return list.release(); | 1712 return list.release(); |
| 1716 } | 1713 } |
| 1717 case CSSPropertyBackgroundRepeat: | 1714 case CSSPropertyBackgroundRepeat: |
| 1718 case CSSPropertyWebkitMaskRepeat: { | 1715 case CSSPropertyWebkitMaskRepeat: { |
| 1719 const FillLayer* layers = propertyID == CSSPropertyWebkitMaskRepeat
? style->maskLayers() : style->backgroundLayers(); | 1716 const FillLayer* layers = propertyID == CSSPropertyWebkitMaskRepeat
? style->maskLayers() : style->backgroundLayers(); |
| 1720 if (!layers->next()) | 1717 if (!layers->next()) |
| 1721 return valueForFillRepeat(layers->repeatX(), layers->repeatY()); | 1718 return valueForFillRepeat(layers->repeatX(), layers->repeatY()); |
| 1722 | 1719 |
| 1723 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); | 1720 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1782 EFillBox box = isClip ? currLayer->clip() : currLayer->origin(); | 1779 EFillBox box = isClip ? currLayer->clip() : currLayer->origin(); |
| 1783 list->append(cssValuePool().createValue(box)); | 1780 list->append(cssValuePool().createValue(box)); |
| 1784 } | 1781 } |
| 1785 | 1782 |
| 1786 return list.release(); | 1783 return list.release(); |
| 1787 } | 1784 } |
| 1788 case CSSPropertyBackgroundPosition: | 1785 case CSSPropertyBackgroundPosition: |
| 1789 case CSSPropertyWebkitMaskPosition: { | 1786 case CSSPropertyWebkitMaskPosition: { |
| 1790 const FillLayer* layers = propertyID == CSSPropertyWebkitMaskPositio
n ? style->maskLayers() : style->backgroundLayers(); | 1787 const FillLayer* layers = propertyID == CSSPropertyWebkitMaskPositio
n ? style->maskLayers() : style->backgroundLayers(); |
| 1791 if (!layers->next()) | 1788 if (!layers->next()) |
| 1792 return createPositionListForLayer(propertyID, layers, style.get(
)); | 1789 return createPositionListForLayer(propertyID, layers, *style); |
| 1793 | 1790 |
| 1794 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); | 1791 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); |
| 1795 for (const FillLayer* currLayer = layers; currLayer; currLayer = cur
rLayer->next()) | 1792 for (const FillLayer* currLayer = layers; currLayer; currLayer = cur
rLayer->next()) |
| 1796 list->append(createPositionListForLayer(propertyID, currLayer, s
tyle.get())); | 1793 list->append(createPositionListForLayer(propertyID, currLayer, *
style)); |
| 1797 return list.release(); | 1794 return list.release(); |
| 1798 } | 1795 } |
| 1799 case CSSPropertyBackgroundPositionX: | 1796 case CSSPropertyBackgroundPositionX: |
| 1800 case CSSPropertyWebkitMaskPositionX: { | 1797 case CSSPropertyWebkitMaskPositionX: { |
| 1801 const FillLayer* layers = propertyID == CSSPropertyWebkitMaskPositio
nX ? style->maskLayers() : style->backgroundLayers(); | 1798 const FillLayer* layers = propertyID == CSSPropertyWebkitMaskPositio
nX ? style->maskLayers() : style->backgroundLayers(); |
| 1802 if (!layers->next()) | 1799 if (!layers->next()) |
| 1803 return cssValuePool().createValue(layers->xPosition()); | 1800 return cssValuePool().createValue(layers->xPosition()); |
| 1804 | 1801 |
| 1805 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); | 1802 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); |
| 1806 for (const FillLayer* currLayer = layers; currLayer; currLayer = cur
rLayer->next()) | 1803 for (const FillLayer* currLayer = layers; currLayer; currLayer = cur
rLayer->next()) |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1819 list->append(cssValuePool().createValue(currLayer->yPosition()))
; | 1816 list->append(cssValuePool().createValue(currLayer->yPosition()))
; |
| 1820 | 1817 |
| 1821 return list.release(); | 1818 return list.release(); |
| 1822 } | 1819 } |
| 1823 case CSSPropertyBorderCollapse: | 1820 case CSSPropertyBorderCollapse: |
| 1824 if (style->borderCollapse()) | 1821 if (style->borderCollapse()) |
| 1825 return cssValuePool().createIdentifierValue(CSSValueCollapse); | 1822 return cssValuePool().createIdentifierValue(CSSValueCollapse); |
| 1826 return cssValuePool().createIdentifierValue(CSSValueSeparate); | 1823 return cssValuePool().createIdentifierValue(CSSValueSeparate); |
| 1827 case CSSPropertyBorderSpacing: { | 1824 case CSSPropertyBorderSpacing: { |
| 1828 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); | 1825 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); |
| 1829 list->append(zoomAdjustedPixelValue(style->horizontalBorderSpacing()
, style.get())); | 1826 list->append(zoomAdjustedPixelValue(style->horizontalBorderSpacing()
, *style)); |
| 1830 list->append(zoomAdjustedPixelValue(style->verticalBorderSpacing(),
style.get())); | 1827 list->append(zoomAdjustedPixelValue(style->verticalBorderSpacing(),
*style)); |
| 1831 return list.release(); | 1828 return list.release(); |
| 1832 } | 1829 } |
| 1833 case CSSPropertyWebkitBorderHorizontalSpacing: | 1830 case CSSPropertyWebkitBorderHorizontalSpacing: |
| 1834 return zoomAdjustedPixelValue(style->horizontalBorderSpacing(), styl
e.get()); | 1831 return zoomAdjustedPixelValue(style->horizontalBorderSpacing(), *sty
le); |
| 1835 case CSSPropertyWebkitBorderVerticalSpacing: | 1832 case CSSPropertyWebkitBorderVerticalSpacing: |
| 1836 return zoomAdjustedPixelValue(style->verticalBorderSpacing(), style.
get()); | 1833 return zoomAdjustedPixelValue(style->verticalBorderSpacing(), *style
); |
| 1837 case CSSPropertyBorderImageSource: | 1834 case CSSPropertyBorderImageSource: |
| 1838 if (style->borderImageSource()) | 1835 if (style->borderImageSource()) |
| 1839 return style->borderImageSource()->cssValue(); | 1836 return style->borderImageSource()->cssValue(); |
| 1840 return cssValuePool().createIdentifierValue(CSSValueNone); | 1837 return cssValuePool().createIdentifierValue(CSSValueNone); |
| 1841 case CSSPropertyBorderTopColor: | 1838 case CSSPropertyBorderTopColor: |
| 1842 return m_allowVisitedStyle ? cssValuePool().createColorValue(style->
visitedDependentColor(CSSPropertyBorderTopColor).rgb()) : currentColorOrValidCol
or(style.get(), style->borderTopColor()); | 1839 return m_allowVisitedStyle ? cssValuePool().createColorValue(style->
visitedDependentColor(CSSPropertyBorderTopColor).rgb()) : currentColorOrValidCol
or(*style, style->borderTopColor()); |
| 1843 case CSSPropertyBorderRightColor: | 1840 case CSSPropertyBorderRightColor: |
| 1844 return m_allowVisitedStyle ? cssValuePool().createColorValue(style->
visitedDependentColor(CSSPropertyBorderRightColor).rgb()) : currentColorOrValidC
olor(style.get(), style->borderRightColor()); | 1841 return m_allowVisitedStyle ? cssValuePool().createColorValue(style->
visitedDependentColor(CSSPropertyBorderRightColor).rgb()) : currentColorOrValidC
olor(*style, style->borderRightColor()); |
| 1845 case CSSPropertyBorderBottomColor: | 1842 case CSSPropertyBorderBottomColor: |
| 1846 return m_allowVisitedStyle ? cssValuePool().createColorValue(style->
visitedDependentColor(CSSPropertyBorderBottomColor).rgb()) : currentColorOrValid
Color(style.get(), style->borderBottomColor()); | 1843 return m_allowVisitedStyle ? cssValuePool().createColorValue(style->
visitedDependentColor(CSSPropertyBorderBottomColor).rgb()) : currentColorOrValid
Color(*style, style->borderBottomColor()); |
| 1847 case CSSPropertyBorderLeftColor: | 1844 case CSSPropertyBorderLeftColor: |
| 1848 return m_allowVisitedStyle ? cssValuePool().createColorValue(style->
visitedDependentColor(CSSPropertyBorderLeftColor).rgb()) : currentColorOrValidCo
lor(style.get(), style->borderLeftColor()); | 1845 return m_allowVisitedStyle ? cssValuePool().createColorValue(style->
visitedDependentColor(CSSPropertyBorderLeftColor).rgb()) : currentColorOrValidCo
lor(*style, style->borderLeftColor()); |
| 1849 case CSSPropertyBorderTopStyle: | 1846 case CSSPropertyBorderTopStyle: |
| 1850 return cssValuePool().createValue(style->borderTopStyle()); | 1847 return cssValuePool().createValue(style->borderTopStyle()); |
| 1851 case CSSPropertyBorderRightStyle: | 1848 case CSSPropertyBorderRightStyle: |
| 1852 return cssValuePool().createValue(style->borderRightStyle()); | 1849 return cssValuePool().createValue(style->borderRightStyle()); |
| 1853 case CSSPropertyBorderBottomStyle: | 1850 case CSSPropertyBorderBottomStyle: |
| 1854 return cssValuePool().createValue(style->borderBottomStyle()); | 1851 return cssValuePool().createValue(style->borderBottomStyle()); |
| 1855 case CSSPropertyBorderLeftStyle: | 1852 case CSSPropertyBorderLeftStyle: |
| 1856 return cssValuePool().createValue(style->borderLeftStyle()); | 1853 return cssValuePool().createValue(style->borderLeftStyle()); |
| 1857 case CSSPropertyBorderTopWidth: | 1854 case CSSPropertyBorderTopWidth: |
| 1858 return zoomAdjustedPixelValue(style->borderTopWidth(), style.get()); | 1855 return zoomAdjustedPixelValue(style->borderTopWidth(), *style); |
| 1859 case CSSPropertyBorderRightWidth: | 1856 case CSSPropertyBorderRightWidth: |
| 1860 return zoomAdjustedPixelValue(style->borderRightWidth(), style.get()
); | 1857 return zoomAdjustedPixelValue(style->borderRightWidth(), *style); |
| 1861 case CSSPropertyBorderBottomWidth: | 1858 case CSSPropertyBorderBottomWidth: |
| 1862 return zoomAdjustedPixelValue(style->borderBottomWidth(), style.get(
)); | 1859 return zoomAdjustedPixelValue(style->borderBottomWidth(), *style); |
| 1863 case CSSPropertyBorderLeftWidth: | 1860 case CSSPropertyBorderLeftWidth: |
| 1864 return zoomAdjustedPixelValue(style->borderLeftWidth(), style.get())
; | 1861 return zoomAdjustedPixelValue(style->borderLeftWidth(), *style); |
| 1865 case CSSPropertyBottom: | 1862 case CSSPropertyBottom: |
| 1866 return valueForPositionOffset(style.get(), CSSPropertyBottom, render
er, m_node->document().renderView()); | 1863 return valueForPositionOffset(*style, CSSPropertyBottom, renderer, m
_node->document().renderView()); |
| 1867 case CSSPropertyWebkitBoxAlign: | 1864 case CSSPropertyWebkitBoxAlign: |
| 1868 return cssValuePool().createValue(style->boxAlign()); | 1865 return cssValuePool().createValue(style->boxAlign()); |
| 1869 case CSSPropertyWebkitBoxDecorationBreak: | 1866 case CSSPropertyWebkitBoxDecorationBreak: |
| 1870 if (style->boxDecorationBreak() == DSLICE) | 1867 if (style->boxDecorationBreak() == DSLICE) |
| 1871 return cssValuePool().createIdentifierValue(CSSValueSlice); | 1868 return cssValuePool().createIdentifierValue(CSSValueSlice); |
| 1872 return cssValuePool().createIdentifierValue(CSSValueClone); | 1869 return cssValuePool().createIdentifierValue(CSSValueClone); |
| 1873 case CSSPropertyWebkitBoxDirection: | 1870 case CSSPropertyWebkitBoxDirection: |
| 1874 return cssValuePool().createValue(style->boxDirection()); | 1871 return cssValuePool().createValue(style->boxDirection()); |
| 1875 case CSSPropertyWebkitBoxFlex: | 1872 case CSSPropertyWebkitBoxFlex: |
| 1876 return cssValuePool().createValue(style->boxFlex(), CSSPrimitiveValu
e::CSS_NUMBER); | 1873 return cssValuePool().createValue(style->boxFlex(), CSSPrimitiveValu
e::CSS_NUMBER); |
| 1877 case CSSPropertyWebkitBoxFlexGroup: | 1874 case CSSPropertyWebkitBoxFlexGroup: |
| 1878 return cssValuePool().createValue(style->boxFlexGroup(), CSSPrimitiv
eValue::CSS_NUMBER); | 1875 return cssValuePool().createValue(style->boxFlexGroup(), CSSPrimitiv
eValue::CSS_NUMBER); |
| 1879 case CSSPropertyWebkitBoxLines: | 1876 case CSSPropertyWebkitBoxLines: |
| 1880 return cssValuePool().createValue(style->boxLines()); | 1877 return cssValuePool().createValue(style->boxLines()); |
| 1881 case CSSPropertyWebkitBoxOrdinalGroup: | 1878 case CSSPropertyWebkitBoxOrdinalGroup: |
| 1882 return cssValuePool().createValue(style->boxOrdinalGroup(), CSSPrimi
tiveValue::CSS_NUMBER); | 1879 return cssValuePool().createValue(style->boxOrdinalGroup(), CSSPrimi
tiveValue::CSS_NUMBER); |
| 1883 case CSSPropertyWebkitBoxOrient: | 1880 case CSSPropertyWebkitBoxOrient: |
| 1884 return cssValuePool().createValue(style->boxOrient()); | 1881 return cssValuePool().createValue(style->boxOrient()); |
| 1885 case CSSPropertyWebkitBoxPack: | 1882 case CSSPropertyWebkitBoxPack: |
| 1886 return cssValuePool().createValue(style->boxPack()); | 1883 return cssValuePool().createValue(style->boxPack()); |
| 1887 case CSSPropertyWebkitBoxReflect: | 1884 case CSSPropertyWebkitBoxReflect: |
| 1888 return valueForReflection(style->boxReflect(), style.get()); | 1885 return valueForReflection(style->boxReflect(), *style); |
| 1889 case CSSPropertyBoxShadow: | 1886 case CSSPropertyBoxShadow: |
| 1890 case CSSPropertyWebkitBoxShadow: | 1887 case CSSPropertyWebkitBoxShadow: |
| 1891 return valueForShadowList(style->boxShadow(), style.get(), true); | 1888 return valueForShadowList(style->boxShadow(), *style, true); |
| 1892 case CSSPropertyCaptionSide: | 1889 case CSSPropertyCaptionSide: |
| 1893 return cssValuePool().createValue(style->captionSide()); | 1890 return cssValuePool().createValue(style->captionSide()); |
| 1894 case CSSPropertyClear: | 1891 case CSSPropertyClear: |
| 1895 return cssValuePool().createValue(style->clear()); | 1892 return cssValuePool().createValue(style->clear()); |
| 1896 case CSSPropertyColor: | 1893 case CSSPropertyColor: |
| 1897 return cssValuePool().createColorValue(m_allowVisitedStyle ? style->
visitedDependentColor(CSSPropertyColor).rgb() : style->color().rgb()); | 1894 return cssValuePool().createColorValue(m_allowVisitedStyle ? style->
visitedDependentColor(CSSPropertyColor).rgb() : style->color().rgb()); |
| 1898 case CSSPropertyWebkitPrintColorAdjust: | 1895 case CSSPropertyWebkitPrintColorAdjust: |
| 1899 return cssValuePool().createValue(style->printColorAdjust()); | 1896 return cssValuePool().createValue(style->printColorAdjust()); |
| 1900 case CSSPropertyWebkitColumnAxis: | 1897 case CSSPropertyWebkitColumnAxis: |
| 1901 return cssValuePool().createValue(style->columnAxis()); | 1898 return cssValuePool().createValue(style->columnAxis()); |
| 1902 case CSSPropertyWebkitColumnCount: | 1899 case CSSPropertyWebkitColumnCount: |
| 1903 if (style->hasAutoColumnCount()) | 1900 if (style->hasAutoColumnCount()) |
| 1904 return cssValuePool().createIdentifierValue(CSSValueAuto); | 1901 return cssValuePool().createIdentifierValue(CSSValueAuto); |
| 1905 return cssValuePool().createValue(style->columnCount(), CSSPrimitive
Value::CSS_NUMBER); | 1902 return cssValuePool().createValue(style->columnCount(), CSSPrimitive
Value::CSS_NUMBER); |
| 1906 case CSSPropertyColumnFill: | 1903 case CSSPropertyColumnFill: |
| 1907 if (RuntimeEnabledFeatures::regionBasedColumnsEnabled()) | 1904 if (RuntimeEnabledFeatures::regionBasedColumnsEnabled()) |
| 1908 return cssValuePool().createValue(style->columnFill()); | 1905 return cssValuePool().createValue(style->columnFill()); |
| 1909 return 0; | 1906 return 0; |
| 1910 case CSSPropertyWebkitColumnGap: | 1907 case CSSPropertyWebkitColumnGap: |
| 1911 if (style->hasNormalColumnGap()) | 1908 if (style->hasNormalColumnGap()) |
| 1912 return cssValuePool().createIdentifierValue(CSSValueNormal); | 1909 return cssValuePool().createIdentifierValue(CSSValueNormal); |
| 1913 return zoomAdjustedPixelValue(style->columnGap(), style.get()); | 1910 return zoomAdjustedPixelValue(style->columnGap(), *style); |
| 1914 case CSSPropertyWebkitColumnProgression: | 1911 case CSSPropertyWebkitColumnProgression: |
| 1915 return cssValuePool().createValue(style->columnProgression()); | 1912 return cssValuePool().createValue(style->columnProgression()); |
| 1916 case CSSPropertyWebkitColumnRuleColor: | 1913 case CSSPropertyWebkitColumnRuleColor: |
| 1917 return m_allowVisitedStyle ? cssValuePool().createColorValue(style->
visitedDependentColor(CSSPropertyOutlineColor).rgb()) : currentColorOrValidColor
(style.get(), style->columnRuleColor()); | 1914 return m_allowVisitedStyle ? cssValuePool().createColorValue(style->
visitedDependentColor(CSSPropertyOutlineColor).rgb()) : currentColorOrValidColor
(*style, style->columnRuleColor()); |
| 1918 case CSSPropertyWebkitColumnRuleStyle: | 1915 case CSSPropertyWebkitColumnRuleStyle: |
| 1919 return cssValuePool().createValue(style->columnRuleStyle()); | 1916 return cssValuePool().createValue(style->columnRuleStyle()); |
| 1920 case CSSPropertyWebkitColumnRuleWidth: | 1917 case CSSPropertyWebkitColumnRuleWidth: |
| 1921 return zoomAdjustedPixelValue(style->columnRuleWidth(), style.get())
; | 1918 return zoomAdjustedPixelValue(style->columnRuleWidth(), *style); |
| 1922 case CSSPropertyWebkitColumnSpan: | 1919 case CSSPropertyWebkitColumnSpan: |
| 1923 return cssValuePool().createIdentifierValue(style->columnSpan() ? CS
SValueAll : CSSValueNone); | 1920 return cssValuePool().createIdentifierValue(style->columnSpan() ? CS
SValueAll : CSSValueNone); |
| 1924 case CSSPropertyWebkitColumnBreakAfter: | 1921 case CSSPropertyWebkitColumnBreakAfter: |
| 1925 return cssValuePool().createValue(style->columnBreakAfter()); | 1922 return cssValuePool().createValue(style->columnBreakAfter()); |
| 1926 case CSSPropertyWebkitColumnBreakBefore: | 1923 case CSSPropertyWebkitColumnBreakBefore: |
| 1927 return cssValuePool().createValue(style->columnBreakBefore()); | 1924 return cssValuePool().createValue(style->columnBreakBefore()); |
| 1928 case CSSPropertyWebkitColumnBreakInside: | 1925 case CSSPropertyWebkitColumnBreakInside: |
| 1929 return cssValuePool().createValue(style->columnBreakInside()); | 1926 return cssValuePool().createValue(style->columnBreakInside()); |
| 1930 case CSSPropertyWebkitColumnWidth: | 1927 case CSSPropertyWebkitColumnWidth: |
| 1931 if (style->hasAutoColumnWidth()) | 1928 if (style->hasAutoColumnWidth()) |
| 1932 return cssValuePool().createIdentifierValue(CSSValueAuto); | 1929 return cssValuePool().createIdentifierValue(CSSValueAuto); |
| 1933 return zoomAdjustedPixelValue(style->columnWidth(), style.get()); | 1930 return zoomAdjustedPixelValue(style->columnWidth(), *style); |
| 1934 case CSSPropertyTabSize: | 1931 case CSSPropertyTabSize: |
| 1935 return cssValuePool().createValue(style->tabSize(), CSSPrimitiveValu
e::CSS_NUMBER); | 1932 return cssValuePool().createValue(style->tabSize(), CSSPrimitiveValu
e::CSS_NUMBER); |
| 1936 case CSSPropertyWebkitRegionBreakAfter: | 1933 case CSSPropertyWebkitRegionBreakAfter: |
| 1937 return cssValuePool().createValue(style->regionBreakAfter()); | 1934 return cssValuePool().createValue(style->regionBreakAfter()); |
| 1938 case CSSPropertyWebkitRegionBreakBefore: | 1935 case CSSPropertyWebkitRegionBreakBefore: |
| 1939 return cssValuePool().createValue(style->regionBreakBefore()); | 1936 return cssValuePool().createValue(style->regionBreakBefore()); |
| 1940 case CSSPropertyWebkitRegionBreakInside: | 1937 case CSSPropertyWebkitRegionBreakInside: |
| 1941 return cssValuePool().createValue(style->regionBreakInside()); | 1938 return cssValuePool().createValue(style->regionBreakInside()); |
| 1942 case CSSPropertyCursor: { | 1939 case CSSPropertyCursor: { |
| 1943 RefPtr<CSSValueList> list; | 1940 RefPtr<CSSValueList> list; |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1990 case CSSPropertyJustifyContent: | 1987 case CSSPropertyJustifyContent: |
| 1991 return cssValuePool().createValue(style->justifyContent()); | 1988 return cssValuePool().createValue(style->justifyContent()); |
| 1992 case CSSPropertyOrder: | 1989 case CSSPropertyOrder: |
| 1993 return cssValuePool().createValue(style->order(), CSSPrimitiveValue:
:CSS_NUMBER); | 1990 return cssValuePool().createValue(style->order(), CSSPrimitiveValue:
:CSS_NUMBER); |
| 1994 case CSSPropertyFloat: | 1991 case CSSPropertyFloat: |
| 1995 if (style->display() != NONE && style->hasOutOfFlowPosition()) | 1992 if (style->display() != NONE && style->hasOutOfFlowPosition()) |
| 1996 return cssValuePool().createIdentifierValue(CSSValueNone); | 1993 return cssValuePool().createIdentifierValue(CSSValueNone); |
| 1997 return cssValuePool().createValue(style->floating()); | 1994 return cssValuePool().createValue(style->floating()); |
| 1998 case CSSPropertyFont: { | 1995 case CSSPropertyFont: { |
| 1999 RefPtr<CSSFontValue> computedFont = CSSFontValue::create(); | 1996 RefPtr<CSSFontValue> computedFont = CSSFontValue::create(); |
| 2000 computedFont->style = valueForFontStyle(style.get()); | 1997 computedFont->style = valueForFontStyle(*style); |
| 2001 computedFont->variant = valueForFontVariant(style.get()); | 1998 computedFont->variant = valueForFontVariant(*style); |
| 2002 computedFont->weight = valueForFontWeight(style.get()); | 1999 computedFont->weight = valueForFontWeight(*style); |
| 2003 computedFont->size = valueForFontSize(style.get()); | 2000 computedFont->size = valueForFontSize(*style); |
| 2004 computedFont->lineHeight = valueForLineHeight(style.get(), m_node->d
ocument().renderView()); | 2001 computedFont->lineHeight = valueForLineHeight(*style, m_node->docume
nt().renderView()); |
| 2005 computedFont->family = valueForFontFamily(style.get()); | 2002 computedFont->family = valueForFontFamily(*style); |
| 2006 return computedFont.release(); | 2003 return computedFont.release(); |
| 2007 } | 2004 } |
| 2008 case CSSPropertyFontFamily: { | 2005 case CSSPropertyFontFamily: { |
| 2009 RefPtr<CSSValueList> fontFamilyList = valueForFontFamily(style.get()
); | 2006 RefPtr<CSSValueList> fontFamilyList = valueForFontFamily(*style); |
| 2010 // If there's only a single family, return that as a CSSPrimitiveVal
ue. | 2007 // If there's only a single family, return that as a CSSPrimitiveVal
ue. |
| 2011 // NOTE: Gecko always returns this as a comma-separated CSSPrimitive
Value string. | 2008 // NOTE: Gecko always returns this as a comma-separated CSSPrimitive
Value string. |
| 2012 if (fontFamilyList->length() == 1) | 2009 if (fontFamilyList->length() == 1) |
| 2013 return fontFamilyList->item(0); | 2010 return fontFamilyList->item(0); |
| 2014 return fontFamilyList.release(); | 2011 return fontFamilyList.release(); |
| 2015 } | 2012 } |
| 2016 case CSSPropertyFontSize: | 2013 case CSSPropertyFontSize: |
| 2017 return valueForFontSize(style.get()); | 2014 return valueForFontSize(*style); |
| 2018 case CSSPropertyFontStyle: | 2015 case CSSPropertyFontStyle: |
| 2019 return valueForFontStyle(style.get()); | 2016 return valueForFontStyle(*style); |
| 2020 case CSSPropertyFontVariant: | 2017 case CSSPropertyFontVariant: |
| 2021 return valueForFontVariant(style.get()); | 2018 return valueForFontVariant(*style); |
| 2022 case CSSPropertyFontWeight: | 2019 case CSSPropertyFontWeight: |
| 2023 return valueForFontWeight(style.get()); | 2020 return valueForFontWeight(*style); |
| 2024 case CSSPropertyWebkitFontFeatureSettings: { | 2021 case CSSPropertyWebkitFontFeatureSettings: { |
| 2025 const FontFeatureSettings* featureSettings = style->fontDescription(
).featureSettings(); | 2022 const FontFeatureSettings* featureSettings = style->fontDescription(
).featureSettings(); |
| 2026 if (!featureSettings || !featureSettings->size()) | 2023 if (!featureSettings || !featureSettings->size()) |
| 2027 return cssValuePool().createIdentifierValue(CSSValueNormal); | 2024 return cssValuePool().createIdentifierValue(CSSValueNormal); |
| 2028 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); | 2025 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); |
| 2029 for (unsigned i = 0; i < featureSettings->size(); ++i) { | 2026 for (unsigned i = 0; i < featureSettings->size(); ++i) { |
| 2030 const FontFeature& feature = featureSettings->at(i); | 2027 const FontFeature& feature = featureSettings->at(i); |
| 2031 RefPtr<CSSFontFeatureValue> featureValue = CSSFontFeatureValue::
create(feature.tag(), feature.value()); | 2028 RefPtr<CSSFontFeatureValue> featureValue = CSSFontFeatureValue::
create(feature.tag(), feature.value()); |
| 2032 list->append(featureValue.release()); | 2029 list->append(featureValue.release()); |
| 2033 } | 2030 } |
| 2034 return list.release(); | 2031 return list.release(); |
| 2035 } | 2032 } |
| 2036 case CSSPropertyGridAutoFlow: | 2033 case CSSPropertyGridAutoFlow: |
| 2037 return cssValuePool().createValue(style->gridAutoFlow()); | 2034 return cssValuePool().createValue(style->gridAutoFlow()); |
| 2038 | 2035 |
| 2039 // Specs mention that getComputedStyle() should return the used value of
the property instead of the computed | 2036 // Specs mention that getComputedStyle() should return the used value of
the property instead of the computed |
| 2040 // one for grid-definition-{rows|columns} but not for the grid-auto-{row
s|columns} as things like | 2037 // one for grid-definition-{rows|columns} but not for the grid-auto-{row
s|columns} as things like |
| 2041 // grid-auto-columns: 2fr; cannot be resolved to a value in pixels as th
e '2fr' means very different things | 2038 // grid-auto-columns: 2fr; cannot be resolved to a value in pixels as th
e '2fr' means very different things |
| 2042 // depending on the size of the explicit grid or the number of implicit
tracks added to the grid. See | 2039 // depending on the size of the explicit grid or the number of implicit
tracks added to the grid. See |
| 2043 // http://lists.w3.org/Archives/Public/www-style/2013Nov/0014.html | 2040 // http://lists.w3.org/Archives/Public/www-style/2013Nov/0014.html |
| 2044 case CSSPropertyGridAutoColumns: | 2041 case CSSPropertyGridAutoColumns: |
| 2045 return specifiedValueForGridTrackSize(style->gridAutoColumns(), styl
e.get(), m_node->document().renderView()); | 2042 return specifiedValueForGridTrackSize(style->gridAutoColumns(), *sty
le, m_node->document().renderView()); |
| 2046 case CSSPropertyGridAutoRows: | 2043 case CSSPropertyGridAutoRows: |
| 2047 return specifiedValueForGridTrackSize(style->gridAutoRows(), style.g
et(), m_node->document().renderView()); | 2044 return specifiedValueForGridTrackSize(style->gridAutoRows(), *style,
m_node->document().renderView()); |
| 2048 | 2045 |
| 2049 case CSSPropertyGridDefinitionColumns: | 2046 case CSSPropertyGridDefinitionColumns: |
| 2050 return valueForGridTrackList(ForColumns, renderer, style.get(), m_no
de->document().renderView()); | 2047 return valueForGridTrackList(ForColumns, renderer, *style, m_node->d
ocument().renderView()); |
| 2051 case CSSPropertyGridDefinitionRows: | 2048 case CSSPropertyGridDefinitionRows: |
| 2052 return valueForGridTrackList(ForRows, renderer, style.get(), m_node-
>document().renderView()); | 2049 return valueForGridTrackList(ForRows, renderer, *style, m_node->docu
ment().renderView()); |
| 2053 | 2050 |
| 2054 case CSSPropertyGridColumnStart: | 2051 case CSSPropertyGridColumnStart: |
| 2055 return valueForGridPosition(style->gridColumnStart()); | 2052 return valueForGridPosition(style->gridColumnStart()); |
| 2056 case CSSPropertyGridColumnEnd: | 2053 case CSSPropertyGridColumnEnd: |
| 2057 return valueForGridPosition(style->gridColumnEnd()); | 2054 return valueForGridPosition(style->gridColumnEnd()); |
| 2058 case CSSPropertyGridRowStart: | 2055 case CSSPropertyGridRowStart: |
| 2059 return valueForGridPosition(style->gridRowStart()); | 2056 return valueForGridPosition(style->gridRowStart()); |
| 2060 case CSSPropertyGridRowEnd: | 2057 case CSSPropertyGridRowEnd: |
| 2061 return valueForGridPosition(style->gridRowEnd()); | 2058 return valueForGridPosition(style->gridRowEnd()); |
| 2062 case CSSPropertyGridColumn: | 2059 case CSSPropertyGridColumn: |
| (...skipping 10 matching lines...) Expand all Loading... |
| 2073 } | 2070 } |
| 2074 | 2071 |
| 2075 return CSSGridTemplateValue::create(style->namedGridArea(), style->n
amedGridAreaRowCount(), style->namedGridAreaColumnCount()); | 2072 return CSSGridTemplateValue::create(style->namedGridArea(), style->n
amedGridAreaRowCount(), style->namedGridAreaColumnCount()); |
| 2076 | 2073 |
| 2077 case CSSPropertyHeight: | 2074 case CSSPropertyHeight: |
| 2078 if (renderer) { | 2075 if (renderer) { |
| 2079 // According to http://www.w3.org/TR/CSS2/visudet.html#the-heigh
t-property, | 2076 // According to http://www.w3.org/TR/CSS2/visudet.html#the-heigh
t-property, |
| 2080 // the "height" property does not apply for non-replaced inline
elements. | 2077 // the "height" property does not apply for non-replaced inline
elements. |
| 2081 if (!renderer->isReplaced() && renderer->isInline()) | 2078 if (!renderer->isReplaced() && renderer->isInline()) |
| 2082 return cssValuePool().createIdentifierValue(CSSValueAuto); | 2079 return cssValuePool().createIdentifierValue(CSSValueAuto); |
| 2083 return zoomAdjustedPixelValue(sizingBox(renderer).height(), styl
e.get()); | 2080 return zoomAdjustedPixelValue(sizingBox(renderer).height(), *sty
le); |
| 2084 } | 2081 } |
| 2085 return zoomAdjustedPixelValueForLength(style->height(), style.get())
; | 2082 return zoomAdjustedPixelValueForLength(style->height(), *style); |
| 2086 case CSSPropertyWebkitHighlight: | 2083 case CSSPropertyWebkitHighlight: |
| 2087 if (style->highlight() == nullAtom) | 2084 if (style->highlight() == nullAtom) |
| 2088 return cssValuePool().createIdentifierValue(CSSValueNone); | 2085 return cssValuePool().createIdentifierValue(CSSValueNone); |
| 2089 return cssValuePool().createValue(style->highlight(), CSSPrimitiveVa
lue::CSS_STRING); | 2086 return cssValuePool().createValue(style->highlight(), CSSPrimitiveVa
lue::CSS_STRING); |
| 2090 case CSSPropertyWebkitHyphenateCharacter: | 2087 case CSSPropertyWebkitHyphenateCharacter: |
| 2091 if (style->hyphenationString().isNull()) | 2088 if (style->hyphenationString().isNull()) |
| 2092 return cssValuePool().createIdentifierValue(CSSValueAuto); | 2089 return cssValuePool().createIdentifierValue(CSSValueAuto); |
| 2093 return cssValuePool().createValue(style->hyphenationString(), CSSPri
mitiveValue::CSS_STRING); | 2090 return cssValuePool().createValue(style->hyphenationString(), CSSPri
mitiveValue::CSS_STRING); |
| 2094 case CSSPropertyWebkitBorderFit: | 2091 case CSSPropertyWebkitBorderFit: |
| 2095 if (style->borderFit() == BorderFitBorder) | 2092 if (style->borderFit() == BorderFitBorder) |
| 2096 return cssValuePool().createIdentifierValue(CSSValueBorder); | 2093 return cssValuePool().createIdentifierValue(CSSValueBorder); |
| 2097 return cssValuePool().createIdentifierValue(CSSValueLines); | 2094 return cssValuePool().createIdentifierValue(CSSValueLines); |
| 2098 case CSSPropertyImageRendering: | 2095 case CSSPropertyImageRendering: |
| 2099 return CSSPrimitiveValue::create(style->imageRendering()); | 2096 return CSSPrimitiveValue::create(style->imageRendering()); |
| 2100 case CSSPropertyIsolation: | 2097 case CSSPropertyIsolation: |
| 2101 return cssValuePool().createValue(style->isolation()); | 2098 return cssValuePool().createValue(style->isolation()); |
| 2102 case CSSPropertyLeft: | 2099 case CSSPropertyLeft: |
| 2103 return valueForPositionOffset(style.get(), CSSPropertyLeft, renderer
, m_node->document().renderView()); | 2100 return valueForPositionOffset(*style, CSSPropertyLeft, renderer, m_n
ode->document().renderView()); |
| 2104 case CSSPropertyLetterSpacing: | 2101 case CSSPropertyLetterSpacing: |
| 2105 if (!style->letterSpacing()) | 2102 if (!style->letterSpacing()) |
| 2106 return cssValuePool().createIdentifierValue(CSSValueNormal); | 2103 return cssValuePool().createIdentifierValue(CSSValueNormal); |
| 2107 return zoomAdjustedPixelValue(style->letterSpacing(), style.get()); | 2104 return zoomAdjustedPixelValue(style->letterSpacing(), *style); |
| 2108 case CSSPropertyWebkitLineClamp: | 2105 case CSSPropertyWebkitLineClamp: |
| 2109 if (style->lineClamp().isNone()) | 2106 if (style->lineClamp().isNone()) |
| 2110 return cssValuePool().createIdentifierValue(CSSValueNone); | 2107 return cssValuePool().createIdentifierValue(CSSValueNone); |
| 2111 return cssValuePool().createValue(style->lineClamp().value(), style-
>lineClamp().isPercentage() ? CSSPrimitiveValue::CSS_PERCENTAGE : CSSPrimitiveVa
lue::CSS_NUMBER); | 2108 return cssValuePool().createValue(style->lineClamp().value(), style-
>lineClamp().isPercentage() ? CSSPrimitiveValue::CSS_PERCENTAGE : CSSPrimitiveVa
lue::CSS_NUMBER); |
| 2112 case CSSPropertyLineHeight: | 2109 case CSSPropertyLineHeight: |
| 2113 return valueForLineHeight(style.get(), m_node->document().renderView
()); | 2110 return valueForLineHeight(*style, m_node->document().renderView()); |
| 2114 case CSSPropertyListStyleImage: | 2111 case CSSPropertyListStyleImage: |
| 2115 if (style->listStyleImage()) | 2112 if (style->listStyleImage()) |
| 2116 return style->listStyleImage()->cssValue(); | 2113 return style->listStyleImage()->cssValue(); |
| 2117 return cssValuePool().createIdentifierValue(CSSValueNone); | 2114 return cssValuePool().createIdentifierValue(CSSValueNone); |
| 2118 case CSSPropertyListStylePosition: | 2115 case CSSPropertyListStylePosition: |
| 2119 return cssValuePool().createValue(style->listStylePosition()); | 2116 return cssValuePool().createValue(style->listStylePosition()); |
| 2120 case CSSPropertyListStyleType: | 2117 case CSSPropertyListStyleType: |
| 2121 return cssValuePool().createValue(style->listStyleType()); | 2118 return cssValuePool().createValue(style->listStyleType()); |
| 2122 case CSSPropertyWebkitLocale: | 2119 case CSSPropertyWebkitLocale: |
| 2123 if (style->locale().isNull()) | 2120 if (style->locale().isNull()) |
| 2124 return cssValuePool().createIdentifierValue(CSSValueAuto); | 2121 return cssValuePool().createIdentifierValue(CSSValueAuto); |
| 2125 return cssValuePool().createValue(style->locale(), CSSPrimitiveValue
::CSS_STRING); | 2122 return cssValuePool().createValue(style->locale(), CSSPrimitiveValue
::CSS_STRING); |
| 2126 case CSSPropertyMarginTop: { | 2123 case CSSPropertyMarginTop: { |
| 2127 Length marginTop = style->marginTop(); | 2124 Length marginTop = style->marginTop(); |
| 2128 if (marginTop.isFixed() || !renderer || !renderer->isBox()) | 2125 if (marginTop.isFixed() || !renderer || !renderer->isBox()) |
| 2129 return zoomAdjustedPixelValueForLength(marginTop, style.get()); | 2126 return zoomAdjustedPixelValueForLength(marginTop, *style); |
| 2130 return zoomAdjustedPixelValue(toRenderBox(renderer)->marginTop(), st
yle.get()); | 2127 return zoomAdjustedPixelValue(toRenderBox(renderer)->marginTop(), *s
tyle); |
| 2131 } | 2128 } |
| 2132 case CSSPropertyMarginRight: { | 2129 case CSSPropertyMarginRight: { |
| 2133 Length marginRight = style->marginRight(); | 2130 Length marginRight = style->marginRight(); |
| 2134 if (marginRight.isFixed() || !renderer || !renderer->isBox()) | 2131 if (marginRight.isFixed() || !renderer || !renderer->isBox()) |
| 2135 return zoomAdjustedPixelValueForLength(marginRight, style.get())
; | 2132 return zoomAdjustedPixelValueForLength(marginRight, *style); |
| 2136 float value; | 2133 float value; |
| 2137 if (marginRight.isPercent() || marginRight.isViewportPercentage()) { | 2134 if (marginRight.isPercent() || marginRight.isViewportPercentage()) { |
| 2138 // RenderBox gives a marginRight() that is the distance between
the right-edge of the child box | 2135 // RenderBox gives a marginRight() that is the distance between
the right-edge of the child box |
| 2139 // and the right-edge of the containing box, when display == BLO
CK. Let's calculate the absolute | 2136 // and the right-edge of the containing box, when display == BLO
CK. Let's calculate the absolute |
| 2140 // value of the specified margin-right % instead of relying on R
enderBox's marginRight() value. | 2137 // value of the specified margin-right % instead of relying on R
enderBox's marginRight() value. |
| 2141 value = minimumValueForLength(marginRight, toRenderBox(renderer)
->containingBlockLogicalWidthForContent(), m_node->document().renderView()); | 2138 value = minimumValueForLength(marginRight, toRenderBox(renderer)
->containingBlockLogicalWidthForContent(), m_node->document().renderView()); |
| 2142 } else { | 2139 } else { |
| 2143 value = toRenderBox(renderer)->marginRight(); | 2140 value = toRenderBox(renderer)->marginRight(); |
| 2144 } | 2141 } |
| 2145 return zoomAdjustedPixelValue(value, style.get()); | 2142 return zoomAdjustedPixelValue(value, *style); |
| 2146 } | 2143 } |
| 2147 case CSSPropertyMarginBottom: { | 2144 case CSSPropertyMarginBottom: { |
| 2148 Length marginBottom = style->marginBottom(); | 2145 Length marginBottom = style->marginBottom(); |
| 2149 if (marginBottom.isFixed() || !renderer || !renderer->isBox()) | 2146 if (marginBottom.isFixed() || !renderer || !renderer->isBox()) |
| 2150 return zoomAdjustedPixelValueForLength(marginBottom, style.get()
); | 2147 return zoomAdjustedPixelValueForLength(marginBottom, *style); |
| 2151 return zoomAdjustedPixelValue(toRenderBox(renderer)->marginBottom(),
style.get()); | 2148 return zoomAdjustedPixelValue(toRenderBox(renderer)->marginBottom(),
*style); |
| 2152 } | 2149 } |
| 2153 case CSSPropertyMarginLeft: { | 2150 case CSSPropertyMarginLeft: { |
| 2154 Length marginLeft = style->marginLeft(); | 2151 Length marginLeft = style->marginLeft(); |
| 2155 if (marginLeft.isFixed() || !renderer || !renderer->isBox()) | 2152 if (marginLeft.isFixed() || !renderer || !renderer->isBox()) |
| 2156 return zoomAdjustedPixelValueForLength(marginLeft, style.get()); | 2153 return zoomAdjustedPixelValueForLength(marginLeft, *style); |
| 2157 return zoomAdjustedPixelValue(toRenderBox(renderer)->marginLeft(), s
tyle.get()); | 2154 return zoomAdjustedPixelValue(toRenderBox(renderer)->marginLeft(), *
style); |
| 2158 } | 2155 } |
| 2159 case CSSPropertyWebkitUserModify: | 2156 case CSSPropertyWebkitUserModify: |
| 2160 return cssValuePool().createValue(style->userModify()); | 2157 return cssValuePool().createValue(style->userModify()); |
| 2161 case CSSPropertyMaxHeight: { | 2158 case CSSPropertyMaxHeight: { |
| 2162 const Length& maxHeight = style->maxHeight(); | 2159 const Length& maxHeight = style->maxHeight(); |
| 2163 if (maxHeight.isUndefined()) | 2160 if (maxHeight.isUndefined()) |
| 2164 return cssValuePool().createIdentifierValue(CSSValueNone); | 2161 return cssValuePool().createIdentifierValue(CSSValueNone); |
| 2165 return zoomAdjustedPixelValueForLength(maxHeight, style.get()); | 2162 return zoomAdjustedPixelValueForLength(maxHeight, *style); |
| 2166 } | 2163 } |
| 2167 case CSSPropertyMaxWidth: { | 2164 case CSSPropertyMaxWidth: { |
| 2168 const Length& maxWidth = style->maxWidth(); | 2165 const Length& maxWidth = style->maxWidth(); |
| 2169 if (maxWidth.isUndefined()) | 2166 if (maxWidth.isUndefined()) |
| 2170 return cssValuePool().createIdentifierValue(CSSValueNone); | 2167 return cssValuePool().createIdentifierValue(CSSValueNone); |
| 2171 return zoomAdjustedPixelValueForLength(maxWidth, style.get()); | 2168 return zoomAdjustedPixelValueForLength(maxWidth, *style); |
| 2172 } | 2169 } |
| 2173 case CSSPropertyMinHeight: | 2170 case CSSPropertyMinHeight: |
| 2174 // FIXME: For flex-items, min-height:auto should compute to min-cont
ent. | 2171 // FIXME: For flex-items, min-height:auto should compute to min-cont
ent. |
| 2175 if (style->minHeight().isAuto()) | 2172 if (style->minHeight().isAuto()) |
| 2176 return zoomAdjustedPixelValue(0, style.get()); | 2173 return zoomAdjustedPixelValue(0, *style); |
| 2177 return zoomAdjustedPixelValueForLength(style->minHeight(), style.get
()); | 2174 return zoomAdjustedPixelValueForLength(style->minHeight(), *style); |
| 2178 case CSSPropertyMinWidth: | 2175 case CSSPropertyMinWidth: |
| 2179 // FIXME: For flex-items, min-width:auto should compute to min-conte
nt. | 2176 // FIXME: For flex-items, min-width:auto should compute to min-conte
nt. |
| 2180 if (style->minWidth().isAuto()) | 2177 if (style->minWidth().isAuto()) |
| 2181 return zoomAdjustedPixelValue(0, style.get()); | 2178 return zoomAdjustedPixelValue(0, *style); |
| 2182 return zoomAdjustedPixelValueForLength(style->minWidth(), style.get(
)); | 2179 return zoomAdjustedPixelValueForLength(style->minWidth(), *style); |
| 2183 case CSSPropertyObjectFit: | 2180 case CSSPropertyObjectFit: |
| 2184 return cssValuePool().createValue(style->objectFit()); | 2181 return cssValuePool().createValue(style->objectFit()); |
| 2185 case CSSPropertyObjectPosition: | 2182 case CSSPropertyObjectPosition: |
| 2186 return cssValuePool().createValue( | 2183 return cssValuePool().createValue( |
| 2187 Pair::create( | 2184 Pair::create( |
| 2188 zoomAdjustedPixelValueForLength(style->objectPosition().x(),
style.get()), | 2185 zoomAdjustedPixelValueForLength(style->objectPosition().x(),
*style), |
| 2189 zoomAdjustedPixelValueForLength(style->objectPosition().y(),
style.get()), | 2186 zoomAdjustedPixelValueForLength(style->objectPosition().y(),
*style), |
| 2190 Pair::KeepIdenticalValues)); | 2187 Pair::KeepIdenticalValues)); |
| 2191 case CSSPropertyOpacity: | 2188 case CSSPropertyOpacity: |
| 2192 return cssValuePool().createValue(style->opacity(), CSSPrimitiveValu
e::CSS_NUMBER); | 2189 return cssValuePool().createValue(style->opacity(), CSSPrimitiveValu
e::CSS_NUMBER); |
| 2193 case CSSPropertyOrphans: | 2190 case CSSPropertyOrphans: |
| 2194 if (style->hasAutoOrphans()) | 2191 if (style->hasAutoOrphans()) |
| 2195 return cssValuePool().createIdentifierValue(CSSValueAuto); | 2192 return cssValuePool().createIdentifierValue(CSSValueAuto); |
| 2196 return cssValuePool().createValue(style->orphans(), CSSPrimitiveValu
e::CSS_NUMBER); | 2193 return cssValuePool().createValue(style->orphans(), CSSPrimitiveValu
e::CSS_NUMBER); |
| 2197 case CSSPropertyOutlineColor: | 2194 case CSSPropertyOutlineColor: |
| 2198 return m_allowVisitedStyle ? cssValuePool().createColorValue(style->
visitedDependentColor(CSSPropertyOutlineColor).rgb()) : currentColorOrValidColor
(style.get(), style->outlineColor()); | 2195 return m_allowVisitedStyle ? cssValuePool().createColorValue(style->
visitedDependentColor(CSSPropertyOutlineColor).rgb()) : currentColorOrValidColor
(*style, style->outlineColor()); |
| 2199 case CSSPropertyOutlineOffset: | 2196 case CSSPropertyOutlineOffset: |
| 2200 return zoomAdjustedPixelValue(style->outlineOffset(), style.get()); | 2197 return zoomAdjustedPixelValue(style->outlineOffset(), *style); |
| 2201 case CSSPropertyOutlineStyle: | 2198 case CSSPropertyOutlineStyle: |
| 2202 if (style->outlineStyleIsAuto()) | 2199 if (style->outlineStyleIsAuto()) |
| 2203 return cssValuePool().createIdentifierValue(CSSValueAuto); | 2200 return cssValuePool().createIdentifierValue(CSSValueAuto); |
| 2204 return cssValuePool().createValue(style->outlineStyle()); | 2201 return cssValuePool().createValue(style->outlineStyle()); |
| 2205 case CSSPropertyOutlineWidth: | 2202 case CSSPropertyOutlineWidth: |
| 2206 return zoomAdjustedPixelValue(style->outlineWidth(), style.get()); | 2203 return zoomAdjustedPixelValue(style->outlineWidth(), *style); |
| 2207 case CSSPropertyOverflow: | 2204 case CSSPropertyOverflow: |
| 2208 return cssValuePool().createValue(max(style->overflowX(), style->ove
rflowY())); | 2205 return cssValuePool().createValue(max(style->overflowX(), style->ove
rflowY())); |
| 2209 case CSSPropertyOverflowWrap: | 2206 case CSSPropertyOverflowWrap: |
| 2210 return cssValuePool().createValue(style->overflowWrap()); | 2207 return cssValuePool().createValue(style->overflowWrap()); |
| 2211 case CSSPropertyOverflowX: | 2208 case CSSPropertyOverflowX: |
| 2212 return cssValuePool().createValue(style->overflowX()); | 2209 return cssValuePool().createValue(style->overflowX()); |
| 2213 case CSSPropertyOverflowY: | 2210 case CSSPropertyOverflowY: |
| 2214 return cssValuePool().createValue(style->overflowY()); | 2211 return cssValuePool().createValue(style->overflowY()); |
| 2215 case CSSPropertyPaddingTop: { | 2212 case CSSPropertyPaddingTop: { |
| 2216 Length paddingTop = style->paddingTop(); | 2213 Length paddingTop = style->paddingTop(); |
| 2217 if (paddingTop.isFixed() || !renderer || !renderer->isBox()) | 2214 if (paddingTop.isFixed() || !renderer || !renderer->isBox()) |
| 2218 return zoomAdjustedPixelValueForLength(paddingTop, style.get()); | 2215 return zoomAdjustedPixelValueForLength(paddingTop, *style); |
| 2219 return zoomAdjustedPixelValue(toRenderBox(renderer)->computedCSSPadd
ingTop(), style.get()); | 2216 return zoomAdjustedPixelValue(toRenderBox(renderer)->computedCSSPadd
ingTop(), *style); |
| 2220 } | 2217 } |
| 2221 case CSSPropertyPaddingRight: { | 2218 case CSSPropertyPaddingRight: { |
| 2222 Length paddingRight = style->paddingRight(); | 2219 Length paddingRight = style->paddingRight(); |
| 2223 if (paddingRight.isFixed() || !renderer || !renderer->isBox()) | 2220 if (paddingRight.isFixed() || !renderer || !renderer->isBox()) |
| 2224 return zoomAdjustedPixelValueForLength(paddingRight, style.get()
); | 2221 return zoomAdjustedPixelValueForLength(paddingRight, *style); |
| 2225 return zoomAdjustedPixelValue(toRenderBox(renderer)->computedCSSPadd
ingRight(), style.get()); | 2222 return zoomAdjustedPixelValue(toRenderBox(renderer)->computedCSSPadd
ingRight(), *style); |
| 2226 } | 2223 } |
| 2227 case CSSPropertyPaddingBottom: { | 2224 case CSSPropertyPaddingBottom: { |
| 2228 Length paddingBottom = style->paddingBottom(); | 2225 Length paddingBottom = style->paddingBottom(); |
| 2229 if (paddingBottom.isFixed() || !renderer || !renderer->isBox()) | 2226 if (paddingBottom.isFixed() || !renderer || !renderer->isBox()) |
| 2230 return zoomAdjustedPixelValueForLength(paddingBottom, style.get(
)); | 2227 return zoomAdjustedPixelValueForLength(paddingBottom, *style); |
| 2231 return zoomAdjustedPixelValue(toRenderBox(renderer)->computedCSSPadd
ingBottom(), style.get()); | 2228 return zoomAdjustedPixelValue(toRenderBox(renderer)->computedCSSPadd
ingBottom(), *style); |
| 2232 } | 2229 } |
| 2233 case CSSPropertyPaddingLeft: { | 2230 case CSSPropertyPaddingLeft: { |
| 2234 Length paddingLeft = style->paddingLeft(); | 2231 Length paddingLeft = style->paddingLeft(); |
| 2235 if (paddingLeft.isFixed() || !renderer || !renderer->isBox()) | 2232 if (paddingLeft.isFixed() || !renderer || !renderer->isBox()) |
| 2236 return zoomAdjustedPixelValueForLength(paddingLeft, style.get())
; | 2233 return zoomAdjustedPixelValueForLength(paddingLeft, *style); |
| 2237 return zoomAdjustedPixelValue(toRenderBox(renderer)->computedCSSPadd
ingLeft(), style.get()); | 2234 return zoomAdjustedPixelValue(toRenderBox(renderer)->computedCSSPadd
ingLeft(), *style); |
| 2238 } | 2235 } |
| 2239 case CSSPropertyPageBreakAfter: | 2236 case CSSPropertyPageBreakAfter: |
| 2240 return cssValuePool().createValue(style->pageBreakAfter()); | 2237 return cssValuePool().createValue(style->pageBreakAfter()); |
| 2241 case CSSPropertyPageBreakBefore: | 2238 case CSSPropertyPageBreakBefore: |
| 2242 return cssValuePool().createValue(style->pageBreakBefore()); | 2239 return cssValuePool().createValue(style->pageBreakBefore()); |
| 2243 case CSSPropertyPageBreakInside: { | 2240 case CSSPropertyPageBreakInside: { |
| 2244 EPageBreak pageBreak = style->pageBreakInside(); | 2241 EPageBreak pageBreak = style->pageBreakInside(); |
| 2245 ASSERT(pageBreak != PBALWAYS); | 2242 ASSERT(pageBreak != PBALWAYS); |
| 2246 if (pageBreak == PBALWAYS) | 2243 if (pageBreak == PBALWAYS) |
| 2247 return 0; | 2244 return 0; |
| 2248 return cssValuePool().createValue(style->pageBreakInside()); | 2245 return cssValuePool().createValue(style->pageBreakInside()); |
| 2249 } | 2246 } |
| 2250 case CSSPropertyPosition: | 2247 case CSSPropertyPosition: |
| 2251 return cssValuePool().createValue(style->position()); | 2248 return cssValuePool().createValue(style->position()); |
| 2252 case CSSPropertyRight: | 2249 case CSSPropertyRight: |
| 2253 return valueForPositionOffset(style.get(), CSSPropertyRight, rendere
r, m_node->document().renderView()); | 2250 return valueForPositionOffset(*style, CSSPropertyRight, renderer, m_
node->document().renderView()); |
| 2254 case CSSPropertyWebkitRubyPosition: | 2251 case CSSPropertyWebkitRubyPosition: |
| 2255 return cssValuePool().createValue(style->rubyPosition()); | 2252 return cssValuePool().createValue(style->rubyPosition()); |
| 2256 case CSSPropertyTableLayout: | 2253 case CSSPropertyTableLayout: |
| 2257 return cssValuePool().createValue(style->tableLayout()); | 2254 return cssValuePool().createValue(style->tableLayout()); |
| 2258 case CSSPropertyTextAlign: | 2255 case CSSPropertyTextAlign: |
| 2259 return cssValuePool().createValue(style->textAlign()); | 2256 return cssValuePool().createValue(style->textAlign()); |
| 2260 case CSSPropertyTextAlignLast: | 2257 case CSSPropertyTextAlignLast: |
| 2261 return cssValuePool().createValue(style->textAlignLast()); | 2258 return cssValuePool().createValue(style->textAlignLast()); |
| 2262 case CSSPropertyTextDecoration: | 2259 case CSSPropertyTextDecoration: |
| 2263 return valuesForShorthandProperty(textDecorationShorthand()); | 2260 return valuesForShorthandProperty(textDecorationShorthand()); |
| 2264 case CSSPropertyTextDecorationLine: | 2261 case CSSPropertyTextDecorationLine: |
| 2265 return renderTextDecorationFlagsToCSSValue(style->textDecoration()); | 2262 return renderTextDecorationFlagsToCSSValue(style->textDecoration()); |
| 2266 case CSSPropertyTextDecorationStyle: | 2263 case CSSPropertyTextDecorationStyle: |
| 2267 return valueForTextDecorationStyle(style->textDecorationStyle()); | 2264 return valueForTextDecorationStyle(style->textDecorationStyle()); |
| 2268 case CSSPropertyTextDecorationColor: | 2265 case CSSPropertyTextDecorationColor: |
| 2269 return currentColorOrValidColor(style.get(), style->textDecorationCo
lor()); | 2266 return currentColorOrValidColor(*style, style->textDecorationColor()
); |
| 2270 case CSSPropertyTextJustify: | 2267 case CSSPropertyTextJustify: |
| 2271 return cssValuePool().createValue(style->textJustify()); | 2268 return cssValuePool().createValue(style->textJustify()); |
| 2272 case CSSPropertyTextUnderlinePosition: | 2269 case CSSPropertyTextUnderlinePosition: |
| 2273 return cssValuePool().createValue(style->textUnderlinePosition()); | 2270 return cssValuePool().createValue(style->textUnderlinePosition()); |
| 2274 case CSSPropertyWebkitTextDecorationsInEffect: | 2271 case CSSPropertyWebkitTextDecorationsInEffect: |
| 2275 return renderTextDecorationFlagsToCSSValue(style->textDecorationsInE
ffect()); | 2272 return renderTextDecorationFlagsToCSSValue(style->textDecorationsInE
ffect()); |
| 2276 case CSSPropertyWebkitTextFillColor: | 2273 case CSSPropertyWebkitTextFillColor: |
| 2277 return currentColorOrValidColor(style.get(), style->textFillColor())
; | 2274 return currentColorOrValidColor(*style, style->textFillColor()); |
| 2278 case CSSPropertyWebkitTextEmphasisColor: | 2275 case CSSPropertyWebkitTextEmphasisColor: |
| 2279 return currentColorOrValidColor(style.get(), style->textEmphasisColo
r()); | 2276 return currentColorOrValidColor(*style, style->textEmphasisColor()); |
| 2280 case CSSPropertyWebkitTextEmphasisPosition: | 2277 case CSSPropertyWebkitTextEmphasisPosition: |
| 2281 return cssValuePool().createValue(style->textEmphasisPosition()); | 2278 return cssValuePool().createValue(style->textEmphasisPosition()); |
| 2282 case CSSPropertyWebkitTextEmphasisStyle: | 2279 case CSSPropertyWebkitTextEmphasisStyle: |
| 2283 switch (style->textEmphasisMark()) { | 2280 switch (style->textEmphasisMark()) { |
| 2284 case TextEmphasisMarkNone: | 2281 case TextEmphasisMarkNone: |
| 2285 return cssValuePool().createIdentifierValue(CSSValueNone); | 2282 return cssValuePool().createIdentifierValue(CSSValueNone); |
| 2286 case TextEmphasisMarkCustom: | 2283 case TextEmphasisMarkCustom: |
| 2287 return cssValuePool().createValue(style->textEmphasisCustomMark(
), CSSPrimitiveValue::CSS_STRING); | 2284 return cssValuePool().createValue(style->textEmphasisCustomMark(
), CSSPrimitiveValue::CSS_STRING); |
| 2288 case TextEmphasisMarkAuto: | 2285 case TextEmphasisMarkAuto: |
| 2289 ASSERT_NOT_REACHED(); | 2286 ASSERT_NOT_REACHED(); |
| 2290 // Fall through | 2287 // Fall through |
| 2291 case TextEmphasisMarkDot: | 2288 case TextEmphasisMarkDot: |
| 2292 case TextEmphasisMarkCircle: | 2289 case TextEmphasisMarkCircle: |
| 2293 case TextEmphasisMarkDoubleCircle: | 2290 case TextEmphasisMarkDoubleCircle: |
| 2294 case TextEmphasisMarkTriangle: | 2291 case TextEmphasisMarkTriangle: |
| 2295 case TextEmphasisMarkSesame: { | 2292 case TextEmphasisMarkSesame: { |
| 2296 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated()
; | 2293 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated()
; |
| 2297 list->append(cssValuePool().createValue(style->textEmphasisFill(
))); | 2294 list->append(cssValuePool().createValue(style->textEmphasisFill(
))); |
| 2298 list->append(cssValuePool().createValue(style->textEmphasisMark(
))); | 2295 list->append(cssValuePool().createValue(style->textEmphasisMark(
))); |
| 2299 return list.release(); | 2296 return list.release(); |
| 2300 } | 2297 } |
| 2301 } | 2298 } |
| 2302 case CSSPropertyTextIndent: { | 2299 case CSSPropertyTextIndent: { |
| 2303 RefPtr<CSSValue> textIndent = zoomAdjustedPixelValueForLength(style-
>textIndent(), style.get()); | 2300 RefPtr<CSSValue> textIndent = zoomAdjustedPixelValueForLength(style-
>textIndent(), *style); |
| 2304 if (RuntimeEnabledFeatures::css3TextEnabled() && style->textIndentLi
ne() == TextIndentEachLine) { | 2301 if (RuntimeEnabledFeatures::css3TextEnabled() && style->textIndentLi
ne() == TextIndentEachLine) { |
| 2305 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated()
; | 2302 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated()
; |
| 2306 list->append(textIndent.release()); | 2303 list->append(textIndent.release()); |
| 2307 list->append(cssValuePool().createIdentifierValue(CSSValueEachLi
ne)); | 2304 list->append(cssValuePool().createIdentifierValue(CSSValueEachLi
ne)); |
| 2308 return list.release(); | 2305 return list.release(); |
| 2309 } | 2306 } |
| 2310 return textIndent.release(); | 2307 return textIndent.release(); |
| 2311 } | 2308 } |
| 2312 case CSSPropertyTextShadow: | 2309 case CSSPropertyTextShadow: |
| 2313 return valueForShadowList(style->textShadow(), style.get(), false); | 2310 return valueForShadowList(style->textShadow(), *style, false); |
| 2314 case CSSPropertyTextRendering: | 2311 case CSSPropertyTextRendering: |
| 2315 return cssValuePool().createValue(style->fontDescription().textRende
ringMode()); | 2312 return cssValuePool().createValue(style->fontDescription().textRende
ringMode()); |
| 2316 case CSSPropertyTextOverflow: | 2313 case CSSPropertyTextOverflow: |
| 2317 if (style->textOverflow()) | 2314 if (style->textOverflow()) |
| 2318 return cssValuePool().createIdentifierValue(CSSValueEllipsis); | 2315 return cssValuePool().createIdentifierValue(CSSValueEllipsis); |
| 2319 return cssValuePool().createIdentifierValue(CSSValueClip); | 2316 return cssValuePool().createIdentifierValue(CSSValueClip); |
| 2320 case CSSPropertyWebkitTextSecurity: | 2317 case CSSPropertyWebkitTextSecurity: |
| 2321 return cssValuePool().createValue(style->textSecurity()); | 2318 return cssValuePool().createValue(style->textSecurity()); |
| 2322 case CSSPropertyWebkitTextStrokeColor: | 2319 case CSSPropertyWebkitTextStrokeColor: |
| 2323 return currentColorOrValidColor(style.get(), style->textStrokeColor(
)); | 2320 return currentColorOrValidColor(*style, style->textStrokeColor()); |
| 2324 case CSSPropertyWebkitTextStrokeWidth: | 2321 case CSSPropertyWebkitTextStrokeWidth: |
| 2325 return zoomAdjustedPixelValue(style->textStrokeWidth(), style.get())
; | 2322 return zoomAdjustedPixelValue(style->textStrokeWidth(), *style); |
| 2326 case CSSPropertyTextTransform: | 2323 case CSSPropertyTextTransform: |
| 2327 return cssValuePool().createValue(style->textTransform()); | 2324 return cssValuePool().createValue(style->textTransform()); |
| 2328 case CSSPropertyTop: | 2325 case CSSPropertyTop: |
| 2329 return valueForPositionOffset(style.get(), CSSPropertyTop, renderer,
m_node->document().renderView()); | 2326 return valueForPositionOffset(*style, CSSPropertyTop, renderer, m_no
de->document().renderView()); |
| 2330 case CSSPropertyTouchAction: | 2327 case CSSPropertyTouchAction: |
| 2331 return cssValuePool().createValue(style->touchAction()); | 2328 return cssValuePool().createValue(style->touchAction()); |
| 2332 case CSSPropertyTouchActionDelay: | 2329 case CSSPropertyTouchActionDelay: |
| 2333 return cssValuePool().createValue(style->touchActionDelay()); | 2330 return cssValuePool().createValue(style->touchActionDelay()); |
| 2334 case CSSPropertyUnicodeBidi: | 2331 case CSSPropertyUnicodeBidi: |
| 2335 return cssValuePool().createValue(style->unicodeBidi()); | 2332 return cssValuePool().createValue(style->unicodeBidi()); |
| 2336 case CSSPropertyVerticalAlign: | 2333 case CSSPropertyVerticalAlign: |
| 2337 switch (style->verticalAlign()) { | 2334 switch (style->verticalAlign()) { |
| 2338 case BASELINE: | 2335 case BASELINE: |
| 2339 return cssValuePool().createIdentifierValue(CSSValueBaseline
); | 2336 return cssValuePool().createIdentifierValue(CSSValueBaseline
); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 2365 case CSSPropertyWidows: | 2362 case CSSPropertyWidows: |
| 2366 if (style->hasAutoWidows()) | 2363 if (style->hasAutoWidows()) |
| 2367 return cssValuePool().createIdentifierValue(CSSValueAuto); | 2364 return cssValuePool().createIdentifierValue(CSSValueAuto); |
| 2368 return cssValuePool().createValue(style->widows(), CSSPrimitiveValue
::CSS_NUMBER); | 2365 return cssValuePool().createValue(style->widows(), CSSPrimitiveValue
::CSS_NUMBER); |
| 2369 case CSSPropertyWidth: | 2366 case CSSPropertyWidth: |
| 2370 if (renderer) { | 2367 if (renderer) { |
| 2371 // According to http://www.w3.org/TR/CSS2/visudet.html#the-width
-property, | 2368 // According to http://www.w3.org/TR/CSS2/visudet.html#the-width
-property, |
| 2372 // the "width" property does not apply for non-replaced inline e
lements. | 2369 // the "width" property does not apply for non-replaced inline e
lements. |
| 2373 if (!renderer->isReplaced() && renderer->isInline()) | 2370 if (!renderer->isReplaced() && renderer->isInline()) |
| 2374 return cssValuePool().createIdentifierValue(CSSValueAuto); | 2371 return cssValuePool().createIdentifierValue(CSSValueAuto); |
| 2375 return zoomAdjustedPixelValue(sizingBox(renderer).width(), style
.get()); | 2372 return zoomAdjustedPixelValue(sizingBox(renderer).width(), *styl
e); |
| 2376 } | 2373 } |
| 2377 return zoomAdjustedPixelValueForLength(style->width(), style.get()); | 2374 return zoomAdjustedPixelValueForLength(style->width(), *style); |
| 2378 case CSSPropertyWordBreak: | 2375 case CSSPropertyWordBreak: |
| 2379 return cssValuePool().createValue(style->wordBreak()); | 2376 return cssValuePool().createValue(style->wordBreak()); |
| 2380 case CSSPropertyWordSpacing: | 2377 case CSSPropertyWordSpacing: |
| 2381 return zoomAdjustedPixelValue(style->wordSpacing(), style.get()); | 2378 return zoomAdjustedPixelValue(style->wordSpacing(), *style); |
| 2382 case CSSPropertyWordWrap: | 2379 case CSSPropertyWordWrap: |
| 2383 return cssValuePool().createValue(style->overflowWrap()); | 2380 return cssValuePool().createValue(style->overflowWrap()); |
| 2384 case CSSPropertyWebkitLineBreak: | 2381 case CSSPropertyWebkitLineBreak: |
| 2385 return cssValuePool().createValue(style->lineBreak()); | 2382 return cssValuePool().createValue(style->lineBreak()); |
| 2386 case CSSPropertyResize: | 2383 case CSSPropertyResize: |
| 2387 return cssValuePool().createValue(style->resize()); | 2384 return cssValuePool().createValue(style->resize()); |
| 2388 case CSSPropertyWebkitFontKerning: | 2385 case CSSPropertyWebkitFontKerning: |
| 2389 return cssValuePool().createValue(style->fontDescription().kerning()
); | 2386 return cssValuePool().createValue(style->fontDescription().kerning()
); |
| 2390 case CSSPropertyWebkitFontSmoothing: | 2387 case CSSPropertyWebkitFontSmoothing: |
| 2391 return cssValuePool().createValue(style->fontDescription().fontSmoot
hing()); | 2388 return cssValuePool().createValue(style->fontDescription().fontSmoot
hing()); |
| (...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2542 } | 2539 } |
| 2543 case CSSPropertyWebkitAppearance: | 2540 case CSSPropertyWebkitAppearance: |
| 2544 return cssValuePool().createValue(style->appearance()); | 2541 return cssValuePool().createValue(style->appearance()); |
| 2545 case CSSPropertyWebkitAspectRatio: | 2542 case CSSPropertyWebkitAspectRatio: |
| 2546 if (!style->hasAspectRatio()) | 2543 if (!style->hasAspectRatio()) |
| 2547 return cssValuePool().createIdentifierValue(CSSValueNone); | 2544 return cssValuePool().createIdentifierValue(CSSValueNone); |
| 2548 return CSSAspectRatioValue::create(style->aspectRatioNumerator(), st
yle->aspectRatioDenominator()); | 2545 return CSSAspectRatioValue::create(style->aspectRatioNumerator(), st
yle->aspectRatioDenominator()); |
| 2549 case CSSPropertyWebkitBackfaceVisibility: | 2546 case CSSPropertyWebkitBackfaceVisibility: |
| 2550 return cssValuePool().createIdentifierValue((style->backfaceVisibili
ty() == BackfaceVisibilityHidden) ? CSSValueHidden : CSSValueVisible); | 2547 return cssValuePool().createIdentifierValue((style->backfaceVisibili
ty() == BackfaceVisibilityHidden) ? CSSValueHidden : CSSValueVisible); |
| 2551 case CSSPropertyWebkitBorderImage: | 2548 case CSSPropertyWebkitBorderImage: |
| 2552 return valueForNinePieceImage(style->borderImage(), style.get()); | 2549 return valueForNinePieceImage(style->borderImage(), *style); |
| 2553 case CSSPropertyBorderImageOutset: | 2550 case CSSPropertyBorderImageOutset: |
| 2554 return valueForNinePieceImageQuad(style->borderImage().outset(), sty
le.get()); | 2551 return valueForNinePieceImageQuad(style->borderImage().outset(), *st
yle); |
| 2555 case CSSPropertyBorderImageRepeat: | 2552 case CSSPropertyBorderImageRepeat: |
| 2556 return valueForNinePieceImageRepeat(style->borderImage()); | 2553 return valueForNinePieceImageRepeat(style->borderImage()); |
| 2557 case CSSPropertyBorderImageSlice: | 2554 case CSSPropertyBorderImageSlice: |
| 2558 return valueForNinePieceImageSlice(style->borderImage()); | 2555 return valueForNinePieceImageSlice(style->borderImage()); |
| 2559 case CSSPropertyBorderImageWidth: | 2556 case CSSPropertyBorderImageWidth: |
| 2560 return valueForNinePieceImageQuad(style->borderImage().borderSlices(
), style.get()); | 2557 return valueForNinePieceImageQuad(style->borderImage().borderSlices(
), *style); |
| 2561 case CSSPropertyWebkitMaskBoxImage: | 2558 case CSSPropertyWebkitMaskBoxImage: |
| 2562 return valueForNinePieceImage(style->maskBoxImage(), style.get()); | 2559 return valueForNinePieceImage(style->maskBoxImage(), *style); |
| 2563 case CSSPropertyWebkitMaskBoxImageOutset: | 2560 case CSSPropertyWebkitMaskBoxImageOutset: |
| 2564 return valueForNinePieceImageQuad(style->maskBoxImage().outset(), st
yle.get()); | 2561 return valueForNinePieceImageQuad(style->maskBoxImage().outset(), *s
tyle); |
| 2565 case CSSPropertyWebkitMaskBoxImageRepeat: | 2562 case CSSPropertyWebkitMaskBoxImageRepeat: |
| 2566 return valueForNinePieceImageRepeat(style->maskBoxImage()); | 2563 return valueForNinePieceImageRepeat(style->maskBoxImage()); |
| 2567 case CSSPropertyWebkitMaskBoxImageSlice: | 2564 case CSSPropertyWebkitMaskBoxImageSlice: |
| 2568 return valueForNinePieceImageSlice(style->maskBoxImage()); | 2565 return valueForNinePieceImageSlice(style->maskBoxImage()); |
| 2569 case CSSPropertyWebkitMaskBoxImageWidth: | 2566 case CSSPropertyWebkitMaskBoxImageWidth: |
| 2570 return valueForNinePieceImageQuad(style->maskBoxImage().borderSlices
(), style.get()); | 2567 return valueForNinePieceImageQuad(style->maskBoxImage().borderSlices
(), *style); |
| 2571 case CSSPropertyWebkitMaskBoxImageSource: | 2568 case CSSPropertyWebkitMaskBoxImageSource: |
| 2572 if (style->maskBoxImageSource()) | 2569 if (style->maskBoxImageSource()) |
| 2573 return style->maskBoxImageSource()->cssValue(); | 2570 return style->maskBoxImageSource()->cssValue(); |
| 2574 return cssValuePool().createIdentifierValue(CSSValueNone); | 2571 return cssValuePool().createIdentifierValue(CSSValueNone); |
| 2575 case CSSPropertyWebkitFontSizeDelta: | 2572 case CSSPropertyWebkitFontSizeDelta: |
| 2576 // Not a real style property -- used by the editing engine -- so has
no computed value. | 2573 // Not a real style property -- used by the editing engine -- so has
no computed value. |
| 2577 break; | 2574 break; |
| 2578 case CSSPropertyWebkitMarginBottomCollapse: | 2575 case CSSPropertyWebkitMarginBottomCollapse: |
| 2579 case CSSPropertyWebkitMarginAfterCollapse: | 2576 case CSSPropertyWebkitMarginAfterCollapse: |
| 2580 return cssValuePool().createValue(style->marginAfterCollapse()); | 2577 return cssValuePool().createValue(style->marginAfterCollapse()); |
| 2581 case CSSPropertyWebkitMarginTopCollapse: | 2578 case CSSPropertyWebkitMarginTopCollapse: |
| 2582 case CSSPropertyWebkitMarginBeforeCollapse: | 2579 case CSSPropertyWebkitMarginBeforeCollapse: |
| 2583 return cssValuePool().createValue(style->marginBeforeCollapse()); | 2580 return cssValuePool().createValue(style->marginBeforeCollapse()); |
| 2584 case CSSPropertyWebkitPerspective: | 2581 case CSSPropertyWebkitPerspective: |
| 2585 if (!style->hasPerspective()) | 2582 if (!style->hasPerspective()) |
| 2586 return cssValuePool().createIdentifierValue(CSSValueNone); | 2583 return cssValuePool().createIdentifierValue(CSSValueNone); |
| 2587 return zoomAdjustedPixelValue(style->perspective(), style.get()); | 2584 return zoomAdjustedPixelValue(style->perspective(), *style); |
| 2588 case CSSPropertyWebkitPerspectiveOrigin: { | 2585 case CSSPropertyWebkitPerspectiveOrigin: { |
| 2589 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); | 2586 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); |
| 2590 if (renderer) { | 2587 if (renderer) { |
| 2591 LayoutRect box; | 2588 LayoutRect box; |
| 2592 if (renderer->isBox()) | 2589 if (renderer->isBox()) |
| 2593 box = toRenderBox(renderer)->borderBoxRect(); | 2590 box = toRenderBox(renderer)->borderBoxRect(); |
| 2594 | 2591 |
| 2595 RenderView* renderView = m_node->document().renderView(); | 2592 RenderView* renderView = m_node->document().renderView(); |
| 2596 list->append(zoomAdjustedPixelValue(minimumValueForLength(style-
>perspectiveOriginX(), box.width(), renderView), style.get())); | 2593 list->append(zoomAdjustedPixelValue(minimumValueForLength(style-
>perspectiveOriginX(), box.width(), renderView), *style)); |
| 2597 list->append(zoomAdjustedPixelValue(minimumValueForLength(style-
>perspectiveOriginY(), box.height(), renderView), style.get())); | 2594 list->append(zoomAdjustedPixelValue(minimumValueForLength(style-
>perspectiveOriginY(), box.height(), renderView), *style)); |
| 2598 } | 2595 } |
| 2599 else { | 2596 else { |
| 2600 list->append(zoomAdjustedPixelValueForLength(style->perspectiveO
riginX(), style.get())); | 2597 list->append(zoomAdjustedPixelValueForLength(style->perspectiveO
riginX(), *style)); |
| 2601 list->append(zoomAdjustedPixelValueForLength(style->perspectiveO
riginY(), style.get())); | 2598 list->append(zoomAdjustedPixelValueForLength(style->perspectiveO
riginY(), *style)); |
| 2602 | 2599 |
| 2603 } | 2600 } |
| 2604 return list.release(); | 2601 return list.release(); |
| 2605 } | 2602 } |
| 2606 case CSSPropertyWebkitRtlOrdering: | 2603 case CSSPropertyWebkitRtlOrdering: |
| 2607 return cssValuePool().createIdentifierValue(style->rtlOrdering() ? C
SSValueVisual : CSSValueLogical); | 2604 return cssValuePool().createIdentifierValue(style->rtlOrdering() ? C
SSValueVisual : CSSValueLogical); |
| 2608 case CSSPropertyWebkitTapHighlightColor: | 2605 case CSSPropertyWebkitTapHighlightColor: |
| 2609 return currentColorOrValidColor(style.get(), style->tapHighlightColo
r()); | 2606 return currentColorOrValidColor(*style, style->tapHighlightColor()); |
| 2610 case CSSPropertyWebkitUserDrag: | 2607 case CSSPropertyWebkitUserDrag: |
| 2611 return cssValuePool().createValue(style->userDrag()); | 2608 return cssValuePool().createValue(style->userDrag()); |
| 2612 case CSSPropertyWebkitUserSelect: | 2609 case CSSPropertyWebkitUserSelect: |
| 2613 return cssValuePool().createValue(style->userSelect()); | 2610 return cssValuePool().createValue(style->userSelect()); |
| 2614 case CSSPropertyBorderBottomLeftRadius: | 2611 case CSSPropertyBorderBottomLeftRadius: |
| 2615 return valueForBorderRadiusCorner(style->borderBottomLeftRadius(), s
tyle.get()); | 2612 return valueForBorderRadiusCorner(style->borderBottomLeftRadius(), *
style); |
| 2616 case CSSPropertyBorderBottomRightRadius: | 2613 case CSSPropertyBorderBottomRightRadius: |
| 2617 return valueForBorderRadiusCorner(style->borderBottomRightRadius(),
style.get()); | 2614 return valueForBorderRadiusCorner(style->borderBottomRightRadius(),
*style); |
| 2618 case CSSPropertyBorderTopLeftRadius: | 2615 case CSSPropertyBorderTopLeftRadius: |
| 2619 return valueForBorderRadiusCorner(style->borderTopLeftRadius(), styl
e.get()); | 2616 return valueForBorderRadiusCorner(style->borderTopLeftRadius(), *sty
le); |
| 2620 case CSSPropertyBorderTopRightRadius: | 2617 case CSSPropertyBorderTopRightRadius: |
| 2621 return valueForBorderRadiusCorner(style->borderTopRightRadius(), sty
le.get()); | 2618 return valueForBorderRadiusCorner(style->borderTopRightRadius(), *st
yle); |
| 2622 case CSSPropertyClip: { | 2619 case CSSPropertyClip: { |
| 2623 if (!style->hasClip()) | 2620 if (!style->hasClip()) |
| 2624 return cssValuePool().createIdentifierValue(CSSValueAuto); | 2621 return cssValuePool().createIdentifierValue(CSSValueAuto); |
| 2625 RefPtr<Rect> rect = Rect::create(); | 2622 RefPtr<Rect> rect = Rect::create(); |
| 2626 rect->setTop(zoomAdjustedPixelValue(style->clip().top().value(), sty
le.get())); | 2623 rect->setTop(zoomAdjustedPixelValue(style->clip().top().value(), *st
yle)); |
| 2627 rect->setRight(zoomAdjustedPixelValue(style->clip().right().value(),
style.get())); | 2624 rect->setRight(zoomAdjustedPixelValue(style->clip().right().value(),
*style)); |
| 2628 rect->setBottom(zoomAdjustedPixelValue(style->clip().bottom().value(
), style.get())); | 2625 rect->setBottom(zoomAdjustedPixelValue(style->clip().bottom().value(
), *style)); |
| 2629 rect->setLeft(zoomAdjustedPixelValue(style->clip().left().value(), s
tyle.get())); | 2626 rect->setLeft(zoomAdjustedPixelValue(style->clip().left().value(), *
style)); |
| 2630 return cssValuePool().createValue(rect.release()); | 2627 return cssValuePool().createValue(rect.release()); |
| 2631 } | 2628 } |
| 2632 case CSSPropertySpeak: | 2629 case CSSPropertySpeak: |
| 2633 return cssValuePool().createValue(style->speak()); | 2630 return cssValuePool().createValue(style->speak()); |
| 2634 case CSSPropertyWebkitTransform: | 2631 case CSSPropertyWebkitTransform: |
| 2635 return computedTransform(renderer, style.get()); | 2632 return computedTransform(renderer, *style); |
| 2636 case CSSPropertyWebkitTransformOrigin: { | 2633 case CSSPropertyWebkitTransformOrigin: { |
| 2637 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); | 2634 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); |
| 2638 if (renderer) { | 2635 if (renderer) { |
| 2639 LayoutRect box; | 2636 LayoutRect box; |
| 2640 if (renderer->isBox()) | 2637 if (renderer->isBox()) |
| 2641 box = toRenderBox(renderer)->borderBoxRect(); | 2638 box = toRenderBox(renderer)->borderBoxRect(); |
| 2642 | 2639 |
| 2643 RenderView* renderView = m_node->document().renderView(); | 2640 RenderView* renderView = m_node->document().renderView(); |
| 2644 list->append(zoomAdjustedPixelValue(minimumValueForLength(style-
>transformOriginX(), box.width(), renderView), style.get())); | 2641 list->append(zoomAdjustedPixelValue(minimumValueForLength(style-
>transformOriginX(), box.width(), renderView), *style)); |
| 2645 list->append(zoomAdjustedPixelValue(minimumValueForLength(style-
>transformOriginY(), box.height(), renderView), style.get())); | 2642 list->append(zoomAdjustedPixelValue(minimumValueForLength(style-
>transformOriginY(), box.height(), renderView), *style)); |
| 2646 if (style->transformOriginZ() != 0) | 2643 if (style->transformOriginZ() != 0) |
| 2647 list->append(zoomAdjustedPixelValue(style->transformOriginZ(
), style.get())); | 2644 list->append(zoomAdjustedPixelValue(style->transformOriginZ(
), *style)); |
| 2648 } else { | 2645 } else { |
| 2649 list->append(zoomAdjustedPixelValueForLength(style->transformOri
ginX(), style.get())); | 2646 list->append(zoomAdjustedPixelValueForLength(style->transformOri
ginX(), *style)); |
| 2650 list->append(zoomAdjustedPixelValueForLength(style->transformOri
ginY(), style.get())); | 2647 list->append(zoomAdjustedPixelValueForLength(style->transformOri
ginY(), *style)); |
| 2651 if (style->transformOriginZ() != 0) | 2648 if (style->transformOriginZ() != 0) |
| 2652 list->append(zoomAdjustedPixelValue(style->transformOriginZ(
), style.get())); | 2649 list->append(zoomAdjustedPixelValue(style->transformOriginZ(
), *style)); |
| 2653 } | 2650 } |
| 2654 return list.release(); | 2651 return list.release(); |
| 2655 } | 2652 } |
| 2656 case CSSPropertyWebkitTransformStyle: | 2653 case CSSPropertyWebkitTransformStyle: |
| 2657 return cssValuePool().createIdentifierValue((style->transformStyle3D
() == TransformStyle3DPreserve3D) ? CSSValuePreserve3d : CSSValueFlat); | 2654 return cssValuePool().createIdentifierValue((style->transformStyle3D
() == TransformStyle3DPreserve3D) ? CSSValuePreserve3d : CSSValueFlat); |
| 2658 case CSSPropertyTransitionDelay: | 2655 case CSSPropertyTransitionDelay: |
| 2659 case CSSPropertyWebkitTransitionDelay: | 2656 case CSSPropertyWebkitTransitionDelay: |
| 2660 return valueForAnimationDelay(style->transitions()); | 2657 return valueForAnimationDelay(style->transitions()); |
| 2661 case CSSPropertyTransitionDuration: | 2658 case CSSPropertyTransitionDuration: |
| 2662 case CSSPropertyWebkitTransitionDuration: | 2659 case CSSPropertyWebkitTransitionDuration: |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2704 return CSSPrimitiveValue::create(style->lineAlign()); | 2701 return CSSPrimitiveValue::create(style->lineAlign()); |
| 2705 case CSSPropertyWebkitWritingMode: | 2702 case CSSPropertyWebkitWritingMode: |
| 2706 return cssValuePool().createValue(style->writingMode()); | 2703 return cssValuePool().createValue(style->writingMode()); |
| 2707 case CSSPropertyWebkitTextCombine: | 2704 case CSSPropertyWebkitTextCombine: |
| 2708 return cssValuePool().createValue(style->textCombine()); | 2705 return cssValuePool().createValue(style->textCombine()); |
| 2709 case CSSPropertyWebkitTextOrientation: | 2706 case CSSPropertyWebkitTextOrientation: |
| 2710 return CSSPrimitiveValue::create(style->textOrientation()); | 2707 return CSSPrimitiveValue::create(style->textOrientation()); |
| 2711 case CSSPropertyWebkitLineBoxContain: | 2708 case CSSPropertyWebkitLineBoxContain: |
| 2712 return createLineBoxContainValue(style->lineBoxContain()); | 2709 return createLineBoxContainValue(style->lineBoxContain()); |
| 2713 case CSSPropertyContent: | 2710 case CSSPropertyContent: |
| 2714 return valueForContentData(style.get()); | 2711 return valueForContentData(*style); |
| 2715 case CSSPropertyCounterIncrement: | 2712 case CSSPropertyCounterIncrement: |
| 2716 return valueForCounterDirectives(style.get(), propertyID); | 2713 return valueForCounterDirectives(*style, propertyID); |
| 2717 case CSSPropertyCounterReset: | 2714 case CSSPropertyCounterReset: |
| 2718 return valueForCounterDirectives(style.get(), propertyID); | 2715 return valueForCounterDirectives(*style, propertyID); |
| 2719 case CSSPropertyWebkitClipPath: | 2716 case CSSPropertyWebkitClipPath: |
| 2720 if (ClipPathOperation* operation = style->clipPath()) { | 2717 if (ClipPathOperation* operation = style->clipPath()) { |
| 2721 if (operation->getOperationType() == ClipPathOperation::SHAPE) | 2718 if (operation->getOperationType() == ClipPathOperation::SHAPE) |
| 2722 return valueForBasicShape(style.get(), static_cast<ShapeClip
PathOperation*>(operation)->basicShape()); | 2719 return valueForBasicShape(*style, static_cast<ShapeClipPathO
peration*>(operation)->basicShape()); |
| 2723 if (operation->getOperationType() == ClipPathOperation::REFERENC
E) { | 2720 if (operation->getOperationType() == ClipPathOperation::REFERENC
E) { |
| 2724 ReferenceClipPathOperation* referenceOperation = static_cast
<ReferenceClipPathOperation*>(operation); | 2721 ReferenceClipPathOperation* referenceOperation = static_cast
<ReferenceClipPathOperation*>(operation); |
| 2725 return CSSPrimitiveValue::create(referenceOperation->url(),
CSSPrimitiveValue::CSS_URI); | 2722 return CSSPrimitiveValue::create(referenceOperation->url(),
CSSPrimitiveValue::CSS_URI); |
| 2726 } | 2723 } |
| 2727 } | 2724 } |
| 2728 return cssValuePool().createIdentifierValue(CSSValueNone); | 2725 return cssValuePool().createIdentifierValue(CSSValueNone); |
| 2729 case CSSPropertyWebkitFlowInto: | 2726 case CSSPropertyWebkitFlowInto: |
| 2730 if (style->flowThread().isNull()) | 2727 if (style->flowThread().isNull()) |
| 2731 return cssValuePool().createIdentifierValue(CSSValueNone); | 2728 return cssValuePool().createIdentifierValue(CSSValueNone); |
| 2732 return cssValuePool().createValue(style->flowThread(), CSSPrimitiveV
alue::CSS_STRING); | 2729 return cssValuePool().createValue(style->flowThread(), CSSPrimitiveV
alue::CSS_STRING); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 2748 if (!style->shapeInside()) | 2745 if (!style->shapeInside()) |
| 2749 return cssValuePool().createIdentifierValue(CSSValueAuto); | 2746 return cssValuePool().createIdentifierValue(CSSValueAuto); |
| 2750 if (style->shapeInside()->type() == ShapeValue::Outside) | 2747 if (style->shapeInside()->type() == ShapeValue::Outside) |
| 2751 return cssValuePool().createIdentifierValue(CSSValueOutsideShape
); | 2748 return cssValuePool().createIdentifierValue(CSSValueOutsideShape
); |
| 2752 if (style->shapeInside()->type() == ShapeValue::Image) { | 2749 if (style->shapeInside()->type() == ShapeValue::Image) { |
| 2753 if (style->shapeInside()->image()) | 2750 if (style->shapeInside()->image()) |
| 2754 return style->shapeInside()->image()->cssValue(); | 2751 return style->shapeInside()->image()->cssValue(); |
| 2755 return cssValuePool().createIdentifierValue(CSSValueNone); | 2752 return cssValuePool().createIdentifierValue(CSSValueNone); |
| 2756 } | 2753 } |
| 2757 ASSERT(style->shapeInside()->type() == ShapeValue::Shape); | 2754 ASSERT(style->shapeInside()->type() == ShapeValue::Shape); |
| 2758 return valueForBasicShape(style.get(), style->shapeInside()->shape()
); | 2755 return valueForBasicShape(*style, style->shapeInside()->shape()); |
| 2759 case CSSPropertyShapeOutside: | 2756 case CSSPropertyShapeOutside: |
| 2760 if (!style->shapeOutside()) | 2757 if (!style->shapeOutside()) |
| 2761 return cssValuePool().createIdentifierValue(CSSValueAuto); | 2758 return cssValuePool().createIdentifierValue(CSSValueAuto); |
| 2762 if (style->shapeOutside()->type() == ShapeValue::Image) { | 2759 if (style->shapeOutside()->type() == ShapeValue::Image) { |
| 2763 if (style->shapeOutside()->image()) | 2760 if (style->shapeOutside()->image()) |
| 2764 return style->shapeOutside()->image()->cssValue(); | 2761 return style->shapeOutside()->image()->cssValue(); |
| 2765 return cssValuePool().createIdentifierValue(CSSValueNone); | 2762 return cssValuePool().createIdentifierValue(CSSValueNone); |
| 2766 } | 2763 } |
| 2767 ASSERT(style->shapeOutside()->type() == ShapeValue::Shape); | 2764 ASSERT(style->shapeOutside()->type() == ShapeValue::Shape); |
| 2768 return valueForBasicShape(style.get(), style->shapeOutside()->shape(
)); | 2765 return valueForBasicShape(*style, style->shapeOutside()->shape()); |
| 2769 case CSSPropertyWebkitWrapThrough: | 2766 case CSSPropertyWebkitWrapThrough: |
| 2770 return cssValuePool().createValue(style->wrapThrough()); | 2767 return cssValuePool().createValue(style->wrapThrough()); |
| 2771 case CSSPropertyWebkitFilter: | 2768 case CSSPropertyWebkitFilter: |
| 2772 return valueForFilter(renderer, style.get()); | 2769 return valueForFilter(renderer, *style); |
| 2773 case CSSPropertyMixBlendMode: | 2770 case CSSPropertyMixBlendMode: |
| 2774 return cssValuePool().createValue(style->blendMode()); | 2771 return cssValuePool().createValue(style->blendMode()); |
| 2775 | 2772 |
| 2776 case CSSPropertyBackgroundBlendMode: { | 2773 case CSSPropertyBackgroundBlendMode: { |
| 2777 const FillLayer* layers = style->backgroundLayers(); | 2774 const FillLayer* layers = style->backgroundLayers(); |
| 2778 if (!layers->next()) | 2775 if (!layers->next()) |
| 2779 return cssValuePool().createValue(layers->blendMode()); | 2776 return cssValuePool().createValue(layers->blendMode()); |
| 2780 | 2777 |
| 2781 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); | 2778 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); |
| 2782 for (const FillLayer* currLayer = layers; currLayer; currLayer = cur
rLayer->next()) | 2779 for (const FillLayer* currLayer = layers; currLayer; currLayer = cur
rLayer->next()) |
| (...skipping 13 matching lines...) Expand all Loading... |
| 2796 } | 2793 } |
| 2797 return value.release(); | 2794 return value.release(); |
| 2798 } | 2795 } |
| 2799 case CSSPropertyBorderBottom: | 2796 case CSSPropertyBorderBottom: |
| 2800 return valuesForShorthandProperty(borderBottomShorthand()); | 2797 return valuesForShorthandProperty(borderBottomShorthand()); |
| 2801 case CSSPropertyBorderColor: | 2798 case CSSPropertyBorderColor: |
| 2802 return valuesForSidesShorthand(borderColorShorthand()); | 2799 return valuesForSidesShorthand(borderColorShorthand()); |
| 2803 case CSSPropertyBorderLeft: | 2800 case CSSPropertyBorderLeft: |
| 2804 return valuesForShorthandProperty(borderLeftShorthand()); | 2801 return valuesForShorthandProperty(borderLeftShorthand()); |
| 2805 case CSSPropertyBorderImage: | 2802 case CSSPropertyBorderImage: |
| 2806 return valueForNinePieceImage(style->borderImage(), style.get()); | 2803 return valueForNinePieceImage(style->borderImage(), *style); |
| 2807 case CSSPropertyBorderRadius: | 2804 case CSSPropertyBorderRadius: |
| 2808 return valueForBorderRadiusShorthand(style.get()); | 2805 return valueForBorderRadiusShorthand(*style); |
| 2809 case CSSPropertyBorderRight: | 2806 case CSSPropertyBorderRight: |
| 2810 return valuesForShorthandProperty(borderRightShorthand()); | 2807 return valuesForShorthandProperty(borderRightShorthand()); |
| 2811 case CSSPropertyBorderStyle: | 2808 case CSSPropertyBorderStyle: |
| 2812 return valuesForSidesShorthand(borderStyleShorthand()); | 2809 return valuesForSidesShorthand(borderStyleShorthand()); |
| 2813 case CSSPropertyBorderTop: | 2810 case CSSPropertyBorderTop: |
| 2814 return valuesForShorthandProperty(borderTopShorthand()); | 2811 return valuesForShorthandProperty(borderTopShorthand()); |
| 2815 case CSSPropertyBorderWidth: | 2812 case CSSPropertyBorderWidth: |
| 2816 return valuesForSidesShorthand(borderWidthShorthand()); | 2813 return valuesForSidesShorthand(borderWidthShorthand()); |
| 2817 case CSSPropertyWebkitColumnRule: | 2814 case CSSPropertyWebkitColumnRule: |
| 2818 return valuesForShorthandProperty(webkitColumnRuleShorthand()); | 2815 return valuesForShorthandProperty(webkitColumnRuleShorthand()); |
| (...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3240 static const CSSPropertyID propertiesAfterSlashSeperator[3] = { CSSPropertyB
ackgroundSize, CSSPropertyBackgroundOrigin, | 3237 static const CSSPropertyID propertiesAfterSlashSeperator[3] = { CSSPropertyB
ackgroundSize, CSSPropertyBackgroundOrigin, |
| 3241 CSSPropertyB
ackgroundClip }; | 3238 CSSPropertyB
ackgroundClip }; |
| 3242 | 3239 |
| 3243 RefPtr<CSSValueList> list = CSSValueList::createSlashSeparated(); | 3240 RefPtr<CSSValueList> list = CSSValueList::createSlashSeparated(); |
| 3244 list->append(valuesForShorthandProperty(StylePropertyShorthand(CSSPropertyBa
ckground, propertiesBeforeSlashSeperator, WTF_ARRAY_LENGTH(propertiesBeforeSlash
Seperator)))); | 3241 list->append(valuesForShorthandProperty(StylePropertyShorthand(CSSPropertyBa
ckground, propertiesBeforeSlashSeperator, WTF_ARRAY_LENGTH(propertiesBeforeSlash
Seperator)))); |
| 3245 list->append(valuesForShorthandProperty(StylePropertyShorthand(CSSPropertyBa
ckground, propertiesAfterSlashSeperator, WTF_ARRAY_LENGTH(propertiesAfterSlashSe
perator)))); | 3242 list->append(valuesForShorthandProperty(StylePropertyShorthand(CSSPropertyBa
ckground, propertiesAfterSlashSeperator, WTF_ARRAY_LENGTH(propertiesAfterSlashSe
perator)))); |
| 3246 return list.release(); | 3243 return list.release(); |
| 3247 } | 3244 } |
| 3248 | 3245 |
| 3249 } // namespace WebCore | 3246 } // namespace WebCore |
| OLD | NEW |