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

Unified Diff: Source/WebCore/rendering/RenderObject.cpp

Issue 8016006: Merge 95671 - Source/WebCore: Not use anonymousContainer on beforeChild calculation (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/874/
Patch Set: Created 9 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: Source/WebCore/rendering/RenderObject.cpp
===================================================================
--- Source/WebCore/rendering/RenderObject.cpp (revision 95818)
+++ Source/WebCore/rendering/RenderObject.cpp (working copy)
@@ -1825,20 +1825,30 @@
}
}
-void RenderObject::propagateStyleToAnonymousChildren()
+void RenderObject::propagateStyleToAnonymousChildren(bool blockChildrenOnly)
{
+ // FIXME: We could save this call when the change only affected non-inherited properties.
for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
- if (child->isAnonymous() && !child->isBeforeOrAfterContent()) {
- RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(style());
- if (style()->specifiesColumns()) {
- if (child->style()->specifiesColumns())
- newStyle->inheritColumnPropertiesFrom(style());
- if (child->style()->columnSpan())
- newStyle->setColumnSpan(true);
- }
- newStyle->setDisplay(child->style()->display());
- child->setStyle(newStyle.release());
+ if (!child->isAnonymous() || child->style()->styleType() != NOPSEUDO)
+ continue;
+
+ if (blockChildrenOnly && !child->isRenderBlock())
+ continue;
+
+#if ENABLE(FULLSCREEN_API)
+ if (child->isRenderFullScreen() || child->isRenderFullScreenPlaceholder())
+ continue;
+#endif
+
+ RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(style());
+ if (style()->specifiesColumns()) {
+ if (child->style()->specifiesColumns())
+ newStyle->inheritColumnPropertiesFrom(style());
+ if (child->style()->columnSpan())
+ newStyle->setColumnSpan(true);
}
+ newStyle->setDisplay(child->style()->display());
+ child->setStyle(newStyle.release());
}
}

Powered by Google App Engine
This is Rietveld 408576698