<?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>79316</bug_id>
          
          <creation_ts>2012-02-22 18:29:29 -0800</creation_ts>
          <short_desc>Always notify subtree of removal in ContainerNode::removeChildren</short_desc>
          <delta_ts>2019-02-06 09:02:56 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</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>
          <dependson>79697</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Klein">adamk</reporter>
          <assigned_to name="Adam Klein">adamk</assigned_to>
          <cc>ap</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>562672</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-02-22 18:29:29 -0800</bug_when>
    <thetext>Always notify subtree of removal in ContainerNode::removeChildren</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562673</commentid>
    <comment_count>1</comment_count>
      <attachid>128360</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-02-22 18:30:49 -0800</bug_when>
    <thetext>Created attachment 128360
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562699</commentid>
    <comment_count>2</comment_count>
      <attachid>128360</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-22 19:07:52 -0800</bug_when>
    <thetext>Comment on attachment 128360
Patch

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

&gt; Source/WebCore/dom/ContainerNode.cpp:605
&gt; +            removedChild-&gt;removedFromTree(true);

Are you sure this won&apos;t cause any perf regressions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562705</commentid>
    <comment_count>3</comment_count>
      <attachid>128360</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-02-22 19:16:49 -0800</bug_when>
    <thetext>Comment on attachment 128360
Patch

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

&gt;&gt; Source/WebCore/dom/ContainerNode.cpp:605
&gt;&gt; +            removedChild-&gt;removedFromTree(true);
&gt; 
&gt; Are you sure this won&apos;t cause any perf regressions?

Presumably it _will_ cause a perf regression. But the old code is incorrect. Did you have an alternate implementation suggestion?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563243</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-23 10:45:57 -0800</bug_when>
    <thetext>One thing that confuses me is that removedFromTree doesn&apos;t seem to be called when a non-container node that&apos;s in document tree gets removed. ContainerNode::removedFromDocument() calls removedFromTree(), but Node::removedFromDocument() does not.

It seems that with this patch, removedFromTree() will sometimes be called for text nodes, but not always. What&apos;s the actual contract for this method?

Of course, only ContainerNodes override it, so it doesn&apos;t matter in practice, but it would be good to have clarity here before making fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563247</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-02-23 10:49:32 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; One thing that confuses me is that removedFromTree doesn&apos;t seem to be called when a non-container node that&apos;s in document tree gets removed. ContainerNode::removedFromDocument() calls removedFromTree(), but Node::removedFromDocument() does not.
&gt; 
&gt; It seems that with this patch, removedFromTree() will sometimes be called for text nodes, but not always. What&apos;s the actual contract for this method?
&gt; 
&gt; Of course, only ContainerNodes override it, so it doesn&apos;t matter in practice, but it would be good to have clarity here before making fixes.

To give more context here, removedFromTree seems to be used exclusively for this form-association behavior. The only non-forwarding implementations I could find are in FormAssociatedElement and HTMLImageElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565877</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-02-27 12:04:34 -0800</bug_when>
    <thetext>Any further thoughts from reviewers?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565882</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-27 12:08:19 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; To give more context here, removedFromTree seems to be used exclusively for this form-association behavior. The only non-forwarding implementations I could find are in FormAssociatedElement and HTMLImageElement.

But that may change in the future. Can we add a comment where removedFromTree is called, or better yet rename removedFromTree to containerRemovedFromTree so that such a restraint is clear from the function name?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565895</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-02-27 12:24:17 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #5)
&gt; &gt; To give more context here, removedFromTree seems to be used exclusively for this form-association behavior. The only non-forwarding implementations I could find are in FormAssociatedElement and HTMLImageElement.
&gt; 
&gt; But that may change in the future. Can we add a comment where removedFromTree is called, or better yet rename removedFromTree to containerRemovedFromTree so that such a restraint is clear from the function name?

I&apos;m guessing you&apos;re referring to ap&apos;s comment (#6), not mine.  Assuming that&apos;s the case: rather than simply renaming the method, it could be moved to ContainerNode.  The only argument I can see for leaving it in Node is the section titled  &quot;Notification of document structure changes&quot; in Node.h.  But then, as you point out, this is misleading.  While moving insertedIntoTree/removedFromTree, we could also move childrenChanged, which is particularly silly to be part of Node&apos;s interface.  What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565908</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-27 12:57:24 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; I&apos;m guessing you&apos;re referring to ap&apos;s comment (#6), not mine.  Assuming that&apos;s the case: rather than simply renaming the method, it could be moved to ContainerNode.

That&apos;ll be nice since it&apos;ll also avoid unnecessary virtual function calls.

&gt;The only argument I can see for leaving it in Node is the section titled  &quot;Notification of document structure changes&quot; in Node.h.  But then, as you point out, this is misleading.  While moving insertedIntoTree/removedFromTree, we could also move childrenChanged, which is particularly silly to be part of Node&apos;s interface.  What do you think?

Yeah, I think that&apos;s a great idea. I still feel that we should rename the function to make the code that calls this function self-evident though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565917</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-02-27 13:17:29 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; I&apos;m guessing you&apos;re referring to ap&apos;s comment (#6), not mine.  Assuming that&apos;s the case: rather than simply renaming the method, it could be moved to ContainerNode.
&gt; 
&gt; That&apos;ll be nice since it&apos;ll also avoid unnecessary virtual function calls.
&gt; 
&gt; &gt;The only argument I can see for leaving it in Node is the section titled  &quot;Notification of document structure changes&quot; in Node.h.  But then, as you point out, this is misleading.  While moving insertedIntoTree/removedFromTree, we could also move childrenChanged, which is particularly silly to be part of Node&apos;s interface.  What do you think?
&gt; 
&gt; Yeah, I think that&apos;s a great idea. I still feel that we should rename the function to make the code that calls this function self-evident though.

Seems unnecessary, since most calls will be:

toContainerNode(child)-&gt;removedFromTree()

Let&apos;s see how it looks in the patch and we can consider renaming then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565923</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-27 13:24:19 -0800</bug_when>
    <thetext>Please note that there is extensive documentation for these methods in Node.h. It should definitely be fixed even if functions are not renamed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565925</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-27 13:26:00 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; Seems unnecessary, since most calls will be:
&gt; toContainerNode(child)-&gt;removedFromTree()

That&apos;s a good point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565956</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-02-27 14:02:19 -0800</bug_when>
    <thetext>The discussed refactoring is in https://bugs.webkit.org/show_bug.cgi?id=79697, please take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565998</commentid>
    <comment_count>14</comment_count>
      <attachid>129104</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-02-27 14:58:53 -0800</bug_when>
    <thetext>Created attachment 129104
Merged with trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566203</commentid>
    <comment_count>15</comment_count>
      <attachid>129104</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-27 17:51:51 -0800</bug_when>
    <thetext>Comment on attachment 129104
Merged with trunk

Clearing flags on attachment: 129104

Committed r109054: &lt;http://trac.webkit.org/changeset/109054&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566204</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-27 17:51:56 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502873</commentid>
    <comment_count>17</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2019-02-06 09:02:56 -0800</bug_when>
    <thetext>Mass moving XML DOM bugs to the &quot;DOM&quot; Component.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128360</attachid>
            <date>2012-02-22 18:30:49 -0800</date>
            <delta_ts>2012-02-27 14:58:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79316-20120222183048.patch</filename>
            <type>text/plain</type>
            <size>4020</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjRmNTIxOGQzY2UxNTE4
MWU2NzFmMDg0OWI4MDFjYmFlNDY4N2UyMC4uYjc0MGNlMjJjMDkxZjEwNjU2NTU5MzRlZWRhYWJk
YzMzNGVlMzlmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAyLTIyICBBZGFt
IEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFsd2F5cyBub3RpZnkgc3Vi
dHJlZSBvZiByZW1vdmFsIGluIENvbnRhaW5lck5vZGU6OnJlbW92ZUNoaWxkcmVuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTMxNgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHRoZSBpbkRvY3VtZW50
IGNhc2UsIE5vZGU6OnJlbW92ZWRGcm9tRG9jdW1lbnQgaXMgY2FsbGVkLgorICAgICAgICBJbiB0
aGUgb3V0LW9mLWRvY3VtZW50IGNhc2UsIGNhbGwgTm9kZTo6cmVtb3ZlZEZyb21UcmVlIHRvIGVu
c3VyZSwKKyAgICAgICAgZS5nLiwgZm9ybS1hc3NvY2lhdGVkIGVsZW1lbnRzIGFyZSBwcm9wZXJs
eSBkaXNjb25uZWN0ZWQuCisKKyAgICAgICAgVGVzdDogZmFzdC9mb3Jtcy9mb3JtLWFzc29jaWF0
ZWQtZWxlbWVudC1yZW1vdmFsLmh0bWwKKworICAgICAgICAqIGRvbS9Db250YWluZXJOb2RlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OnJlbW92ZUNoaWxkcmVuKToKKwog
MjAxMi0wMi0yMiAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CiAKICAgICAg
ICAgV2ViIEluc3BlY3RvcjogY29uc29sZSBkb2Vzbid0IHNob3cgcHJvcGVybHkgYXJyYXlzIGZy
b20gd2hpY2ggdGFpbCB2YWx1ZXMgaGF2ZSBiZWVuIGRlbGV0ZWQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250
YWluZXJOb2RlLmNwcAppbmRleCBlYWExZTVlOTg4MTFjOTUyNzExNDJjNTM2NjZiOGU1OGU2YTY3
NTZlLi45OTg3NmVmN2U0ZTEzYjI2MjU3MmJjM2NjMWNkMGQ5MWNhOTgxYjY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCkBAIC02MDEsOSArNjAxLDggQEAgdm9pZCBDb250YWlu
ZXJOb2RlOjpyZW1vdmVDaGlsZHJlbigpCiAgICAgICAgIE5vZGUqIHJlbW92ZWRDaGlsZCA9IHJl
bW92ZWRDaGlsZHJlbltpXS5nZXQoKTsKICAgICAgICAgaWYgKHJlbW92ZWRDaGlsZC0+aW5Eb2N1
bWVudCgpKQogICAgICAgICAgICAgcmVtb3ZlZENoaWxkLT5yZW1vdmVkRnJvbURvY3VtZW50KCk7
Ci0gICAgICAgIC8vIHJlbW92ZUNoaWxkKCkgY2FsbHMgcmVtb3ZlZEZyb21UcmVlKHRydWUpIGlm
IHRoZSBjaGlsZCB3YXMgbm90IGluIHRoZQotICAgICAgICAvLyBkb2N1bWVudC4gVGhlcmUgaXMg
bm8gZXhwbGFuYXRpb24gZm9yIHRoaXMgZGlzY3JlcGFuY3kgYmV0d2VlbiByZW1vdmVDaGlsZCgp
Ci0gICAgICAgIC8vIGFuZCBpdHMgb3B0aW1pemVkIHZlcnNpb24gcmVtb3ZlQ2hpbGRyZW4oKS4K
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVtb3ZlZENoaWxkLT5yZW1vdmVkRnJvbVRyZWUo
dHJ1ZSk7CiAgICAgfQogCiAgICAgZGlzcGF0Y2hTdWJ0cmVlTW9kaWZpZWRFdmVudCgpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDdlYjYyMmFhMDM4YzU2ZjZjYzkxMTVjMDQ4N2VjMjRmODFhNDViZjcuLjk1YWMzOGI2NjQ4
OTE1ZWY4NWQ0MjdhZDk3NjY3ZDk0ZTE0NzcwZDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAx
Mi0wMi0yMiAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KKworICAgICAgICBBbHdh
eXMgbm90aWZ5IHN1YnRyZWUgb2YgcmVtb3ZhbCBpbiBDb250YWluZXJOb2RlOjpyZW1vdmVDaGls
ZHJlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzkz
MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZh
c3QvZm9ybXMvZm9ybS1hc3NvY2lhdGVkLWVsZW1lbnQtcmVtb3ZhbC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvZm9ybS1hc3NvY2lhdGVkLWVsZW1lbnQtcmVtb3Zh
bC5odG1sOiBBZGRlZC4KKwogMjAxMi0wMi0yMiAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdv
b2dsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogY29uc29sZSBkb2Vzbid0IHNob3cg
cHJvcGVybHkgYXJyYXlzIGZyb20gd2hpY2ggdGFpbCB2YWx1ZXMgaGF2ZSBiZWVuIGRlbGV0ZWQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybS1hc3NvY2lhdGVkLWVsZW1l
bnQtcmVtb3ZhbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm0tYXNz
b2NpYXRlZC1lbGVtZW50LXJlbW92YWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmNjYzYzc1
ZTY3YzAwNzhmYWQxNmQyZGIzZDU0NWQ4M2MzNjc4ODQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm0tYXNzb2NpYXRlZC1lbGVtZW50LXJlbW92YWwtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1JlbW92aW5nIGFsbCBjaGlsZHJlbiBvZiBhIGZvcm0g
c2hvdWxkIGRpc2Fzc29jaWF0ZSBhbnkgZm9ybSBjb250cm9scyBpbiB0aGF0IHN1YnRyZWUKKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaW5wdXQuZm9ybSBpcyBudWxsCitQ
QVNTIGZvcm0uZWxlbWVudHMubGVuZ3RoIGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2Zvcm0tYXNzb2NpYXRlZC1lbGVtZW50LXJlbW92YWwuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvZm9ybS1hc3NvY2lhdGVkLWVsZW1lbnQtcmVtb3ZhbC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjAzZmFlMmU0Y2VkNTRiZjBhZjFlODhjYTMwMjI1MGUyOWQ1OWU1ZTQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm0tYXNzb2NpYXRlZC1lbGVtZW50LXJlbW92
YWwuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCJSZW1vdmluZyBhbGwgY2hpbGRyZW4gb2YgYSBmb3JtIHNob3VsZCBkaXNhc3NvY2lh
dGUgYW55IGZvcm0gY29udHJvbHMgaW4gdGhhdCBzdWJ0cmVlIik7Cit2YXIgZm9ybSA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2Zvcm0nKTsKK3ZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2lucHV0Jyk7Citmb3JtLmFwcGVuZENoaWxkKGlucHV0KTsKK2Zvcm0uaW5uZXJIVE1M
ID0gJyc7CitzaG91bGRCZU51bGwoImlucHV0LmZvcm0iKTsKK3Nob3VsZEJlKCJmb3JtLmVsZW1l
bnRzLmxlbmd0aCIsICIwIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129104</attachid>
            <date>2012-02-27 14:58:53 -0800</date>
            <delta_ts>2012-02-27 17:51:51 -0800</delta_ts>
            <desc>Merged with trunk</desc>
            <filename>bug-79316-20120227145853.patch</filename>
            <type>text/plain</type>
            <size>4053</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MDI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGFjZDU5NDA4MjE5MmU0
NGYzOTJiMGI3N2E2MzViNWMyN2JlYmMzMi4uMmNkZGI0ZjYwMDg4ZGRlOTQ3NmZkYjRlMmYyODlj
YjM0NTAyYjQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAyLTIyICBBZGFt
IEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFsd2F5cyBub3RpZnkgc3Vi
dHJlZSBvZiByZW1vdmFsIGluIENvbnRhaW5lck5vZGU6OnJlbW92ZUNoaWxkcmVuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTMxNgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHRoZSBpbkRvY3VtZW50
IGNhc2UsIE5vZGU6OnJlbW92ZWRGcm9tRG9jdW1lbnQgaXMgY2FsbGVkLgorICAgICAgICBJbiB0
aGUgb3V0LW9mLWRvY3VtZW50IGNhc2UsIGNhbGwgQ29udGFpbmVyTm9kZTo6cmVtb3ZlZEZyb21U
cmVlIHRvIGVuc3VyZSwKKyAgICAgICAgZS5nLiwgZm9ybS1hc3NvY2lhdGVkIGVsZW1lbnRzIGFy
ZSBwcm9wZXJseSBkaXNjb25uZWN0ZWQuCisKKyAgICAgICAgVGVzdDogZmFzdC9mb3Jtcy9mb3Jt
LWFzc29jaWF0ZWQtZWxlbWVudC1yZW1vdmFsLmh0bWwKKworICAgICAgICAqIGRvbS9Db250YWlu
ZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OnJlbW92ZUNoaWxk
cmVuKToKKwogMjAxMi0wMi0yNyAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBNb3ZlIFdlYkNvcmUtaW50ZXJuYWwgRE9NIG5vdGlmaWNhdGlvbiBtZXRob2RzIGZy
b20gTm9kZSB0byBDb250YWluZXJOb2RlIHdoZXJlIGFwcHJvcHJpYXRlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Q29udGFpbmVyTm9kZS5jcHAKaW5kZXggN2Y4NWY2NTZmZjMwYTRiMmE5NmQ1N2E2Y2ZiMTVjZjU5
OTczN2YzMS4uY2IzNTI0OWUzYzI4MGQ4MGUyNWZiOWU2OGY4MDIzZDY4ZDU1NmM5MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcApAQCAtNTgyLDkgKzU4Miw4IEBAIHZvaWQgQ29u
dGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGRyZW4oKQogICAgICAgICBOb2RlKiByZW1vdmVkQ2hpbGQg
PSByZW1vdmVkQ2hpbGRyZW5baV0uZ2V0KCk7CiAgICAgICAgIGlmIChyZW1vdmVkQ2hpbGQtPmlu
RG9jdW1lbnQoKSkKICAgICAgICAgICAgIHJlbW92ZWRDaGlsZC0+cmVtb3ZlZEZyb21Eb2N1bWVu
dCgpOwotICAgICAgICAvLyByZW1vdmVDaGlsZCgpIGNhbGxzIHJlbW92ZWRGcm9tVHJlZSh0cnVl
KSBpZiB0aGUgY2hpbGQgd2FzIG5vdCBpbiB0aGUKLSAgICAgICAgLy8gZG9jdW1lbnQuIFRoZXJl
IGlzIG5vIGV4cGxhbmF0aW9uIGZvciB0aGlzIGRpc2NyZXBhbmN5IGJldHdlZW4gcmVtb3ZlQ2hp
bGQoKQotICAgICAgICAvLyBhbmQgaXRzIG9wdGltaXplZCB2ZXJzaW9uIHJlbW92ZUNoaWxkcmVu
KCkuCisgICAgICAgIGVsc2UgaWYgKHJlbW92ZWRDaGlsZC0+aXNDb250YWluZXJOb2RlKCkpCisg
ICAgICAgICAgICB0b0NvbnRhaW5lck5vZGUocmVtb3ZlZENoaWxkKS0+cmVtb3ZlZEZyb21UcmVl
KHRydWUpOwogICAgIH0KIAogICAgIGRpc3BhdGNoU3VidHJlZU1vZGlmaWVkRXZlbnQoKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA2Yzk3N2RhODEwZDBiNTk0YTUzYmI4N2YyODQ1YTBhNTNjMjc2MDQ1Li5lODY0NmRmMDRl
ZThkNDRjMTcyNTYyMTUyNzg0OWYwZWJjMmUzYjZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MTItMDItMjIgIEFkYW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWx3
YXlzIG5vdGlmeSBzdWJ0cmVlIG9mIHJlbW92YWwgaW4gQ29udGFpbmVyTm9kZTo6cmVtb3ZlQ2hp
bGRyZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5
MzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBm
YXN0L2Zvcm1zL2Zvcm0tYXNzb2NpYXRlZC1lbGVtZW50LXJlbW92YWwtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2Zvcm0tYXNzb2NpYXRlZC1lbGVtZW50LXJlbW92
YWwuaHRtbDogQWRkZWQuCisKIDIwMTItMDItMjcgIEFkcmllbm5lIFdhbGtlciAgPGVubmVAZ29v
Z2xlLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLCBtYXJr
IHR3byBmYXN0L3JlZ2V4IHRlc3RzIGFzIGZhaWxpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvZm9ybS1hc3NvY2lhdGVkLWVsZW1lbnQtcmVtb3ZhbC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm0tYXNzb2NpYXRlZC1lbGVtZW50LXJlbW92YWwt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmNjYzYzc1ZTY3YzAwNzhmYWQxNmQyZGIzZDU0NWQ4
M2MzNjc4ODQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm0t
YXNzb2NpYXRlZC1lbGVtZW50LXJlbW92YWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAK
K1JlbW92aW5nIGFsbCBjaGlsZHJlbiBvZiBhIGZvcm0gc2hvdWxkIGRpc2Fzc29jaWF0ZSBhbnkg
Zm9ybSBjb250cm9scyBpbiB0aGF0IHN1YnRyZWUKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgaW5wdXQuZm9ybSBpcyBudWxsCitQQVNTIGZvcm0uZWxlbWVudHMubGVuZ3Ro
IGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm0tYXNzb2NpYXRlZC1lbGVt
ZW50LXJlbW92YWwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybS1hc3NvY2lhdGVk
LWVsZW1lbnQtcmVtb3ZhbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzZmFlMmU0Y2VkNTRiZjBhZjFlODhj
YTMwMjI1MGUyOWQ1OWU1ZTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2Zvcm0tYXNzb2NpYXRlZC1lbGVtZW50LXJlbW92YWwuaHRtbApAQCAtMCwwICsxLDEyIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJSZW1vdmluZyBhbGwgY2hp
bGRyZW4gb2YgYSBmb3JtIHNob3VsZCBkaXNhc3NvY2lhdGUgYW55IGZvcm0gY29udHJvbHMgaW4g
dGhhdCBzdWJ0cmVlIik7Cit2YXIgZm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Zvcm0n
KTsKK3ZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7Citmb3JtLmFw
cGVuZENoaWxkKGlucHV0KTsKK2Zvcm0uaW5uZXJIVE1MID0gJyc7CitzaG91bGRCZU51bGwoImlu
cHV0LmZvcm0iKTsKK3Nob3VsZEJlKCJmb3JtLmVsZW1lbnRzLmxlbmd0aCIsICIwIik7Cis8L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>