<?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>176620</bug_id>
          
          <creation_ts>2017-09-08 11:25:58 -0700</creation_ts>
          <short_desc>In regular block layout, the width of a child&apos;s margin box should always be equal to that of its containing block</short_desc>
          <delta_ts>2017-09-29 11:50:13 -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>Layout and Rendering</component>
          <version>Safari 10</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.chromium.org/p/chromium/issues/detail?id=708751</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>BlinkMergeCandidate, InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zhifei Fang">facetothefate</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>facetothefate</cc>
    
    <cc>hyatt</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1346883</commentid>
    <comment_count>0</comment_count>
    <who name="Zhifei Fang">facetothefate</who>
    <bug_when>2017-09-08 11:25:58 -0700</bug_when>
    <thetext>Hi,

Orignally, I have filed a bug in blink here:
https://bugs.chromium.org/p/chromium/issues/detail?id=708751

Today I find I repoduce it on my safari.


After checking the code, it looks we have same root cause here

        LayoutUnit newMargin = containerLogicalWidth - computedValues.m_extent - cb.marginStartForChild(*this);
        bool hasInvertedDirection = cb.style().isLeftToRightDirection() != style().isLeftToRightDirection();
        if (hasInvertedDirection)
            computedValues.m_margins.m_start = newMargin;
        else
            computedValues.m_margins.m_end = newMargin;


Simply because at this time marginStartForChild have not been set yet.

if you saw here:

void RenderBox::updateLogicalWidth()
{
    LogicalExtentComputedValues computedValues;
    computeLogicalWidthInRegion(computedValues);

    setLogicalWidth(computedValues.m_extent);
    setLogicalLeft(computedValues.m_position);
    setMarginStart(computedValues.m_margins.m_start);
    setMarginEnd(computedValues.m_margins.m_end);
}

we are calling computeLogicalWidthInRegion first, then use the result to update the margin.

Therefore below path will fix it as I did for blink:

        LayoutUnit newMarginTotal = containerLogicalWidth - computedValues.m_extent;
        bool hasInvertedDirection = cb.style().isLeftToRightDirection() != style().isLeftToRightDirection();
        if (hasInvertedDirection)
            computedValues.m_margins.m_start = 
                 newMarginTotal - computedValues..m_margins.m_end;
        else
            computedValues.m_margins.m_end = 
                 newMarginTotal - computedValues..m_margins.m_start;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346887</commentid>
    <comment_count>1</comment_count>
    <who name="Zhifei Fang">facetothefate</who>
    <bug_when>2017-09-08 11:29:32 -0700</bug_when>
    <thetext>Please confirm, then I can start the commit process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349322</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2017-09-15 09:02:10 -0700</bug_when>
    <thetext>Please see &lt;https://webkit.org/contributing-code/&gt;. It is unlikely that anyone will have a lot of comments about a code snippet, so the best way to proceed is to make a patch as described in this document, and once all tests pass, someone can review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349324</commentid>
    <comment_count>3</comment_count>
    <who name="Zhifei Fang">facetothefate</who>
    <bug_when>2017-09-15 09:03:24 -0700</bug_when>
    <thetext>Woring on it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349330</commentid>
    <comment_count>4</comment_count>
    <who name="Zhifei Fang">facetothefate</who>
    <bug_when>2017-09-15 09:16:16 -0700</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #2)
&gt; Please see &lt;https://webkit.org/contributing-code/&gt;. It is unlikely that
&gt; anyone will have a lot of comments about a code snippet, so the best way to
&gt; proceed is to make a patch as described in this document, and once all tests
&gt; pass, someone can review.

I just wonder should this bug firstly assign to me, not sure if it is not assign to me I can upload the code or not.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349341</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2017-09-15 09:25:25 -0700</bug_when>
    <thetext>You can attach patches without having the bug assigned to you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350220</commentid>
    <comment_count>6</comment_count>
      <attachid>321174</attachid>
    <who name="Zhifei Fang">facetothefate</who>
    <bug_when>2017-09-18 19:54:32 -0700</bug_when>
    <thetext>Created attachment 321174
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350855</commentid>
    <comment_count>7</comment_count>
    <who name="Zhifei Fang">facetothefate</who>
    <bug_when>2017-09-20 11:08:14 -0700</bug_when>
    <thetext>Need a reviewer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350864</commentid>
    <comment_count>8</comment_count>
      <attachid>321174</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2017-09-20 11:21:40 -0700</bug_when>
    <thetext>Comment on attachment 321174
Patch

I see that this is a port of a Blink patch. It might be good to reference that, since this is actually a Blink merge and not an original patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350865</commentid>
    <comment_count>9</comment_count>
      <attachid>321174</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-09-20 11:22:45 -0700</bug_when>
    <thetext>Comment on attachment 321174
Patch

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

&gt; Source/WebCore/rendering/RenderBox.cpp:2453
&gt; +            computedValues.m_margins.m_start = 
&gt; +                newMarginTotal - computedValues.m_margins.m_end;

Don&apos;t wrap these lines.

&gt; Source/WebCore/rendering/RenderBox.cpp:2456
&gt; +            computedValues.m_margins.m_end = 
&gt; +                newMarginTotal - computedValues.m_margins.m_start;

Ditto.

&gt; LayoutTests/fast/block/over-constrained-auto-margin.html:21
&gt; +        &lt;script&gt;

I think this test could just dump the render tree, and not run any script.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350869</commentid>
    <comment_count>10</comment_count>
      <attachid>321174</attachid>
    <who name="alan">zalan</who>
    <bug_when>2017-09-20 11:24:35 -0700</bug_when>
    <thetext>Comment on attachment 321174
Patch

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

&gt; Source/WebCore/rendering/RenderBox.cpp:2448
&gt; +        // We should not use the cb.marginStartForChild here, it has not been set yet

This comment is confusing as it refers to something that&apos;s not there anymore. It should rather be part of the Changlog entry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350888</commentid>
    <comment_count>11</comment_count>
      <attachid>321174</attachid>
    <who name="Zhifei Fang">facetothefate</who>
    <bug_when>2017-09-20 11:58:24 -0700</bug_when>
    <thetext>Comment on attachment 321174
Patch

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

&gt;&gt; LayoutTests/fast/block/over-constrained-auto-margin.html:21
&gt;&gt; +        &lt;script&gt;
&gt; 
&gt; I think this test could just dump the render tree, and not run any script.

I am not sure about &quot;dump the render tree&quot;, do we dump it as a picture? if so, the margin right will not been show in the picture, the error happened with the computed style it is should be -116px instead of -106px, we cannot tell it on the picture.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350889</commentid>
    <comment_count>12</comment_count>
    <who name="Zhifei Fang">facetothefate</who>
    <bug_when>2017-09-20 11:59:23 -0700</bug_when>
    <thetext>(In reply to Dave Hyatt from comment #8)
&gt; Comment on attachment 321174 [details]
&gt; Patch
&gt; 
&gt; I see that this is a port of a Blink patch. It might be good to reference
&gt; that, since this is actually a Blink merge and not an original patch.

Add it in the change log ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350894</commentid>
    <comment_count>13</comment_count>
      <attachid>321174</attachid>
    <who name="alan">zalan</who>
    <bug_when>2017-09-20 12:06:01 -0700</bug_when>
    <thetext>Comment on attachment 321174
Patch

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

&gt;&gt;&gt; LayoutTests/fast/block/over-constrained-auto-margin.html:21
&gt;&gt;&gt; +        &lt;script&gt;
&gt;&gt; 
&gt;&gt; I think this test could just dump the render tree, and not run any script.
&gt; 
&gt; I am not sure about &quot;dump the render tree&quot;, do we dump it as a picture? if so, the margin right will not been show in the picture, the error happened with the computed style it is should be -116px instead of -106px, we cannot tell it on the picture.

Dumping the render tree means something like this -&gt;
layer at (0,0) size 943x600
  RenderView at (0,0) size 800x600
layer at (0,0) size 800x528
  RenderBlock {HTML} at (0,0) size 800x528
    RenderBody {BODY} at (8,8) size 784x0
      RenderBlock {DIV} at (0,0) size 935x0
        RenderBlock (floating) {DIV} at (0,0) size 935x500 [bgcolor=#EEEEEE]
          RenderBlock {DIV} at (0,0) size 935x500 [bgcolor=#ADD8E6]
        RenderBlock (floating) {DIV} at (0,0) size 146x300 [bgcolor=#A9A9A9]
        RenderBlock (floating) {DIV} at (635,0) size 300x300 [bgcolor=#A9A9A9]

But I think running script is fine, it&apos;s just I don&apos;t see why you remove the child at the end. Shouldn&apos;t it be something like instead?
document.body.offsetHeight; 
shouldBe(&quot;getComputedStyle(target1).marginRight&quot;, &quot;&apos;-116px&apos;&quot;);
shouldBe(&quot;getComputedStyle(target2).marginLeft&quot;, &quot;&apos;-116px&apos;&quot;);
(no need to do getElementById)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350895</commentid>
    <comment_count>14</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2017-09-20 12:06:34 -0700</bug_when>
    <thetext>(In reply to Zhifei Fang from comment #12)
&gt; (In reply to Dave Hyatt from comment #8)
&gt; &gt; Comment on attachment 321174 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; I see that this is a port of a Blink patch. It might be good to reference
&gt; &gt; that, since this is actually a Blink merge and not an original patch.
&gt; 
&gt; Add it in the change log ?
Yes, please.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350926</commentid>
    <comment_count>15</comment_count>
    <who name="Zhifei Fang">facetothefate</who>
    <bug_when>2017-09-20 13:24:52 -0700</bug_when>
    <thetext>(In reply to zalan from comment #13)
&gt; Comment on attachment 321174 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=321174&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; LayoutTests/fast/block/over-constrained-auto-margin.html:21
&gt; &gt;&gt;&gt; +        &lt;script&gt;
&gt; &gt;&gt; 
&gt; &gt;&gt; I think this test could just dump the render tree, and not run any script.
&gt; &gt; 
&gt; &gt; I am not sure about &quot;dump the render tree&quot;, do we dump it as a picture? if so, the margin right will not been show in the picture, the error happened with the computed style it is should be -116px instead of -106px, we cannot tell it on the picture.
&gt; 
&gt; Dumping the render tree means something like this -&gt;
&gt; layer at (0,0) size 943x600
&gt;   RenderView at (0,0) size 800x600
&gt; layer at (0,0) size 800x528
&gt;   RenderBlock {HTML} at (0,0) size 800x528
&gt;     RenderBody {BODY} at (8,8) size 784x0
&gt;       RenderBlock {DIV} at (0,0) size 935x0
&gt;         RenderBlock (floating) {DIV} at (0,0) size 935x500 [bgcolor=#EEEEEE]
&gt;           RenderBlock {DIV} at (0,0) size 935x500 [bgcolor=#ADD8E6]
&gt;         RenderBlock (floating) {DIV} at (0,0) size 146x300 [bgcolor=#A9A9A9]
&gt;         RenderBlock (floating) {DIV} at (635,0) size 300x300
&gt; [bgcolor=#A9A9A9]
&gt; 
&gt; But I think running script is fine, it&apos;s just I don&apos;t see why you remove the
&gt; child at the end. Shouldn&apos;t it be something like instead?
&gt; document.body.offsetHeight; 
&gt; shouldBe(&quot;getComputedStyle(target1).marginRight&quot;, &quot;&apos;-116px&apos;&quot;);
&gt; shouldBe(&quot;getComputedStyle(target2).marginLeft&quot;, &quot;&apos;-116px&apos;&quot;);
&gt; (no need to do getElementById)

Got it, thanks !</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350927</commentid>
    <comment_count>16</comment_count>
    <who name="Zhifei Fang">facetothefate</who>
    <bug_when>2017-09-20 13:25:07 -0700</bug_when>
    <thetext>(In reply to zalan from comment #14)
&gt; (In reply to Zhifei Fang from comment #12)
&gt; &gt; (In reply to Dave Hyatt from comment #8)
&gt; &gt; &gt; Comment on attachment 321174 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; I see that this is a port of a Blink patch. It might be good to reference
&gt; &gt; &gt; that, since this is actually a Blink merge and not an original patch.
&gt; &gt; 
&gt; &gt; Add it in the change log ?
&gt; Yes, please.

No problem, will do it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351020</commentid>
    <comment_count>17</comment_count>
      <attachid>321174</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2017-09-20 15:19:45 -0700</bug_when>
    <thetext>Comment on attachment 321174
Patch

r=me, just throw the link to the crbug in the changeling, so that all the history/discussion can be easily seen. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351021</commentid>
    <comment_count>18</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2017-09-20 15:20:20 -0700</bug_when>
    <thetext>ChangeLog. Stupid autocomplete. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351093</commentid>
    <comment_count>19</comment_count>
    <who name="Zhifei Fang">facetothefate</who>
    <bug_when>2017-09-20 18:26:20 -0700</bug_when>
    <thetext>(In reply to Dave Hyatt from comment #18)
&gt; ChangeLog. Stupid autocomplete. :)

sure thing, will do</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351127</commentid>
    <comment_count>20</comment_count>
      <attachid>321408</attachid>
    <who name="Zhifei Fang">facetothefate</who>
    <bug_when>2017-09-20 21:46:44 -0700</bug_when>
    <thetext>Created attachment 321408
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351129</commentid>
    <comment_count>21</comment_count>
    <who name="Zhifei Fang">facetothefate</who>
    <bug_when>2017-09-20 21:47:35 -0700</bug_when>
    <thetext>(In reply to Zhifei Fang from comment #20)
&gt; Created attachment 321408 [details]
&gt; Patch

New patch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351210</commentid>
    <comment_count>22</comment_count>
      <attachid>321408</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-21 09:28:38 -0700</bug_when>
    <thetext>Comment on attachment 321408
Patch

Clearing flags on attachment: 321408

Committed r222321: &lt;http://trac.webkit.org/changeset/222321&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351211</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-21 09:28:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353459</commentid>
    <comment_count>24</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 12:32:38 -0700</bug_when>
    <thetext>&lt;rdar://problem/34693454&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321174</attachid>
            <date>2017-09-18 19:54:32 -0700</date>
            <delta_ts>2017-09-20 21:46:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176620-20170918225431.patch</filename>
            <type>text/plain</type>
            <size>4556</size>
            <attacher name="Zhifei Fang">facetothefate</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMjE5NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE3LTA5LTE4ICBaaGlmZWkg
RkFORyAgPGZhY2V0b3RoZWZhdGVAZ21haWwuY29tPgorCisgICAgICAgIEluIHJlZ3VsYXIgYmxv
Y2sgbGF5b3V0LCB0aGUgd2lkdGggb2YgYSBjaGlsZCdzIG1hcmdpbiBib3ggc2hvdWxkIGFsd2F5
cyBiZSBlcXVhbCB0byB0aGF0IG9mIGl0cyBjb250YWluaW5nIGJsb2NrCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY2MjAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBmYXN0L2Jsb2NrL292ZXIt
Y29uc3RyYWluZWQtYXV0by1tYXJnaW4uaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVMb2dpY2FsV2lk
dGhJblJlZ2lvbiBjb25zdCk6CisKIDIwMTctMDktMTkgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBw
bGUuY29tPgogCiAgICAgICAgIFtXZWJHTF0gYWNjZWxlcmF0ZWQgdGV4SW1hZ2UyRCBmb3Igdmlk
ZW8gZG9lc24ndCByZXNwZWN0IGZsaXBZCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmNwcAkocmV2aXNpb24gMjIyMTkyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0NDUsMTIgKzI0NDUsMTUgQEAgdm9p
ZCBSZW5kZXJCb3g6OmNvbXB1dGVMb2dpY2FsV2lkdGhJblJlZwogI2VuZGlmCiAgICAgICAgICYm
ICFjYi5pc1JlbmRlckdyaWQoKQogICAgICAgICApIHsKLSAgICAgICAgTGF5b3V0VW5pdCBuZXdN
YXJnaW4gPSBjb250YWluZXJMb2dpY2FsV2lkdGggLSBjb21wdXRlZFZhbHVlcy5tX2V4dGVudCAt
IGNiLm1hcmdpblN0YXJ0Rm9yQ2hpbGQoKnRoaXMpOworICAgICAgICAvLyBXZSBzaG91bGQgbm90
IHVzZSB0aGUgY2IubWFyZ2luU3RhcnRGb3JDaGlsZCBoZXJlLCBpdCBoYXMgbm90IGJlZW4gc2V0
IHlldAorICAgICAgICBMYXlvdXRVbml0IG5ld01hcmdpblRvdGFsID0gY29udGFpbmVyTG9naWNh
bFdpZHRoIC0gY29tcHV0ZWRWYWx1ZXMubV9leHRlbnQ7CiAgICAgICAgIGJvb2wgaGFzSW52ZXJ0
ZWREaXJlY3Rpb24gPSBjYi5zdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSAhPSBzdHls
ZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKTsKICAgICAgICAgaWYgKGhhc0ludmVydGVkRGly
ZWN0aW9uKQotICAgICAgICAgICAgY29tcHV0ZWRWYWx1ZXMubV9tYXJnaW5zLm1fc3RhcnQgPSBu
ZXdNYXJnaW47CisgICAgICAgICAgICBjb21wdXRlZFZhbHVlcy5tX21hcmdpbnMubV9zdGFydCA9
IAorICAgICAgICAgICAgICAgIG5ld01hcmdpblRvdGFsIC0gY29tcHV0ZWRWYWx1ZXMubV9tYXJn
aW5zLm1fZW5kOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wdXRlZFZhbHVlcy5tX21h
cmdpbnMubV9lbmQgPSBuZXdNYXJnaW47CisgICAgICAgICAgICBjb21wdXRlZFZhbHVlcy5tX21h
cmdpbnMubV9lbmQgPSAKKyAgICAgICAgICAgICAgICBuZXdNYXJnaW5Ub3RhbCAtIGNvbXB1dGVk
VmFsdWVzLm1fbWFyZ2lucy5tX3N0YXJ0OwogICAgIH0KIH0KIApJbmRleDogTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24g
MjIyMTgxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMTctMDktMTggIFpoaWZlaSBGQU5HICA8ZmFjZXRvdGhlZmF0ZUBnbWFpbC5j
b20+CisKKyAgICAgICAgSW4gcmVndWxhciBibG9jayBsYXlvdXQsIHRoZSB3aWR0aCBvZiBhIGNo
aWxkJ3MgbWFyZ2luIGJveCBzaG91bGQgYWx3YXlzIGJlIGVxdWFsIHRvIHRoYXQgb2YgaXRzIGNv
bnRhaW5pbmcgYmxvY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3NjYyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogZmFzdC9ibG9jay9vdmVyLWNvbnN0cmFpbmVkLWF1dG8tbWFyZ2luLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ibG9jay9vdmVyLWNvbnN0cmFpbmVkLWF1dG8t
bWFyZ2luLmh0bWw6IEFkZGVkLgorCiAyMDE3LTA5LTE4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRp
QGFwcGxlLmNvbT4KIAogICAgICAgICBBbm90aGVyIFdLMSB1bmZsYWtlIGF0dGVtcHQuCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL292ZXItY29uc3RyYWluZWQtYXV0by1tYXJnaW4tZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYmxvY2svb3Zlci1jb25z
dHJhaW5lZC1hdXRvLW1hcmdpbi1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9ibG9jay9vdmVyLWNvbnN0cmFpbmVkLWF1dG8tbWFyZ2luLWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMgQEAKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZSh0
YXJnZXQxKS5tYXJnaW5SaWdodCBpcyAnLTExNnB4JworUEFTUyBnZXRDb21wdXRlZFN0eWxlKHRh
cmdldDIpLm1hcmdpbkxlZnQgaXMgJy0xMTZweCcKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9i
bG9jay9vdmVyLWNvbnN0cmFpbmVkLWF1dG8tbWFyZ2luLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9ibG9jay9vdmVyLWNvbnN0cmFpbmVkLWF1dG8tbWFyZ2luLmh0bWwJKG5v
bmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9vdmVyLWNvbnN0cmFpbmVkLWF1
dG8tbWFyZ2luLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5
PgorICAgICAgICA8ZGl2IGlkPSJ3cmFwcGVyIj4KKyAgICAgICAgICAgIDxkaXYgc3R5bGU9Indp
ZHRoOiA0MDBweDsgYm9yZGVyOiAzcHggc29saWQgYmxhY2s7Ij4KKyAgICAgICAgICAgICAgICA8
ZGl2IGlkPSJ0YXJnZXQxIiBzdHlsZT0iCisgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0
OiAxMHB4OyB3aWR0aDogNTAwcHg7IGJvcmRlcjogM3B4IHNvbGlkIGdyYXk7IAorICAgICAgICAg
ICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87Ij4KKyAgICAgICAgICAgICAgICA8L2Rpdj4K
KyAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgPGRpdiBzdHlsZT0id2lkdGg6IDQwMHB4
OyBib3JkZXI6IDNweCBzb2xpZCBibGFjazsgZGlyZWN0aW9uOiBydGw7Ij4KKyAgICAgICAgICAg
ICAgICA8ZGl2IGlkPSJ0YXJnZXQyIiBzdHlsZT0iCisgICAgICAgICAgICAgICAgICAgIG1hcmdp
bi1yaWdodDogMTBweDsgd2lkdGg6IDUwMHB4OyBib3JkZXI6IDNweCBzb2xpZCBncmF5OyAKKyAg
ICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87ICI+CisgICAgICAgICAgICAgICAg
PC9kaXY+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxzY3Jp
cHQ+CisgICAgICAgICAgICB0YXJnZXQxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rhcmdl
dDEnKTsKKyAgICAgICAgICAgIHRhcmdldDIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFy
Z2V0MicpOworICAgICAgICAgICAgc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUodGFyZ2V0MSku
bWFyZ2luUmlnaHQiLCAiJy0xMTZweCciKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJnZXRDb21w
dXRlZFN0eWxlKHRhcmdldDIpLm1hcmdpbkxlZnQiLCAiJy0xMTZweCciKTsKKyAgICAgICAgICAg
IGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dyYXBw
ZXInKSk7CisgICAgICAgIDwvc2NyaXB0PgorICAgICAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321408</attachid>
            <date>2017-09-20 21:46:44 -0700</date>
            <delta_ts>2017-09-21 09:28:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176620-20170921004643.patch</filename>
            <type>text/plain</type>
            <size>4413</size>
            <attacher name="Zhifei Fang">facetothefate</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMjE5NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE3LTA5LTE4ICBaaGlmZWkg
RkFORyAgPGZhY2V0b3RoZWZhdGVAZ21haWwuY29tPgorCisgICAgICAgIEluIHJlZ3VsYXIgYmxv
Y2sgbGF5b3V0LCB0aGUgd2lkdGggb2YgYSBjaGlsZCdzIG1hcmdpbiBib3ggc2hvdWxkIGFsd2F5
cyBiZSBlcXVhbCB0byB0aGF0IG9mIGl0cyBjb250YWluaW5nIGJsb2NrCisgICAgICAgIE1lcmdl
IGZyb20gQmxpbmsgaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9k
ZXRhaWw/aWQ9NzA4NzUxCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNzY2MjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0OiBmYXN0L2Jsb2NrL292ZXItY29uc3RyYWluZWQtYXV0by1tYXJnaW4uaHRt
bAorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3g6OmNvbXB1dGVMb2dpY2FsV2lkdGhJblJlZ2lvbiBjb25zdCk6CisKIDIwMTct
MDktMTkgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJHTF0g
YWNjZWxlcmF0ZWQgdGV4SW1hZ2UyRCBmb3IgdmlkZW8gZG9lc24ndCByZXNwZWN0IGZsaXBZCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAkocmV2aXNpb24gMjIyMTky
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI0NDUsMTIgKzI0NDUsMTIgQEAgdm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVMb2dpY2Fs
V2lkdGhJblJlZwogI2VuZGlmCiAgICAgICAgICYmICFjYi5pc1JlbmRlckdyaWQoKQogICAgICAg
ICApIHsKLSAgICAgICAgTGF5b3V0VW5pdCBuZXdNYXJnaW4gPSBjb250YWluZXJMb2dpY2FsV2lk
dGggLSBjb21wdXRlZFZhbHVlcy5tX2V4dGVudCAtIGNiLm1hcmdpblN0YXJ0Rm9yQ2hpbGQoKnRo
aXMpOworICAgICAgICBMYXlvdXRVbml0IG5ld01hcmdpblRvdGFsID0gY29udGFpbmVyTG9naWNh
bFdpZHRoIC0gY29tcHV0ZWRWYWx1ZXMubV9leHRlbnQ7CiAgICAgICAgIGJvb2wgaGFzSW52ZXJ0
ZWREaXJlY3Rpb24gPSBjYi5zdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSAhPSBzdHls
ZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKTsKICAgICAgICAgaWYgKGhhc0ludmVydGVkRGly
ZWN0aW9uKQotICAgICAgICAgICAgY29tcHV0ZWRWYWx1ZXMubV9tYXJnaW5zLm1fc3RhcnQgPSBu
ZXdNYXJnaW47CisgICAgICAgICAgICBjb21wdXRlZFZhbHVlcy5tX21hcmdpbnMubV9zdGFydCA9
IG5ld01hcmdpblRvdGFsIC0gY29tcHV0ZWRWYWx1ZXMubV9tYXJnaW5zLm1fZW5kOwogICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBjb21wdXRlZFZhbHVlcy5tX21hcmdpbnMubV9lbmQgPSBuZXdN
YXJnaW47CisgICAgICAgICAgICBjb21wdXRlZFZhbHVlcy5tX21hcmdpbnMubV9lbmQgPSBuZXdN
YXJnaW5Ub3RhbCAtIGNvbXB1dGVkVmFsdWVzLm1fbWFyZ2lucy5tX3N0YXJ0OwogICAgIH0KIH0K
IApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gMjIyMTgxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDktMTggIFpoaWZlaSBGQU5HICA8
ZmFjZXRvdGhlZmF0ZUBnbWFpbC5jb20+CisKKyAgICAgICAgSW4gcmVndWxhciBibG9jayBsYXlv
dXQsIHRoZSB3aWR0aCBvZiBhIGNoaWxkJ3MgbWFyZ2luIGJveCBzaG91bGQgYWx3YXlzIGJlIGVx
dWFsIHRvIHRoYXQgb2YgaXRzIGNvbnRhaW5pbmcgYmxvY2sKKyAgICAgICAgTWVyZ2UgZnJvbSBC
bGluayBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9p
ZD03MDg3NTEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3NjYyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogZmFzdC9ibG9jay9vdmVyLWNvbnN0cmFpbmVkLWF1dG8tbWFyZ2luLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9ibG9jay9vdmVyLWNvbnN0cmFpbmVkLWF1dG8tbWFyZ2lu
Lmh0bWw6IEFkZGVkLgorCiAyMDE3LTA5LTE4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxl
LmNvbT4KIAogICAgICAgICBBbm90aGVyIFdLMSB1bmZsYWtlIGF0dGVtcHQuCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2Jsb2NrL292ZXItY29uc3RyYWluZWQtYXV0by1tYXJnaW4tZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYmxvY2svb3Zlci1jb25zdHJhaW5l
ZC1hdXRvLW1hcmdpbi1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9ibG9jay9vdmVyLWNvbnN0cmFpbmVkLWF1dG8tbWFyZ2luLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDMgQEAKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQx
KS5tYXJnaW5SaWdodCBpcyAnLTExNnB4JworUEFTUyBnZXRDb21wdXRlZFN0eWxlKHRhcmdldDIp
Lm1hcmdpbkxlZnQgaXMgJy0xMTZweCcKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9v
dmVyLWNvbnN0cmFpbmVkLWF1dG8tbWFyZ2luLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9ibG9jay9vdmVyLWNvbnN0cmFpbmVkLWF1dG8tbWFyZ2luLmh0bWwJKG5vbmV4aXN0
ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9vdmVyLWNvbnN0cmFpbmVkLWF1dG8tbWFy
Z2luLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAg
ICAgICA8ZGl2IGlkPSJ3cmFwcGVyIj4KKyAgICAgICAgICAgIDxkaXYgc3R5bGU9IndpZHRoOiA0
MDBweDsgYm9yZGVyOiAzcHggc29saWQgYmxhY2s7Ij4KKyAgICAgICAgICAgICAgICA8ZGl2IGlk
PSJ0YXJnZXQxIiBzdHlsZT0iCisgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4
OyB3aWR0aDogNTAwcHg7IGJvcmRlcjogM3B4IHNvbGlkIGdyYXk7IAorICAgICAgICAgICAgICAg
ICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87Ij4KKyAgICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAg
ICAgICAgIDwvZGl2PgorICAgICAgICAgICAgPGRpdiBzdHlsZT0id2lkdGg6IDQwMHB4OyBib3Jk
ZXI6IDNweCBzb2xpZCBibGFjazsgZGlyZWN0aW9uOiBydGw7Ij4KKyAgICAgICAgICAgICAgICA8
ZGl2IGlkPSJ0YXJnZXQyIiBzdHlsZT0iCisgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdo
dDogMTBweDsgd2lkdGg6IDUwMHB4OyBib3JkZXI6IDNweCBzb2xpZCBncmF5OyAKKyAgICAgICAg
ICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87ICI+CisgICAgICAgICAgICAgICAgPC9kaXY+
CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxzY3JpcHQ+Cisg
ICAgICAgICAgICBzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQxKS5tYXJnaW5SaWdo
dCIsICInLTExNnB4JyIpOworICAgICAgICAgICAgc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUo
dGFyZ2V0MikubWFyZ2luTGVmdCIsICInLTExNnB4JyIpOworICAgICAgICA8L3NjcmlwdD4KKyAg
ICAgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
      

    </bug>

</bugzilla>