Index: Source/core/rendering/RenderObject.cpp |
diff --git a/Source/core/rendering/RenderObject.cpp b/Source/core/rendering/RenderObject.cpp |
index de770b47f58352df427646411434c11e9aa7a979..ab14b0c2d2e54f1459a2391f50e426fb26a81aa2 100644 |
--- a/Source/core/rendering/RenderObject.cpp |
+++ b/Source/core/rendering/RenderObject.cpp |
@@ -2060,6 +2060,17 @@ void RenderObject::styleDidChange(StyleDifference diff, const RenderStyle* oldSt |
if (s_affectsParentBlock) |
handleDynamicFloatPositionChange(); |
+ if (RenderView* view = this->view()) { |
esprehn
2013/10/25 22:25:51
You don't need to null check this, going through s
|
+ bool newStyleMayHaveViewportPercentage = style()->mayHaveViewportPercentageProperty(); |
+ bool oldStyleMayHaveViewportPercentage = oldStyle && oldStyle->mayHaveViewportPercentageProperty(); |
+ if (newStyleMayHaveViewportPercentage != oldStyleMayHaveViewportPercentage) { |
+ if (newStyleMayHaveViewportPercentage) |
+ view->addViewportPercentageStyleObject(this); |
+ else |
+ view->removeViewportPercentageStyleObject(this); |
+ } |
+ } |
+ |
if (!m_parent) |
return; |
@@ -2609,6 +2620,9 @@ void RenderObject::willBeDestroyed() |
setAncestorLineBoxDirty(false); |
clearLayoutRootIfNeeded(); |
+ |
+ if (RenderView* view = this->view()) |
+ view->removeViewportPercentageStyleObject(this); |
} |
void RenderObject::insertedIntoTree() |