<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>100999</bug_id>
          
          <creation_ts>2012-11-01 16:42:02 -0700</creation_ts>
          <short_desc>[CSS Exclusions] Shape-inside content area may be larger than default content area</short_desc>
          <delta_ts>2013-01-24 16:36:57 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>89256</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Bear Travis">betravis</reporter>
          <assigned_to name="Zoltan Horvath">zoltan</assigned_to>
          <cc>donggwan.kim</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>756726</commentid>
    <comment_count>0</comment_count>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-11-01 16:42:02 -0700</bug_when>
    <thetext>The shape-inside content area is currently clipped to the default content area.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761114</commentid>
    <comment_count>1</comment_count>
      <attachid>172882</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-11-07 15:37:18 -0800</bug_when>
    <thetext>Created attachment 172882
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761337</commentid>
    <comment_count>2</comment_count>
      <attachid>172882</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-11-07 22:08:28 -0800</bug_when>
    <thetext>Comment on attachment 172882
proposed patch

View in context: https://bugs.webkit.org/attachment.cgi?id=172882&amp;action=review

The patch only tests a shape inside larger than the content area on the right/bottom sides. It also needs to deal with the upper/left sides. Check out the beginning of layoutRunsAndFloatsInRange and the setLogicalHeight call for how the top is set now. Also, the simple-rectangle.js script is designed to cover these basic test cases. I know that some of the changes here may break the simple float test case, but you might remove that test case to be added at a later date, since making floats work with shape-inside will require significant work.

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:165
&gt;          m_left = max&lt;float&gt;(m_segment-&gt;logicalLeft, m_left);
&gt; -        m_right = min&lt;float&gt;(m_segment-&gt;logicalRight, m_right);
&gt; +
&gt; +        if (!(m_block-&gt;m_floatingObjects &amp;&amp; m_block-&gt;m_floatingObjects-&gt;hasRightObjects()) &amp;&amp; m_segment-&gt;logicalRight &gt; m_right)
&gt; +            m_right = m_segment-&gt;logicalRight;
&gt; +        else
&gt; +            m_right = min&lt;float&gt;(m_segment-&gt;logicalRight, m_right);

Do you know that if there are right floating objects, they necessarily affect this line? I think that the floating objects set contains all of this block&apos;s floats, so they may not. I think these lines should just be:
m_left = m_segment-&gt;logicalLeft;
m_right = m_segment-&gt;logicalRight;

This leaves the issue of floats, but perhaps the better thing would be to pull out the float test and implement that in a subsequent patch.

&gt; LayoutTests/fast/exclusions/shape-inside/shape-inside-with-larger-content-area.html:16
&gt; +        -webkit-shape-inside: rectangle(0, 0, 200px, 200px);

You need to test the rectangle going beyond the bounds of each of the boxes (content, padding, border, margin). I think to start, just going outside the margin box would be sufficient. eg,
#shape-inside {
    position: absolute;
    left: 10px; top: 10px;
    width: 180px; height: 180px;
    -webkit-shape-inside: rectangle(-10px, -10px, 200px, 200px);
}
Although really, this should be wrapped into using resources/simple-rectangle.js, in which case you would include the custom styling:
#shape-inside {
    position: absolute;
    left: 10px; top: 10px;
}
and the script:
createRectangleTest(&apos;shape-inside&apos;, &apos;stylesheet&apos;, { width: 200, height: 200 }, { x: -10, y: -10, width: 200, height: 200 }, &apos;px&apos;, null);
// use null for the last argument if you want to leave shape-inside&apos;s content in place
You can also see
shape-inside-subsequent-blocks, and shape-inside-multiple-blocks-dynamic.
The scripts obviate the need for the &apos;helper&apos; element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761362</commentid>
    <comment_count>3</comment_count>
      <attachid>172882</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-11-07 22:54:49 -0800</bug_when>
    <thetext>Comment on attachment 172882
proposed patch

I removed the patch from the review queue since it needs some improvement.

Thanks for the comments, things are one step clearer know.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815968</commentid>
    <comment_count>4</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2013-01-24 16:36:57 -0800</bug_when>
    <thetext>The spec has been changed. This bug is not valid anymore.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172882</attachid>
            <date>2012-11-07 15:37:18 -0800</date>
            <delta_ts>2012-11-07 22:54:49 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>shapeinsidecanbebigger.patch</filename>
            <type>text/plain</type>
            <size>5236</size>
            <attacher name="Zoltan Horvath">zoltan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMzgxMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDEyLTExLTA3ICBab2x0YW4g
SG9ydmF0aCAgPHpvbHRhbkB3ZWJraXQub3JnPgorCisgICAgICAgIFtDU1MgRXhjbHVzaW9uc10g
U2hhcGUtaW5zaWRlIGNvbnRlbnQgYXJlYSBtYXkgYmUgbGFyZ2VyIHRoYW4gZGVmYXVsdCBjb250
ZW50IGFyZWEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMDk5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoZSBzaGFwZS1pbnNpZGUgY29udGVudCBhcmVhIGNhbiBiZSBiaWdnZXIgdGhhbiB0aGUgZGVm
YXVsdCBjb250ZW50IGFyZWEsIHNvIHdlIG5lZWQKKyAgICAgICAgdG8gc3VwcG9ydCB0aGlzIGJl
aGF2aW9yLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hh
cGUtaW5zaWRlLXdpdGgtbGFyZ2VyLWNvbnRlbnQtYXJlYS5odG1sCisKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpbmVX
aWR0aDo6dXBkYXRlQXZhaWxhYmxlV2lkdGgpOgorCiAyMDEyLTExLTA3ICBBZGFtIEJhcnRoICA8
YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1Y4XSBJbnRydXNpdmVET01XcmFwcGVyTWFw
IHNob3VsZCBiZSB1c2FibGUgZm9yIG1vcmUgdGhhbiBqdXN0IE5vZGVzCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAkocmV2
aXNpb24gMTMzNTAzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGlu
ZUxheW91dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1OCw3ICsxNTgsMTEgQEAKICNpZiBFTkFC
TEUoQ1NTX0VYQ0xVU0lPTlMpCiAgICAgaWYgKG1fc2VnbWVudCkgewogICAgICAgICBtX2xlZnQg
PSBtYXg8ZmxvYXQ+KG1fc2VnbWVudC0+bG9naWNhbExlZnQsIG1fbGVmdCk7Ci0gICAgICAgIG1f
cmlnaHQgPSBtaW48ZmxvYXQ+KG1fc2VnbWVudC0+bG9naWNhbFJpZ2h0LCBtX3JpZ2h0KTsKKwor
ICAgICAgICBpZiAoIShtX2Jsb2NrLT5tX2Zsb2F0aW5nT2JqZWN0cyAmJiBtX2Jsb2NrLT5tX2Zs
b2F0aW5nT2JqZWN0cy0+aGFzUmlnaHRPYmplY3RzKCkpICYmIG1fc2VnbWVudC0+bG9naWNhbFJp
Z2h0ID4gbV9yaWdodCkKKyAgICAgICAgICAgIG1fcmlnaHQgPSBtX3NlZ21lbnQtPmxvZ2ljYWxS
aWdodDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9yaWdodCA9IG1pbjxmbG9hdD4obV9z
ZWdtZW50LT5sb2dpY2FsUmlnaHQsIG1fcmlnaHQpOwogICAgIH0KICNlbmRpZgogCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS13aXRo
LWxhcmdlci1jb250ZW50LWFyZWEtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS13aXRoLWxhcmdl
ci1jb250ZW50LWFyZWEtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXdpdGgtbGFyZ2VyLWNv
bnRlbnQtYXJlYS1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMxIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisgICAgZGl2IHsKKyAgICAg
ICAgZm9udDogQWhlbSwgc2Fucy1zZXJpZjsKKyAgICB9CisgICAgI3NoYXBlLWluc2lkZSB7Cisg
ICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGJsdWU7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0
ZTsKKyAgICAgICAgbGVmdDogMTBweDsKKyAgICAgICAgdG9wOiAxMHB4OworICAgICAgICB3aWR0
aDogMTAwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIHotaW5kZXg6IC0xOwor
ICAgIH0KKyAgICAjc2hhcGUtaW5zaWRlLXJlY3RhbmdsZSB7CisgICAgICAgIGJvcmRlcjogMnB4
IHNvbGlkIGdyZWVuOworICAgICAgICB3aWR0aDogMTk4cHg7CisgICAgICAgIGhlaWdodDogMTk4
cHg7CisgICAgICAgIHBhZGRpbmc6IDJweCAwIDAgMnB4OworICAgIH0KKzwvc3R5bGU+Cis8L2hl
YWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJzaGFwZS1pbnNpZGUtcmVjdGFuZ2xlIj4KKyAgICBU
aGUgYmx1ZSByZWN0YW5nbGUgcmVwcmVzZW50cyB0aGUgc2l6ZSBvZiB0aGUgY29udGVudCBhcmVh
LCB0aGUgZ3JlZW4gcmVjdGFuZ2xlIHJlcHJlc2VudHMgdGhlIHNpemUgb2YgdGhlIHNoYXBlIHdo
YXQgaXMgYmlnZ2VyIHRoYW4gdGhlIGNvbnRlbnQgYXJlYS4gVGhlIHRleHQgc2hvdWxkIG5vdCBi
ZSBjbGlwcGVkIHRvIHRoZSAoYmx1ZSkgZGVmYXVsdCBhcmVhLCBidXQgZmlsbCB0aGUgc3BhY2Ug
aW5zaWRlIHRoZSBncmVlbiBzaGFwZS4gVGhlIHRleHQgc2hvdWxkIG92ZXJmbG93IHRoZSBibHVl
IHJlY3RhbmdsZSBib3RoIGhvcml6b250YWxseSBhbmQgdmVydGljYWxseS4KKyAgICA8L2Rpdj4K
KyAgICA8ZGl2IGlkPSJzaGFwZS1pbnNpZGUiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUt
d2l0aC1sYXJnZXItY29udGVudC1hcmVhLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtd2l0aC1sYXJnZXItY29u
dGVudC1hcmVhLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lv
bnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS13aXRoLWxhcmdlci1jb250ZW50LWFyZWEuaHRt
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgd2lu
ZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRDU1NFeGNsdXNpb25zRW5hYmxlZCh0cnVlKTsKKzwv
c2NyaXB0PgorPHN0eWxlPgorICAgIGRpdiB7CisgICAgICAgIGZvbnQ6IEFoZW0sIHNhbnMtc2Vy
aWY7CisgICAgfQorICAgICNzaGFwZS1pbnNpZGUgeworICAgICAgICBib3JkZXI6IDJweCBzb2xp
ZCBibHVlOworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7Cisg
ICAgICAgIC13ZWJraXQtc2hhcGUtaW5zaWRlOiByZWN0YW5nbGUoMCwgMCwgMjAwcHgsIDIwMHB4
KTsKKyAgICB9CisgICAgI3NoYXBlLWluc2lkZS1oZWxwZXItcmVjdGFuZ2xlIHsKKyAgICAgICAg
Ym9yZGVyOiAycHggc29saWQgZ3JlZW47CisgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAg
aGVpZ2h0OiAyMDBweDsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRp
diBpZD0ic2hhcGUtaW5zaWRlLWhlbHBlci1yZWN0YW5nbGUiPgorICAgICAgICA8ZGl2IGlkPSJz
aGFwZS1pbnNpZGUiPiAgIAorICAgICAgICBUaGUgYmx1ZSByZWN0YW5nbGUgcmVwcmVzZW50cyB0
aGUgc2l6ZSBvZiB0aGUgY29udGVudCBhcmVhLCB0aGUgZ3JlZW4gcmVjdGFuZ2xlIHJlcHJlc2Vu
dHMgdGhlIHNpemUgb2YgdGhlIHNoYXBlIHdoYXQgaXMgYmlnZ2VyIHRoYW4gdGhlIGNvbnRlbnQg
YXJlYS4gVGhlIHRleHQgc2hvdWxkIG5vdCBiZSBjbGlwcGVkIHRvIHRoZSAoYmx1ZSkgZGVmYXVs
dCBhcmVhLCBidXQgZmlsbCB0aGUgc3BhY2UgaW5zaWRlIHRoZSBncmVlbiBzaGFwZS4gVGhlIHRl
eHQgc2hvdWxkIG92ZXJmbG93IHRoZSBibHVlIHJlY3RhbmdsZSBib3RoIGhvcml6b250YWxseSBh
bmQgdmVydGljYWxseS4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzM4MTEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0xMS0wNyAgWm9sdGFuIEhvcnZh
dGggIDx6b2x0YW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNdIFNoYXBl
LWluc2lkZSBjb250ZW50IGFyZWEgbWF5IGJlIGxhcmdlciB0aGFuIGRlZmF1bHQgY29udGVudCBh
cmVhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDA5
OTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUg
c2hhcGUtaW5zaWRlIGNvbnRlbnQgYXJlYSBjYW4gYmUgYmlnZ2VyIHRoYW4gdGhlIGRlZmF1bHQg
Y29udGVudCBhcmVhLCBzbyB3ZSBuZWVkCisgICAgICAgIHRvIHN1cHBvcnQgdGhpcyBiZWhhdmlv
ci4KKworICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRl
LXdpdGgtbGFyZ2VyLWNvbnRlbnQtYXJlYS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS13aXRoLWxhcmdlci1j
b250ZW50LWFyZWEuaHRtbDogQWRkZWQuCisKIDIwMTItMTEtMDcgIERpcmsgUHJhbmtlICA8ZHBy
YW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgdXBkYXRlIGNocm9taXVt
LW1hYy1tb3VudGFpbmxpb24gYmFzZWxpbmVzIGZvciBjc3MyLjEvMjAxMS8wMzIzCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>