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

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutBox.cpp

Issue 2614883007: Change computed style enums to be prefixed with 'k'. (Closed)
Patch Set: Rebase on ToT. Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) 4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com)
5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com) 5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com)
6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. 6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc.
7 * All rights reserved. 7 * All rights reserved.
8 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. 8 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved.
9 * 9 *
10 * This library is free software; you can redistribute it and/or 10 * This library is free software; you can redistribute it and/or
(...skipping 1518 matching lines...) Expand 10 before | Expand all | Expand 10 after
1529 if (style()->hasBlendMode()) 1529 if (style()->hasBlendMode())
1530 return false; 1530 return false;
1531 return backgroundRect(BackgroundKnownOpaqueRect).contains(localRect); 1531 return backgroundRect(BackgroundKnownOpaqueRect).contains(localRect);
1532 } 1532 }
1533 1533
1534 static bool isCandidateForOpaquenessTest(const LayoutBox& childBox) { 1534 static bool isCandidateForOpaquenessTest(const LayoutBox& childBox) {
1535 const ComputedStyle& childStyle = childBox.styleRef(); 1535 const ComputedStyle& childStyle = childBox.styleRef();
1536 if (childStyle.position() != StaticPosition && 1536 if (childStyle.position() != StaticPosition &&
1537 childBox.containingBlock() != childBox.parent()) 1537 childBox.containingBlock() != childBox.parent())
1538 return false; 1538 return false;
1539 if (childStyle.visibility() != EVisibility::Visible || 1539 if (childStyle.visibility() != EVisibility::kVisible ||
1540 childStyle.shapeOutside()) 1540 childStyle.shapeOutside())
1541 return false; 1541 return false;
1542 if (childBox.size().isZero()) 1542 if (childBox.size().isZero())
1543 return false; 1543 return false;
1544 if (PaintLayer* childLayer = childBox.layer()) { 1544 if (PaintLayer* childLayer = childBox.layer()) {
1545 // FIXME: perhaps this could be less conservative? 1545 // FIXME: perhaps this could be less conservative?
1546 if (childLayer->compositingState() != NotComposited) 1546 if (childLayer->compositingState() != NotComposited)
1547 return false; 1547 return false;
1548 // FIXME: Deal with z-index. 1548 // FIXME: Deal with z-index.
1549 if (childStyle.isStackingContext()) 1549 if (childStyle.isStackingContext())
(...skipping 731 matching lines...) Expand 10 before | Expand all | Expand 10 after
2281 // may have some effect. For example, honoring the border-radius clip on 2281 // may have some effect. For example, honoring the border-radius clip on
2282 // a composited child paints into a mask for an otherwise non-painting 2282 // a composited child paints into a mask for an otherwise non-painting
2283 // element, because children of that element will require the mask. 2283 // element, because children of that element will require the mask.
2284 if (hasLayer() && layer()->compositingState() == PaintsIntoOwnBacking) 2284 if (hasLayer() && layer()->compositingState() == PaintsIntoOwnBacking)
2285 return false; 2285 return false;
2286 2286
2287 return true; 2287 return true;
2288 } 2288 }
2289 2289
2290 LayoutRect LayoutBox::localVisualRect() const { 2290 LayoutRect LayoutBox::localVisualRect() const {
2291 if (style()->visibility() != EVisibility::Visible) 2291 if (style()->visibility() != EVisibility::kVisible)
2292 return LayoutRect(); 2292 return LayoutRect();
2293 2293
2294 if (hasMask() && !RuntimeEnabledFeatures::slimmingPaintV2Enabled()) 2294 if (hasMask() && !RuntimeEnabledFeatures::slimmingPaintV2Enabled())
2295 return LayoutRect(layer()->boxForFilterOrMask()); 2295 return LayoutRect(layer()->boxForFilterOrMask());
2296 return selfVisualOverflowRect(); 2296 return selfVisualOverflowRect();
2297 } 2297 }
2298 2298
2299 void LayoutBox::inflateVisualRectForFilterUnderContainer( 2299 void LayoutBox::inflateVisualRectForFilterUnderContainer(
2300 LayoutRect& rect, 2300 LayoutRect& rect,
2301 const LayoutObject& container, 2301 const LayoutObject& container,
(...skipping 548 matching lines...) Expand 10 before | Expand all | Expand 10 after
2850 ? marginStartWidth + marginEndWidth 2850 ? marginStartWidth + marginEndWidth
2851 : LayoutUnit()); 2851 : LayoutUnit());
2852 2852
2853 if (marginBoxWidth < availableWidth) { 2853 if (marginBoxWidth < availableWidth) {
2854 // CSS 2.1: "If both 'margin-left' and 'margin-right' are 'auto', their used 2854 // CSS 2.1: "If both 'margin-left' and 'margin-right' are 'auto', their used
2855 // values are equal. This horizontally centers the element with respect to 2855 // values are equal. This horizontally centers the element with respect to
2856 // the edges of the containing block." 2856 // the edges of the containing block."
2857 const ComputedStyle& containingBlockStyle = containingBlock->styleRef(); 2857 const ComputedStyle& containingBlockStyle = containingBlock->styleRef();
2858 if ((marginStartLength.isAuto() && marginEndLength.isAuto()) || 2858 if ((marginStartLength.isAuto() && marginEndLength.isAuto()) ||
2859 (!marginStartLength.isAuto() && !marginEndLength.isAuto() && 2859 (!marginStartLength.isAuto() && !marginEndLength.isAuto() &&
2860 containingBlockStyle.textAlign() == ETextAlign::WebkitCenter)) { 2860 containingBlockStyle.textAlign() == ETextAlign::kWebkitCenter)) {
2861 // Other browsers center the margin box for align=center elements so we 2861 // Other browsers center the margin box for align=center elements so we
2862 // match them here. 2862 // match them here.
2863 LayoutUnit centeredMarginBoxStart = std::max( 2863 LayoutUnit centeredMarginBoxStart = std::max(
2864 LayoutUnit(), 2864 LayoutUnit(),
2865 (availableWidth - childWidth - marginStartWidth - marginEndWidth) / 2865 (availableWidth - childWidth - marginStartWidth - marginEndWidth) /
2866 2); 2866 2);
2867 marginStart = centeredMarginBoxStart + marginStartWidth; 2867 marginStart = centeredMarginBoxStart + marginStartWidth;
2868 marginEnd = availableWidth - childWidth - marginStart + marginEndWidth; 2868 marginEnd = availableWidth - childWidth - marginStart + marginEndWidth;
2869 return; 2869 return;
2870 } 2870 }
2871 2871
2872 // Adjust margins for the align attribute 2872 // Adjust margins for the align attribute
2873 if ((!containingBlockStyle.isLeftToRightDirection() && 2873 if ((!containingBlockStyle.isLeftToRightDirection() &&
2874 containingBlockStyle.textAlign() == ETextAlign::WebkitLeft) || 2874 containingBlockStyle.textAlign() == ETextAlign::kWebkitLeft) ||
2875 (containingBlockStyle.isLeftToRightDirection() && 2875 (containingBlockStyle.isLeftToRightDirection() &&
2876 containingBlockStyle.textAlign() == ETextAlign::WebkitRight)) { 2876 containingBlockStyle.textAlign() == ETextAlign::kWebkitRight)) {
2877 if (containingBlockStyle.isLeftToRightDirection() != 2877 if (containingBlockStyle.isLeftToRightDirection() !=
2878 styleRef().isLeftToRightDirection()) { 2878 styleRef().isLeftToRightDirection()) {
2879 if (!marginStartLength.isAuto()) 2879 if (!marginStartLength.isAuto())
2880 marginEndLength = Length(Auto); 2880 marginEndLength = Length(Auto);
2881 } else { 2881 } else {
2882 if (!marginEndLength.isAuto()) 2882 if (!marginEndLength.isAuto())
2883 marginStartLength = Length(Auto); 2883 marginStartLength = Length(Auto);
2884 } 2884 }
2885 } 2885 }
2886 2886
(...skipping 840 matching lines...) Expand 10 before | Expand all | Expand 10 after
3727 LayoutUnit containerLogicalWidth) { 3727 LayoutUnit containerLogicalWidth) {
3728 if (!logicalLeft.isAuto() || !logicalRight.isAuto()) 3728 if (!logicalLeft.isAuto() || !logicalRight.isAuto())
3729 return; 3729 return;
3730 3730
3731 // For multicol we also need to keep track of the block position, since that 3731 // For multicol we also need to keep track of the block position, since that
3732 // determines which column we're in and thus affects the inline position. 3732 // determines which column we're in and thus affects the inline position.
3733 LayoutUnit staticBlockPosition = child->layer()->staticBlockPosition(); 3733 LayoutUnit staticBlockPosition = child->layer()->staticBlockPosition();
3734 3734
3735 // FIXME: The static distance computation has not been patched for mixed 3735 // FIXME: The static distance computation has not been patched for mixed
3736 // writing modes yet. 3736 // writing modes yet.
3737 if (child->parent()->style()->direction() == TextDirection::Ltr) { 3737 if (child->parent()->style()->direction() == TextDirection::kLtr) {
3738 LayoutUnit staticPosition = child->layer()->staticInlinePosition() - 3738 LayoutUnit staticPosition = child->layer()->staticInlinePosition() -
3739 containerBlock->borderLogicalLeft(); 3739 containerBlock->borderLogicalLeft();
3740 for (LayoutObject* curr = child->parent(); curr && curr != containerBlock; 3740 for (LayoutObject* curr = child->parent(); curr && curr != containerBlock;
3741 curr = curr->container()) { 3741 curr = curr->container()) {
3742 if (curr->isBox()) { 3742 if (curr->isBox()) {
3743 staticPosition += toLayoutBox(curr)->logicalLeft(); 3743 staticPosition += toLayoutBox(curr)->logicalLeft();
3744 if (toLayoutBox(curr)->isInFlowPositioned()) 3744 if (toLayoutBox(curr)->isInFlowPositioned())
3745 staticPosition += 3745 staticPosition +=
3746 toLayoutBox(curr)->offsetForInFlowPosition().width(); 3746 toLayoutBox(curr)->offsetForInFlowPosition().width();
3747 if (curr->isInsideFlowThread()) 3747 if (curr->isInsideFlowThread())
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after
4025 if (marginLogicalLeft.isAuto() && marginLogicalRight.isAuto()) { 4025 if (marginLogicalLeft.isAuto() && marginLogicalRight.isAuto()) {
4026 // Both margins auto, solve for equality 4026 // Both margins auto, solve for equality
4027 if (availableSpace >= 0) { 4027 if (availableSpace >= 0) {
4028 marginLogicalLeftValue = availableSpace / 2; // split the difference 4028 marginLogicalLeftValue = availableSpace / 2; // split the difference
4029 marginLogicalRightValue = 4029 marginLogicalRightValue =
4030 availableSpace - 4030 availableSpace -
4031 marginLogicalLeftValue; // account for odd valued differences 4031 marginLogicalLeftValue; // account for odd valued differences
4032 } else { 4032 } else {
4033 // Use the containing block's direction rather than the parent block's 4033 // Use the containing block's direction rather than the parent block's
4034 // per CSS 2.1 reference test abspos-non-replaced-width-margin-000. 4034 // per CSS 2.1 reference test abspos-non-replaced-width-margin-000.
4035 if (containerDirection == TextDirection::Ltr) { 4035 if (containerDirection == TextDirection::kLtr) {
4036 marginLogicalLeftValue = LayoutUnit(); 4036 marginLogicalLeftValue = LayoutUnit();
4037 marginLogicalRightValue = availableSpace; // will be negative 4037 marginLogicalRightValue = availableSpace; // will be negative
4038 } else { 4038 } else {
4039 marginLogicalLeftValue = availableSpace; // will be negative 4039 marginLogicalLeftValue = availableSpace; // will be negative
4040 marginLogicalRightValue = LayoutUnit(); 4040 marginLogicalRightValue = LayoutUnit();
4041 } 4041 }
4042 } 4042 }
4043 } else if (marginLogicalLeft.isAuto()) { 4043 } else if (marginLogicalLeft.isAuto()) {
4044 // Solve for left margin 4044 // Solve for left margin
4045 marginLogicalRightValue = 4045 marginLogicalRightValue =
4046 valueForLength(marginLogicalRight, containerRelativeLogicalWidth); 4046 valueForLength(marginLogicalRight, containerRelativeLogicalWidth);
4047 marginLogicalLeftValue = availableSpace - marginLogicalRightValue; 4047 marginLogicalLeftValue = availableSpace - marginLogicalRightValue;
4048 } else if (marginLogicalRight.isAuto()) { 4048 } else if (marginLogicalRight.isAuto()) {
4049 // Solve for right margin 4049 // Solve for right margin
4050 marginLogicalLeftValue = 4050 marginLogicalLeftValue =
4051 valueForLength(marginLogicalLeft, containerRelativeLogicalWidth); 4051 valueForLength(marginLogicalLeft, containerRelativeLogicalWidth);
4052 marginLogicalRightValue = availableSpace - marginLogicalLeftValue; 4052 marginLogicalRightValue = availableSpace - marginLogicalLeftValue;
4053 } else { 4053 } else {
4054 // Over-constrained, solve for left if direction is RTL 4054 // Over-constrained, solve for left if direction is RTL
4055 marginLogicalLeftValue = 4055 marginLogicalLeftValue =
4056 valueForLength(marginLogicalLeft, containerRelativeLogicalWidth); 4056 valueForLength(marginLogicalLeft, containerRelativeLogicalWidth);
4057 marginLogicalRightValue = 4057 marginLogicalRightValue =
4058 valueForLength(marginLogicalRight, containerRelativeLogicalWidth); 4058 valueForLength(marginLogicalRight, containerRelativeLogicalWidth);
4059 4059
4060 // Use the containing block's direction rather than the parent block's 4060 // Use the containing block's direction rather than the parent block's
4061 // per CSS 2.1 reference test abspos-non-replaced-width-margin-000. 4061 // per CSS 2.1 reference test abspos-non-replaced-width-margin-000.
4062 if (containerDirection == TextDirection::Rtl) 4062 if (containerDirection == TextDirection::kRtl)
4063 logicalLeftValue = (availableSpace + logicalLeftValue) - 4063 logicalLeftValue = (availableSpace + logicalLeftValue) -
4064 marginLogicalLeftValue - marginLogicalRightValue; 4064 marginLogicalLeftValue - marginLogicalRightValue;
4065 } 4065 }
4066 } else { 4066 } else {
4067 // ------------------------------------------------------------------------- 4067 // -------------------------------------------------------------------------
4068 // Otherwise, set 'auto' values for 'margin-left' and 'margin-right' 4068 // Otherwise, set 'auto' values for 'margin-left' and 'margin-right'
4069 // to 0, and pick the one of the following six rules that applies. 4069 // to 0, and pick the one of the following six rules that applies.
4070 // 4070 //
4071 // 1. 'left' and 'width' are 'auto' and 'right' is not 'auto', then the 4071 // 1. 'left' and 'width' are 'auto' and 'right' is not 'auto', then the
4072 // width is shrink-to-fit. Then solve for 'left' 4072 // width is shrink-to-fit. Then solve for 'left'
(...skipping 542 matching lines...) Expand 10 before | Expand all | Expand 10 after
4615 LayoutUnit minDist = LayoutUnit::max(); 4615 LayoutUnit minDist = LayoutUnit::max();
4616 LayoutBox* closestLayoutObject = nullptr; 4616 LayoutBox* closestLayoutObject = nullptr;
4617 LayoutPoint adjustedPoint = point; 4617 LayoutPoint adjustedPoint = point;
4618 if (isTableRow()) 4618 if (isTableRow())
4619 adjustedPoint.moveBy(location()); 4619 adjustedPoint.moveBy(location());
4620 4620
4621 for (LayoutObject* layoutObject = firstChild; layoutObject; 4621 for (LayoutObject* layoutObject = firstChild; layoutObject;
4622 layoutObject = layoutObject->nextSibling()) { 4622 layoutObject = layoutObject->nextSibling()) {
4623 if ((!layoutObject->slowFirstChild() && !layoutObject->isInline() && 4623 if ((!layoutObject->slowFirstChild() && !layoutObject->isInline() &&
4624 !layoutObject->isLayoutBlockFlow()) || 4624 !layoutObject->isLayoutBlockFlow()) ||
4625 layoutObject->style()->visibility() != EVisibility::Visible) 4625 layoutObject->style()->visibility() != EVisibility::kVisible)
4626 continue; 4626 continue;
4627 4627
4628 if (!layoutObject->isBox()) 4628 if (!layoutObject->isBox())
4629 continue; 4629 continue;
4630 4630
4631 LayoutBox* layoutBox = toLayoutBox(layoutObject); 4631 LayoutBox* layoutBox = toLayoutBox(layoutObject);
4632 4632
4633 LayoutUnit top = layoutBox->borderTop() + layoutBox->paddingTop() + 4633 LayoutUnit top = layoutBox->borderTop() + layoutBox->paddingTop() +
4634 (isTableRow() ? LayoutUnit() : layoutBox->location().y()); 4634 (isTableRow() ? LayoutUnit() : layoutBox->location().y());
4635 LayoutUnit bottom = top + layoutBox->contentHeight(); 4635 LayoutUnit bottom = top + layoutBox->contentHeight();
(...skipping 1060 matching lines...) Expand 10 before | Expand all | Expand 10 after
5696 block->adjustChildDebugRect(rect); 5696 block->adjustChildDebugRect(rect);
5697 5697
5698 return rect; 5698 return rect;
5699 } 5699 }
5700 5700
5701 bool LayoutBox::shouldClipOverflow() const { 5701 bool LayoutBox::shouldClipOverflow() const {
5702 return hasOverflowClip() || styleRef().containsPaint() || hasControlClip(); 5702 return hasOverflowClip() || styleRef().containsPaint() || hasControlClip();
5703 } 5703 }
5704 5704
5705 } // namespace blink 5705 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698