<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[213423] trunk</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/213423">213423</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2017-03-04 09:15:40 -0800 (Sat, 04 Mar 2017)</dd>
</dl>
<h3>Log Message</h3>
<pre>Unreviewed, rolling out <a href="http://trac.webkit.org/projects/webkit/changeset/213379">r213379</a>.
https://bugs.webkit.org/show_bug.cgi?id=169169
broke GTK+ and Windows builds (Requested by mcatanzaro on
#webkit).
Reverted changeset:
"Enable fieldsets to be flexboxes, grids and multicolumn."
https://bugs.webkit.org/show_bug.cgi?id=169082
http://trac.webkit.org/changeset/213379</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreCMakeListstxt">trunk/Source/WebCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityRenderObjectcpp">trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityatkWebKitAccessibleWrapperAtkcpp">trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLFieldSetElementcpp">trunk/Source/WebCore/html/HTMLFieldSetElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLFieldSetElementh">trunk/Source/WebCore/html/HTMLFieldSetElement.h</a></li>
<li><a href="#trunkSourceWebCorerenderingOrderIteratorcpp">trunk/Source/WebCore/rendering/OrderIterator.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingOrderIteratorh">trunk/Source/WebCore/rendering/OrderIterator.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBlockcpp">trunk/Source/WebCore/rendering/RenderBlock.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBlockh">trunk/Source/WebCore/rendering/RenderBlock.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBlockFlowcpp">trunk/Source/WebCore/rendering/RenderBlockFlow.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBlockFlowh">trunk/Source/WebCore/rendering/RenderBlockFlow.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBoxcpp">trunk/Source/WebCore/rendering/RenderBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBoxh">trunk/Source/WebCore/rendering/RenderBox.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBoxModelObjectcpp">trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBoxModelObjecth">trunk/Source/WebCore/rendering/RenderBoxModelObject.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderDeprecatedFlexibleBoxcpp">trunk/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderElementcpp">trunk/Source/WebCore/rendering/RenderElement.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderElementh">trunk/Source/WebCore/rendering/RenderElement.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderFlexibleBoxcpp">trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderGridcpp">trunk/Source/WebCore/rendering/RenderGrid.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderMultiColumnFlowThreadcpp">trunk/Source/WebCore/rendering/RenderMultiColumnFlowThread.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderMultiColumnSetcpp">trunk/Source/WebCore/rendering/RenderMultiColumnSet.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderObjectcpp">trunk/Source/WebCore/rendering/RenderObject.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderObjecth">trunk/Source/WebCore/rendering/RenderObject.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderRubyRuncpp">trunk/Source/WebCore/rendering/RenderRubyRun.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderRubyRunh">trunk/Source/WebCore/rendering/RenderRubyRun.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTablecpp">trunk/Source/WebCore/rendering/RenderTable.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTableh">trunk/Source/WebCore/rendering/RenderTable.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTableCellcpp">trunk/Source/WebCore/rendering/RenderTableCell.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTextControlcpp">trunk/Source/WebCore/rendering/RenderTextControl.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTextControlh">trunk/Source/WebCore/rendering/RenderTextControl.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTextControlMultiLinecpp">trunk/Source/WebCore/rendering/RenderTextControlMultiLine.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTextControlMultiLineh">trunk/Source/WebCore/rendering/RenderTextControlMultiLine.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTreeAsTextcpp">trunk/Source/WebCore/rendering/RenderTreeAsText.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderingAllInOnecpp">trunk/Source/WebCore/rendering/RenderingAllInOne.cpp</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebCorerenderingRenderFieldsetcpp">trunk/Source/WebCore/rendering/RenderFieldset.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderFieldseth">trunk/Source/WebCore/rendering/RenderFieldset.h</a></li>
</ul>
<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsfastformsfieldsetabsposchildsizingexpectedhtml">trunk/LayoutTests/fast/forms/fieldset/abs-pos-child-sizing-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastformsfieldsetabsposchildsizinghtml">trunk/LayoutTests/fast/forms/fieldset/abs-pos-child-sizing.html</a></li>
<li><a href="#trunkLayoutTestsfastformsfieldsetfieldsetdeprecatedflexboxexpectedhtml">trunk/LayoutTests/fast/forms/fieldset/fieldset-deprecated-flexbox-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastformsfieldsetfieldsetdeprecatedflexboxhtml">trunk/LayoutTests/fast/forms/fieldset/fieldset-deprecated-flexbox.html</a></li>
<li><a href="#trunkLayoutTestsfastformsfieldsetfieldsetflexboxexpectedhtml">trunk/LayoutTests/fast/forms/fieldset/fieldset-flexbox-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastformsfieldsetfieldsetflexboxhtml">trunk/LayoutTests/fast/forms/fieldset/fieldset-flexbox.html</a></li>
<li><a href="#trunkLayoutTestsfastformsfieldsetfieldsetgridexpectedhtml">trunk/LayoutTests/fast/forms/fieldset/fieldset-grid-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastformsfieldsetfieldsetgridhtml">trunk/LayoutTests/fast/forms/fieldset/fieldset-grid.html</a></li>
<li><a href="#trunkLayoutTestsfastformsfieldsetfieldsetmulticolumnexpectedhtml">trunk/LayoutTests/fast/forms/fieldset/fieldset-multicolumn-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastformsfieldsetfieldsetmulticolumnhtml">trunk/LayoutTests/fast/forms/fieldset/fieldset-multicolumn.html</a></li>
<li><a href="#trunkLayoutTestsfastformsfieldsetfieldsetoverflowautoexpectedhtml">trunk/LayoutTests/fast/forms/fieldset/fieldset-overflow-auto-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastformsfieldsetfieldsetoverflowautohtml">trunk/LayoutTests/fast/forms/fieldset/fieldset-overflow-auto.html</a></li>
<li><a href="#trunkLayoutTestsfastformsfieldsetfieldsetoverflowhiddenexpectedhtml">trunk/LayoutTests/fast/forms/fieldset/fieldset-overflow-hidden-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastformsfieldsetfieldsetoverflowhiddenhtml">trunk/LayoutTests/fast/forms/fieldset/fieldset-overflow-hidden.html</a></li>
<li><a href="#trunkLayoutTestsfastformsfieldsetfieldsetpositionedchildrenexpectedhtml">trunk/LayoutTests/fast/forms/fieldset/fieldset-positioned-children-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastformsfieldsetfieldsetpositionedchildrenhtml">trunk/LayoutTests/fast/forms/fieldset/fieldset-positioned-children.html</a></li>
<li><a href="#trunkLayoutTestsfastformsfieldsetfieldsetpositionedlegendexpectedhtml">trunk/LayoutTests/fast/forms/fieldset/fieldset-positioned-legend-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastformsfieldsetfieldsetpositionedlegendhtml">trunk/LayoutTests/fast/forms/fieldset/fieldset-positioned-legend.html</a></li>
<li><a href="#trunkLayoutTestsfastformsfieldsetfieldsetselfpaintinglegendexpectedhtml">trunk/LayoutTests/fast/forms/fieldset/fieldset-self-painting-legend-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastformsfieldsetfieldsetselfpaintinglegendhtml">trunk/LayoutTests/fast/forms/fieldset/fieldset-self-painting-legend.html</a></li>
<li><a href="#trunkLayoutTestsfastformsfieldsetfieldsetwritingmodesexpectedhtml">trunk/LayoutTests/fast/forms/fieldset/fieldset-writing-modes-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastformsfieldsetfieldsetwritingmodeshtml">trunk/LayoutTests/fast/forms/fieldset/fieldset-writing-modes.html</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/LayoutTests/ChangeLog        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2017-03-04 Commit Queue <commit-queue@webkit.org>
+
+ Unreviewed, rolling out r213379.
+ https://bugs.webkit.org/show_bug.cgi?id=169169
+
+ broke GTK+ and Windows builds (Requested by mcatanzaro on
+ #webkit).
+
+ Reverted changeset:
+
+ "Enable fieldsets to be flexboxes, grids and multicolumn."
+ https://bugs.webkit.org/show_bug.cgi?id=169082
+ http://trac.webkit.org/changeset/213379
+
</ins><span class="cx"> 2017-03-04 Nikita Vasilyev <nvasilyev@apple.com>
</span><span class="cx">
</span><span class="cx"> Web Inspector: Show Web Socket connections in Network tab
</span></span></pre></div>
<a id="trunkLayoutTestsfastformsfieldsetabsposchildsizingexpectedhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/forms/fieldset/abs-pos-child-sizing-expected.html (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/forms/fieldset/abs-pos-child-sizing-expected.html        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/LayoutTests/fast/forms/fieldset/abs-pos-child-sizing-expected.html        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -1,79 +0,0 @@
</span><del>-<!DOCTYPE HTML>
-<html><head>
- <meta charset="utf-8">
- <style type="text/css">
- html,body {
- color:black; background-color:white; font-size:16px; padding:0; margin:0;
- }
-
- div {
- position: absolute;
- background: rgba(0,255,0,0.5);
- top:0; bottom:0;
- left:0; right:0;
- z-index: 0;
- }
- c {
- display: block;
- background: blue;
- height:100%;
- }
-
- legend { height: 24px; }
-
- fieldset {
- position: absolute;
- border: 2px green solid;
- width: 100px;
- height: 100px;
- margin-bottom:40px;
- }
-
- #t1,#t3 { padding: 3px 5px 7px 11px; }
- #t2,#t4 { padding: 0; }
-
- #t1 div, #t3 div {
- /* same numbers as padding above */
- left: -11px; right: -5px;
- top: -3px; bottom:-7px;
- }
-
- #t2 { top: 120px; }
- #t3 { top: 240px; }
- #t4 { top: 360px; }
-
- x {
- position: absolute;
- width:100px;
- height:100px;
- }
- #t1 x, #t2 x {
- height:78px; /* compensate for legend */
- }
- </style>
-</head>
-<body>
-
-
- <fieldset id="t1">
- <legend>legend</legend>
- <x><div></div><c></c></x>
- </fieldset>
-
- <fieldset id="t2">
- <legend>legend</legend>
- <x><div></div></x>
- </fieldset>
-
- <fieldset id="t3">
- <x><div></div><c></c></x>
- </fieldset>
-
- <fieldset id="t4">
- <x><div></div></x>
- </fieldset>
-
-
-</body>
-</html>
-
</del></span></pre></div>
<a id="trunkLayoutTestsfastformsfieldsetabsposchildsizinghtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/forms/fieldset/abs-pos-child-sizing.html (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/forms/fieldset/abs-pos-child-sizing.html        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/LayoutTests/fast/forms/fieldset/abs-pos-child-sizing.html        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -1,64 +0,0 @@
</span><del>-<!DOCTYPE HTML>
-<html><head>
- <meta charset="utf-8">
- <style type="text/css">
- html,body {
- color:black; background-color:white; font-size:16px; padding:0; margin:0;
- }
-
- div {
- position: absolute;
- background: rgba(0,255,0,0.5);
- top:0; bottom:0;
- left:0; right:0;
- z-index: 0;
- }
- c {
- display: block;
- background: blue;
- height:100%;
- }
-
- legend { height: 24px; }
-
- fieldset {
- position: absolute;
- border: 2px green solid;
- width: 100px;
- height: 100px;
- margin-bottom:40px;
- }
-
- #t1,#t3 { padding: 3px 5px 7px 11px; }
- #t2,#t4 { padding: 0; }
-
- #t2 { top: 120px; }
- #t3 { top: 240px; }
- #t4 { top: 360px; }
- </style>
-</head>
-<body>
-
-
- <fieldset id="t1">
- <legend>legend</legend>
- <div></div><c></c>
- </fieldset>
-
- <fieldset id="t2">
- <legend>legend</legend>
- <div></div>
- </fieldset>
-
- <fieldset id="t3">
- <div></div><c></c>
- </fieldset>
-
- <fieldset id="t4">
- <div></div>
- </fieldset>
-
-
-</body>
-</html>
-
</del></span></pre></div>
<a id="trunkLayoutTestsfastformsfieldsetfieldsetdeprecatedflexboxexpectedhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/forms/fieldset/fieldset-deprecated-flexbox-expected.html (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/forms/fieldset/fieldset-deprecated-flexbox-expected.html        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/LayoutTests/fast/forms/fieldset/fieldset-deprecated-flexbox-expected.html        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -1,18 +0,0 @@
</span><del>-<!doctype html>
-<html>
- <head>
- <style>
- fieldset > div { border:2px solid skyblue; background-color:#cccccc; -webkit-margin-before:6px; -webkit-margin-after:6px }
- fieldset { margin:0; vertical-align:bottom; -webkit-logical-width:320px; -webkit-logical-height:80px; display:flex; justify-content: center; align-items: stretch; background-color:#dddddd; border:12px solid navy; padding:28px }
- </style>
- </head>
- <body>
- <fieldset>
- <legend>Legend</legend>
- <div>Fieldset Contents</div>
-
- <div>More Fieldset Contents</div>
-
- </fieldset>
- </body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastformsfieldsetfieldsetdeprecatedflexboxhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/forms/fieldset/fieldset-deprecated-flexbox.html (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/forms/fieldset/fieldset-deprecated-flexbox.html        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/LayoutTests/fast/forms/fieldset/fieldset-deprecated-flexbox.html        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -1,18 +0,0 @@
</span><del>-<!doctype html>
-<html>
- <head>
- <style>
- fieldset > div { border:2px solid skyblue; background-color:#cccccc; -webkit-margin-before:6px; -webkit-margin-after:6px }
- fieldset { margin:0; vertical-align:bottom; -webkit-logical-width:320px; -webkit-logical-height:80px; display:-webkit-inline-box; -webkit-box-pack: center; -webkit-box-align: stretch; background-color:#dddddd; border:12px solid navy; padding:28px }
- </style>
- </head>
- <body>
- <fieldset>
- <legend>Legend</legend>
- <div>Fieldset Contents</div>
-
- <div>More Fieldset Contents</div>
-
- </fieldset>
- </body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastformsfieldsetfieldsetflexboxexpectedhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/forms/fieldset/fieldset-flexbox-expected.html (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/forms/fieldset/fieldset-flexbox-expected.html        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/LayoutTests/fast/forms/fieldset/fieldset-flexbox-expected.html        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -1,33 +0,0 @@
</span><del>-<!doctype html>
-<html>
- <head>
- <style>
- .fieldset > div { border:2px solid skyblue; background-color:#cccccc; -webkit-margin-before:6px; -webkit-margin-after:6px }
- .fieldset { margin:0; vertical-align:bottom; -webkit-logical-width:320px; -webkit-logical-height:80px; display:inline-flex; justify-content: center; align-items: stretch; background-color:#dddddd; border:12px solid navy; padding:28px }
- </style>
- </head>
- <body>
- <div class=fieldset style="writing-mode:vertical-lr;">
- <div>Fieldset Contents</div>
-
- <div>More Fieldset Contents</div>
-
- </div>
-
- <div class=fieldset style="writing-mode:vertical-rl; ">
- <div>Fieldset Contents</div>
-
- <div>More Fieldset Contents</div>
-
- </div>
-
-
- <div class=fieldset style="writing-mode:horizontal-bt">
-
- <div>Fieldset Contents</div>
-
- <div>More Fieldset Contents</div>
-
- </div>
- </body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastformsfieldsetfieldsetflexboxhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/forms/fieldset/fieldset-flexbox.html (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/forms/fieldset/fieldset-flexbox.html        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/LayoutTests/fast/forms/fieldset/fieldset-flexbox.html        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -1,32 +0,0 @@
</span><del>-<!doctype html>
-<html>
- <head>
- <style>
- fieldset > div { border:2px solid skyblue; background-color:#cccccc; -webkit-margin-before:6px; -webkit-margin-after:6px }
- fieldset { margin:0; vertical-align:bottom; -webkit-logical-width:320px; -webkit-logical-height:80px; display:inline-flex; justify-content: center; align-items: stretch; background-color:#dddddd; border:12px solid navy; padding:28px }
- </style>
- </head>
- <body>
- <fieldset style="writing-mode:vertical-lr;">
- <div>Fieldset Contents</div>
-
- <div>More Fieldset Contents</div>
-
- </fieldset>
-
- <fieldset style="writing-mode:vertical-rl; ">
- <div>Fieldset Contents</div>
-
- <div>More Fieldset Contents</div>
-
- </fieldset>
-
-
- <fieldset style="writing-mode:horizontal-bt">
- <div>Fieldset Contents</div>
-
- <div>More Fieldset Contents</div>
-
- </fieldset>
- </body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastformsfieldsetfieldsetgridexpectedhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/forms/fieldset/fieldset-grid-expected.html (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/forms/fieldset/fieldset-grid-expected.html        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/LayoutTests/fast/forms/fieldset/fieldset-grid-expected.html        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -1,33 +0,0 @@
</span><del>-<!DOCTYPE HTML>
-<html>
- <body>
- <fieldset style="overflow:hidden; width:200px; height:200px;">
- <legend>Legend</legend>
- <div style="display:grid; grid-template-columns: repeat(4,50px); grid-auto-rows: 20px;">
- <p>X
- <p>X
- <p>X
- <p>X
- <p>X
- <p>X
- <p>X
- <p>X
- <p>X
- <p>X
- <p>X
- </div>
- </fieldset>
- <fieldset>
- <legend>Legend</legend>
- <div style="display:grid; grid-auto-columns: 50px; grid-auto-rows: 20px;">
- <p>X
- <p>X
- <p>X
- <p>X
- <p>X
- <p>X
- <p>X
- </div>
- </fieldset>
- </body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastformsfieldsetfieldsetgridhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/forms/fieldset/fieldset-grid.html (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/forms/fieldset/fieldset-grid.html        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/LayoutTests/fast/forms/fieldset/fieldset-grid.html        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -1,29 +0,0 @@
</span><del>-<!DOCTYPE HTML>
-<html>
- <body>
- <fieldset style="display:grid; overflow:hidden; grid-template-columns: repeat(4,50px); grid-auto-rows: 20px; width:200px; height:200px;">
- <legend>Legend</legend>
- <p>X
- <p>X
- <p>X
- <p>X
- <p>X
- <p>X
- <p>X
- <p>X
- <p>X
- <p>X
- <p>X
- </fieldset>
- <fieldset style="display:grid; grid-auto-columns: 50px; grid-auto-rows: 20px;">
- <legend>Legend</legend>
- <p>X
- <p>X
- <p>X
- <p>X
- <p>X
- <p>X
- <p>X
- </fieldset>
- </body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastformsfieldsetfieldsetmulticolumnexpectedhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/forms/fieldset/fieldset-multicolumn-expected.html (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/forms/fieldset/fieldset-multicolumn-expected.html        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/LayoutTests/fast/forms/fieldset/fieldset-multicolumn-expected.html        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -1,14 +0,0 @@
</span><del>-<fieldset style="float:left"><legend style="font-size:48px">Legend Title</legend>
- <div style="columns:2;">
- This content should be in two columns. It really should be.<br>
- This content should be in two columns. It really should be.<br>
- This content should be in two columns. It really should be.<br>
- This content should be in two columns. It really should be.<br>
- This content should be in two columns. It really should be.<br>
- This content should be in two columns. It really should be.<br>
- This content should be in two columns. It really should be.<br>
- This content should be in two columns. It really should be.<br>
- This content should be in two columns. It really should be.<br>
- This content should be in two columns. It really should be.<br>
- </div>
-</fieldset>
</del></span></pre></div>
<a id="trunkLayoutTestsfastformsfieldsetfieldsetmulticolumnhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/forms/fieldset/fieldset-multicolumn.html (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/forms/fieldset/fieldset-multicolumn.html        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/LayoutTests/fast/forms/fieldset/fieldset-multicolumn.html        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -1,12 +0,0 @@
</span><del>-<fieldset style="columns:2;float:left"><legend style="font-size:48px">Legend Title</legend>
- This content should be in two columns. It really should be.<br>
- This content should be in two columns. It really should be.<br>
- This content should be in two columns. It really should be.<br>
- This content should be in two columns. It really should be.<br>
- This content should be in two columns. It really should be.<br>
- This content should be in two columns. It really should be.<br>
- This content should be in two columns. It really should be.<br>
- This content should be in two columns. It really should be.<br>
- This content should be in two columns. It really should be.<br>
- This content should be in two columns. It really should be.<br>
-</fieldset>
</del></span></pre></div>
<a id="trunkLayoutTestsfastformsfieldsetfieldsetoverflowautoexpectedhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/forms/fieldset/fieldset-overflow-auto-expected.html (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/forms/fieldset/fieldset-overflow-auto-expected.html        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/LayoutTests/fast/forms/fieldset/fieldset-overflow-auto-expected.html        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -1,32 +0,0 @@
</span><del>-<!doctype html>
-<html>
- <head>
- <style>
- .contents { border:2px solid skyblue; background-color:#cccccc; -webkit-margin-before:6px; -webkit-margin-after:6px }
- .fieldset { vertical-align:bottom; -webkit-logical-width:320px; position:relative; display:inline-block; padding:40px; -webkit-padding-before:0}
- .legend { -webkit-logical-height:64px; -webkit-logical-width: 284px; -webkit-margin-after:34px;background-color:#3080f0; border:8px solid lightblue; font-size:48px }
- .behind-box { position:absolute; border:12px solid navy; z-index:-1 }
- #scroll { overflow:auto; position:absolute;bottom:0;left:0;right:0; top:80px; bottom:12px; right:12px; left:12px; padding:28px 28px 0 28px }
- </style>
- </head>
- <body>
- <div class=fieldset>
- <div class="behind-box" style="left:0; top:34px; right:0; bottom:0;"></div>
- <div class=legend>Legend Title</div>
-
- <div id=scroll>
-
- <div class=contents>Fieldset Contents</div>
-
- <div class=contents>More Fieldset Contents</div>
- <div class=contents>More Fieldset Contents</div>
- <div class=contents>More Fieldset Contents</div>
- <div class=contents>More Fieldset Contents</div>
- <div class=contents>More Fieldset Contents</div>
- <div class=contents style="margin-bottom:0">More Fieldset Contents</div>
-
- </div>
-
- </div>
- </body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastformsfieldsetfieldsetoverflowautohtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/forms/fieldset/fieldset-overflow-auto.html (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/forms/fieldset/fieldset-overflow-auto.html        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/LayoutTests/fast/forms/fieldset/fieldset-overflow-auto.html        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -1,34 +0,0 @@
</span><del>-<!doctype html>
-<html>
- <head>
- <style>
- fieldset div:not(.positioned) { border:2px solid skyblue; background-color:#cccccc; -webkit-margin-before:6px; -webkit-margin-after:6px }
- fieldset { overflow:auto; position:relative; margin:0; vertical-align:bottom; -webkit-logical-width:320px; display:inline-block; border:12px solid navy; padding:28px }
- legend { padding:0; -webkit-logical-height:64px; -webkit-logical-width: 284px; background-color:#3080f0; border:8px solid lightblue; font-size:48px }
- .positioned { height:0 }
- </style>
- </head>
- <body>
- <fieldset>
- <legend>Legend Title</legend>
-
- <div class=positioned>
- <div>Fieldset Contents</div>
-
- <div>More Fieldset Contents</div>
-
- <div>More Fieldset Contents</div>
-
- <div>More Fieldset Contents</div>
-
- <div>More Fieldset Contents</div>
-
- <div>More Fieldset Contents</div>
-
- <div>More Fieldset Contents</div>
- </div>
-
- </fieldset>
-
- </body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastformsfieldsetfieldsetoverflowhiddenexpectedhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/forms/fieldset/fieldset-overflow-hidden-expected.html (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/forms/fieldset/fieldset-overflow-hidden-expected.html        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/LayoutTests/fast/forms/fieldset/fieldset-overflow-hidden-expected.html        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -1,24 +0,0 @@
</span><del>-<!doctype html>
-<html>
- <head>
- <style>
- .contents { border:2px solid skyblue; background-color:#cccccc; -webkit-margin-before:6px; -webkit-margin-after:6px }
- .fieldset { vertical-align:bottom; -webkit-logical-width:320px; position:relative; display:inline-block; padding:40px; -webkit-padding-before:0}
- .legend { -webkit-logical-height:64px; -webkit-logical-width: 284px; -webkit-margin-after:34px;background-color:#3080f0; border:8px solid lightblue; font-size:48px }
- .behind-box { position:absolute; border:12px solid navy; z-index:-1 }
-
- </style>
- </head>
- <body>
- <div class=fieldset>
- <div class="behind-box" style="left:0; top:34px; right:0; bottom:0;"></div>
- <div class=legend>Legend Title</div>
-
- <div class=contents>Fieldset Contents</div>
-
- <div class=contents>More Fieldset Contents</div>
-
-
- </div>
- </body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastformsfieldsetfieldsetoverflowhiddenhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/forms/fieldset/fieldset-overflow-hidden.html (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/forms/fieldset/fieldset-overflow-hidden.html        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/LayoutTests/fast/forms/fieldset/fieldset-overflow-hidden.html        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -1,23 +0,0 @@
</span><del>-<!doctype html>
-<html>
- <head>
- <style>
- fieldset > div:not(.positioned) { border:2px solid skyblue; background-color:#cccccc; -webkit-margin-before:6px; -webkit-margin-after:6px }
- fieldset { overflow:hidden; position:relative; margin:0; vertical-align:bottom; -webkit-logical-width:320px; display:inline-block; border:12px solid navy; padding:28px }
- legend { padding:0; -webkit-logical-height:64px; -webkit-logical-width: 284px; background-color:#3080f0; border:8px solid lightblue; font-size:48px }
-
- </style>
- </head>
- <body>
- <fieldset>
- <legend>Legend Title</legend>
-
- <div>Fieldset Contents</div>
-
- <div>More Fieldset Contents</div>
-
-
- </fieldset>
-
- </body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastformsfieldsetfieldsetpositionedchildrenexpectedhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/forms/fieldset/fieldset-positioned-children-expected.html (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/forms/fieldset/fieldset-positioned-children-expected.html        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/LayoutTests/fast/forms/fieldset/fieldset-positioned-children-expected.html        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -1,25 +0,0 @@
</span><del>-<!doctype html>
-<html>
- <head>
- <style>
- .contents { border:2px solid skyblue; background-color:#cccccc; -webkit-margin-before:6px; -webkit-margin-after:6px }
- .fieldset { vertical-align:bottom; -webkit-logical-width:320px; position:relative; display:inline-block; padding:40px; -webkit-padding-before:0}
- .legend { -webkit-logical-height:64px; -webkit-logical-width: 284px; -webkit-margin-after:34px;background-color:#3080f0; border:8px solid lightblue; font-size:48px }
- .behind-box { position:absolute; border:12px solid navy; z-index:-1 }
- .positioned { position:absolute; top:90px; bottom:22px; right:22px; left:22px; background-color:darkblue; z-index:-1 }
- </style>
- </head>
- <body>
- <div class=fieldset>
- <div class="behind-box" style="left:0; top:34px; right:0; bottom:0;"></div>
- <div class=legend>Legend Title</div>
-
- <div class=contents>Fieldset Contents</div>
-
- <div class=contents>More Fieldset Contents</div>
-
- <div class="positioned"></div>
-
- </div>
- </body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastformsfieldsetfieldsetpositionedchildrenhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/forms/fieldset/fieldset-positioned-children.html (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/forms/fieldset/fieldset-positioned-children.html        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/LayoutTests/fast/forms/fieldset/fieldset-positioned-children.html        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -1,23 +0,0 @@
</span><del>-<!doctype html>
-<html>
- <head>
- <style>
- fieldset > div:not(.positioned) { border:2px solid skyblue; background-color:#cccccc; -webkit-margin-before:6px; -webkit-margin-after:6px }
- fieldset { position:relative; margin:0; vertical-align:bottom; -webkit-logical-width:320px; display:inline-block; border:12px solid navy; padding:28px }
- legend { padding:0; -webkit-logical-height:64px; -webkit-logical-width: 284px; background-color:#3080f0; border:8px solid lightblue; font-size:48px }
- .positioned { position:absolute; top:10px; bottom:10px; right:10px; left:10px; background-color:darkblue; z-index:-1 }
- </style>
- </head>
- <body>
- <fieldset>
- <legend>Legend Title</legend>
-
- <div>Fieldset Contents</div>
-
- <div>More Fieldset Contents</div>
-
- <div class=positioned></div>
- </fieldset>
-
- </body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastformsfieldsetfieldsetpositionedlegendexpectedhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/forms/fieldset/fieldset-positioned-legend-expected.html (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/forms/fieldset/fieldset-positioned-legend-expected.html        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/LayoutTests/fast/forms/fieldset/fieldset-positioned-legend-expected.html        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -1,24 +0,0 @@
</span><del>-<!doctype html>
-<html>
- <head>
- <style>
- .contents { border:2px solid skyblue; background-color:#cccccc; -webkit-margin-before:6px; -webkit-margin-after:6px; }
- .fieldset { position:relative; vertical-align:bottom; -webkit-logical-width:320px; position:relative; display:inline-block; border:12px solid navy; padding:28px; }
- .legend { -webkit-logical-height:64px; -webkit-logical-width: 284px;background-color:#3080f080; border:8px solid lightblue; font-size:48px; position:absolute;bottom:0;right:0; position:absolute }
- .behind-box { position:absolute;; z-index:-1; }
-
- </style>
- </head>
- <body>
- <div class=fieldset>
- <div class="behind-box" style="left:0; top:34px; right:0; bottom:0;"></div>
- <div class=legend>Legend Title</div>
-
- <div class=contents>Fieldset Contents</div>
-
- <div class=contents>More Fieldset Contents</div>
-
-
- </div>
- </body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastformsfieldsetfieldsetpositionedlegendhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/forms/fieldset/fieldset-positioned-legend.html (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/forms/fieldset/fieldset-positioned-legend.html        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/LayoutTests/fast/forms/fieldset/fieldset-positioned-legend.html        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -1,23 +0,0 @@
</span><del>-<!doctype html>
-<html>
- <head>
- <style>
- fieldset > div:not(.positioned) { border:2px solid skyblue; background-color:#cccccc; -webkit-margin-before:6px; -webkit-margin-after:6px; }
- fieldset { position:relative; margin:0; vertical-align:bottom; -webkit-logical-width:320px; display:inline-block; border:12px solid navy; padding:28px; }
- legend { padding:0; -webkit-logical-height:64px; -webkit-logical-width: 284px; background-color:#3080f080; border:8px solid lightblue; font-size:48px; position:absolute;bottom:0;right:0 }
-
- </style>
- </head>
- <body>
- <fieldset>
- <legend>Legend Title</legend>
-
- <div>Fieldset Contents</div>
-
- <div>More Fieldset Contents</div>
-
-
- </fieldset>
-
- </body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastformsfieldsetfieldsetselfpaintinglegendexpectedhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/forms/fieldset/fieldset-self-painting-legend-expected.html (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/forms/fieldset/fieldset-self-painting-legend-expected.html        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/LayoutTests/fast/forms/fieldset/fieldset-self-painting-legend-expected.html        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -1,24 +0,0 @@
</span><del>-<!doctype html>
-<html>
- <head>
- <style>
- .contents { border:2px solid skyblue; background-color:#cccccc; -webkit-margin-before:6px; -webkit-margin-after:6px; }
- .fieldset { vertical-align:bottom; -webkit-logical-width:320px; position:relative; display:inline-block; padding:40px; -webkit-padding-before:0; }
- .legend { -webkit-logical-height:64px; -webkit-logical-width: 284px; -webkit-margin-after:34px;background-color:#3080f080; border:8px solid lightblue; font-size:48px; transform:translateX(10px) }
- .behind-box { position:absolute; border:12px solid navy; z-index:-1; border-top:12px solid transparent }
-
- </style>
- </head>
- <body>
- <div class=fieldset>
- <div class="behind-box" style="left:0; top:34px; right:0; bottom:0;"></div>
- <div class=legend>Legend Title</div>
-
- <div class=contents>Fieldset Contents</div>
-
- <div class=contents>More Fieldset Contents</div>
-
-
- </div>
- </body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastformsfieldsetfieldsetselfpaintinglegendhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/forms/fieldset/fieldset-self-painting-legend.html (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/forms/fieldset/fieldset-self-painting-legend.html        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/LayoutTests/fast/forms/fieldset/fieldset-self-painting-legend.html        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -1,23 +0,0 @@
</span><del>-<!doctype html>
-<html>
- <head>
- <style>
- fieldset > div:not(.positioned) { border:2px solid skyblue; background-color:#cccccc; -webkit-margin-before:6px; -webkit-margin-after:6px; }
- fieldset { position:relative; margin:0; vertical-align:bottom; -webkit-logical-width:320px; display:inline-block; border:12px solid navy; padding:28px; border-top:12px solid transparent }
- legend { padding:0; -webkit-logical-height:64px; -webkit-logical-width: 284px; background-color:#3080f080; border:8px solid lightblue; font-size:48px; transform:translateX(10px); }
-
- </style>
- </head>
- <body>
- <fieldset>
- <legend>Legend Title</legend>
-
- <div>Fieldset Contents</div>
-
- <div>More Fieldset Contents</div>
-
-
- </fieldset>
-
- </body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastformsfieldsetfieldsetwritingmodesexpectedhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/forms/fieldset/fieldset-writing-modes-expected.html (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/forms/fieldset/fieldset-writing-modes-expected.html        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/LayoutTests/fast/forms/fieldset/fieldset-writing-modes-expected.html        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -1,44 +0,0 @@
</span><del>-<!doctype html>
-<html>
- <head>
- <style>
- .contents { border:2px solid skyblue; background-color:#cccccc; -webkit-margin-before:6px; -webkit-margin-after:6px }
- .fieldset { vertical-align:bottom; -webkit-logical-width:320px; position:relative; display:inline-block; writing-mode:vertical-rl; padding:40px; -webkit-padding-before:0}
- .legend { -webkit-logical-height:64px; -webkit-logical-width: 284px; -webkit-margin-after:34px;background-color:#3080f0; border:8px solid lightblue; font-size:48px }
- .behind-box { position:absolute; background-color:#dddddd; border:12px solid navy; z-index:-1 }
- </style>
- </head>
- <body>
- <div class=fieldset style="writing-mode:vertical-lr">
- <div class="behind-box" style="left:34px; top:0; right:0; bottom:0;"></div>
- <div class=legend>Legend Title</div>
-
- <div class=contents>Fieldset Contents</div>
-
- <div class=contents>More Fieldset Contents</div>
-
- </div>
-
- <div class=fieldset style="writing-mode:vertical-rl;">
- <div class="behind-box" style="right:34px; top:0; left:0; bottom:0;"></div>
- <div class=legend>Legend Title</div>
-
- <div class=contents>Fieldset Contents</div>
-
- <div class=contents>More Fieldset Contents</div>
-
- </div>
-
-
-
- <div class=fieldset style="writing-mode:horizontal-bt">
- <div class="behind-box" style="bottom:34px; top:0; right:0; left:0;"></div>
- <div class=legend>Legend Title</div>
-
- <div class=contents>Fieldset Contents</div>
-
- <div class=contents>More Fieldset Contents</div>
-
- </div>
- </body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastformsfieldsetfieldsetwritingmodeshtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/forms/fieldset/fieldset-writing-modes.html (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/forms/fieldset/fieldset-writing-modes.html        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/LayoutTests/fast/forms/fieldset/fieldset-writing-modes.html        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -1,39 +0,0 @@
</span><del>-<!doctype html>
-<html>
- <head>
- <style>
- fieldset > div { border:2px solid skyblue; background-color:#cccccc; -webkit-margin-before:6px; -webkit-margin-after:6px }
- fieldset { margin:0; vertical-align:bottom; -webkit-logical-width:320px; display:inline-block; background-color:#dddddd; border:12px solid navy; padding:28px }
- legend { padding:0; -webkit-logical-height:64px; -webkit-logical-width: 284px; background-color:#3080f0; border:8px solid lightblue; font-size:48px }
- </style>
- </head>
- <body>
- <fieldset style="writing-mode:vertical-lr;">
- <legend>Legend Title</legend>
-
- <div>Fieldset Contents</div>
-
- <div>More Fieldset Contents</div>
-
- </fieldset>
-
- <fieldset style="writing-mode:vertical-rl; ">
- <legend>Legend Title</legend>
-
- <div>Fieldset Contents</div>
-
- <div>More Fieldset Contents</div>
-
- </fieldset>
-
-
- <fieldset style="writing-mode:horizontal-bt">
- <legend>Legend Title</legend>
-
- <div>Fieldset Contents</div>
-
- <div>More Fieldset Contents</div>
-
- </fieldset>
- </body>
-</html>
</del></span></pre></div>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/CMakeLists.txt        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -2421,6 +2421,7 @@
</span><span class="cx"> rendering/RenderDetailsMarker.cpp
</span><span class="cx"> rendering/RenderElement.cpp
</span><span class="cx"> rendering/RenderEmbeddedObject.cpp
</span><ins>+ rendering/RenderFieldset.cpp
</ins><span class="cx"> rendering/RenderFileUploadControl.cpp
</span><span class="cx"> rendering/RenderFlexibleBox.cpp
</span><span class="cx"> rendering/RenderFlowThread.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/ChangeLog        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2017-03-04 Commit Queue <commit-queue@webkit.org>
+
+ Unreviewed, rolling out r213379.
+ https://bugs.webkit.org/show_bug.cgi?id=169169
+
+ broke GTK+ and Windows builds (Requested by mcatanzaro on
+ #webkit).
+
+ Reverted changeset:
+
+ "Enable fieldsets to be flexboxes, grids and multicolumn."
+ https://bugs.webkit.org/show_bug.cgi?id=169082
+ http://trac.webkit.org/changeset/213379
+
</ins><span class="cx"> 2017-03-03 Youenn Fablet <youenn@apple.com>
</span><span class="cx">
</span><span class="cx"> [WebRTC] Update libwebrtc source code
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -4524,6 +4524,8 @@
</span><span class="cx">                 A8DF4AEF0980C42C0052981B /* RenderTableSection.h in Headers */ = {isa = PBXBuildFile; fileRef = A8DF4AE50980C42C0052981B /* RenderTableSection.h */; };
</span><span class="cx">                 A8DF4AF00980C42C0052981B /* RenderTableRow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8DF4AE60980C42C0052981B /* RenderTableRow.cpp */; };
</span><span class="cx">                 A8DF4AF10980C42C0052981B /* RenderTableCol.h in Headers */ = {isa = PBXBuildFile; fileRef = A8DF4AE70980C42C0052981B /* RenderTableCol.h */; };
</span><ins>+                A8EA73C30A1900E300A8EF5F /* RenderFieldset.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8EA73AF0A1900E300A8EF5F /* RenderFieldset.cpp */; };
+                A8EA73C40A1900E300A8EF5F /* RenderFieldset.h in Headers */ = {isa = PBXBuildFile; fileRef = A8EA73B00A1900E300A8EF5F /* RenderFieldset.h */; };
</ins><span class="cx">                 A8EA79F10A1916DF00A8EF5F /* HTMLOListElement.h in Headers */ = {isa = PBXBuildFile; fileRef = A8EA79E50A1916DF00A8EF5F /* HTMLOListElement.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 A8EA79F20A1916DF00A8EF5F /* HTMLUListElement.h in Headers */ = {isa = PBXBuildFile; fileRef = A8EA79E60A1916DF00A8EF5F /* HTMLUListElement.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 A8EA79F30A1916DF00A8EF5F /* HTMLUListElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8EA79E70A1916DF00A8EF5F /* HTMLUListElement.cpp */; };
</span><span class="lines">@@ -12438,6 +12440,8 @@
</span><span class="cx">                 A8DF4AE50980C42C0052981B /* RenderTableSection.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = RenderTableSection.h; sourceTree = "<group>"; };
</span><span class="cx">                 A8DF4AE60980C42C0052981B /* RenderTableRow.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = RenderTableRow.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 A8DF4AE70980C42C0052981B /* RenderTableCol.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = RenderTableCol.h; sourceTree = "<group>"; };
</span><ins>+                A8EA73AF0A1900E300A8EF5F /* RenderFieldset.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = RenderFieldset.cpp; sourceTree = "<group>"; };
+                A8EA73B00A1900E300A8EF5F /* RenderFieldset.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = RenderFieldset.h; sourceTree = "<group>"; };
</ins><span class="cx">                 A8EA79E50A1916DF00A8EF5F /* HTMLOListElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = HTMLOListElement.h; sourceTree = "<group>"; };
</span><span class="cx">                 A8EA79E60A1916DF00A8EF5F /* HTMLUListElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = HTMLUListElement.h; sourceTree = "<group>"; };
</span><span class="cx">                 A8EA79E70A1916DF00A8EF5F /* HTMLUListElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLUListElement.cpp; sourceTree = "<group>"; };
</span><span class="lines">@@ -24319,6 +24323,8 @@
</span><span class="cx">                                 E43A023A17EB370A004CDD25 /* RenderElement.h */,
</span><span class="cx">                                 0F5B7A5210F65D7A00376302 /* RenderEmbeddedObject.cpp */,
</span><span class="cx">                                 0F5B7A5310F65D7A00376302 /* RenderEmbeddedObject.h */,
</span><ins>+                                A8EA73AF0A1900E300A8EF5F /* RenderFieldset.cpp */,
+                                A8EA73B00A1900E300A8EF5F /* RenderFieldset.h */,
</ins><span class="cx">                                 066C772E0AB603FD00238CC4 /* RenderFileUploadControl.cpp */,
</span><span class="cx">                                 066C772F0AB603FD00238CC4 /* RenderFileUploadControl.h */,
</span><span class="cx">                                 53C8298B13D8D92700DE2DEB /* RenderFlexibleBox.cpp */,
</span><span class="lines">@@ -27923,6 +27929,7 @@
</span><span class="cx">                                 9B32CDA913DF7FA900F34D13 /* RenderedPosition.h in Headers */,
</span><span class="cx">                                 E43A023B17EB370A004CDD25 /* RenderElement.h in Headers */,
</span><span class="cx">                                 0F5B7A5510F65D7A00376302 /* RenderEmbeddedObject.h in Headers */,
</span><ins>+                                A8EA73C40A1900E300A8EF5F /* RenderFieldset.h in Headers */,
</ins><span class="cx">                                 066C77310AB603FD00238CC4 /* RenderFileUploadControl.h in Headers */,
</span><span class="cx">                                 53C8298E13D8D92700DE2DEB /* RenderFlexibleBox.h in Headers */,
</span><span class="cx">                                 508CCA4F13CF106B003151F3 /* RenderFlowThread.h in Headers */,
</span><span class="lines">@@ -31688,6 +31695,7 @@
</span><span class="cx">                                 9B32CDAA13DF7FA900F34D13 /* RenderedPosition.cpp in Sources */,
</span><span class="cx">                                 E43A023D17EB3713004CDD25 /* RenderElement.cpp in Sources */,
</span><span class="cx">                                 0F5B7A5410F65D7A00376302 /* RenderEmbeddedObject.cpp in Sources */,
</span><ins>+                                A8EA73C30A1900E300A8EF5F /* RenderFieldset.cpp in Sources */,
</ins><span class="cx">                                 066C77300AB603FD00238CC4 /* RenderFileUploadControl.cpp in Sources */,
</span><span class="cx">                                 53C8298D13D8D92700DE2DEB /* RenderFlexibleBox.cpp in Sources */,
</span><span class="cx">                                 508CCA5013CF106B003151F3 /* RenderFlowThread.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityRenderObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -68,6 +68,7 @@
</span><span class="cx"> #include "Page.h"
</span><span class="cx"> #include "ProgressTracker.h"
</span><span class="cx"> #include "RenderButton.h"
</span><ins>+#include "RenderFieldset.h"
</ins><span class="cx"> #include "RenderFileUploadControl.h"
</span><span class="cx"> #include "RenderHTMLCanvas.h"
</span><span class="cx"> #include "RenderImage.h"
</span><span class="lines">@@ -1080,7 +1081,7 @@
</span><span class="cx">
</span><span class="cx"> // if isFieldset is true, the renderer is guaranteed to be a RenderFieldset
</span><span class="cx"> if (isFieldset())
</span><del>- return axObjectCache()->getOrCreate(downcast<RenderBlock>(*m_renderer).findFieldsetLegend(RenderBlock::FieldsetIncludeFloatingOrOutOfFlow));
</del><ins>+ return axObjectCache()->getOrCreate(downcast<RenderFieldset>(*m_renderer).findLegend(RenderFieldset::IncludeFloatingOrOutOfFlow));
</ins><span class="cx">
</span><span class="cx"> if (isFigure())
</span><span class="cx"> return captionForFigure();
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityatkWebKitAccessibleWrapperAtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -46,7 +46,7 @@
</span><span class="cx"> #include "HTMLTableElement.h"
</span><span class="cx"> #include "HostWindow.h"
</span><span class="cx"> #include "RenderAncestorIterator.h"
</span><del>-#include "RenderBlock.h"
</del><ins>+#include "RenderFieldset.h"
</ins><span class="cx"> #include "RenderObject.h"
</span><span class="cx"> #include "SVGElement.h"
</span><span class="cx"> #include "Settings.h"
</span><span class="lines">@@ -186,8 +186,7 @@
</span><span class="cx"> if (AccessibilityObject* label = coreObject->titleUIElement())
</span><span class="cx"> atk_relation_set_add_relation_by_type(relationSet, ATK_RELATION_LABELLED_BY, label->wrapper());
</span><span class="cx"> } else if (coreObject->roleValue() == LegendRole) {
</span><del>- RenderBlock* renderFieldset = *coreObject->renderer()->parent();
- if (renderFieldset && renderFieldset->isFieldset()) {
</del><ins>+ if (RenderFieldset* renderFieldset = ancestorsOfType<RenderFieldset>(*coreObject->renderer()).first()) {
</ins><span class="cx"> AccessibilityObject* fieldset = coreObject->axObjectCache()->getOrCreate(renderFieldset);
</span><span class="cx"> atk_relation_set_add_relation_by_type(relationSet, ATK_RELATION_LABEL_FOR, fieldset->wrapper());
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLFieldSetElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLFieldSetElement.cpp (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLFieldSetElement.cpp        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/html/HTMLFieldSetElement.cpp        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -31,7 +31,7 @@
</span><span class="cx"> #include "HTMLNames.h"
</span><span class="cx"> #include "HTMLObjectElement.h"
</span><span class="cx"> #include "NodeRareData.h"
</span><del>-#include "RenderElement.h"
</del><ins>+#include "RenderFieldset.h"
</ins><span class="cx"> #include <wtf/StdLibExtras.h>
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -154,7 +154,7 @@
</span><span class="cx">
</span><span class="cx"> RenderPtr<RenderElement> HTMLFieldSetElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
</span><span class="cx"> {
</span><del>- return RenderElement::createFor(*this, WTFMove(style), RenderElement::OnlyCreateBlockAndFlexboxRenderers);
</del><ins>+ return createRenderer<RenderFieldset>(*this, WTFMove(style));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> HTMLLegendElement* HTMLFieldSetElement::legend() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLFieldSetElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLFieldSetElement.h (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLFieldSetElement.h        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/html/HTMLFieldSetElement.h        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx">
</span><span class="cx"> class FormAssociatedElement;
</span><span class="cx"> class HTMLFormControlsCollection;
</span><ins>+class RenderFieldSet;
</ins><span class="cx">
</span><span class="cx"> class HTMLFieldSetElement final : public HTMLFormControlElement {
</span><span class="cx"> public:
</span><span class="lines">@@ -46,6 +47,8 @@
</span><span class="cx"> void addInvalidDescendant(const HTMLFormControlElement&);
</span><span class="cx"> void removeInvalidDescendant(const HTMLFormControlElement&);
</span><span class="cx">
</span><ins>+ RenderFieldSet* renderer() const;
+
</ins><span class="cx"> private:
</span><span class="cx"> HTMLFieldSetElement(const QualifiedName&, Document&, HTMLFormElement*);
</span><span class="cx"> ~HTMLFieldSetElement();
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingOrderIteratorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/OrderIterator.cpp (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/OrderIterator.cpp        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/rendering/OrderIterator.cpp        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -77,20 +77,14 @@
</span><span class="cx"> m_isReset = true;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool OrderIterator::shouldSkipChild(const RenderObject& child) const
-{
- return child.isOutOfFlowPositioned() || child.isExcludedFromNormalLayout();
-}
-
</del><span class="cx"> OrderIteratorPopulator::~OrderIteratorPopulator()
</span><span class="cx"> {
</span><span class="cx"> m_iterator.reset();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool OrderIteratorPopulator::collectChild(const RenderBox& child)
</del><ins>+void OrderIteratorPopulator::collectChild(const RenderBox& child)
</ins><span class="cx"> {
</span><span class="cx"> m_iterator.m_orderValues.insert(child.style().order());
</span><del>- return !m_iterator.shouldSkipChild(child);
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingOrderIteratorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/OrderIterator.h (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/OrderIterator.h        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/rendering/OrderIterator.h        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -37,7 +37,6 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="cx"> class RenderBox;
</span><del>-class RenderObject;
</del><span class="cx">
</span><span class="cx"> class OrderIterator {
</span><span class="cx"> public:
</span><span class="lines">@@ -49,8 +48,6 @@
</span><span class="cx"> RenderBox* first();
</span><span class="cx"> RenderBox* next();
</span><span class="cx">
</span><del>- bool shouldSkipChild(const RenderObject&) const;
-
</del><span class="cx"> private:
</span><span class="cx"> void reset();
</span><span class="cx">
</span><span class="lines">@@ -72,8 +69,7 @@
</span><span class="cx"> }
</span><span class="cx"> ~OrderIteratorPopulator();
</span><span class="cx">
</span><del>- // The return value indicates that the child should be skipped when iterating.
- bool collectChild(const RenderBox&);
</del><ins>+ void collectChild(const RenderBox&);
</ins><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> OrderIterator& m_iterator;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBlockcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBlock.cpp        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -245,13 +245,15 @@
</span><span class="cx"> WTF_MAKE_NONCOPYABLE(RenderBlockRareData); WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><span class="cx"> RenderBlockRareData()
</span><ins>+ : m_paginationStrut(0)
+ , m_pageLogicalOffset(0)
+ , m_flowThreadContainingBlock(std::nullopt)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> LayoutUnit m_paginationStrut;
</span><span class="cx"> LayoutUnit m_pageLogicalOffset;
</span><del>- LayoutUnit m_intrinsicBorderForFieldset;
-
</del><ins>+
</ins><span class="cx"> std::optional<RenderFlowThread*> m_flowThreadContainingBlock;
</span><span class="cx"> };
</span><span class="cx">
</span><span class="lines">@@ -1603,9 +1605,6 @@
</span><span class="cx">
</span><span class="cx"> bool RenderBlock::paintChild(RenderBox& child, PaintInfo& paintInfo, const LayoutPoint& paintOffset, PaintInfo& paintInfoForChild, bool usePrintRect, PaintBlockType paintType)
</span><span class="cx"> {
</span><del>- if (child.isExcludedAndPlacedInBorder())
- return true;
-
</del><span class="cx"> // Check for page-break-before: always, and if it's set, break and bail.
</span><span class="cx"> bool checkBeforeAlways = !childrenInline() && (usePrintRect && alwaysPageBreak(child.style().breakBefore()));
</span><span class="cx"> LayoutUnit absoluteChildY = paintOffset.y() + child.y();
</span><span class="lines">@@ -1697,10 +1696,6 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>- // Paint legends just above the border before we scroll or clip.
- if (paintPhase == PaintPhaseBlockBackground || paintPhase == PaintPhaseChildBlockBackground || paintPhase == PaintPhaseSelection)
- paintExcludedChildrenInBorder(paintInfo, paintOffset);
-
</del><span class="cx"> if (paintPhase == PaintPhaseMask && style().visibility() == VISIBLE) {
</span><span class="cx"> paintMask(paintInfo, paintOffset);
</span><span class="cx"> return;
</span><span class="lines">@@ -2772,20 +2767,9 @@
</span><span class="cx"> RenderObject* child = firstChild();
</span><span class="cx"> RenderBlock* containingBlock = this->containingBlock();
</span><span class="cx"> LayoutUnit floatLeftWidth = 0, floatRightWidth = 0;
</span><del>-
- LayoutUnit childMinWidth;
- LayoutUnit childMaxWidth;
- bool hadExcludedChildren = computePreferredWidthsForExcludedChildren(childMinWidth, childMaxWidth);
- if (hadExcludedChildren) {
- minLogicalWidth = std::max(childMinWidth, minLogicalWidth);
- maxLogicalWidth = std::max(childMaxWidth, maxLogicalWidth);
- }
-
</del><span class="cx"> while (child) {
</span><del>- // Positioned children don't affect the min/max width. Legends in fieldsets are skipped here
- // since they compute outside of any one layout system. Other children excluded from
- // normal layout are only used with block flows, so it's ok to calculate them here.
- if (child->isOutOfFlowPositioned() || child->isExcludedAndPlacedInBorder()) {
</del><ins>+ // Positioned children don't affect the min/max width
+ if (child->isOutOfFlowPositioned()) {
</ins><span class="cx"> child = child->nextSibling();
</span><span class="cx"> continue;
</span><span class="cx"> }
</span><span class="lines">@@ -3786,8 +3770,7 @@
</span><span class="cx"> {
</span><span class="cx"> if (isBody())
</span><span class="cx"> return "RenderBody"; // FIXME: Temporary hack until we know that the regression tests pass.
</span><del>- if (isFieldset())
- return "RenderFieldSet"; // FIXME: Remove eventually, but done to keep tests from breaking.
</del><ins>+
</ins><span class="cx"> if (isFloating())
</span><span class="cx"> return "RenderBlock (floating)";
</span><span class="cx"> if (isOutOfFlowPositioned())
</span><span class="lines">@@ -3919,267 +3902,4 @@
</span><span class="cx">
</span><span class="cx"> return availableHeight;
</span><span class="cx"> }
</span><del>-
-void RenderBlock::layoutExcludedChildren(bool relayoutChildren)
-{
- if (!isFieldset())
- return;
-
- setIntrinsicBorderForFieldset(0);
-
- RenderBox* box = findFieldsetLegend();
- if (!box)
- return;
-
- box->setIsExcludedFromNormalLayout(true);
- for (auto& child : childrenOfType<RenderBox>(*this)) {
- if (&child == box || !child.isLegend())
- continue;
- child.setIsExcludedFromNormalLayout(false);
- }
-
- RenderBox& legend = *box;
- if (relayoutChildren)
- legend.setChildNeedsLayout(MarkOnlyThis);
- legend.layoutIfNeeded();
-
- LayoutUnit logicalLeft;
- if (style().isLeftToRightDirection()) {
- switch (legend.style().textAlign()) {
- case CENTER:
- logicalLeft = (logicalWidth() - logicalWidthForChild(legend)) / 2;
- break;
- case RIGHT:
- logicalLeft = logicalWidth() - borderEnd() - paddingEnd() - logicalWidthForChild(legend);
- break;
- default:
- logicalLeft = borderStart() + paddingStart() + marginStartForChild(legend);
- break;
- }
- } else {
- switch (legend.style().textAlign()) {
- case LEFT:
- logicalLeft = borderStart() + paddingStart();
- break;
- case CENTER: {
- // Make sure that the extra pixel goes to the end side in RTL (since it went to the end side
- // in LTR).
- LayoutUnit centeredWidth = logicalWidth() - logicalWidthForChild(legend);
- logicalLeft = centeredWidth - centeredWidth / 2;
- break;
- }
- default:
- logicalLeft = logicalWidth() - borderStart() - paddingStart() - marginStartForChild(legend) - logicalWidthForChild(legend);
- break;
- }
- }
-
- setLogicalLeftForChild(legend, logicalLeft);
-
- LayoutUnit fieldsetBorderBefore = borderBefore();
- LayoutUnit legendLogicalHeight = logicalHeightForChild(legend);
- LayoutUnit legendAfterMargin = marginAfterForChild(legend);
- LayoutUnit topPositionForLegend = std::max(LayoutUnit(), (fieldsetBorderBefore - legendLogicalHeight) / 2);
- LayoutUnit bottomPositionForLegend = topPositionForLegend + legendLogicalHeight + legendAfterMargin;
-
- // Place the legend now.
- setLogicalTopForChild(legend, topPositionForLegend);
-
- // If the bottom of the legend (including its after margin) is below the fieldset border,
- // then we need to add in sufficient intrinsic border to account for this gap.
- // FIXME: Should we support the before margin of the legend? Not entirely clear.
- // FIXME: Consider dropping support for the after margin of the legend. Not sure other
- // browsers support that anyway.
- if (bottomPositionForLegend > fieldsetBorderBefore)
- setIntrinsicBorderForFieldset(bottomPositionForLegend - fieldsetBorderBefore);
-
- // Now that the legend is included in the border extent, we can set our logical height
- // to the borderBefore (which includes the legend and its after margin if they were bigger
- // than the actual fieldset border) and then add in our padding before.
- setLogicalHeight(borderBefore() + paddingBefore());
-}
-
-RenderBox* RenderBlock::findFieldsetLegend(FieldsetFindLegendOption option) const
-{
- for (auto& legend : childrenOfType<RenderBox>(*this)) {
- if (option == FieldsetIgnoreFloatingOrOutOfFlow && legend.isFloatingOrOutOfFlowPositioned())
- continue;
- if (legend.isLegend())
- return const_cast<RenderBox*>(&legend);
- }
- return nullptr;
-}
-
-void RenderBlock::adjustBorderBoxRectForPainting(LayoutRect& paintRect)
-{
- if (!isFieldset() || !intrinsicBorderForFieldset())
- return;
-
- auto* legend = findFieldsetLegend();
- if (!legend)
- return;
-
- if (style().isHorizontalWritingMode()) {
- LayoutUnit yOff = std::max(LayoutUnit(), (legend->height() - RenderBox::borderBefore()) / 2);
- paintRect.setHeight(paintRect.height() - yOff);
- if (style().writingMode() == TopToBottomWritingMode)
- paintRect.setY(paintRect.y() + yOff);
- } else {
- LayoutUnit xOff = std::max(LayoutUnit(), (legend->width() - RenderBox::borderBefore()) / 2);
- paintRect.setWidth(paintRect.width() - xOff);
- if (style().writingMode() == LeftToRightWritingMode)
- paintRect.setX(paintRect.x() + xOff);
- }
-}
-
-LayoutRect RenderBlock::paintRectToClipOutFromBorder(const LayoutRect& paintRect)
-{
- LayoutRect clipRect;
- if (!isFieldset())
- return clipRect;
- auto* legend = findFieldsetLegend();
- if (!legend)
- return clipRect;
-
- LayoutUnit borderExtent = RenderBox::borderBefore();
- if (style().isHorizontalWritingMode()) {
- clipRect.setX(paintRect.x() + legend->x());
- clipRect.setY(style().writingMode() == TopToBottomWritingMode ? paintRect.y() : paintRect.y() + paintRect.height() - borderExtent);
- clipRect.setWidth(legend->width());
- clipRect.setHeight(borderExtent);
- } else {
- clipRect.setX(style().writingMode() == LeftToRightWritingMode ? paintRect.x() : paintRect.x() + paintRect.width() - borderExtent);
- clipRect.setY(paintRect.y() + legend->y());
- clipRect.setWidth(borderExtent);
- clipRect.setHeight(legend->height());
- }
- return clipRect;
-}
-
-LayoutUnit RenderBlock::intrinsicBorderForFieldset() const
-{
- auto* rareData = getBlockRareData(this);
- return rareData ? rareData->m_intrinsicBorderForFieldset : LayoutUnit();
-}
-
-void RenderBlock::setIntrinsicBorderForFieldset(LayoutUnit padding)
-{
- auto* rareData = getBlockRareData(this);
- if (!rareData) {
- if (!padding)
- return;
- rareData = &ensureBlockRareData(this);
- }
- rareData->m_intrinsicBorderForFieldset = padding;
-}
-
-LayoutUnit RenderBlock::borderTop() const
-{
- if (style().writingMode() != TopToBottomWritingMode || !intrinsicBorderForFieldset())
- return RenderBox::borderTop();
- return RenderBox::borderTop() + intrinsicBorderForFieldset();
-}
-
-LayoutUnit RenderBlock::borderLeft() const
-{
- if (style().writingMode() != LeftToRightWritingMode || !intrinsicBorderForFieldset())
- return RenderBox::borderLeft();
- return RenderBox::borderLeft() + intrinsicBorderForFieldset();
-}
-
-LayoutUnit RenderBlock::borderBottom() const
-{
- if (style().writingMode() != BottomToTopWritingMode || !intrinsicBorderForFieldset())
- return RenderBox::borderBottom();
- return RenderBox::borderBottom() + intrinsicBorderForFieldset();
-}
-
-LayoutUnit RenderBlock::borderRight() const
-{
- if (style().writingMode() != RightToLeftWritingMode || !intrinsicBorderForFieldset())
- return RenderBox::borderRight();
- return RenderBox::borderRight() + intrinsicBorderForFieldset();
-}
-
-LayoutUnit RenderBlock::borderBefore() const
-{
- return RenderBox::borderBefore() + intrinsicBorderForFieldset();
-}
-
-bool RenderBlock::computePreferredWidthsForExcludedChildren(LayoutUnit& minWidth, LayoutUnit& maxWidth) const
-{
- if (!isFieldset())
- return false;
-
- auto* legend = findFieldsetLegend();
- if (!legend)
- return false;
-
- legend->setIsExcludedFromNormalLayout(true);
-
- computeChildPreferredLogicalWidths(*legend, minWidth, maxWidth);
-
- // These are going to be added in later, so we subtract them out to reflect the
- // fact that the legend is outside the scrollable area.
- auto scrollbarWidth = intrinsicScrollbarLogicalWidth();
- minWidth -= scrollbarWidth;
- maxWidth -= scrollbarWidth;
-
- const auto& childStyle = legend->style();
- auto startMarginLength = childStyle.marginStartUsing(&style());
- auto endMarginLength = childStyle.marginEndUsing(&style());
- LayoutUnit margin;
- LayoutUnit marginStart;
- LayoutUnit marginEnd;
- if (startMarginLength.isFixed())
- marginStart += startMarginLength.value();
- if (endMarginLength.isFixed())
- marginEnd += endMarginLength.value();
- margin = marginStart + marginEnd;
-
- minWidth += margin;
- maxWidth += margin;
-
- return true;
-}
-
-LayoutUnit RenderBlock::adjustBorderBoxLogicalHeightForBoxSizing(LayoutUnit height) const
-{
- // FIXME: We're doing this to match other browsers even though it's questionable.
- // Shouldn't height:100px mean the fieldset content gets 100px of height even if the
- // resulting fieldset becomes much taller because of the legend?
- LayoutUnit bordersPlusPadding = borderAndPaddingLogicalHeight();
- if (style().boxSizing() == CONTENT_BOX)
- return height + bordersPlusPadding - intrinsicBorderForFieldset();
- return std::max(height, bordersPlusPadding);
-}
-
-LayoutUnit RenderBlock::adjustContentBoxLogicalHeightForBoxSizing(std::optional<LayoutUnit> height) const
-{
- // FIXME: We're doing this to match other browsers even though it's questionable.
- // Shouldn't height:100px mean the fieldset content gets 100px of height even if the
- // resulting fieldset becomes much taller because of the legend?
- if (!height)
- return 0;
- LayoutUnit result = height.value();
- if (style().boxSizing() == BORDER_BOX)
- result -= borderAndPaddingLogicalHeight();
- else
- result -= intrinsicBorderForFieldset();
- return std::max(LayoutUnit(), result);
-}
-
-void RenderBlock::paintExcludedChildrenInBorder(PaintInfo& paintInfo, const LayoutPoint& paintOffset)
-{
- if (!isFieldset())
- return;
-
- RenderBox* box = findFieldsetLegend();
- if (!box || !box->isExcludedFromNormalLayout() || box->hasSelfPaintingLayer())
- return;
-
- LayoutPoint childPoint = flipForWritingModeForChild(box, paintOffset);
- box->paintAsInlineBlock(paintInfo, childPoint);
-}
-
</del><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBlockh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBlock.h (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBlock.h        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/rendering/RenderBlock.h        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -230,20 +230,6 @@
</span><span class="cx"> LayoutUnit pageLogicalOffset() const;
</span><span class="cx"> void setPageLogicalOffset(LayoutUnit);
</span><span class="cx">
</span><del>- // Fieldset legends that are taller than the fieldset border add in intrinsic border
- // in order to ensure that content gets properly pushed down across all layout systems
- // (flexbox, block, etc.)
- LayoutUnit intrinsicBorderForFieldset() const;
- void setIntrinsicBorderForFieldset(LayoutUnit);
- LayoutUnit borderTop() const override;
- LayoutUnit borderBottom() const override;
- LayoutUnit borderLeft() const override;
- LayoutUnit borderRight() const override;
- LayoutUnit borderBefore() const override;
- LayoutUnit adjustBorderBoxLogicalHeightForBoxSizing(LayoutUnit height) const override;
- LayoutUnit adjustContentBoxLogicalHeightForBoxSizing(std::optional<LayoutUnit> height) const override;
- void paintExcludedChildrenInBorder(PaintInfo&, const LayoutPoint&);
-
</del><span class="cx"> // Accessors for logical width/height and margins in the containing block's block-flow direction.
</span><span class="cx"> enum ApplyLayoutDeltaMode { ApplyLayoutDelta, DoNotApplyLayoutDelta };
</span><span class="cx"> LayoutUnit logicalWidthForChild(const RenderBox& child) const { return isHorizontalWritingMode() ? child.width() : child.height(); }
</span><span class="lines">@@ -397,14 +383,6 @@
</span><span class="cx"> // children.
</span><span class="cx"> RenderBlock* firstLineBlock() const override;
</span><span class="cx">
</span><del>- enum FieldsetFindLegendOption { FieldsetIgnoreFloatingOrOutOfFlow, FieldsetIncludeFloatingOrOutOfFlow };
- RenderBox* findFieldsetLegend(FieldsetFindLegendOption = FieldsetIgnoreFloatingOrOutOfFlow) const;
- virtual void layoutExcludedChildren(bool /*relayoutChildren*/);
- virtual bool computePreferredWidthsForExcludedChildren(LayoutUnit&, LayoutUnit&) const;
-
- void adjustBorderBoxRectForPainting(LayoutRect&) override;
- LayoutRect paintRectToClipOutFromBorder(const LayoutRect&) override;
-
</del><span class="cx"> protected:
</span><span class="cx"> virtual void addOverflowFromChildren();
</span><span class="cx"> // FIXME-BLOCKFLOW: Remove virtualization when all callers have moved to RenderBlockFlow
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBlockFlowcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBlockFlow.cpp (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBlockFlow.cpp        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/rendering/RenderBlockFlow.cpp        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -432,7 +432,7 @@
</span><span class="cx"> bool RenderBlockFlow::willCreateColumns(std::optional<unsigned> desiredColumnCount) const
</span><span class="cx"> {
</span><span class="cx"> // The following types are not supposed to create multicol context.
</span><del>- if (isFileUploadControl() || isTextControl() || isListBox())
</del><ins>+ if (isFieldset() || isFileUploadControl() || isTextControl() || isListBox())
</ins><span class="cx"> return false;
</span><span class="cx">
</span><span class="cx"> if (!firstChild())
</span><span class="lines">@@ -637,7 +637,7 @@
</span><span class="cx"> // Fieldsets need to find their legend and position it inside the border of the object.
</span><span class="cx"> // The legend then gets skipped during normal layout. The same is true for ruby text.
</span><span class="cx"> // It doesn't get included in the normal layout process but is instead skipped.
</span><del>- layoutExcludedChildren(relayoutChildren);
</del><ins>+ RenderObject* childToExclude = layoutSpecialExcludedChild(relayoutChildren);
</ins><span class="cx">
</span><span class="cx"> LayoutUnit previousFloatLogicalBottom = 0;
</span><span class="cx"> maxFloatLogicalBottom = 0;
</span><span class="lines">@@ -648,7 +648,7 @@
</span><span class="cx"> RenderBox& child = *next;
</span><span class="cx"> next = child.nextSiblingBox();
</span><span class="cx">
</span><del>- if (child.isExcludedFromNormalLayout())
</del><ins>+ if (childToExclude == &child)
</ins><span class="cx"> continue; // Skip this child, since it will be positioned by the specialized subclass (fieldsets and ruby runs).
</span><span class="cx">
</span><span class="cx"> updateBlockChildDirtyBitsBeforeLayout(relayoutChildren, child);
</span><span class="lines">@@ -3874,16 +3874,12 @@
</span><span class="cx"> }
</span><span class="cx"> #endif // ENABLE(TEXT_AUTOSIZING)
</span><span class="cx">
</span><del>-void RenderBlockFlow::layoutExcludedChildren(bool relayoutChildren)
</del><ins>+RenderObject* RenderBlockFlow::layoutSpecialExcludedChild(bool relayoutChildren)
</ins><span class="cx"> {
</span><del>- RenderBlock::layoutExcludedChildren(relayoutChildren);
-
- auto* flowThread = multiColumnFlowThread();
</del><ins>+ RenderMultiColumnFlowThread* flowThread = multiColumnFlowThread();
</ins><span class="cx"> if (!flowThread)
</span><del>- return;
</del><ins>+ return nullptr;
</ins><span class="cx">
</span><del>- flowThread->setIsExcludedFromNormalLayout(true);
-
</del><span class="cx"> setLogicalTopForChild(*flowThread, borderAndPaddingBefore());
</span><span class="cx">
</span><span class="cx"> if (relayoutChildren)
</span><span class="lines">@@ -3908,11 +3904,13 @@
</span><span class="cx"> flowThread->setNeedsHeightsRecalculation(false);
</span><span class="cx"> }
</span><span class="cx"> determineLogicalLeftPositionForChild(*flowThread);
</span><ins>+
+ return flowThread;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void RenderBlockFlow::addChild(RenderObject* newChild, RenderObject* beforeChild)
</span><span class="cx"> {
</span><del>- if (multiColumnFlowThread() && (!isFieldset() || !newChild->isLegend()))
</del><ins>+ if (multiColumnFlowThread())
</ins><span class="cx"> return multiColumnFlowThread()->addChild(newChild, beforeChild);
</span><span class="cx"> auto* beforeChildOrPlaceholder = beforeChild;
</span><span class="cx"> if (auto* containingFlowThread = flowThreadContainingBlock())
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBlockFlowh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBlockFlow.h (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBlockFlow.h        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/rendering/RenderBlockFlow.h        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -469,11 +469,6 @@
</span><span class="cx">
</span><span class="cx"> virtual void cachePriorCharactersIfNeeded(const LazyLineBreakIterator&) {};
</span><span class="cx">
</span><del>-protected:
- // Called to lay out the legend for a fieldset or the ruby text of a ruby run. Also used by multi-column layout to handle
- // the flow thread child.
- void layoutExcludedChildren(bool relayoutChildren) override;
-
</del><span class="cx"> private:
</span><span class="cx"> bool recomputeLogicalWidthAndColumnWidth();
</span><span class="cx"> LayoutUnit columnGap() const;
</span><span class="lines">@@ -480,8 +475,12 @@
</span><span class="cx">
</span><span class="cx"> RenderBlockFlow* previousSiblingWithOverhangingFloats(bool& parentHasFloats) const;
</span><span class="cx">
</span><ins>+ // Called to lay out the legend for a fieldset or the ruby text of a ruby run. Also used by multi-column layout to handle
+ // the flow thread child.
+ virtual RenderObject* layoutSpecialExcludedChild(bool /*relayoutChildren*/);
+
</ins><span class="cx"> void checkForPaginationLogicalHeightChange(bool& relayoutChildren, LayoutUnit& pageLogicalHeight, bool& pageLogicalHeightChanged);
</span><del>-
</del><ins>+
</ins><span class="cx"> void paintInlineChildren(PaintInfo&, const LayoutPoint&) override;
</span><span class="cx"> void paintFloats(PaintInfo&, const LayoutPoint&, bool preservePhase = false) override;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBox.cpp        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -1336,7 +1336,6 @@
</span><span class="cx">
</span><span class="cx"> LayoutRect paintRect = borderBoxRectInRegion(currentRenderNamedFlowFragment());
</span><span class="cx"> paintRect.moveBy(paintOffset);
</span><del>- adjustBorderBoxRectForPainting(paintRect);
</del><span class="cx">
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> // Workaround for <rdar://problem/6209763>. Force the painting bounds of checkboxes and radio controls to be square.
</span><span class="lines">@@ -1586,7 +1585,6 @@
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> LayoutRect paintRect = LayoutRect(paintOffset, size());
</span><del>- adjustBorderBoxRectForPainting(paintRect);
</del><span class="cx"> paintMaskImages(paintInfo, paintRect);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -4567,7 +4565,7 @@
</span><span class="cx">
</span><span class="cx"> bool RenderBox::avoidsFloats() const
</span><span class="cx"> {
</span><del>- return (isReplaced() && !isAnonymousInlineBlock()) || isHR() || isLegend() || isFieldset() || createsNewFormattingContext();
</del><ins>+ return (isReplaced() && !isAnonymousInlineBlock()) || isHR() || isLegend() || createsNewFormattingContext();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void RenderBox::addVisualEffectOverflow()
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBoxh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBox.h (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBox.h        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/rendering/RenderBox.h        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -328,12 +328,10 @@
</span><span class="cx"> LayoutSize offsetFromContainer(RenderElement&, const LayoutPoint&, bool* offsetDependsOnPoint = nullptr) const override;
</span><span class="cx">
</span><span class="cx"> LayoutUnit adjustBorderBoxLogicalWidthForBoxSizing(LayoutUnit width) const;
</span><ins>+ LayoutUnit adjustBorderBoxLogicalHeightForBoxSizing(LayoutUnit height) const;
</ins><span class="cx"> LayoutUnit adjustContentBoxLogicalWidthForBoxSizing(LayoutUnit width) const;
</span><ins>+ LayoutUnit adjustContentBoxLogicalHeightForBoxSizing(std::optional<LayoutUnit> height) const;
</ins><span class="cx">
</span><del>- // Overridden by fieldsets to subtract out the intrinsic border.
- virtual LayoutUnit adjustBorderBoxLogicalHeightForBoxSizing(LayoutUnit height) const;
- virtual LayoutUnit adjustContentBoxLogicalHeightForBoxSizing(std::optional<LayoutUnit> height) const;
-
</del><span class="cx"> struct ComputedMarginValues {
</span><span class="cx"> LayoutUnit m_before;
</span><span class="cx"> LayoutUnit m_after;
</span><span class="lines">@@ -620,11 +618,9 @@
</span><span class="cx">
</span><span class="cx"> const RenderBox* findEnclosingScrollableContainer() const;
</span><span class="cx">
</span><del>- bool isGridItem() const { return parent() && parent()->isRenderGrid() && !isExcludedFromNormalLayout(); }
- bool isFlexItem() const { return parent() && parent()->isFlexibleBox() && !isExcludedFromNormalLayout(); }
</del><ins>+ bool isGridItem() const { return parent() && parent()->isRenderGrid(); }
+ bool isFlexItem() const { return parent() && parent()->isFlexibleBox(); }
</ins><span class="cx">
</span><del>- virtual void adjustBorderBoxRectForPainting(LayoutRect&) { };
-
</del><span class="cx"> protected:
</span><span class="cx"> RenderBox(Element&, RenderStyle&&, BaseTypeFlags);
</span><span class="cx"> RenderBox(Document&, RenderStyle&&, BaseTypeFlags);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBoxModelObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -1718,12 +1718,6 @@
</span><span class="cx"> if (rect.isEmpty())
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- auto rectToClipOut = paintRectToClipOutFromBorder(rect);
- bool appliedClipAlready = !rectToClipOut.isEmpty();
- GraphicsContextStateSaver stateSave(graphicsContext, appliedClipAlready);
- if (!rectToClipOut.isEmpty())
- graphicsContext.clipOut(snapRectToDevicePixels(rectToClipOut, document().deviceScaleFactor()));
-
</del><span class="cx"> // border-image is not affected by border-radius.
</span><span class="cx"> if (paintNinePieceImage(graphicsContext, rect, style, style.borderImage()))
</span><span class="cx"> return;
</span><span class="lines">@@ -1862,7 +1856,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool clipToOuterBorder = outerBorder.isRounded();
</span><del>- GraphicsContextStateSaver stateSaver(graphicsContext, clipToOuterBorder && !appliedClipAlready);
</del><ins>+ GraphicsContextStateSaver stateSaver(graphicsContext, clipToOuterBorder);
</ins><span class="cx"> if (clipToOuterBorder) {
</span><span class="cx"> // Clip to the inner and outer radii rects.
</span><span class="cx"> if (bleedAvoidance != BackgroundBleedUseTransparencyLayer)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBoxModelObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBoxModelObject.h (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBoxModelObject.h        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/rendering/RenderBoxModelObject.h        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -236,8 +236,6 @@
</span><span class="cx">
</span><span class="cx"> RenderBoxModelObject* continuation() const;
</span><span class="cx">
</span><del>- virtual LayoutRect paintRectToClipOutFromBorder(const LayoutRect&) { return LayoutRect(); };
-
</del><span class="cx"> protected:
</span><span class="cx"> RenderBoxModelObject(Element&, RenderStyle&&, BaseTypeFlags);
</span><span class="cx"> RenderBoxModelObject(Document&, RenderStyle&&, BaseTypeFlags);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderDeprecatedFlexibleBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -95,7 +95,7 @@
</span><span class="cx">
</span><span class="cx"> if (m_currentChild && notFirstOrdinalValue())
</span><span class="cx"> m_ordinalValues.add(m_currentChild->style().boxOrdinalGroup());
</span><del>- } while (!m_currentChild || m_currentChild->isExcludedFromNormalLayout() || (!m_currentChild->isAnonymous()
</del><ins>+ } while (!m_currentChild || (!m_currentChild->isAnonymous()
</ins><span class="cx"> && m_currentChild->style().boxOrdinalGroup() != m_currentOrdinal));
</span><span class="cx"> return m_currentChild;
</span><span class="cx"> }
</span><span class="lines">@@ -302,11 +302,6 @@
</span><span class="cx"> LayoutSize oldLayoutDelta = view().layoutDelta();
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>- // 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.
- layoutExcludedChildren(relayoutChildren);
-
</del><span class="cx"> ChildFrameRects oldChildRects;
</span><span class="cx"> appendChildFrameRects(this, oldChildRects);
</span><span class="cx">
</span><span class="lines">@@ -432,6 +427,9 @@
</span><span class="cx">
</span><span class="cx"> // Apply the child's current layout delta.
</span><span class="cx"> layoutChildIfNeededApplyingDelta(child, childLayoutDelta);
</span><ins>+
+ // Now do the layout.
+ layoutChildIfNeededApplyingDelta(child, childLayoutDelta);
</ins><span class="cx">
</span><span class="cx"> // Update our height and overflow height.
</span><span class="cx"> if (style().boxAlign() == BBASELINE) {
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderElement.cpp (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderElement.cpp        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/rendering/RenderElement.cpp        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -156,13 +156,13 @@
</span><span class="cx"> view().unregisterForVisibleInViewportCallback(*this);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-RenderPtr<RenderElement> RenderElement::createFor(Element& element, RenderStyle&& style, RendererCreationType creationType)
</del><ins>+RenderPtr<RenderElement> RenderElement::createFor(Element& element, RenderStyle&& style)
</ins><span class="cx"> {
</span><span class="cx"> // Minimal support for content properties replacing an entire element.
</span><span class="cx"> // Works only if we have exactly one piece of content and it's a URL.
</span><span class="cx"> // Otherwise acts as if we didn't support this feature.
</span><span class="cx"> const ContentData* contentData = style.contentData();
</span><del>- if (creationType == CreateAllRenderers && contentData && !contentData->next() && is<ImageContentData>(*contentData) && !element.isPseudoElement()) {
</del><ins>+ if (contentData && !contentData->next() && is<ImageContentData>(*contentData) && !element.isPseudoElement()) {
</ins><span class="cx"> Style::loadPendingResources(style, element.document(), &element);
</span><span class="cx"> auto& styleImage = downcast<ImageContentData>(*contentData).image();
</span><span class="cx"> auto image = createRenderer<RenderImage>(element, WTFMove(style), const_cast<StyleImage*>(&styleImage));
</span><span class="lines">@@ -175,9 +175,7 @@
</span><span class="cx"> case CONTENTS:
</span><span class="cx"> return nullptr;
</span><span class="cx"> case INLINE:
</span><del>- if (creationType == CreateAllRenderers)
- return createRenderer<RenderInline>(element, WTFMove(style));
- FALLTHROUGH; // Fieldsets should make a block flow if display:inline is set.
</del><ins>+ return createRenderer<RenderInline>(element, WTFMove(style));
</ins><span class="cx"> case BLOCK:
</span><span class="cx"> case INLINE_BLOCK:
</span><span class="cx"> case COMPACT:
</span><span class="lines">@@ -184,6 +182,25 @@
</span><span class="cx"> return createRenderer<RenderBlockFlow>(element, WTFMove(style));
</span><span class="cx"> case LIST_ITEM:
</span><span class="cx"> return createRenderer<RenderListItem>(element, WTFMove(style));
</span><ins>+ case TABLE:
+ case INLINE_TABLE:
+ return createRenderer<RenderTable>(element, WTFMove(style));
+ case TABLE_ROW_GROUP:
+ case TABLE_HEADER_GROUP:
+ case TABLE_FOOTER_GROUP:
+ return createRenderer<RenderTableSection>(element, WTFMove(style));
+ case TABLE_ROW:
+ return createRenderer<RenderTableRow>(element, WTFMove(style));
+ case TABLE_COLUMN_GROUP:
+ case TABLE_COLUMN:
+ return createRenderer<RenderTableCol>(element, WTFMove(style));
+ case TABLE_CELL:
+ return createRenderer<RenderTableCell>(element, WTFMove(style));
+ case TABLE_CAPTION:
+ return createRenderer<RenderTableCaption>(element, WTFMove(style));
+ case BOX:
+ case INLINE_BOX:
+ return createRenderer<RenderDeprecatedFlexibleBox>(element, WTFMove(style));
</ins><span class="cx"> case FLEX:
</span><span class="cx"> case INLINE_FLEX:
</span><span class="cx"> case WEBKIT_FLEX:
</span><span class="lines">@@ -192,35 +209,7 @@
</span><span class="cx"> case GRID:
</span><span class="cx"> case INLINE_GRID:
</span><span class="cx"> return createRenderer<RenderGrid>(element, WTFMove(style));
</span><del>- case BOX:
- case INLINE_BOX:
- return createRenderer<RenderDeprecatedFlexibleBox>(element, WTFMove(style));
- default: {
- if (creationType == OnlyCreateBlockAndFlexboxRenderers)
- return createRenderer<RenderBlockFlow>(element, WTFMove(style));
- switch (style.display()) {
- case TABLE:
- case INLINE_TABLE:
- return createRenderer<RenderTable>(element, WTFMove(style));
- case TABLE_CELL:
- return createRenderer<RenderTableCell>(element, WTFMove(style));
- case TABLE_CAPTION:
- return createRenderer<RenderTableCaption>(element, WTFMove(style));
- case TABLE_ROW_GROUP:
- case TABLE_HEADER_GROUP:
- case TABLE_FOOTER_GROUP:
- return createRenderer<RenderTableSection>(element, WTFMove(style));
- case TABLE_ROW:
- return createRenderer<RenderTableRow>(element, WTFMove(style));
- case TABLE_COLUMN_GROUP:
- case TABLE_COLUMN:
- return createRenderer<RenderTableCol>(element, WTFMove(style));
- default:
- break;
- }
- break;
</del><span class="cx"> }
</span><del>- }
</del><span class="cx"> ASSERT_NOT_REACHED();
</span><span class="cx"> return nullptr;
</span><span class="cx"> }
</span><span class="lines">@@ -1219,10 +1208,9 @@
</span><span class="cx"> // Paint all phases atomically, as though the element established its own stacking context.
</span><span class="cx"> // (See Appendix E.2, section 6.4 on inline block/table/replaced elements in the CSS2.1 specification.)
</span><span class="cx"> // This is also used by other elements (e.g. flex items and grid items).
</span><del>- PaintPhase paintPhaseToUse = isExcludedAndPlacedInBorder() ? paintInfo.phase : PaintPhaseForeground;
- if (paintInfo.phase == PaintPhaseSelection)
</del><ins>+ if (paintInfo.phase == PaintPhaseSelection) {
</ins><span class="cx"> paint(paintInfo, childPoint);
</span><del>- else if (paintInfo.phase == paintPhaseToUse) {
</del><ins>+ } else if (paintInfo.phase == PaintPhaseForeground) {
</ins><span class="cx"> paintPhase(*this, PaintPhaseBlockBackground, paintInfo, childPoint);
</span><span class="cx"> paintPhase(*this, PaintPhaseChildBlockBackgrounds, paintInfo, childPoint);
</span><span class="cx"> paintPhase(*this, PaintPhaseFloat, paintInfo, childPoint);
</span><span class="lines">@@ -1230,7 +1218,7 @@
</span><span class="cx"> paintPhase(*this, PaintPhaseOutline, paintInfo, childPoint);
</span><span class="cx">
</span><span class="cx"> // Reset |paintInfo| to the original phase.
</span><del>- paintInfo.phase = paintPhaseToUse;
</del><ins>+ paintInfo.phase = PaintPhaseForeground;
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderElement.h (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderElement.h        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/rendering/RenderElement.h        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -36,8 +36,7 @@
</span><span class="cx"> public:
</span><span class="cx"> virtual ~RenderElement();
</span><span class="cx">
</span><del>- enum RendererCreationType { CreateAllRenderers, OnlyCreateBlockAndFlexboxRenderers };
- static RenderPtr<RenderElement> createFor(Element&, RenderStyle&&, RendererCreationType = CreateAllRenderers);
</del><ins>+ static RenderPtr<RenderElement> createFor(Element&, RenderStyle&&);
</ins><span class="cx">
</span><span class="cx"> bool hasInitializedStyle() const { return m_hasInitializedStyle; }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderFieldsetcpp"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/rendering/RenderFieldset.cpp (0 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderFieldset.cpp         (rev 0)
+++ trunk/Source/WebCore/rendering/RenderFieldset.cpp        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -0,0 +1,222 @@
</span><ins>+/*
+ * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
+ * (C) 1999 Antti Koivisto (koivisto@kde.org)
+ * (C) 2000 Dirk Mueller (mueller@kde.org)
+ * Copyright (C) 2004, 2005, 2006 Apple Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "config.h"
+#include "RenderFieldset.h"
+
+#include "CSSPropertyNames.h"
+#include "GraphicsContext.h"
+#include "HTMLFieldSetElement.h"
+#include "HTMLLegendElement.h"
+#include "HTMLNames.h"
+#include "PaintInfo.h"
+#include "RenderChildIterator.h"
+
+namespace WebCore {
+
+using namespace HTMLNames;
+
+RenderFieldset::RenderFieldset(HTMLFieldSetElement& element, RenderStyle&& style)
+ : RenderBlockFlow(element, WTFMove(style))
+{
+}
+
+void RenderFieldset::computePreferredLogicalWidths()
+{
+ RenderBlockFlow::computePreferredLogicalWidths();
+ if (RenderBox* legend = findLegend()) {
+ int legendMinWidth = legend->minPreferredLogicalWidth();
+
+ Length legendMarginLeft = legend->style().marginLeft();
+ Length legendMarginRight = legend->style().marginLeft();
+
+ if (legendMarginLeft.isFixed())
+ legendMinWidth += legendMarginLeft.value();
+
+ if (legendMarginRight.isFixed())
+ legendMinWidth += legendMarginRight.value();
+
+ m_minPreferredLogicalWidth = std::max(m_minPreferredLogicalWidth, legendMinWidth + horizontalBorderAndPaddingExtent());
+ }
+}
+
+RenderObject* RenderFieldset::layoutSpecialExcludedChild(bool relayoutChildren)
+{
+ RenderBox* box = findLegend();
+ if (!box)
+ return nullptr;
+
+ RenderBox& legend = *box;
+ if (relayoutChildren)
+ legend.setNeedsLayout();
+ legend.layoutIfNeeded();
+
+ LayoutUnit logicalLeft;
+ if (style().isLeftToRightDirection()) {
+ switch (legend.style().textAlign()) {
+ case CENTER:
+ logicalLeft = (logicalWidth() - logicalWidthForChild(legend)) / 2;
+ break;
+ case RIGHT:
+ logicalLeft = logicalWidth() - borderEnd() - paddingEnd() - logicalWidthForChild(legend);
+ break;
+ default:
+ logicalLeft = borderStart() + paddingStart() + marginStartForChild(legend);
+ break;
+ }
+ } else {
+ switch (legend.style().textAlign()) {
+ case LEFT:
+ logicalLeft = borderStart() + paddingStart();
+ break;
+ case CENTER: {
+ // Make sure that the extra pixel goes to the end side in RTL (since it went to the end side
+ // in LTR).
+ LayoutUnit centeredWidth = logicalWidth() - logicalWidthForChild(legend);
+ logicalLeft = centeredWidth - centeredWidth / 2;
+ break;
+ }
+ default:
+ logicalLeft = logicalWidth() - borderStart() - paddingStart() - marginStartForChild(legend) - logicalWidthForChild(legend);
+ break;
+ }
+ }
+
+ setLogicalLeftForChild(legend, logicalLeft);
+
+ LayoutUnit fieldsetBorderBefore = borderBefore();
+ LayoutUnit legendLogicalHeight = logicalHeightForChild(legend);
+
+ LayoutUnit legendLogicalTop;
+ LayoutUnit collapsedLegendExtent;
+ // FIXME: We need to account for the legend's margin before too.
+ if (fieldsetBorderBefore > legendLogicalHeight) {
+ // The <legend> is smaller than the associated fieldset before border
+ // so the latter determines positioning of the <legend>. The sizing depends
+ // on the legend's margins as we want to still follow the author's cues.
+ // Firefox completely ignores the margins in this case which seems wrong.
+ legendLogicalTop = (fieldsetBorderBefore - legendLogicalHeight) / 2;
+ collapsedLegendExtent = std::max<LayoutUnit>(fieldsetBorderBefore, legendLogicalTop + legendLogicalHeight + marginAfterForChild(legend));
+ } else
+ collapsedLegendExtent = legendLogicalHeight + marginAfterForChild(legend);
+
+ setLogicalTopForChild(legend, legendLogicalTop);
+ setLogicalHeight(paddingBefore() + collapsedLegendExtent);
+
+ return &legend;
+}
+
+RenderBox* RenderFieldset::findLegend(FindLegendOption option)
+{
+ for (auto& legend : childrenOfType<RenderBox>(*this)) {
+ if (option == IgnoreFloatingOrOutOfFlow && legend.isFloatingOrOutOfFlowPositioned())
+ continue;
+
+ if (is<HTMLLegendElement>(legend.element()))
+ return &legend;
+ }
+ return nullptr;
+}
+
+void RenderFieldset::paintBoxDecorations(PaintInfo& paintInfo, const LayoutPoint& paintOffset)
+{
+ if (!paintInfo.shouldPaintWithinRoot(*this))
+ return;
+
+ LayoutRect paintRect(paintOffset, size());
+ RenderBox* legend = findLegend();
+ if (!legend)
+ return RenderBlockFlow::paintBoxDecorations(paintInfo, paintOffset);
+
+ // FIXME: We need to work with "rl" and "bt" block flow directions. In those
+ // cases the legend is embedded in the right and bottom borders respectively.
+ // https://bugs.webkit.org/show_bug.cgi?id=47236
+ if (style().isHorizontalWritingMode()) {
+ LayoutUnit yOff = (legend->y() > 0) ? LayoutUnit() : (legend->height() - borderTop()) / 2;
+ paintRect.setHeight(paintRect.height() - yOff);
+ paintRect.setY(paintRect.y() + yOff);
+ } else {
+ LayoutUnit xOff = (legend->x() > 0) ? LayoutUnit() : (legend->width() - borderLeft()) / 2;
+ paintRect.setWidth(paintRect.width() - xOff);
+ paintRect.setX(paintRect.x() + xOff);
+ }
+
+ if (!boxShadowShouldBeAppliedToBackground(paintRect.location(), determineBackgroundBleedAvoidance(paintInfo.context())))
+ paintBoxShadow(paintInfo, paintRect, style(), Normal);
+ paintFillLayers(paintInfo, style().visitedDependentColor(CSSPropertyBackgroundColor), style().backgroundLayers(), paintRect);
+ paintBoxShadow(paintInfo, paintRect, style(), Inset);
+
+ if (!style().hasBorder())
+ return;
+
+ // Create a clipping region around the legend and paint the border as normal
+ GraphicsContext& graphicsContext = paintInfo.context();
+ GraphicsContextStateSaver stateSaver(graphicsContext);
+
+ // FIXME: We need to work with "rl" and "bt" block flow directions. In those
+ // cases the legend is embedded in the right and bottom borders respectively.
+ // https://bugs.webkit.org/show_bug.cgi?id=47236
+ LayoutRect clipRect;
+ if (style().isHorizontalWritingMode()) {
+ clipRect.setX(paintRect.x() + legend->x());
+ clipRect.setY(paintRect.y());
+ clipRect.setWidth(legend->width());
+ clipRect.setHeight(std::max<LayoutUnit>(style().borderTopWidth(), legend->height() - ((legend->height() - borderTop()) / 2)));
+ } else {
+ clipRect.setX(paintRect.x());
+ clipRect.setY(paintRect.y() + legend->y());
+ clipRect.setWidth(std::max<LayoutUnit>(style().borderLeftWidth(), legend->width()));
+ clipRect.setHeight(legend->height());
+ }
+ graphicsContext.clipOut(snapRectToDevicePixels(clipRect, document().deviceScaleFactor()));
+
+ paintBorder(paintInfo, paintRect, style());
+}
+
+void RenderFieldset::paintMask(PaintInfo& paintInfo, const LayoutPoint& paintOffset)
+{
+ if (style().visibility() != VISIBLE || paintInfo.phase != PaintPhaseMask)
+ return;
+
+ LayoutRect paintRect = LayoutRect(paintOffset, size());
+ RenderBox* legend = findLegend();
+ if (!legend)
+ return RenderBlockFlow::paintMask(paintInfo, paintOffset);
+
+ // FIXME: We need to work with "rl" and "bt" block flow directions. In those
+ // cases the legend is embedded in the right and bottom borders respectively.
+ // https://bugs.webkit.org/show_bug.cgi?id=47236
+ if (style().isHorizontalWritingMode()) {
+ LayoutUnit yOff = (legend->y() > 0) ? LayoutUnit() : (legend->height() - borderTop()) / 2;
+ paintRect.expand(0, -yOff);
+ paintRect.move(0, yOff);
+ } else {
+ LayoutUnit xOff = (legend->x() > 0) ? LayoutUnit() : (legend->width() - borderLeft()) / 2;
+ paintRect.expand(-xOff, 0);
+ paintRect.move(xOff, 0);
+ }
+
+ paintMaskImages(paintInfo, paintRect);
+}
+
+} // namespace WebCore
</ins></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderFieldseth"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/rendering/RenderFieldset.h (0 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderFieldset.h         (rev 0)
+++ trunk/Source/WebCore/rendering/RenderFieldset.h        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -0,0 +1,59 @@
</span><ins>+/*
+ * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
+ * (C) 1999 Antti Koivisto (koivisto@kde.org)
+ * (C) 2000 Dirk Mueller (mueller@kde.org)
+ * Copyright (C) 2004, 2006, 2009 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ *
+ */
+
+#pragma once
+
+#include "HTMLFieldSetElement.h"
+#include "RenderBlockFlow.h"
+
+namespace WebCore {
+
+class HTMLFieldSetElement;
+
+class RenderFieldset final : public RenderBlockFlow {
+public:
+ RenderFieldset(HTMLFieldSetElement&, RenderStyle&&);
+
+ enum FindLegendOption { IgnoreFloatingOrOutOfFlow, IncludeFloatingOrOutOfFlow };
+ RenderBox* findLegend(FindLegendOption = IgnoreFloatingOrOutOfFlow);
+
+ HTMLFieldSetElement& fieldSetElement() const { return downcast<HTMLFieldSetElement>(nodeForNonAnonymous()); }
+
+private:
+ void element() const = delete;
+
+ const char* renderName() const override { return "RenderFieldSet"; }
+ bool isFieldset() const override { return true; }
+
+ RenderObject* layoutSpecialExcludedChild(bool relayoutChildren) override;
+
+ void computePreferredLogicalWidths() override;
+ bool avoidsFloats() const override { return true; }
+
+ void paintBoxDecorations(PaintInfo&, const LayoutPoint&) override;
+ void paintMask(PaintInfo&, const LayoutPoint&) override;
+};
+
+} // namespace WebCore
+
+SPECIALIZE_TYPE_TRAITS_RENDER_OBJECT(RenderFieldset, isFieldset())
</ins></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderFlexibleBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -79,16 +79,12 @@
</span><span class="cx">
</span><span class="cx"> void RenderFlexibleBox::computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const
</span><span class="cx"> {
</span><del>- LayoutUnit childMinWidth;
- LayoutUnit childMaxWidth;
- bool hadExcludedChildren = computePreferredWidthsForExcludedChildren(childMinWidth, childMaxWidth);
-
</del><span class="cx"> // FIXME: We're ignoring flex-basis here and we shouldn't. We can't start
</span><span class="cx"> // honoring it though until the flex shorthand stops setting it to 0. See
</span><span class="cx"> // https://bugs.webkit.org/show_bug.cgi?id=116117 and
</span><span class="cx"> // https://crbug.com/240765.
</span><span class="cx"> for (RenderBox* child = firstChildBox(); child; child = child->nextSiblingBox()) {
</span><del>- if (child->isOutOfFlowPositioned() || child->isExcludedFromNormalLayout())
</del><ins>+ if (child->isOutOfFlowPositioned())
</ins><span class="cx"> continue;
</span><span class="cx">
</span><span class="cx"> LayoutUnit margin = marginIntrinsicLogicalWidthForChild(*child);
</span><span class="lines">@@ -121,11 +117,6 @@
</span><span class="cx"> minLogicalWidth = std::max(LayoutUnit(), minLogicalWidth);
</span><span class="cx"> maxLogicalWidth = std::max(LayoutUnit(), maxLogicalWidth);
</span><span class="cx">
</span><del>- if (hadExcludedChildren) {
- minLogicalWidth = std::max(minLogicalWidth, childMinWidth);
- maxLogicalWidth = std::max(maxLogicalWidth, childMaxWidth);
- }
-
</del><span class="cx"> LayoutUnit scrollbarWidth(scrollbarLogicalWidth());
</span><span class="cx"> maxLogicalWidth += scrollbarWidth;
</span><span class="cx"> minLogicalWidth += scrollbarWidth;
</span><span class="lines">@@ -183,7 +174,7 @@
</span><span class="cx"> RenderBox* baselineChild = nullptr;
</span><span class="cx"> int childNumber = 0;
</span><span class="cx"> for (RenderBox* child = m_orderIterator.first(); child; child = m_orderIterator.next()) {
</span><del>- if (m_orderIterator.shouldSkipChild(*child))
</del><ins>+ if (child->isOutOfFlowPositioned())
</ins><span class="cx"> continue;
</span><span class="cx"> if (alignmentForChild(*child) == ItemPositionBaseline && !hasAutoMarginsInCrossAxis(*child)) {
</span><span class="cx"> baselineChild = child;
</span><span class="lines">@@ -284,14 +275,8 @@
</span><span class="cx">
</span><span class="cx"> prepareOrderIteratorAndMargins();
</span><span class="cx">
</span><del>- // 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.
- layoutExcludedChildren(relayoutChildren);
-
</del><span class="cx"> ChildFrameRects oldChildRects;
</span><span class="cx"> appendChildFrameRects(oldChildRects);
</span><del>-
</del><span class="cx"> layoutFlexItems(relayoutChildren);
</span><span class="cx">
</span><span class="cx"> endAndCommitUpdateScrollInfoAfterLayoutTransaction();
</span><span class="lines">@@ -517,6 +502,8 @@
</span><span class="cx"> return contentLogicalWidth();
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+// MERGEPOINT
+
</ins><span class="cx"> std::optional<LayoutUnit> RenderFlexibleBox::computeMainAxisExtentForChild(const RenderBox& child, SizeType sizeType, const Length& size)
</span><span class="cx"> {
</span><span class="cx"> // If we have a horizontal flow, that means the main size is the width.
</span><span class="lines">@@ -859,10 +846,9 @@
</span><span class="cx"> Vector<FlexItem> allItems;
</span><span class="cx"> m_orderIterator.first();
</span><span class="cx"> for (RenderBox* child = m_orderIterator.currentChild(); child; child = m_orderIterator.next()) {
</span><del>- if (m_orderIterator.shouldSkipChild(*child)) {
</del><ins>+ if (child->isOutOfFlowPositioned()) {
</ins><span class="cx"> // Out-of-flow children are not flex items, so we skip them here.
</span><del>- if (child->isOutOfFlowPositioned())
- prepareChildForPositionedLayout(*child);
</del><ins>+ prepareChildForPositionedLayout(*child);
</ins><span class="cx"> continue;
</span><span class="cx"> }
</span><span class="cx"> allItems.append(constructFlexItem(*child, relayoutChildren));
</span><span class="lines">@@ -1053,7 +1039,9 @@
</span><span class="cx"> OrderIteratorPopulator populator(m_orderIterator);
</span><span class="cx">
</span><span class="cx"> for (RenderBox* child = firstChildBox(); child; child = child->nextSiblingBox()) {
</span><del>- if (!populator.collectChild(*child))
</del><ins>+ populator.collectChild(*child);
+
+ if (child->isOutOfFlowPositioned())
</ins><span class="cx"> continue;
</span><span class="cx">
</span><span class="cx"> // Before running the flex algorithm, 'auto' has a margin of 0.
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderGridcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderGrid.cpp (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderGrid.cpp        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/rendering/RenderGrid.cpp        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -241,11 +241,6 @@
</span><span class="cx"> setLogicalHeight(0);
</span><span class="cx"> updateLogicalWidth();
</span><span class="cx">
</span><del>- // 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.
- layoutExcludedChildren(relayoutChildren);
-
</del><span class="cx"> placeItemsOnGrid(m_grid, TrackSizing);
</span><span class="cx">
</span><span class="cx"> // At this point the logical width is always definite as the above call to updateLogicalWidth()
</span><span class="lines">@@ -398,10 +393,6 @@
</span><span class="cx">
</span><span class="cx"> void RenderGrid::computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const
</span><span class="cx"> {
</span><del>- LayoutUnit childMinWidth;
- LayoutUnit childMaxWidth;
- bool hadExcludedChildren = computePreferredWidthsForExcludedChildren(childMinWidth, childMaxWidth);
-
</del><span class="cx"> Grid grid(const_cast<RenderGrid&>(*this));
</span><span class="cx"> placeItemsOnGrid(grid, IntrinsicSizeComputation);
</span><span class="cx">
</span><span class="lines">@@ -408,11 +399,6 @@
</span><span class="cx"> GridTrackSizingAlgorithm algorithm(this, grid);
</span><span class="cx"> computeTrackSizesForIndefiniteSize(algorithm, ForColumns, grid, minLogicalWidth, maxLogicalWidth);
</span><span class="cx">
</span><del>- if (hadExcludedChildren) {
- minLogicalWidth = std::max(minLogicalWidth, childMinWidth);
- maxLogicalWidth = std::max(maxLogicalWidth, childMaxWidth);
- }
-
</del><span class="cx"> LayoutUnit scrollbarWidth = intrinsicScrollbarLogicalWidth();
</span><span class="cx"> minLogicalWidth += scrollbarWidth;
</span><span class="cx"> maxLogicalWidth += scrollbarWidth;
</span><span class="lines">@@ -595,7 +581,7 @@
</span><span class="cx"> Vector<RenderBox*> specifiedMajorAxisAutoGridItems;
</span><span class="cx"> bool hasAnyOrthogonalGridItem = false;
</span><span class="cx"> for (auto* child = grid.orderIterator().first(); child; child = grid.orderIterator().next()) {
</span><del>- if (grid.orderIterator().shouldSkipChild(*child))
</del><ins>+ if (child->isOutOfFlowPositioned())
</ins><span class="cx"> continue;
</span><span class="cx">
</span><span class="cx"> hasAnyOrthogonalGridItem = hasAnyOrthogonalGridItem || isOrthogonalChild(*child);
</span><span class="lines">@@ -638,7 +624,7 @@
</span><span class="cx">
</span><span class="cx"> #if ENABLE(ASSERT)
</span><span class="cx"> for (auto* child = grid.orderIterator().first(); child; child = grid.orderIterator().next()) {
</span><del>- if (grid.orderIterator().shouldSkipChild(*child))
</del><ins>+ if (child->isOutOfFlowPositioned())
</ins><span class="cx"> continue;
</span><span class="cx">
</span><span class="cx"> GridArea area = grid.gridItemArea(*child);
</span><span class="lines">@@ -658,9 +644,11 @@
</span><span class="cx"> unsigned maximumColumnIndex = GridPositionsResolver::explicitGridColumnCount(style(), autoRepeatColumns);
</span><span class="cx">
</span><span class="cx"> for (RenderBox* child = firstChildBox(); child; child = child->nextSiblingBox()) {
</span><del>- if (!populator.collectChild(*child))
</del><ins>+ if (child->isOutOfFlowPositioned())
</ins><span class="cx"> continue;
</span><del>-
</del><ins>+
+ populator.collectChild(*child);
+
</ins><span class="cx"> GridSpan rowPositions = GridPositionsResolver::resolveGridPositionsFromStyle(style(), *child, ForRows, autoRepeatRows);
</span><span class="cx"> if (!rowPositions.isIndefinite()) {
</span><span class="cx"> smallestRowStart = std::min(smallestRowStart, rowPositions.untranslatedStartLine());
</span><span class="lines">@@ -896,10 +884,8 @@
</span><span class="cx"> populateGridPositionsForDirection(ForRows);
</span><span class="cx">
</span><span class="cx"> for (RenderBox* child = firstChildBox(); child; child = child->nextSiblingBox()) {
</span><del>-
- if (m_grid.orderIterator().shouldSkipChild(*child)) {
- if (child->isOutOfFlowPositioned())
- prepareChildForPositionedLayout(*child);
</del><ins>+ if (child->isOutOfFlowPositioned()) {
+ prepareChildForPositionedLayout(*child);
</ins><span class="cx"> continue;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderMultiColumnFlowThreadcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderMultiColumnFlowThread.cpp (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderMultiColumnFlowThread.cpp        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/rendering/RenderMultiColumnFlowThread.cpp        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -153,14 +153,6 @@
</span><span class="cx"> LayoutStateDisabler layoutStateDisabler(view());
</span><span class="cx"> RenderTreeInternalMutationScope reparentingIsOn(view());
</span><span class="cx"> multicolContainer->moveChildrenTo(this, multicolContainer->firstChild(), this, true);
</span><del>-
- if (multicolContainer->isFieldset()) {
- // Keep legends out of the flow thread.
- for (auto& box : childrenOfType<RenderBox>(*this)) {
- if (box.isLegend())
- moveChildTo(multicolContainer, &box, true);
- }
- }
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void RenderMultiColumnFlowThread::evacuateAndDestroy()
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderMultiColumnSetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderMultiColumnSet.cpp (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderMultiColumnSet.cpp        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/rendering/RenderMultiColumnSet.cpp        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -319,7 +319,7 @@
</span><span class="cx"> return false;
</span><span class="cx">
</span><span class="cx"> if (RenderBox* next = RenderMultiColumnFlowThread::nextColumnSetOrSpannerSiblingOf(this)) {
</span><del>- if (!next->isRenderMultiColumnSet() && !next->isLegend()) {
</del><ins>+ if (!next->isRenderMultiColumnSet()) {
</ins><span class="cx"> // If we're followed by a spanner, we need to balance.
</span><span class="cx"> ASSERT(multiColumnFlowThread()->findColumnSpannerPlaceholder(next));
</span><span class="cx"> return true;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderObject.cpp (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderObject.cpp        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/rendering/RenderObject.cpp        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -158,12 +158,6 @@
</span><span class="cx"> return node() && node()->hasTagName(legendTag);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-
-bool RenderObject::isFieldset() const
-{
- return node() && node()->hasTagName(fieldsetTag);
-}
-
</del><span class="cx"> bool RenderObject::isHTMLMarquee() const
</span><span class="cx"> {
</span><span class="cx"> return node() && node()->renderer() == this && node()->hasTagName(marqueeTag);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderObject.h (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderObject.h        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/rendering/RenderObject.h        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -226,7 +226,7 @@
</span><span class="cx">
</span><span class="cx"> virtual bool isDetailsMarker() const { return false; }
</span><span class="cx"> virtual bool isEmbeddedObject() const { return false; }
</span><del>- bool isFieldset() const;
</del><ins>+ virtual bool isFieldset() const { return false; }
</ins><span class="cx"> virtual bool isFileUploadControl() const { return false; }
</span><span class="cx"> virtual bool isFrame() const { return false; }
</span><span class="cx"> virtual bool isFrameSet() const { return false; }
</span><span class="lines">@@ -448,10 +448,6 @@
</span><span class="cx"> bool hasOutlineAutoAncestor() const { return m_bitfields.hasRareData() && rareData().hasOutlineAutoAncestor(); }
</span><span class="cx"> bool isRegisteredForVisibleInViewportCallback() { return m_bitfields.hasRareData() && rareData().isRegisteredForVisibleInViewportCallback(); }
</span><span class="cx">
</span><del>- bool isExcludedFromNormalLayout() const { return m_bitfields.isExcludedFromNormalLayout(); }
- void setIsExcludedFromNormalLayout(bool excluded) { m_bitfields.setIsExcludedFromNormalLayout(excluded); }
- bool isExcludedAndPlacedInBorder() const { return isExcludedFromNormalLayout() && isLegend(); }
-
</del><span class="cx"> enum VisibleInViewportState {
</span><span class="cx"> VisibilityUnknown,
</span><span class="cx"> VisibleInViewport,
</span><span class="lines">@@ -905,7 +901,6 @@
</span><span class="cx"> , m_hasTransformRelatedProperty(false)
</span><span class="cx"> , m_everHadLayout(false)
</span><span class="cx"> , m_childrenInline(false)
</span><del>- , m_isExcludedFromNormalLayout(false)
</del><span class="cx"> , m_positionedState(IsStaticallyPositioned)
</span><span class="cx"> , m_selectionState(SelectionNone)
</span><span class="cx"> , m_flowThreadState(NotInsideFlowThread)
</span><span class="lines">@@ -941,8 +936,6 @@
</span><span class="cx">
</span><span class="cx"> // from RenderBlock
</span><span class="cx"> ADD_BOOLEAN_BITFIELD(childrenInline, ChildrenInline);
</span><del>-
- ADD_BOOLEAN_BITFIELD(isExcludedFromNormalLayout, IsExcludedFromNormalLayout);
</del><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> unsigned m_positionedState : 2; // PositionedState
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderRubyRuncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderRubyRun.cpp (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderRubyRun.cpp        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/rendering/RenderRubyRun.cpp        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -213,19 +213,17 @@
</span><span class="cx"> return renderer;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void RenderRubyRun::layoutExcludedChildren(bool relayoutChildren)
</del><ins>+RenderObject* RenderRubyRun::layoutSpecialExcludedChild(bool relayoutChildren)
</ins><span class="cx"> {
</span><del>- RenderBlockFlow::layoutExcludedChildren(relayoutChildren);
-
</del><span class="cx"> StackStats::LayoutCheckPoint layoutCheckPoint;
</span><span class="cx"> // Don't bother positioning the RenderRubyRun yet.
</span><span class="cx"> RenderRubyText* rt = rubyText();
</span><span class="cx"> if (!rt)
</span><del>- return;
- rt->setIsExcludedFromNormalLayout(true);
</del><ins>+ return 0;
</ins><span class="cx"> if (relayoutChildren)
</span><span class="cx"> rt->setChildNeedsLayout(MarkOnlyThis);
</span><span class="cx"> rt->layoutIfNeeded();
</span><ins>+ return rt;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void RenderRubyRun::layout()
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderRubyRunh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderRubyRun.h (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderRubyRun.h        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/rendering/RenderRubyRun.h        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -51,7 +51,7 @@
</span><span class="cx"> RenderRubyBase* rubyBase() const;
</span><span class="cx"> RenderRubyBase* rubyBaseSafe(); // creates the base if it doesn't already exist
</span><span class="cx">
</span><del>- void layoutExcludedChildren(bool relayoutChildren) override;
</del><ins>+ RenderObject* layoutSpecialExcludedChild(bool relayoutChildren) override;
</ins><span class="cx"> void layout() override;
</span><span class="cx"> void layoutBlock(bool relayoutChildren, LayoutUnit pageHeight = 0) override;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTablecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTable.cpp (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTable.cpp        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/rendering/RenderTable.cpp        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -753,7 +753,7 @@
</span><span class="cx"> paintOutline(paintInfo, LayoutRect(paintOffset, size()));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void RenderTable::adjustBorderBoxRectForPainting(LayoutRect& rect)
</del><ins>+void RenderTable::subtractCaptionRect(LayoutRect& rect) const
</ins><span class="cx"> {
</span><span class="cx"> for (unsigned i = 0; i < m_captions.size(); i++) {
</span><span class="cx"> LayoutUnit captionLogicalHeight = m_captions[i]->logicalHeight() + m_captions[i]->marginBefore() + m_captions[i]->marginAfter();
</span><span class="lines">@@ -768,8 +768,6 @@
</span><span class="cx"> rect.move(captionLogicalHeight, 0);
</span><span class="cx"> }
</span><span class="cx"> }
</span><del>-
- RenderBlock::adjustBorderBoxRectForPainting(rect);
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void RenderTable::paintBoxDecorations(PaintInfo& paintInfo, const LayoutPoint& paintOffset)
</span><span class="lines">@@ -778,8 +776,8 @@
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> LayoutRect rect(paintOffset, size());
</span><del>- adjustBorderBoxRectForPainting(rect);
-
</del><ins>+ subtractCaptionRect(rect);
+
</ins><span class="cx"> BackgroundBleedAvoidance bleedAvoidance = determineBackgroundBleedAvoidance(paintInfo.context());
</span><span class="cx"> if (!boxShadowShouldBeAppliedToBackground(rect.location(), bleedAvoidance))
</span><span class="cx"> paintBoxShadow(paintInfo, rect, style(), Normal);
</span><span class="lines">@@ -796,7 +794,7 @@
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> LayoutRect rect(paintOffset, size());
</span><del>- adjustBorderBoxRectForPainting(rect);
</del><ins>+ subtractCaptionRect(rect);
</ins><span class="cx">
</span><span class="cx"> paintMaskImages(paintInfo, rect);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTableh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTable.h (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTable.h        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/rendering/RenderTable.h        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -314,7 +314,7 @@
</span><span class="cx">
</span><span class="cx"> void addOverflowFromChildren() final;
</span><span class="cx">
</span><del>- void adjustBorderBoxRectForPainting(LayoutRect&) override;
</del><ins>+ void subtractCaptionRect(LayoutRect&) const;
</ins><span class="cx">
</span><span class="cx"> void recalcCollapsedBorders();
</span><span class="cx"> void recalcSections() const;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTableCellcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTableCell.cpp (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTableCell.cpp        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/rendering/RenderTableCell.cpp        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -1307,8 +1307,6 @@
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> LayoutRect paintRect = LayoutRect(paintOffset, frameRect().size());
</span><del>- adjustBorderBoxRectForPainting(paintRect);
-
</del><span class="cx"> paintBoxShadow(paintInfo, paintRect, style(), Normal);
</span><span class="cx">
</span><span class="cx"> // Paint our cell background.
</span><span class="lines">@@ -1331,10 +1329,7 @@
</span><span class="cx"> if (!tableElt->collapseBorders() && style().emptyCells() == HIDE && !firstChild())
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- LayoutRect paintRect = LayoutRect(paintOffset, frameRect().size());
- adjustBorderBoxRectForPainting(paintRect);
-
- paintMaskImages(paintInfo, paintRect);
</del><ins>+ paintMaskImages(paintInfo, LayoutRect(paintOffset, frameRect().size()));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool RenderTableCell::boxShadowShouldBeAppliedToBackground(const LayoutPoint&, BackgroundBleedAvoidance, InlineFlowBox*) const
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTextControlcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTextControl.cpp (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTextControl.cpp        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/rendering/RenderTextControl.cpp        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -197,16 +197,12 @@
</span><span class="cx"> rects.append(LayoutRect(additionalOffset, size()));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void RenderTextControl::layoutExcludedChildren(bool relayoutChildren)
</del><ins>+RenderObject* RenderTextControl::layoutSpecialExcludedChild(bool relayoutChildren)
</ins><span class="cx"> {
</span><del>- RenderBlockFlow::layoutExcludedChildren(relayoutChildren);
-
</del><span class="cx"> HTMLElement* placeholder = textFormControlElement().placeholderElement();
</span><span class="cx"> RenderElement* placeholderRenderer = placeholder ? placeholder->renderer() : 0;
</span><span class="cx"> if (!placeholderRenderer)
</span><del>- return;
- placeholderRenderer->setIsExcludedFromNormalLayout(true);
-
</del><ins>+ return 0;
</ins><span class="cx"> if (relayoutChildren) {
</span><span class="cx"> // The markParents arguments should be false because this function is
</span><span class="cx"> // called from layout() of the parent and the placeholder layout doesn't
</span><span class="lines">@@ -213,6 +209,7 @@
</span><span class="cx"> // affect the parent layout.
</span><span class="cx"> placeholderRenderer->setChildNeedsLayout(MarkOnlyThis);
</span><span class="cx"> }
</span><ins>+ return placeholderRenderer;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> #if PLATFORM(IOS)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTextControlh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTextControl.h (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTextControl.h        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/rendering/RenderTextControl.h        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -64,7 +64,7 @@
</span><span class="cx"> virtual LayoutUnit computeControlLogicalHeight(LayoutUnit lineHeight, LayoutUnit nonContentHeight) const = 0;
</span><span class="cx">
</span><span class="cx"> LogicalExtentComputedValues computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logicalTop) const override;
</span><del>- void layoutExcludedChildren(bool relayoutChildren) override;
</del><ins>+ RenderObject* layoutSpecialExcludedChild(bool relayoutChildren) override;
</ins><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> void element() const = delete;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTextControlMultiLinecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTextControlMultiLine.cpp (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTextControlMultiLine.cpp        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/rendering/RenderTextControlMultiLine.cpp        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -87,13 +87,9 @@
</span><span class="cx"> return RenderBox::baselinePosition(baselineType, firstLine, direction, linePositionMode);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void RenderTextControlMultiLine::layoutExcludedChildren(bool relayoutChildren)
</del><ins>+RenderObject* RenderTextControlMultiLine::layoutSpecialExcludedChild(bool relayoutChildren)
</ins><span class="cx"> {
</span><del>- RenderTextControl::layoutExcludedChildren(relayoutChildren);
- HTMLElement* placeholder = textFormControlElement().placeholderElement();
- RenderElement* placeholderRenderer = placeholder ? placeholder->renderer() : 0;
- if (!placeholderRenderer)
- return;
</del><ins>+ RenderObject* placeholderRenderer = RenderTextControl::layoutSpecialExcludedChild(relayoutChildren);
</ins><span class="cx"> if (is<RenderBox>(placeholderRenderer)) {
</span><span class="cx"> auto& placeholderBox = downcast<RenderBox>(*placeholderRenderer);
</span><span class="cx"> placeholderBox.mutableStyle().setLogicalWidth(Length(contentLogicalWidth() - placeholderBox.borderAndPaddingLogicalWidth(), Fixed));
</span><span class="lines">@@ -101,6 +97,7 @@
</span><span class="cx"> placeholderBox.setX(borderLeft() + paddingLeft());
</span><span class="cx"> placeholderBox.setY(borderTop() + paddingTop());
</span><span class="cx"> }
</span><ins>+ return placeholderRenderer;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTextControlMultiLineh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTextControlMultiLine.h (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTextControlMultiLine.h        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/rendering/RenderTextControlMultiLine.h        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -45,7 +45,7 @@
</span><span class="cx"> LayoutUnit computeControlLogicalHeight(LayoutUnit lineHeight, LayoutUnit nonContentHeight) const override;
</span><span class="cx"> int baselinePosition(FontBaseline, bool firstLine, LineDirectionMode, LinePositionMode = PositionOnContainingLine) const override;
</span><span class="cx">
</span><del>- void layoutExcludedChildren(bool relayoutChildren) override;
</del><ins>+ RenderObject* layoutSpecialExcludedChild(bool relayoutChildren) override;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> inline RenderTextControlMultiLine* HTMLTextAreaElement::renderer() const
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTreeAsTextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTreeAsText.cpp (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTreeAsText.cpp        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/rendering/RenderTreeAsText.cpp        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -272,30 +272,14 @@
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> const RenderBoxModelObject& box = downcast<RenderBoxModelObject>(o);
</span><del>- LayoutUnit borderTop = box.borderTop();
- LayoutUnit borderRight = box.borderRight();
- LayoutUnit borderBottom = box.borderBottom();
- LayoutUnit borderLeft = box.borderLeft();
- if (box.isFieldset()) {
- const auto& block = downcast<RenderBlock>(box);
- if (o.style().writingMode() == TopToBottomWritingMode)
- borderTop -= block.intrinsicBorderForFieldset();
- else if (o.style().writingMode() == BottomToTopWritingMode)
- borderBottom -= block.intrinsicBorderForFieldset();
- else if (o.style().writingMode() == LeftToRightWritingMode)
- borderLeft -= block.intrinsicBorderForFieldset();
- else if (o.style().writingMode() == RightToLeftWritingMode)
- borderRight -= block.intrinsicBorderForFieldset();
-
- }
- if (borderTop || borderRight || borderBottom || borderLeft) {
</del><ins>+ if (box.borderTop() || box.borderRight() || box.borderBottom() || box.borderLeft()) {
</ins><span class="cx"> ts << " [border:";
</span><span class="cx">
</span><span class="cx"> BorderValue prevBorder = o.style().borderTop();
</span><del>- if (!borderTop)
</del><ins>+ if (!box.borderTop())
</ins><span class="cx"> ts << " none";
</span><span class="cx"> else {
</span><del>- ts << " (" << borderTop << "px ";
</del><ins>+ ts << " (" << box.borderTop() << "px ";
</ins><span class="cx"> printBorderStyle(ts, o.style().borderTopStyle());
</span><span class="cx"> Color col = o.style().borderTopColor();
</span><span class="cx"> if (!col.isValid())
</span><span class="lines">@@ -305,10 +289,10 @@
</span><span class="cx">
</span><span class="cx"> if (o.style().borderRight() != prevBorder) {
</span><span class="cx"> prevBorder = o.style().borderRight();
</span><del>- if (!borderRight)
</del><ins>+ if (!box.borderRight())
</ins><span class="cx"> ts << " none";
</span><span class="cx"> else {
</span><del>- ts << " (" << borderRight << "px ";
</del><ins>+ ts << " (" << box.borderRight() << "px ";
</ins><span class="cx"> printBorderStyle(ts, o.style().borderRightStyle());
</span><span class="cx"> Color col = o.style().borderRightColor();
</span><span class="cx"> if (!col.isValid())
</span><span class="lines">@@ -319,10 +303,10 @@
</span><span class="cx">
</span><span class="cx"> if (o.style().borderBottom() != prevBorder) {
</span><span class="cx"> prevBorder = box.style().borderBottom();
</span><del>- if (!borderBottom)
</del><ins>+ if (!box.borderBottom())
</ins><span class="cx"> ts << " none";
</span><span class="cx"> else {
</span><del>- ts << " (" << borderBottom << "px ";
</del><ins>+ ts << " (" << box.borderBottom() << "px ";
</ins><span class="cx"> printBorderStyle(ts, o.style().borderBottomStyle());
</span><span class="cx"> Color col = o.style().borderBottomColor();
</span><span class="cx"> if (!col.isValid())
</span><span class="lines">@@ -333,10 +317,10 @@
</span><span class="cx">
</span><span class="cx"> if (o.style().borderLeft() != prevBorder) {
</span><span class="cx"> prevBorder = o.style().borderLeft();
</span><del>- if (!borderLeft)
</del><ins>+ if (!box.borderLeft())
</ins><span class="cx"> ts << " none";
</span><span class="cx"> else {
</span><del>- ts << " (" << borderLeft << "px ";
</del><ins>+ ts << " (" << box.borderLeft() << "px ";
</ins><span class="cx"> printBorderStyle(ts, o.style().borderLeftStyle());
</span><span class="cx"> Color col = o.style().borderLeftColor();
</span><span class="cx"> if (!col.isValid())
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderingAllInOnecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderingAllInOne.cpp (213422 => 213423)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderingAllInOne.cpp        2017-03-04 14:52:20 UTC (rev 213422)
+++ trunk/Source/WebCore/rendering/RenderingAllInOne.cpp        2017-03-04 17:15:40 UTC (rev 213423)
</span><span class="lines">@@ -62,6 +62,7 @@
</span><span class="cx"> #include "RenderDetailsMarker.cpp"
</span><span class="cx"> #include "RenderElement.cpp"
</span><span class="cx"> #include "RenderEmbeddedObject.cpp"
</span><ins>+#include "RenderFieldset.cpp"
</ins><span class="cx"> #include "RenderFileUploadControl.cpp"
</span><span class="cx"> #include "RenderFlexibleBox.cpp"
</span><span class="cx"> #include "RenderFlowThread.cpp"
</span></span></pre>
</div>
</div>
</body>
</html>