<?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>130552</bug_id>
          
          <creation_ts>2014-03-20 18:02:33 -0700</creation_ts>
          <short_desc>Document assumptions made in TrailingObjects::updateMidpointsForTrailingBoxes</short_desc>
          <delta_ts>2014-03-25 12:48:03 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>130540</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>hyatt</cc>
    
    <cc>jonlee</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>992841</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-03-20 18:02:33 -0700</bug_when>
    <thetext>Document assumptions made in TrailingObjects::updateMidpointsForTrailingBoxes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992842</commentid>
    <comment_count>1</comment_count>
      <attachid>227366</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-03-20 18:05:06 -0700</bug_when>
    <thetext>Created attachment 227366
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992843</commentid>
    <comment_count>2</comment_count>
      <attachid>227366</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-03-20 18:09:56 -0700</bug_when>
    <thetext>Comment on attachment 227366
Patch

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

&gt; Source/WebCore/rendering/line/TrailingObjects.cpp:56
&gt; +            // There is something subtle going on here. This function gets called in two cases:
&gt; +            // 1) In BreakingContext::handleEndOfLine(). The offset below can be 0
&gt; +            // in this case (meaning that the code below sets the offset to 4B), but that is okay
&gt; +            // because BreakingContext::handleEndOfLine() immediately fixes up the offset by calling
&gt; +            // increment() on the iterator, which detects offsets that are beyond the end of its node
&gt; +            // and moves the iterator to the next node.
&gt; +            // 2) When BreakingContext::handleText() detects multiple whitespace characters in a row. In
&gt; +            // that case, the only way that the offset can be 0 is if the first two characters are
&gt; +            // whitespace. However, LineBreaker::nextSegmentBreak() calls
&gt; +            // LineBreaker::skipLeadingWhitespace() to skip over such whitespace before calling
&gt; +            // BreakingContext::handleText().
&gt; +            // Therefore, this -1 wrapping is benign (albeit brittle).

I think it would be better to make the code more self-documenting (and safe) than having to write a comment like this.

&gt; Source/WebCore/rendering/line/TrailingObjects.cpp:57
&gt;              lineMidpointState.midpoints()[trailingSpaceMidpoint].setOffset(lineMidpointState.midpoints()[trailingSpaceMidpoint].offset() -1);

You should add a space before the 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992848</commentid>
    <comment_count>3</comment_count>
      <attachid>227366</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-03-20 18:21:07 -0700</bug_when>
    <thetext>Comment on attachment 227366
Patch

Rather than documenting bad design, I should fix the bad design.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994283</commentid>
    <comment_count>4</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-03-25 12:48:03 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 130540 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227366</attachid>
            <date>2014-03-20 18:05:06 -0700</date>
            <delta_ts>2014-03-20 18:21:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130552-20140320180444.patch</filename>
            <type>text/plain</type>
            <size>2966</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2MDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWU4NmY2MmYyMGMxMjFk
MWM0YmU4ZjU3MDRkOTk5MDVlYzM2MTI4NC4uZTNlOTlmNGU0OTIyMzJjNzVjOGZjYmQxZTc1ZWIw
ZDQyMWEwYjY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE0LTAzLTIwICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgRG9jdW1lbnQg
YXNzdW1wdGlvbnMgbWFkZSBpbiBUcmFpbGluZ09iamVjdHM6OnVwZGF0ZU1pZHBvaW50c0ZvclRy
YWlsaW5nQm94ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzMDU1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZGluZyBhIGNvbW1lbnQgZGVzY3JpYmluZyB3aHkgZGVjcmVtZW50aW5nIGFuIElubGlu
ZUl0ZXJhdG9yIHdoaWNoIGNvdWxkCisgICAgICAgIGhhdmUgYSAwIG9mZnNldCBpcyBiZW5pZ24u
IEl0IGlzIGJldHRlciB0byBoYXZlIHRoZXNlIHN1YnRsZSBpbnRlcmFjdGlvbnMKKyAgICAgICAg
d3JpdHRlbiBkb3duIHNvbWV3aGVyZS4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSB0
aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiByZW5kZXJpbmcvbGluZS9U
cmFpbGluZ09iamVjdHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHJhaWxpbmdPYmplY3RzOjp1
cGRhdGVNaWRwb2ludHNGb3JUcmFpbGluZ0JveGVzKToKKwogMjAxNC0wMy0yMCAgUHJhdGlrIFNv
bGFua2kgIDxwc29sYW5raUBhcHBsZS5jb20+CiAKICAgICAgICAgaU9TIGJ1aWxkIGZpeCBhZnRl
ciByMTY1OTkyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvVHJh
aWxpbmdPYmplY3RzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL1RyYWlsaW5n
T2JqZWN0cy5jcHAKaW5kZXggOTY0OTBjZDViZDFlZDdiYWVkMjcxNTU0Mzc2YjNmOTdhYzUxMTVh
NC4uYzIxYmFkMjRhNDJhMDdkNzQ2ZDQ1YzBhMDFiYzhjZjJhMjEyYmMxMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvVHJhaWxpbmdPYmplY3RzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9UcmFpbGluZ09iamVjdHMuY3BwCkBAIC00Miw2
ICs0MiwxOCBAQCB2b2lkIFRyYWlsaW5nT2JqZWN0czo6dXBkYXRlTWlkcG9pbnRzRm9yVHJhaWxp
bmdCb3hlcyhMaW5lTWlkcG9pbnRTdGF0ZSYgbGluZU1pZAogICAgICAgICBmb3IgKCA7IHRyYWls
aW5nU3BhY2VNaWRwb2ludCA+IDAgJiYgbGluZU1pZHBvaW50U3RhdGUubWlkcG9pbnRzKClbdHJh
aWxpbmdTcGFjZU1pZHBvaW50XS5yZW5kZXJlcigpICE9IG1fd2hpdGVzcGFjZTsgLS10cmFpbGlu
Z1NwYWNlTWlkcG9pbnQpIHsgfQogICAgICAgICBBU1NFUlQodHJhaWxpbmdTcGFjZU1pZHBvaW50
ID49IDApOwogICAgICAgICBpZiAoY29sbGFwc2VGaXJzdFNwYWNlID09IENvbGxhcHNlRmlyc3RT
cGFjZSkKKyAgICAgICAgICAgIC8vIFRoZXJlIGlzIHNvbWV0aGluZyBzdWJ0bGUgZ29pbmcgb24g
aGVyZS4gVGhpcyBmdW5jdGlvbiBnZXRzIGNhbGxlZCBpbiB0d28gY2FzZXM6CisgICAgICAgICAg
ICAvLyAxKSBJbiBCcmVha2luZ0NvbnRleHQ6OmhhbmRsZUVuZE9mTGluZSgpLiBUaGUgb2Zmc2V0
IGJlbG93IGNhbiBiZSAwCisgICAgICAgICAgICAvLyBpbiB0aGlzIGNhc2UgKG1lYW5pbmcgdGhh
dCB0aGUgY29kZSBiZWxvdyBzZXRzIHRoZSBvZmZzZXQgdG8gNEIpLCBidXQgdGhhdCBpcyBva2F5
CisgICAgICAgICAgICAvLyBiZWNhdXNlIEJyZWFraW5nQ29udGV4dDo6aGFuZGxlRW5kT2ZMaW5l
KCkgaW1tZWRpYXRlbHkgZml4ZXMgdXAgdGhlIG9mZnNldCBieSBjYWxsaW5nCisgICAgICAgICAg
ICAvLyBpbmNyZW1lbnQoKSBvbiB0aGUgaXRlcmF0b3IsIHdoaWNoIGRldGVjdHMgb2Zmc2V0cyB0
aGF0IGFyZSBiZXlvbmQgdGhlIGVuZCBvZiBpdHMgbm9kZQorICAgICAgICAgICAgLy8gYW5kIG1v
dmVzIHRoZSBpdGVyYXRvciB0byB0aGUgbmV4dCBub2RlLgorICAgICAgICAgICAgLy8gMikgV2hl
biBCcmVha2luZ0NvbnRleHQ6OmhhbmRsZVRleHQoKSBkZXRlY3RzIG11bHRpcGxlIHdoaXRlc3Bh
Y2UgY2hhcmFjdGVycyBpbiBhIHJvdy4gSW4KKyAgICAgICAgICAgIC8vIHRoYXQgY2FzZSwgdGhl
IG9ubHkgd2F5IHRoYXQgdGhlIG9mZnNldCBjYW4gYmUgMCBpcyBpZiB0aGUgZmlyc3QgdHdvIGNo
YXJhY3RlcnMgYXJlCisgICAgICAgICAgICAvLyB3aGl0ZXNwYWNlLiBIb3dldmVyLCBMaW5lQnJl
YWtlcjo6bmV4dFNlZ21lbnRCcmVhaygpIGNhbGxzCisgICAgICAgICAgICAvLyBMaW5lQnJlYWtl
cjo6c2tpcExlYWRpbmdXaGl0ZXNwYWNlKCkgdG8gc2tpcCBvdmVyIHN1Y2ggd2hpdGVzcGFjZSBi
ZWZvcmUgY2FsbGluZworICAgICAgICAgICAgLy8gQnJlYWtpbmdDb250ZXh0OjpoYW5kbGVUZXh0
KCkuCisgICAgICAgICAgICAvLyBUaGVyZWZvcmUsIHRoaXMgLTEgd3JhcHBpbmcgaXMgYmVuaWdu
IChhbGJlaXQgYnJpdHRsZSkuCiAgICAgICAgICAgICBsaW5lTWlkcG9pbnRTdGF0ZS5taWRwb2lu
dHMoKVt0cmFpbGluZ1NwYWNlTWlkcG9pbnRdLnNldE9mZnNldChsaW5lTWlkcG9pbnRTdGF0ZS5t
aWRwb2ludHMoKVt0cmFpbGluZ1NwYWNlTWlkcG9pbnRdLm9mZnNldCgpIC0xKTsKIAogICAgICAg
ICAvLyBOb3cgbWFrZSBzdXJlIGV2ZXJ5IHNpbmdsZSB0cmFpbGluZ1Bvc2l0aW9uZWRCb3ggZm9s
bG93aW5nIHRoZSB0cmFpbGluZ1NwYWNlTWlkcG9pbnQgcHJvcGVybHkgc3RvcHMgYW5kIHN0YXJ0
cwo=
</data>
<flag name="review"
          id="251623"
          type_id="1"
          status="-"
          setter="mmaxfield"
    />
          </attachment>
      

    </bug>

</bugzilla>