<?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>28716</bug_id>
          
          <creation_ts>2009-08-25 12:08:33 -0700</creation_ts>
          <short_desc>Event listeners installed on a window object returned from window.open() don&apos;t work</short_desc>
          <delta_ts>2009-10-13 13:27:17 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dmitry Titov">dimich</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>aroben</cc>
    
    <cc>commit-queue</cc>
    
    <cc>michaeln</cc>
    
    <cc>mjs</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>142665</commentid>
    <comment_count>0</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-08-25 12:08:33 -0700</bug_when>
    <thetext>The following sequence:

var w = window.open(...);
w.addEventListener(&apos;load&apos;, ...);

does not invoke the specified listener when the newly opened page loads. It does in FF3.5. Attached files t.html and w.html can be used to repro - save them on local disk and open t.html.

However, this:
var w = window.open(...);
w.foo = &quot;abc&quot;;
preserves the &apos;foo&apos; property for the newly-loaded window to see.

Blowing away event listeners looks like a bug in WebKit, since the HTML spec specifically says to use the same Window object, which implies the state of it should be preserved, including event listeners - at least in the same-origin navigations:

HTML5 spec http://www.whatwg.org/specs/web-apps/current-work/#create-a-document-object:
&quot;Creating a new Document object: When a Document is created as part of the above steps, a new set of views along with the associated Window object must be created and associated with the Document, with one exception: if the browsing context&apos;s only entry in its session history is the about:blank Document that was added when the browsing context was created, and navigation is occurring with replacement enabled, and that Document has the same origin as the new Document, then the Window object and associated views of that Document must be used instead, and the document attribute of the AbstractView objects of those views must be changed to point to the new Document instead.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142679</commentid>
    <comment_count>1</comment_count>
      <attachid>38563</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-08-25 13:25:16 -0700</bug_when>
    <thetext>Created attachment 38563
repro file t.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142680</commentid>
    <comment_count>2</comment_count>
      <attachid>38564</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-08-25 13:25:58 -0700</bug_when>
    <thetext>Created attachment 38564
repro file w.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142801</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-08-26 00:01:37 -0700</bug_when>
    <thetext>For some context: when window.open() returns, the associated frame holds a pointer to temporary document object, which is replaced with a real one as provisional load is committed. Thus, w.document event listeners or properties would be all lost in both Firefox and Safari.

Like Firefox, we don&apos;t do the same for window object, but we clear event listeners to prevent cross-origin attacks (I think). This seems inconsistent to me - it would seem that properties shouldn&apos;t be preserved cross-origin either. And indeed, there doesn&apos;t seem to be a reason to remove listeners in same origin case, as far as I can tell.

#0	0x03bbff40 in WebCore::DOMWindow::removeAllEventListeners at DOMWindow.cpp:1364
#1	0x03ae1213 in WebCore::Document::removeAllEventListeners at Document.cpp:1389
#2	0x03c44ee8 in WebCore::FrameLoader::stopLoading at FrameLoader.cpp:585
#3	0x03c451c0 in WebCore::FrameLoader::closeURL at FrameLoader.cpp:633
#4	0x03c45ef0 in WebCore::FrameLoader::transitionToCommitted at FrameLoader.cpp:2900
#5	0x03c46572 in WebCore::FrameLoader::commitProvisionalLoad at FrameLoader.cpp:2825
#6	0x03b0d030 in WebCore::DocumentLoader::commitIfReady at DocumentLoader.cpp:320
#7	0x03b0d061 in WebCore::DocumentLoader::commitLoad at DocumentLoader.cpp:340
#8	0x03b0d0ee in WebCore::DocumentLoader::receivedData at DocumentLoader.cpp:354
#9	0x03c3a815 in WebCore::FrameLoader::receivedData at FrameLoader.cpp:2472
#10	0x03fa8aee in WebCore::MainResourceLoader::addData at MainResourceLoader.cpp:143
#11	0x0413b657 in WebCore::ResourceLoader::didReceiveData at ResourceLoader.cpp:247
#12	0x03fa8146 in WebCore::MainResourceLoader::didReceiveData at MainResourceLoader.cpp:352
#13	0x0413aae8 in WebCore::ResourceLoader::didReceiveData at ResourceLoader.cpp:397</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142842</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-08-26 06:47:58 -0700</bug_when>
    <thetext>AP, yeah, we should not be clearing event listeners for safe to transition cases like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144674</commentid>
    <comment_count>5</comment_count>
      <attachid>39033</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-09-03 19:49:54 -0700</bug_when>
    <thetext>Created attachment 39033
Proposed patch

The proposed fix makes WebKit behavior match both html5 spec and FF 3.5. Also adds tests.

Now we don&apos;t remove event listeners on DOMWindow in case of transitioning from empty temporary document (created by FrameLoader::init()) to final document. This is accomplished by the check in FrameLoader::stopLoading that checks for the safe transiotion (similar to the one in FrameLoader::begin(..) that prevents erasing window properties).

Another place that was removing all the event handlers was Document::clear(), invoked from Document::implicitOpen() which is called in 2 cases: when transition document is replaced with loaded content (case of this bug) and when document.open() is used from JS. In latter case we actually need to clean event handlers - if only to avoid firing &apos;load&apos; upon subsequent document.close(), or things will fail on the web. So I&apos;ve split clear() and moved clearing handlers code to Document::open(..) and the rest to implicitOpen() and removed the Document::clear() at all.

Also FrameLoader::closeURL() was called 2 times during regular navigation - from transitionToCommitted and then immediately after it returns to commitProvisionalLoad via didOpenURL. The problem with that is closeURL calls stopLoading and that tries to fire unload again - so the old code, by blowing all the event handlers,  was making unload fire once, so it was ok to call it twice. Now that we don&apos;t always blow the event handlers, that would cause 2 unload events fired - so I move it out of didOpenURL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147370</commentid>
    <comment_count>6</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-09-15 13:33:40 -0700</bug_when>
    <thetext>More background info: this is the change that fixed related (but different) issue before: http://trac.webkit.org/changeset/25783. It introduced the isSecureTransition() method to see when properties on window have to be kept across this specific navigation type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147374</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-15 13:39:31 -0700</bug_when>
    <thetext>I haven&apos;t reviewed the tests, but the code changes appear reasonable.  We should have someone else look at them in detail, however, because this is very intricate code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154399</commentid>
    <comment_count>8</comment_count>
      <attachid>39033</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-10-13 13:08:01 -0700</bug_when>
    <thetext>Comment on attachment 39033
Proposed patch

I&apos;m moderately confident that this change is correct, and other folks had a month to comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154410</commentid>
    <comment_count>9</comment_count>
      <attachid>39033</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-13 13:27:12 -0700</bug_when>
    <thetext>Comment on attachment 39033
Proposed patch

Clearing flags on attachment: 39033

Committed r49507: &lt;http://trac.webkit.org/changeset/49507&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154411</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-13 13:27:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>38563</attachid>
            <date>2009-08-25 13:25:16 -0700</date>
            <delta_ts>2009-08-25 13:25:33 -0700</delta_ts>
            <desc>repro file t.html</desc>
            <filename>t.html</filename>
            <type>text/html</type>
            <size>147</size>
            <attacher name="Dmitry Titov">dimich</attacher>
            
              <data encoding="base64">PGh0bWw+Cjxib2R5Pgo8c2NyaXB0Pgp2YXIgdyA9IHdpbmRvdy5vcGVuKCJ3Lmh0bWwiKTsKdy5h
ZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oKXsgYWxlcnQoImxvYWRlZCEiKSB9LCBm
YWxzZSk7Cjwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>38564</attachid>
            <date>2009-08-25 13:25:58 -0700</date>
            <delta_ts>2009-08-25 13:25:58 -0700</delta_ts>
            <desc>repro file w.html</desc>
            <filename>w.html</filename>
            <type>text/html</type>
            <size>31</size>
            <attacher name="Dmitry Titov">dimich</attacher>
            
              <data encoding="base64">PGh0bWw+PGJvZHk+cGFnZTwvYm9keT48L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39033</attachid>
            <date>2009-09-03 19:49:54 -0700</date>
            <delta_ts>2009-10-13 13:27:12 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>11339</size>
            <attacher name="Dmitry Titov">dimich</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzNmUzMDBhLi41ZjJmYjQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMDktMDkt
MDMgIERtaXRyeSBUaXRvdiAgPGRpbWljaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXZlbnQgbGlzdGVuZXJzIGluc3RhbGxl
ZCBvbiBhIHdpbmRvdyBvYmplY3QgcmV0dXJuZWQgZnJvbSB3aW5kb3cub3BlbigpIGRvbid0IHdv
cmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4NzE2
CisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9oYXMtd2luZG93LWV2
ZW50cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1l
dmVudHMtY2xlYXItZG9tYWluLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9zZWN1cml0eS93aW5kb3ctZXZlbnRzLWNsZWFyLWRvbWFpbi5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1ldmVudHMtY2xlYXItcG9ydC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LWV2
ZW50cy1jbGVhci1wb3J0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJp
dHkvd2luZG93LWV2ZW50cy1wYXNzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctZXZlbnRzLXBhc3MuaHRtbDogQWRkZWQuCisKIDIwMDkt
MDgtMjUgIE1hZHMgQWdlciAgPGFnZXJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3Jlc291cmNlcy9oYXMtd2luZG93LWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvaGFzLXdpbmRvdy1ldmVudHMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NzRjZWU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvaGFzLXdpbmRvdy1ldmVudHMu
aHRtbApAQCAtMCwwICsxLDggQEAKKzxzY3JpcHQ+CitmdW5jdGlvbiBmaW5pc2goKSB7CisgICAg
Ly8gQXR0cmlidXRlIGhhbmRsZXIgZmlyZXMgYWZ0ZXIgb3RoZXIgZXZlbnQgaGFuZGxlcnMgLSB3
ZSB1c2UgdGhpcyB0byBmaW5pc2ggdGhlIHRlc3QuCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwor
fQorPC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9J2ZpbmlzaCgpJz48L2JvZHk+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1ldmVudHMtY2xlYXItZG9t
YWluLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93
LWV2ZW50cy1jbGVhci1kb21haW4tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjk1ZjY0MTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1ldmVudHMtY2xlYXItZG9tYWluLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDIgQEAKK1Rlc3QgdGhhdCB3aW5kb3cgZXZlbnQgaGFuZGxlcnMgc2V0IGZvciBp
bml0aWFsIGRvY3VtZW50IGFyZSByZXNldCB1cG9uIG5hdmlnYXRpb24gaWYgc2VjdXJpdHkgY2hl
Y2sgZmFpbGVkLiBUaGVyZSB3aWxsIGJlICdQQVNTJyBiZWxvdyBpZiB0aGUgdGVzdCBwYXNzZXM6
CitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRv
dy1ldmVudHMtY2xlYXItZG9tYWluLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3dpbmRvdy1ldmVudHMtY2xlYXItZG9tYWluLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uN2M1MmJjNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LWV2ZW50cy1jbGVhci1kb21haW4uaHRtbApAQCAtMCww
ICsxLDI4IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGxheW91dFRlc3RD
b250cm9sbGVyLnNldENhbk9wZW5XaW5kb3dzKCk7Cit9CisKK2Z1bmN0aW9uIHVubG9hZEhhbmRs
ZXIoKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9
ICJQQVNTIjsKK30KKworZnVuY3Rpb24gbG9hZEhhbmRsZXIoKSB7CisgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9ICJGQUlMIC0gbG9hZCBldmVudCBzaG91
bGQgbm90IGZpcmUgaWYgc2VjdXJpdHkgY2hlY2sgZmFpbGVkLiI7Cit9CisKK2Z1bmN0aW9uIHRl
c3QoKQoreworICAgIHZhciB3ID0gd2luZG93Lm9wZW4oJ2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9z
ZWN1cml0eS9yZXNvdXJjZXMvaGFzLXdpbmRvdy1ldmVudHMuaHRtbCcpOworICAgIHcuYWRkRXZl
bnRMaXN0ZW5lcigndW5sb2FkJywgdW5sb2FkSGFuZGxlciwgZmFsc2UpOworICAgIHcuYWRkRXZl
bnRMaXN0ZW5lcignbG9hZCcsIGxvYWRIYW5kbGVyLCBmYWxzZSk7Cit9CisKKzwvc2NyaXB0Pgor
PGJvZHkgb25sb2FkPSd0ZXN0KCknPgorVGVzdCB0aGF0IHdpbmRvdyBldmVudCBoYW5kbGVycyBz
ZXQgZm9yIGluaXRpYWwgZG9jdW1lbnQgYXJlIHJlc2V0IHVwb24gbmF2aWdhdGlvbiBpZiBzZWN1
cml0eSBjaGVjayBmYWlsZWQuIFRoZXJlIHdpbGwgYmUgJ1BBU1MnIGJlbG93IGlmIHRoZSB0ZXN0
IHBhc3Nlczo8YnI+Cis8ZGl2IGlkPSdyZXN1bHQnPkZBSUwgLSBub3RoaW5nIGhhcHBlbmVkPC9k
aXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1l
dmVudHMtY2xlYXItcG9ydC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3dpbmRvdy1ldmVudHMtY2xlYXItcG9ydC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTVmNjQxOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LWV2ZW50cy1jbGVhci1wb3J0LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1Rlc3QgdGhhdCB3aW5kb3cgZXZlbnQgaGFuZGxlcnMg
c2V0IGZvciBpbml0aWFsIGRvY3VtZW50IGFyZSByZXNldCB1cG9uIG5hdmlnYXRpb24gaWYgc2Vj
dXJpdHkgY2hlY2sgZmFpbGVkLiBUaGVyZSB3aWxsIGJlICdQQVNTJyBiZWxvdyBpZiB0aGUgdGVz
dCBwYXNzZXM6CitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3dpbmRvdy1ldmVudHMtY2xlYXItcG9ydC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS93aW5kb3ctZXZlbnRzLWNsZWFyLXBvcnQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi43M2IzNGMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctZXZlbnRzLWNsZWFyLXBvcnQuaHRtbApAQCAt
MCwwICsxLDI4IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGxheW91dFRl
c3RDb250cm9sbGVyLnNldENhbk9wZW5XaW5kb3dzKCk7Cit9CisKK2Z1bmN0aW9uIHVubG9hZEhh
bmRsZXIoKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRN
TCA9ICJQQVNTIjsKK30KKworZnVuY3Rpb24gbG9hZEhhbmRsZXIoKSB7CisgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9ICJGQUlMIC0gbG9hZCBldmVudCBz
aG91bGQgbm90IGZpcmUgaWYgc2VjdXJpdHkgY2hlY2sgZmFpbGVkLiI7Cit9CisKK2Z1bmN0aW9u
IHRlc3QoKQoreworICAgIHZhciB3ID0gd2luZG93Lm9wZW4oJ2h0dHA6Ly8xMjcuMC4wLjE6ODA4
MC9zZWN1cml0eS9yZXNvdXJjZXMvaGFzLXdpbmRvdy1ldmVudHMuaHRtbCcpOworICAgIHcuYWRk
RXZlbnRMaXN0ZW5lcigndW5sb2FkJywgdW5sb2FkSGFuZGxlciwgZmFsc2UpOworICAgIHcuYWRk
RXZlbnRMaXN0ZW5lcignbG9hZCcsIGxvYWRIYW5kbGVyLCBmYWxzZSk7Cit9CisKKzwvc2NyaXB0
PgorPGJvZHkgb25sb2FkPSd0ZXN0KCknPgorVGVzdCB0aGF0IHdpbmRvdyBldmVudCBoYW5kbGVy
cyBzZXQgZm9yIGluaXRpYWwgZG9jdW1lbnQgYXJlIHJlc2V0IHVwb24gbmF2aWdhdGlvbiBpZiBz
ZWN1cml0eSBjaGVjayBmYWlsZWQuIFRoZXJlIHdpbGwgYmUgJ1BBU1MnIGJlbG93IGlmIHRoZSB0
ZXN0IHBhc3Nlczo8YnI+Cis8ZGl2IGlkPSdyZXN1bHQnPkZBSUwgLSBub3RoaW5nIGhhcHBlbmVk
PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRv
dy1ldmVudHMtcGFzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3dpbmRvdy1ldmVudHMtcGFzcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNDY0YzY4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LWV2ZW50cy1wYXNzLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDQgQEAKK21haW4gZnJhbWUgLSBoYXMgMSBvbnVubG9hZCBoYW5kbGVyKHMpCitUZXN0IHRo
YXQgd2luZG93IGV2ZW50IGhhbmRsZXJzIHNldCBmb3IgaW5pdGlhbCBkb2N1bWVudCBhcmUga2Vw
dCBpZiBzZWN1cml0eSBjaGVjayBwYXNzZXMuIFRoZXJlIHdpbGwgYmUgMiAnUEFTUycgbWVzc2Fn
ZXMgYmVsb3cgaWYgdGhlIHRlc3QgcGFzc2VzOgorUEFTUzogdW5sb2FkIGZpcmVkLgorUEFTUzog
bG9hZCBmaXJlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
d2luZG93LWV2ZW50cy1wYXNzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3dpbmRvdy1ldmVudHMtcGFzcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmQ5NTBjYTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3dpbmRvdy1ldmVudHMtcGFzcy5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Q2FuT3Bl
bldpbmRvd3MoKTsKK30KKworZnVuY3Rpb24gdW5sb2FkSGFuZGxlcigpIHsKKyAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0gIlBBU1M6IHVubG9hZCBmaXJl
ZC4iOworfQorCitmdW5jdGlvbiBsb2FkSGFuZGxlcigpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MICs9ICI8YnI+UEFTUzogbG9hZCBmaXJlZC4iOwor
fQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgdyA9IHdpbmRvdy5vcGVuKCdodHRwOi8v
MTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL2hhcy13aW5kb3ctZXZlbnRzLmh0bWwn
KTsKKyAgICB3LmFkZEV2ZW50TGlzdGVuZXIoJ3VubG9hZCcsIHVubG9hZEhhbmRsZXIsIGZhbHNl
KTsKKyAgICB3LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBsb2FkSGFuZGxlciwgZmFsc2UpOwor
fQorCis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0ndGVzdCgpJz4KK1Rlc3QgdGhhdCB3aW5kb3cg
ZXZlbnQgaGFuZGxlcnMgc2V0IGZvciBpbml0aWFsIGRvY3VtZW50IGFyZSBrZXB0IGlmIHNlY3Vy
aXR5IGNoZWNrIHBhc3Nlcy4gVGhlcmUgd2lsbCBiZSAyICdQQVNTJyBtZXNzYWdlcyBiZWxvdyBp
ZiB0aGUgdGVzdCBwYXNzZXM6PGJyPgorPGRpdiBpZD0ncmVzdWx0Jz5GQUlMPC9kaXY+CmRpZmYg
LS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJmYzQz
NWQuLjNlMmM2ZmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMDktMDktMDMgIERtaXRyeSBUaXRvdiAgPGRp
bWljaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRXZlbnQgbGlzdGVuZXJzIGluc3RhbGxlZCBvbiBhIHdpbmRvdyBvYmplY3Qg
cmV0dXJuZWQgZnJvbSB3aW5kb3cub3BlbigpIGRvbid0IHdvcmsKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4NzE2CisKKyAgICAgICAgVGVzdHM6IGh0
dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LWV2ZW50cy1jbGVhci1kb21haW4uaHRtbAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctZXZlbnRzLWNsZWFyLXBvcnQuaHRt
bAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctZXZlbnRzLXBhc3Mu
aHRtbAorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDogU3BsaXQgY29kZSBvZiBEb2N1bWVu
dDo6Y2xlYXIoKSBpbiBhIHdheSB0byBhdm9pZCByZW1vdmluZyBhbGwKKyAgICAgICAgd2luZG93
IGV2ZW50IGhhbmRsZXJzIHdoZW4gaW1wbGljaXRPcGVuIGlzIGNhbGxlZC4gSXQgaXMgY2FsbGVk
IGluIDIgY2FzZXMgLSBvbgorICAgICAgICBjb21taXR0aW5nIGxvYWRlZCBjb250ZW50IChubyBu
ZWVkIHRvIGNsZWFuIGhhbmRsZXJzKSBhbmQgb24gZG9jdW1lbnQub3BlbigpIChuZWVkcyB0byBy
ZW1vdmUgaGFuZGxlcnMpLgorCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6b3Blbik6IGlu
IGFkZGl0aW9uIHRvIGNhbGxpbmcgaW1wbGljaXRPcGVuIGl0IGFsc28gcmVtb3ZlcyB3aW5kb3cK
KyAgICAgICAgZXZlbnQgaGFuZGxlcnMsIHRvIHByZXNlcnZlIHRoZSBiZWhhdmlvciBvZiBkb2N1
bWVudC5vcGVuKCkuCisKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjppbXBsaWNpdE9wZW4p
OiBpbmNsdWRlcyB0aGUgcGFydCBvZiByZW1vdmVkIERvY3VtZW50OjpjbGVhcigpIHRoYXQKKyAg
ICAgICAgZG9lcyBub3QgcmVtb3ZlIHdpbmRvdyBldmVudCBoYW5kbGVycy4KKworICAgICAgICAq
IGRvbS9Eb2N1bWVudC5oOiBSZW1vdmVkIGNsZWFyKCkuCisKKyAgICAgICAgKiBsb2FkZXIvRnJh
bWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnN0b3BMb2FkaW5n
KTogYWRkIGNoZWNrIHRvIGF2b2lkIHJlbW92aW5nIHdpbmRvdyBldmVudCBoYW5kbGVycworICAg
ICAgICBpZiB3ZSB0cmFuc2l0aW9uIGZyb20gdGVtcG9yYXJ5IGVtcHR5IGRvY3VtZW50IHRvIGEg
bG9hZGVkIG9uZS4KKworICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmRpZE9wZW5VUkwp
OiBSZW1vdmUgY2xvc2VVUkwoKSB3aGljaCB3YXMgY2FsbGVkIHR3aWNlIHdoZW4gbG9hZGluZy4K
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpmaW5pc2hlZExvYWRpbmdEb2N1bWVudCk6
IGFkZCBjbG9zZVVSTCgpIHRvIGNvbXBlbnNhdGUgZm9yIGNoYW5nZSBhYm92ZS4KKwogMjAwOS0w
OC0yNSAgQ2hyaXMgTWFycmluICA8Y21hcnJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgU2ltb24gRnJhc2VyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
IGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDZkMTJmMDYuLmIyMmMwM2MgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKQEAgLTE1MDMsNiArMTUwMyw5IEBAIHZvaWQgRG9jdW1lbnQ6Om9wZW4oRG9jdW1lbnQq
IG93bmVyRG9jdW1lbnQpCiAKICAgICBpbXBsaWNpdE9wZW4oKTsKIAorICAgIGlmIChET01XaW5k
b3cqIGRvbVdpbmRvdyA9IHRoaXMtPmRvbVdpbmRvdygpKQorICAgICAgICBkb21XaW5kb3ctPnJl
bW92ZUFsbEV2ZW50TGlzdGVuZXJzKCk7CisKICAgICBpZiAobV9mcmFtZSkKICAgICAgICAgbV9m
cmFtZS0+bG9hZGVyKCktPmRpZEV4cGxpY2l0T3BlbigpOwogfQpAQCAtMTUyNCw3ICsxNTI3LDEx
IEBAIHZvaWQgRG9jdW1lbnQ6OmltcGxpY2l0T3BlbigpCiB7CiAgICAgY2FuY2VsUGFyc2luZygp
OwogCi0gICAgY2xlYXIoKTsKKyAgICBkZWxldGUgbV90b2tlbml6ZXI7CisgICAgbV90b2tlbml6
ZXIgPSAwOworCisgICAgcmVtb3ZlQ2hpbGRyZW4oKTsKKwogICAgIG1fdG9rZW5pemVyID0gY3Jl
YXRlVG9rZW5pemVyKCk7CiAgICAgc2V0UGFyc2luZyh0cnVlKTsKIApAQCAtMTgwMSwxNiArMTgw
OCw2IEBAIHZvaWQgRG9jdW1lbnQ6OmZpbmlzaFBhcnNpbmcoKQogICAgICAgICBtX3Rva2VuaXpl
ci0+ZmluaXNoKCk7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OmNsZWFyKCkKLXsKLSAgICBkZWxldGUg
bV90b2tlbml6ZXI7Ci0gICAgbV90b2tlbml6ZXIgPSAwOwotCi0gICAgcmVtb3ZlQ2hpbGRyZW4o
KTsKLSAgICBpZiAoRE9NV2luZG93KiBkb21XaW5kb3cgPSB0aGlzLT5kb21XaW5kb3coKSkKLSAg
ICAgICAgZG9tV2luZG93LT5yZW1vdmVBbGxFdmVudExpc3RlbmVycygpOwotfQotCiBjb25zdCBL
VVJMJiBEb2N1bWVudDo6dmlydHVhbFVSTCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdXJsOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKaW5kZXggNzUwNjMxMy4uYWIwODk3OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC00MjcsNyArNDI3LDYgQEAgcHVi
bGljOgogICAgIHZvaWQgd3JpdGUoY29uc3QgU3RyaW5nJiB0ZXh0LCBEb2N1bWVudCogb3duZXJE
b2N1bWVudCA9IDApOwogICAgIHZvaWQgd3JpdGVsbihjb25zdCBTdHJpbmcmIHRleHQsIERvY3Vt
ZW50KiBvd25lckRvY3VtZW50ID0gMCk7CiAgICAgdm9pZCBmaW5pc2hQYXJzaW5nKCk7Ci0gICAg
dm9pZCBjbGVhcigpOwogCiAgICAgYm9vbCB3ZWxsRm9ybWVkKCkgY29uc3QgeyByZXR1cm4gbV93
ZWxsRm9ybWVkOyB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCAyZDEyNjE1Li5mYTBjZmMy
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC01ODUsOCArNTg1LDE0IEBAIHZvaWQgRnJhbWVM
b2FkZXI6OnN0b3BMb2FkaW5nKGJvb2wgc2VuZFVubG9hZCwgRGF0YWJhc2VQb2xpY3kgZGF0YWJh
c2VQb2xpY3kpCiAgICAgICAgIH0KIAogICAgICAgICAvLyBEaXNwYXRjaGluZyB0aGUgdW5sb2Fk
IGV2ZW50IGNvdWxkIGhhdmUgbWFkZSBtX2ZyYW1lLT5kb2N1bWVudCgpIG51bGwuCi0gICAgICAg
IGlmIChtX2ZyYW1lLT5kb2N1bWVudCgpICYmICFtX2ZyYW1lLT5kb2N1bWVudCgpLT5pblBhZ2VD
YWNoZSgpKQotICAgICAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+cmVtb3ZlQWxsRXZlbnRM
aXN0ZW5lcnMoKTsKKyAgICAgICAgaWYgKG1fZnJhbWUtPmRvY3VtZW50KCkgJiYgIW1fZnJhbWUt
PmRvY3VtZW50KCktPmluUGFnZUNhY2hlKCkpIHsKKyAgICAgICAgICAgIC8vIERvbid0IHJlbW92
ZSBldmVudCBsaXN0ZW5lcnMgZnJvbSBhIHRyYW5zaXRpb25hbCBlbXB0eSBkb2N1bWVudCAoc2Vl
IGJ1ZyAyODcxNiBmb3IgbW9yZSBpbmZvcm1hdGlvbikuCisgICAgICAgICAgICBib29sIGtlZXBF
dmVudExpc3RlbmVycyA9IG1faXNEaXNwbGF5aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQgJiYgbV9w
cm92aXNpb25hbERvY3VtZW50TG9hZGVyCisgICAgICAgICAgICAgICAgJiYgbV9mcmFtZS0+ZG9j
dW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+aXNTZWN1cmVUcmFuc2l0aW9uVG8obV9wcm92aXNp
b25hbERvY3VtZW50TG9hZGVyLT51cmwoKSk7CisKKyAgICAgICAgICAgIGlmICgha2VlcEV2ZW50
TGlzdGVuZXJzKQorICAgICAgICAgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPnJlbW92ZUFs
bEV2ZW50TGlzdGVuZXJzKCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBtX2lzQ29tcGxldGUg
PSB0cnVlOyAvLyB0byBhdm9pZCBjYWxsaW5nIGNvbXBsZXRlZCgpIGluIGZpbmlzaGVkUGFyc2lu
ZygpIChEYXZpZCkKQEAgLTY4MSw3ICs2ODcsNiBAQCBib29sIEZyYW1lTG9hZGVyOjpkaWRPcGVu
VVJMKGNvbnN0IEtVUkwmIHVybCkKIAogICAgIGNhbmNlbFJlZGlyZWN0aW9uKCk7CiAgICAgbV9m
cmFtZS0+ZWRpdG9yKCktPmNsZWFyTGFzdEVkaXRDb21tYW5kKCk7Ci0gICAgY2xvc2VVUkwoKTsK
IAogICAgIG1faXNDb21wbGV0ZSA9IGZhbHNlOwogICAgIG1faXNMb2FkaW5nTWFpblJlc291cmNl
ID0gdHJ1ZTsKQEAgLTMyMTcsNiArMzIyMiw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmZpbmlzaGVk
TG9hZGluZ0RvY3VtZW50KERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCiAgICAgbG9hZGVyLT5zZXRQ
YXJzZWRBcmNoaXZlRGF0YShtYWluUmVzb3VyY2UtPmRhdGEoKSk7CiAKICAgICBtX3Jlc3BvbnNl
TUlNRVR5cGUgPSBtYWluUmVzb3VyY2UtPm1pbWVUeXBlKCk7CisKKyAgICBjbG9zZVVSTCgpOwog
ICAgIGRpZE9wZW5VUkwobWFpblJlc291cmNlLT51cmwoKSk7CiAKICAgICBTdHJpbmcgdXNlckNo
b3NlbkVuY29kaW5nID0gZG9jdW1lbnRMb2FkZXIoKS0+b3ZlcnJpZGVFbmNvZGluZygpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>