| Index: Source/core/css/CSSComputedStyleDeclaration.cpp
|
| diff --git a/Source/core/css/CSSComputedStyleDeclaration.cpp b/Source/core/css/CSSComputedStyleDeclaration.cpp
|
| index 9604eb68cd29534f3c740247bb6ffb2cb33331a2..9f274d48e00437736506c032088265b0e9eabe95 100644
|
| --- a/Source/core/css/CSSComputedStyleDeclaration.cpp
|
| +++ b/Source/core/css/CSSComputedStyleDeclaration.cpp
|
| @@ -443,7 +443,7 @@ static void logUnimplementedPropertyID(CSSPropertyID propertyID)
|
| WTF_LOG_ERROR("WebKit does not yet implement getComputedStyle for '%s'.", getPropertyName(propertyID));
|
| }
|
|
|
| -static bool isLayoutDependent(CSSPropertyID propertyID, const ComputedStyle* style, LayoutObject* renderer)
|
| +static bool isLayoutDependent(CSSPropertyID propertyID, const ComputedStyle* style, LayoutObject* layoutObject)
|
| {
|
| // Some properties only depend on layout in certain conditions which
|
| // are specified in the main switch statement below. So we can avoid
|
| @@ -472,25 +472,29 @@ static bool isLayoutDependent(CSSPropertyID propertyID, const ComputedStyle* sty
|
| case CSSPropertyRy:
|
| return true;
|
| case CSSPropertyMargin:
|
| - return renderer && renderer->isBox() && (!style || !style->marginBottom().isFixed() || !style->marginTop().isFixed() || !style->marginLeft().isFixed() || !style->marginRight().isFixed());
|
| + return layoutObject && layoutObject->isBox()
|
| + && (!style || !style->marginBottom().isFixed() || !style->marginTop().isFixed()
|
| + || !style->marginLeft().isFixed() || !style->marginRight().isFixed());
|
| case CSSPropertyMarginLeft:
|
| - return renderer && renderer->isBox() && (!style || !style->marginLeft().isFixed());
|
| + return layoutObject && layoutObject->isBox() && (!style || !style->marginLeft().isFixed());
|
| case CSSPropertyMarginRight:
|
| - return renderer && renderer->isBox() && (!style || !style->marginRight().isFixed());
|
| + return layoutObject && layoutObject->isBox() && (!style || !style->marginRight().isFixed());
|
| case CSSPropertyMarginTop:
|
| - return renderer && renderer->isBox() && (!style || !style->marginTop().isFixed());
|
| + return layoutObject && layoutObject->isBox() && (!style || !style->marginTop().isFixed());
|
| case CSSPropertyMarginBottom:
|
| - return renderer && renderer->isBox() && (!style || !style->marginBottom().isFixed());
|
| + return layoutObject && layoutObject->isBox() && (!style || !style->marginBottom().isFixed());
|
| case CSSPropertyPadding:
|
| - return renderer && renderer->isBox() && (!style || !style->paddingBottom().isFixed() || !style->paddingTop().isFixed() || !style->paddingLeft().isFixed() || !style->paddingRight().isFixed());
|
| + return layoutObject && layoutObject->isBox()
|
| + && (!style || !style->paddingBottom().isFixed() || !style->paddingTop().isFixed()
|
| + || !style->paddingLeft().isFixed() || !style->paddingRight().isFixed());
|
| case CSSPropertyPaddingBottom:
|
| - return renderer && renderer->isBox() && (!style || !style->paddingBottom().isFixed());
|
| + return layoutObject && layoutObject->isBox() && (!style || !style->paddingBottom().isFixed());
|
| case CSSPropertyPaddingLeft:
|
| - return renderer && renderer->isBox() && (!style || !style->paddingLeft().isFixed());
|
| + return layoutObject && layoutObject->isBox() && (!style || !style->paddingLeft().isFixed());
|
| case CSSPropertyPaddingRight:
|
| - return renderer && renderer->isBox() && (!style || !style->paddingRight().isFixed());
|
| + return layoutObject && layoutObject->isBox() && (!style || !style->paddingRight().isFixed());
|
| case CSSPropertyPaddingTop:
|
| - return renderer && renderer->isBox() && (!style || !style->paddingTop().isFixed());
|
| + return layoutObject && layoutObject->isBox() && (!style || !style->paddingTop().isFixed());
|
| default:
|
| return false;
|
| }
|
| @@ -519,7 +523,7 @@ PassRefPtrWillBeRawPtr<CSSValue> CSSComputedStyleDeclaration::getPropertyCSSValu
|
| Node* styledNode = this->styledNode();
|
| if (!styledNode)
|
| return nullptr;
|
| - LayoutObject* renderer = styledNode->layoutObject();
|
| + LayoutObject* layoutObject = styledNode->layoutObject();
|
| const ComputedStyle* style;
|
|
|
| Document& document = styledNode->document();
|
| @@ -532,11 +536,11 @@ PassRefPtrWillBeRawPtr<CSSValue> CSSComputedStyleDeclaration::getPropertyCSSValu
|
| // The style recalc could have caused the styled node to be discarded or replaced
|
| // if it was a PseudoElement so we need to update it.
|
| styledNode = this->styledNode();
|
| - renderer = styledNode->layoutObject();
|
| + layoutObject = styledNode->layoutObject();
|
|
|
| style = computeComputedStyle();
|
|
|
| - bool forceFullLayout = isLayoutDependent(propertyID, style, renderer)
|
| + bool forceFullLayout = isLayoutDependent(propertyID, style, layoutObject)
|
| || styledNode->isInShadowTree()
|
| || (document.ownerElement() && document.ensureStyleResolver().hasViewportDependentMediaQueries());
|
|
|
| @@ -544,13 +548,13 @@ PassRefPtrWillBeRawPtr<CSSValue> CSSComputedStyleDeclaration::getPropertyCSSValu
|
| document.updateLayoutIgnorePendingStylesheets();
|
| styledNode = this->styledNode();
|
| style = computeComputedStyle();
|
| - renderer = styledNode->layoutObject();
|
| + layoutObject = styledNode->layoutObject();
|
| }
|
|
|
| if (!style)
|
| return nullptr;
|
|
|
| - RefPtrWillBeRawPtr<CSSValue> value = ComputedStyleCSSValueMapping::get(propertyID, *style, renderer, styledNode, m_allowVisitedStyle);
|
| + RefPtrWillBeRawPtr<CSSValue> value = ComputedStyleCSSValueMapping::get(propertyID, *style, layoutObject, styledNode, m_allowVisitedStyle);
|
| if (value)
|
| return value;
|
|
|
|
|