<?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>52399</bug_id>
          
          <creation_ts>2011-01-13 14:48:46 -0800</creation_ts>
          <short_desc>Transferring nodes between documents should be aware of the shadow DOM.</short_desc>
          <delta_ts>2011-01-13 15:38:43 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>
          
          <blocked>52317</blocked>
    
    <blocked>52404</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dimitri Glazkov (Google)">dglazkov</reporter>
          <assigned_to name="Dimitri Glazkov (Google)">dglazkov</assigned_to>
          <cc>darin</cc>
    
    <cc>ojan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>333950</commentid>
    <comment_count>0</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-01-13 14:48:46 -0800</bug_when>
    <thetext>Transferring ownership of the document should be aware of the shadow DOM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333954</commentid>
    <comment_count>1</comment_count>
      <attachid>78858</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-01-13 14:54:48 -0800</bug_when>
    <thetext>Created attachment 78858
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333963</commentid>
    <comment_count>2</comment_count>
      <attachid>78858</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-01-13 15:03:16 -0800</bug_when>
    <thetext>Comment on attachment 78858
Patch

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

&gt; Source/WebCore/ChangeLog:6
&gt; +        Transferring ownership of the document should be aware of the shadow DOM.
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=52399

You don’t mean “transferring ownership of the document” here. You mean “transferring nodes between documents”.

&gt; Source/WebCore/dom/Document.cpp:913
&gt; +    source-&gt;setDocumentRecursively(this);

Generally speaking I suggest that the “recursively” version of a function be the one that has the straightforward name. The one with a strange name should be the function that does the partial operation, in this case changing the document of the node itself without affecting its children.

I am not at all fond of the “recursively”-suffix naming scheme.

Are there any call sites for setDocument other than setDocumentRecursively?

&gt; Source/WebCore/dom/Node.cpp:765
&gt; +        if (Node* shadow = toElement(node)-&gt;shadowRoot())
&gt; +            shadow-&gt;setDocumentRecursively(document);

It would be nice if we could do this part non-recursively too. We would write a version of traverseNextNode that crosses shadow boundaries and use that here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333971</commentid>
    <comment_count>3</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-01-13 15:10:25 -0800</bug_when>
    <thetext>Thanks for the quick review!

(In reply to comment #2)
&gt; (From update of attachment 78858 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=78858&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:6
&gt; &gt; +        Transferring ownership of the document should be aware of the shadow DOM.
&gt; &gt; +        https://bugs.webkit.org/show_bug.cgi?id=52399
&gt; 
&gt; You don’t mean “transferring ownership of the document” here. You mean “transferring nodes between documents”.

Doh! I was clearly typing with my heart, not with my head :) Will fix.

&gt; 
&gt; &gt; Source/WebCore/dom/Document.cpp:913
&gt; &gt; +    source-&gt;setDocumentRecursively(this);
&gt; 
&gt; Generally speaking I suggest that the “recursively” version of a function be the one that has the straightforward name. The one with a strange name should be the function that does the partial operation, in this case changing the document of the node itself without affecting its children.
&gt; 
&gt; I am not at all fond of the “recursively”-suffix naming scheme.
&gt;
&gt; Are there any call sites for setDocument other than setDocumentRecursively?

Actually, there&apos;s only one more -- setting the document of the doctype node. And it should just work, recursive or not -- since DOCTYPE can&apos;t have children. I&apos;ll fix this up.

&gt; &gt; Source/WebCore/dom/Node.cpp:765
&gt; &gt; +        if (Node* shadow = toElement(node)-&gt;shadowRoot())
&gt; &gt; +            shadow-&gt;setDocumentRecursively(document);
&gt; 
&gt; It would be nice if we could do this part non-recursively too. We would write a version of traverseNextNode that crosses shadow boundaries and use that here.

Actually, I started with that approach first -- but adding another traverseNextNodeIncludingShadowDOM method seemed less elegant. I agree though -- I&apos;ll file a follow-up bug to clean this up once I can actually exercise this machinery.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333984</commentid>
    <comment_count>4</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-01-13 15:34:32 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Thanks for the quick review!
&gt; 
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 78858 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=78858&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/ChangeLog:6
&gt; &gt; &gt; +        Transferring ownership of the document should be aware of the shadow DOM.
&gt; &gt; &gt; +        https://bugs.webkit.org/show_bug.cgi?id=52399
&gt; &gt; 
&gt; &gt; You don’t mean “transferring ownership of the document” here. You mean “transferring nodes between documents”.
&gt; 
&gt; Doh! I was clearly typing with my heart, not with my head :) Will fix.
&gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/dom/Document.cpp:913
&gt; &gt; &gt; +    source-&gt;setDocumentRecursively(this);
&gt; &gt; 
&gt; &gt; Generally speaking I suggest that the “recursively” version of a function be the one that has the straightforward name. The one with a strange name should be the function that does the partial operation, in this case changing the document of the node itself without affecting its children.
&gt; &gt; 
&gt; &gt; I am not at all fond of the “recursively”-suffix naming scheme.
&gt; &gt;
&gt; &gt; Are there any call sites for setDocument other than setDocumentRecursively?
&gt; 
&gt; Actually, there&apos;s only one more -- setting the document of the doctype node. And it should just work, recursive or not -- since DOCTYPE can&apos;t have children. I&apos;ll fix this up.

As usual, it&apos;s more complicated than that. Let me land this as-is, unblocking the flip-over patch. Then I&apos;ll clean this up.

&gt; 
&gt; &gt; &gt; Source/WebCore/dom/Node.cpp:765
&gt; &gt; &gt; +        if (Node* shadow = toElement(node)-&gt;shadowRoot())
&gt; &gt; &gt; +            shadow-&gt;setDocumentRecursively(document);
&gt; &gt; 
&gt; &gt; It would be nice if we could do this part non-recursively too. We would write a version of traverseNextNode that crosses shadow boundaries and use that here.
&gt; 
&gt; Actually, I started with that approach first -- but adding another traverseNextNodeIncludingShadowDOM method seemed less elegant. I agree though -- I&apos;ll file a follow-up bug to clean this up once I can actually exercise this machinery.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333986</commentid>
    <comment_count>5</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-01-13 15:38:43 -0800</bug_when>
    <thetext>Committed r75746: &lt;http://trac.webkit.org/changeset/75746&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78858</attachid>
            <date>2011-01-13 14:54:48 -0800</date>
            <delta_ts>2011-01-13 15:03:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52399-20110113145446.patch</filename>
            <type>text/plain</type>
            <size>6523</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkM2MyZDc0MmZjNjc0MjM3YTBhOTA3ZmU2NzA1MWQzZDE5MjM1ZmMxLi5l
ZWI2NTg1YjA0ZWY1MzM5NDhkYjY2YWJiNTc5MzFiODkzZDlmMTA1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzIgQEAKKzIwMTEtMDEtMTMgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUcmFuc2ZlcnJpbmcgb3duZXJzaGlwIG9mIHRoZSBkb2N1bWVudCBzaG91bGQgYmUgYXdhcmUg
b2YgdGhlIHNoYWRvdyBET00uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01MjM5OQorCisgICAgICAgIE5vIHZpc2libGUgY2hhbmdlIGluIGJlaGF2aW9y
IGF0IHRoZSBtb21lbnQuCisKKyAgICAgICAgT25jZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTIzMTcgbGFuZHMsIHRoZSBmb2xsb3dpbmcKKyAgICAgICAgdGVzdHMg
c2hvdWxkIG5vIGxvbmdlciBjcmFzaDoKKyAgICAgICAgKiBmYXN0L2Nzcy9wc2V1ZG8taW4tcmFu
Z2UtaW52YWxpZC12YWx1ZS5odG1sCisgICAgICAgICogZmFzdC9jc3MvcHNldWRvLWluLXJhbmdl
Lmh0bWwKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2Zvcm0tY29sbGVjdGlvbi1lbGVtZW50cy5odG1s
CisgICAgICAgICogZmFzdC9mb3Jtcy9yYW5nZS1rZXlvcGVyYXRpb24uaHRtbAorCisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjphZG9wdE5v
ZGUpOiBDaGFuZ2VkIHRvIHVzZSBOb2RlOjpzZXREb2N1bWVudFJlY3Vyc2l2ZWx5LgorICAgICAg
ICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnNldERvY3VtZW50UmVj
dXJzaXZlbHkpOiBBZGRlZCBuZXcgbWV0aG9kLCB0YWtpbmcgZXhpc3RpbmcKKyAgICAgICAgICAg
IGxvZ2ljIGFuZCBhZGRpbmcgc2hhZG93IERPTSB0cmF2ZXJzYWwuCisgICAgICAgIChXZWJDb3Jl
OjpOb2RlOjp0cmF2ZXJzZU5leHROb2RlKTogU3R5bGUgZml4LgorICAgICAgICAoV2ViQ29yZTo6
Tm9kZTo6dHJhdmVyc2VOZXh0U2libGluZyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Tm9k
ZTo6dHJhdmVyc2VQcmV2aW91c05vZGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6
OnRyYXZlcnNlUHJldmlvdXNOb2RlUG9zdE9yZGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpOb2RlOjpjaGVja1JlcGxhY2VDaGlsZCk6IENoYW5nZWQgdG8gdXNlIHNldERvY3VtZW50UmVj
dXJzaXZlbHkuCisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpjaGVja0FkZENoaWxkKTogRGl0dG8u
CisgICAgICAgICogZG9tL05vZGUuaDogQWRkZWQgZGVmLgorCiAyMDExLTAxLTEzICBBZHJpZW5u
ZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0
aCBSdXNzZWxsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNDJhNjg2ODZjYWFjOTIwZDBj
NzRkZGJjOWI4N2U5YTRmMGY5ZTg5Ni4uZWQ3OTA5Y2Y4MjVkOGQ2ZDVjYzNkYTMxYWExNGE5YmQy
NzU0NmY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC05MDksOSArOTA5LDggQEAgUGFz
c1JlZlB0cjxOb2RlPiBEb2N1bWVudDo6YWRvcHROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gc291cmNl
LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgaWYgKHNvdXJjZS0+cGFyZW50Tm9kZSgpKQog
ICAgICAgICAgICAgc291cmNlLT5wYXJlbnROb2RlKCktPnJlbW92ZUNoaWxkKHNvdXJjZS5nZXQo
KSwgZWMpOwogICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICBmb3IgKE5vZGUqIG5vZGUgPSBz
b3VyY2UuZ2V0KCk7IG5vZGU7IG5vZGUgPSBub2RlLT50cmF2ZXJzZU5leHROb2RlKHNvdXJjZS5n
ZXQoKSkpCi0gICAgICAgIG5vZGUtPnNldERvY3VtZW50KHRoaXMpOworCisgICAgc291cmNlLT5z
ZXREb2N1bWVudFJlY3Vyc2l2ZWx5KHRoaXMpOwogCiAgICAgcmV0dXJuIHNvdXJjZTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmNwcAppbmRleCA0ZDUwZWYyZGFjZmU1MmQwYzVmODhmMjgyNGRhMmZiMzc4N2FjYWE5
Li43ODM3NzA3YzFmNjIzMTNiNGQ0Y2VkNGRlMTNmOTU5ZTk0M2Y3MzUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
Y3BwCkBAIC03NTEsNiArNzUxLDIxIEBAIGJvb2wgTm9kZTo6aGFzTm9uRW1wdHlCb3VuZGluZ0Jv
eCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lkIE5vZGU6OnNldERvY3VtZW50
UmVjdXJzaXZlbHkoRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIC8vIEZJWE1FOiBUbyBtYXRj
aCBHZWNrbywgd2Ugc2hvdWxkIGRvIHRoaXMgZm9yIG5vZGVzIHRoYXQgYXJlIGFscmVhZHkgaW4g
dGhlIGRvY3VtZW50IGFzIHdlbGwuCisgICAgaWYgKHRoaXMtPmRvY3VtZW50KCkgPT0gZG9jdW1l
bnQgfHwgdGhpcy0+aW5Eb2N1bWVudCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKE5v
ZGUqIG5vZGUgPSB0aGlzOyBub2RlOyBub2RlID0gbm9kZS0+dHJhdmVyc2VOZXh0Tm9kZSh0aGlz
KSkgeworICAgICAgICBub2RlLT5zZXREb2N1bWVudChkb2N1bWVudCk7CisgICAgICAgIGlmICgh
bm9kZS0+aXNFbGVtZW50Tm9kZSgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlm
IChOb2RlKiBzaGFkb3cgPSB0b0VsZW1lbnQobm9kZSktPnNoYWRvd1Jvb3QoKSkKKyAgICAgICAg
ICAgIHNoYWRvdy0+c2V0RG9jdW1lbnRSZWN1cnNpdmVseShkb2N1bWVudCk7CisgICAgfQorfQor
CiBpbmxpbmUgdm9pZCBOb2RlOjpzZXRTdHlsZUNoYW5nZShTdHlsZUNoYW5nZVR5cGUgY2hhbmdl
VHlwZSkKIHsKICAgICBtX25vZGVGbGFncyA9IChtX25vZGVGbGFncyAmIH5TdHlsZUNoYW5nZU1h
c2spIHwgY2hhbmdlVHlwZTsKQEAgLTk5Myw3ICsxMDA4LDcgQEAgdm9pZCBOb2RlOjpyZW1vdmVD
YWNoZWRMYWJlbHNOb2RlTGlzdChEeW5hbWljTm9kZUxpc3QqIGxpc3QpCiAgICAgZGF0YS0+bV9s
YWJlbHNOb2RlTGlzdENhY2hlID0gMDsKIH0KIAotTm9kZSAqTm9kZTo6dHJhdmVyc2VOZXh0Tm9k
ZShjb25zdCBOb2RlICpzdGF5V2l0aGluKSBjb25zdAorTm9kZSogTm9kZTo6dHJhdmVyc2VOZXh0
Tm9kZShjb25zdCBOb2RlKiBzdGF5V2l0aGluKSBjb25zdAogewogICAgIGlmIChmaXJzdENoaWxk
KCkpCiAgICAgICAgIHJldHVybiBmaXJzdENoaWxkKCk7CkBAIC0xMDA5LDcgKzEwMjQsNyBAQCBO
b2RlICpOb2RlOjp0cmF2ZXJzZU5leHROb2RlKGNvbnN0IE5vZGUgKnN0YXlXaXRoaW4pIGNvbnN0
CiAgICAgcmV0dXJuIDA7CiB9CiAKLU5vZGUgKk5vZGU6OnRyYXZlcnNlTmV4dFNpYmxpbmcoY29u
c3QgTm9kZSAqc3RheVdpdGhpbikgY29uc3QKK05vZGUqIE5vZGU6OnRyYXZlcnNlTmV4dFNpYmxp
bmcoY29uc3QgTm9kZSogc3RheVdpdGhpbikgY29uc3QKIHsKICAgICBpZiAodGhpcyA9PSBzdGF5
V2l0aGluKQogICAgICAgICByZXR1cm4gMDsKQEAgLTEwMzMsNyArMTA0OCw3IEBAIE5vZGUqIE5v
ZGU6OnRyYXZlcnNlTmV4dE5vZGVQb3N0T3JkZXIoKSBjb25zdAogICAgIHJldHVybiBuZXh0Owog
fQogCi1Ob2RlICpOb2RlOjp0cmF2ZXJzZVByZXZpb3VzTm9kZShjb25zdCBOb2RlICpzdGF5V2l0
aGluKSBjb25zdAorTm9kZSogTm9kZTo6dHJhdmVyc2VQcmV2aW91c05vZGUoY29uc3QgTm9kZSog
c3RheVdpdGhpbikgY29uc3QKIHsKICAgICBpZiAodGhpcyA9PSBzdGF5V2l0aGluKQogICAgICAg
ICByZXR1cm4gMDsKQEAgLTEwNDYsNyArMTA2MSw3IEBAIE5vZGUgKk5vZGU6OnRyYXZlcnNlUHJl
dmlvdXNOb2RlKGNvbnN0IE5vZGUgKnN0YXlXaXRoaW4pIGNvbnN0CiAgICAgcmV0dXJuIHBhcmVu
dE5vZGUoKTsKIH0KIAotTm9kZSAqTm9kZTo6dHJhdmVyc2VQcmV2aW91c05vZGVQb3N0T3JkZXIo
Y29uc3QgTm9kZSAqc3RheVdpdGhpbikgY29uc3QKK05vZGUqIE5vZGU6OnRyYXZlcnNlUHJldmlv
dXNOb2RlUG9zdE9yZGVyKGNvbnN0IE5vZGUqIHN0YXlXaXRoaW4pIGNvbnN0CiB7CiAgICAgaWYg
KGxhc3RDaGlsZCgpKQogICAgICAgICByZXR1cm4gbGFzdENoaWxkKCk7CkBAIC0xMTU4LDE1ICsx
MTczLDYgQEAgc3RhdGljIHZvaWQgY2hlY2tBY2NlcHRDaGlsZChOb2RlKiBuZXdQYXJlbnQsIE5v
ZGUqIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICB9CiB9CiAKLXN0YXRpYyB2b2lk
IHRyYW5zZmVyT3duZXJEb2N1bWVudChEb2N1bWVudCogbmV3RG9jdW1lbnQsIE5vZGUqIHJvb3Qp
Ci17Ci0gICAgLy8gRklYTUU6IFRvIG1hdGNoIEdlY2tvLCB3ZSBzaG91bGQgZG8gdGhpcyBmb3Ig
bm9kZXMgdGhhdCBhcmUgYWxyZWFkeSBpbiB0aGUgZG9jdW1lbnQgYXMgd2VsbC4KLSAgICBpZiAo
cm9vdC0+ZG9jdW1lbnQoKSAhPSBuZXdEb2N1bWVudCAmJiAhcm9vdC0+aW5Eb2N1bWVudCgpKSB7
Ci0gICAgICAgIGZvciAoTm9kZSogbm9kZSA9IHJvb3Q7IG5vZGU7IG5vZGUgPSBub2RlLT50cmF2
ZXJzZU5leHROb2RlKHJvb3QpKQotICAgICAgICAgICAgbm9kZS0+c2V0RG9jdW1lbnQobmV3RG9j
dW1lbnQpOwotICAgIH0KLX0KLQogdm9pZCBOb2RlOjpjaGVja1JlcGxhY2VDaGlsZChOb2RlKiBu
ZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGNoZWNr
QWNjZXB0Q2hpbGQodGhpcywgbmV3Q2hpbGQsIGVjKTsKQEAgLTExNzgsNyArMTE4NCw3IEBAIHZv
aWQgTm9kZTo6Y2hlY2tSZXBsYWNlQ2hpbGQoTm9kZSogbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxk
LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHRyYW5z
ZmVyT3duZXJEb2N1bWVudChkb2N1bWVudCgpLCBuZXdDaGlsZCk7CisgICAgbmV3Q2hpbGQtPnNl
dERvY3VtZW50UmVjdXJzaXZlbHkoZG9jdW1lbnQoKSk7CiB9CiAKIHZvaWQgTm9kZTo6Y2hlY2tB
ZGRDaGlsZChOb2RlICpuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC0xMTkyLDcgKzEx
OTgsNyBAQCB2b2lkIE5vZGU6OmNoZWNrQWRkQ2hpbGQoTm9kZSAqbmV3Q2hpbGQsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgdHJhbnNmZXJPd25lckRv
Y3VtZW50KGRvY3VtZW50KCksIG5ld0NoaWxkKTsKKyAgICBuZXdDaGlsZC0+c2V0RG9jdW1lbnRS
ZWN1cnNpdmVseShkb2N1bWVudCgpKTsKIH0KIAogYm9vbCBOb2RlOjppc0Rlc2NlbmRhbnRPZihj
b25zdCBOb2RlICpvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IDkyYmE5ZDMzODFkZWE5ZTAz
ZDczZGJiMmY5NjMzNjViMmY4ZWY0MmYuLjdjODhmMGZlMjEyYzlhMWQ3N2M0N2Y4ZDk1OWIwOWU4
MmEwOTViMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMzcyLDcgKzM3Miw3IEBAIHB1YmxpYzoKICAgICAv
LyBhcmd1bWVudCBpcyBub24tbnVsbCwgdGhlIHRyYXZlcnNhbCB3aWxsIHN0b3Agb25jZSB0aGUg
c3BlY2lmaWVkIG5vZGUgaXMgcmVhY2hlZC4KICAgICAvLyBUaGlzIGNhbiBiZSB1c2VkIHRvIHJl
c3RyaWN0IHRyYXZlcnNhbCB0byBhIHBhcnRpY3VsYXIgc3ViLXRyZWUuCiAgICAgTm9kZSogdHJh
dmVyc2VOZXh0Tm9kZShjb25zdCBOb2RlKiBzdGF5V2l0aGluID0gMCkgY29uc3Q7Ci0gICAgCisK
ICAgICAvLyBMaWtlIHRyYXZlcnNlTmV4dE5vZGUsIGJ1dCBza2lwcyBjaGlsZHJlbiBhbmQgc3Rh
cnRzIHdpdGggdGhlIG5leHQgc2libGluZy4KICAgICBOb2RlKiB0cmF2ZXJzZU5leHRTaWJsaW5n
KGNvbnN0IE5vZGUqIHN0YXlXaXRoaW4gPSAwKSBjb25zdDsKIApAQCAtNjQ0LDYgKzY0NCw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBtYXJrQ2FjaGVkTm9kZUxpc3RzU2xvdyhKU0M6Ok1hcmtTdGFj
ayYsIEpTQzo6SlNHbG9iYWxEYXRhJik7CiAjZW5kaWYKIAorICAgIHZvaWQgc2V0RG9jdW1lbnRS
ZWN1cnNpdmVseShEb2N1bWVudCopOwogICAgIHZvaWQgc2V0U3R5bGVDaGFuZ2UoU3R5bGVDaGFu
Z2VUeXBlKTsKIAogICAgIC8vIFVzZWQgdG8gc2hhcmUgY29kZSBiZXR3ZWVuIGxhenlBdHRhY2gg
YW5kIHNldE5lZWRzU3R5bGVSZWNhbGMuCg==
</data>
<flag name="review"
          id="70230"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>