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

Unified Diff: third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp

Issue 2215133005: Add grid/flex layout support for <fieldset> (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fixed more ClusterFuzz tests Created 4 years, 4 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: third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp
diff --git a/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp b/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp
index e5e961f6337e716db069190cfd719b37b6136b1d..fb1610de0b6fbc6394d2fd4fc8a9ced1ab2b76ab 100644
--- a/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp
@@ -1163,9 +1163,6 @@ void LayoutBlockFlow::layoutBlockChildren(bool relayoutChildren, SubtreeLayoutSc
BlockChildrenLayoutInfo layoutInfo(this, beforeEdge, afterEdge);
MarginInfo& marginInfo = layoutInfo.marginInfo();
- // Fieldsets need to find their legend and position it inside the border of the object.
- // The legend then gets skipped during normal layout. The same is true for ruby text.
- // It doesn't get included in the normal layout process but is instead skipped.
LayoutObject* childToExclude = layoutSpecialExcludedChild(relayoutChildren, layoutScope);
LayoutBox* next = firstChildBox();
@@ -1178,7 +1175,7 @@ void LayoutBlockFlow::layoutBlockChildren(bool relayoutChildren, SubtreeLayoutSc
child->setMayNeedPaintInvalidation();
if (childToExclude == child)
- continue; // Skip this child, since it will be positioned by the specialized subclass (fieldsets and ruby runs).
+ continue; // Skip this child, since it will be positioned by the specialized subclass (ruby runs).
updateBlockChildDirtyBitsBeforeLayout(relayoutChildren, *child);
@@ -2410,7 +2407,7 @@ void LayoutBlockFlow::addChild(LayoutObject* newChild, LayoutObject* beforeChild
// that isn't sufficient for us, and can only cause trouble at this point.
LayoutBox::addChild(newChild, beforeChild);
- if (madeBoxesNonInline && parent() && isAnonymousBlock() && parent()->isLayoutBlock()) {
+ if (madeBoxesNonInline && parent() && isAnonymousBlock() && parent()->isLayoutBlock() && !parent()->createsAnonymousWrapper()) {
toLayoutBlock(parent())->removeLeftoverAnonymousBlock(this);
// |this| may be dead now.
}
@@ -3488,11 +3485,6 @@ void LayoutBlockFlow::createOrDestroyMultiColumnFlowThreadIfNeeded(const Compute
if (isRuby())
return;
- // Fieldsets look for a legend special child (layoutSpecialExcludedChild()). We currently only
- // support one special child per layout object, and the flow thread would make for a second one.
- if (isFieldset())
- return;
-
// Form controls are replaced content, and are therefore not supposed to support multicol.
if (isFileUploadControl() || isTextControl() || isListBox())
return;
« no previous file with comments | « third_party/WebKit/Source/core/layout/LayoutBlock.cpp ('k') | third_party/WebKit/Source/core/layout/LayoutFieldset.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698