<?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>28260</bug_id>
          
          <creation_ts>2009-08-13 09:22:34 -0700</creation_ts>
          <short_desc>onhashchange property cannot be set from javascript</short_desc>
          <delta_ts>2009-08-13 14:36:05 -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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>139866</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-08-13 09:22:34 -0700</bug_when>
    <thetext>onhashchange property cannot be set from javascript.

window.onhashchange = eventHandler;
...and...
document.body.onhashchange = eventHandler;
...should both work.

In radar as &lt;rdar://problem/7138591&gt;

Patch is forthcoming...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139882</commentid>
    <comment_count>1</comment_count>
      <attachid>34752</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-08-13 09:51:27 -0700</bug_when>
    <thetext>Created attachment 34752
Fix + layout test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139898</commentid>
    <comment_count>2</comment_count>
      <attachid>34752</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-13 10:04:32 -0700</bug_when>
    <thetext>Comment on attachment 34752
Fix + layout test

I&apos;m confused by your test case.

You never clear the previous listeners, I would expect them to be called again for every new change.  Except from the code it looks like there is only one listener, and it&apos;s on the window object.  The test doesn&apos;t make that very clear.  If there is only one listener ever it seems like we should explicitly check for that, or check that body.onhashchange == window.onhashchange, etc. after setting.  In fact, we don&apos;t even really need to test that it gets called, only that if you set one, they&apos;re all equal, and that if any of them are set it gets called (although testing each as you have is fine too).

Is the hash supposed to be the new value or the old value during the callback?  Seems we should test that.

The change looks fine, but I think the test case could/should be made more clear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139899</commentid>
    <comment_count>3</comment_count>
      <attachid>34752</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-13 10:05:20 -0700</bug_when>
    <thetext>Comment on attachment 34752
Fix + layout test

Actually, I certainly don&apos;t need to see this again.  so here&apos;s your r+.  But I do hope you make some of the above mentioned test improvements when landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140031</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-08-13 14:19:44 -0700</bug_when>
    <thetext>window.onhashchange, body.onhashchange, and &lt;body onhashchange=&quot;&quot;&gt; all refer to the exact same entity.  This is why you don&apos;t need to &quot;clear&quot; it - each stage of the test overwrites the previous value.

Checking equality might be an interesting addition to the test, but actually testing the function being called seems like it covers me code, as well.

In practice the hash value at the time of event delivery is irrelevant since:
1 - The hashchange event is defined to be asynchronous.
2 - The event itself has no knowledge of the old or new value - it&apos;s just a simple event.

I&apos;ll add the equality checks to the test before landing.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140040</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-08-13 14:36:05 -0700</bug_when>
    <thetext>Sending        LayoutTests/ChangeLog
Sending        LayoutTests/fast/dom/Window/window-properties-expected.txt
Adding         LayoutTests/fast/loader/onhashchange-attribute-listeners-expected.txt
Adding         LayoutTests/fast/loader/onhashchange-attribute-listeners.html
Sending        WebCore/ChangeLog
Sending        WebCore/html/HTMLBodyElement.cpp
Sending        WebCore/html/HTMLBodyElement.h
Sending        WebCore/html/HTMLBodyElement.idl
Sending        WebCore/html/HTMLFrameSetElement.cpp
Sending        WebCore/html/HTMLFrameSetElement.h
Sending        WebCore/html/HTMLFrameSetElement.idl
Sending        WebCore/page/DOMWindow.cpp
Sending        WebCore/page/DOMWindow.h
Sending        WebCore/page/DOMWindow.idl
Transmitting file data ..............
Committed revision 47233.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34752</attachid>
            <date>2009-08-13 09:51:27 -0700</date>
            <delta_ts>2009-08-13 10:05:20 -0700</delta_ts>
            <desc>Fix + layout test</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>10990</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NzIwNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMDktMDgtMTMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83MTM4NTkxPiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTI4MjYwCisgICAgICAgIG9uaGFzaGNoYW5nZSBwcm9wZXJ0eSBjYW5ub3QgYmUg
c2V0IGZyb20gamF2YXNjcmlwdC4KKworICAgICAgICBUZXN0OiBmYXN0L2xvYWRlci9vbmhhc2hj
aGFuZ2UtYXR0cmlidXRlLWxpc3RlbmVycy5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxCb2R5
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQm9keUVsZW1lbnQ6Om9uaGFzaGNo
YW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQm9keUVsZW1lbnQ6OnNldE9uaGFzaGNoYW5n
ZSk6CisgICAgICAgICogaHRtbC9IVE1MQm9keUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hU
TUxCb2R5RWxlbWVudC5pZGw6CisKKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZVNldEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZyYW1lU2V0RWxlbWVudDo6b25oYXNoY2hhbmdl
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGcmFtZVNldEVsZW1lbnQ6OnNldE9uaGFzaGNoYW5n
ZSk6CisgICAgICAgICogaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50Lmg6CisgICAgICAgICogaHRt
bC9IVE1MRnJhbWVTZXRFbGVtZW50LmlkbDoKKworICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6b25oYXNoY2hhbmdlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVdpbmRvdzo6c2V0T25oYXNoY2hhbmdlKToKKyAgICAgICAgKiBwYWdlL0RP
TVdpbmRvdy5oOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoKKwogMjAwOS0wOC0xMyAg
R3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4K
IAogICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRN
TEJvZHlFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVt
ZW50LmNwcAkocmV2aXNpb24gNDcxOTcpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzY4LDYgKzM2OCwxNiBAQCB2b2lkIEhUTUxCb2R5RWxl
bWVudDo6c2V0T25iZWZvcmV1bmxvYWQoCiAgICAgZG9jdW1lbnQoKS0+c2V0QXR0cmlidXRlRXZl
bnRMaXN0ZW5lcihldmVudE5hbWVzKCkuYmVmb3JldW5sb2FkRXZlbnQsIGV2ZW50TGlzdGVuZXIp
OwogfQogCitFdmVudExpc3RlbmVyKiBIVE1MQm9keUVsZW1lbnQ6Om9uaGFzaGNoYW5nZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGRvY3VtZW50KCktPmdldFdpbmRvd0F0dHJpYnV0ZUV2ZW50TGlz
dGVuZXIoZXZlbnROYW1lcygpLmhhc2hjaGFuZ2VFdmVudCk7Cit9CisKK3ZvaWQgSFRNTEJvZHlF
bGVtZW50OjpzZXRPbmhhc2hjaGFuZ2UoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPiBldmVudExp
c3RlbmVyKQoreworICAgIGRvY3VtZW50KCktPnNldFdpbmRvd0F0dHJpYnV0ZUV2ZW50TGlzdGVu
ZXIoZXZlbnROYW1lcygpLmhhc2hjaGFuZ2VFdmVudCwgZXZlbnRMaXN0ZW5lcik7Cit9ICAgIAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKIEV2ZW50TGlzdGVuZXIqIEhUTUxCb2R5RWxlbWVudDo6
b25tZXNzYWdlKCkgY29uc3QKIHsKICAgICByZXR1cm4gZG9jdW1lbnQoKS0+Z2V0V2luZG93QXR0
cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkubWVzc2FnZUV2ZW50KTsKSW5kZXg6IFdl
YkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwv
SFRNTEJvZHlFbGVtZW50LmgJKHJldmlzaW9uIDQ3MTk3KQorKysgV2ViQ29yZS9odG1sL0hUTUxC
b2R5RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2ICs1Nyw4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldE9uYmVmb3JldW5sb2FkKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOwogICAg
IEV2ZW50TGlzdGVuZXIqIG9ubWVzc2FnZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0T25tZXNzYWdl
KFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOworICAgIEV2ZW50TGlzdGVuZXIqIG9uaGFzaGNo
YW5nZSgpIGNvbnN0OworICAgIHZvaWQgc2V0T25oYXNoY2hhbmdlKFBhc3NSZWZQdHI8RXZlbnRM
aXN0ZW5lcj4pOwogICAgIEV2ZW50TGlzdGVuZXIqIG9ub2ZmbGluZSgpIGNvbnN0OwogICAgIHZv
aWQgc2V0T25vZmZsaW5lKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOwogICAgIEV2ZW50TGlz
dGVuZXIqIG9ub25saW5lKCkgY29uc3Q7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVt
ZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmlkbAko
cmV2aXNpb24gNDcxOTcpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQCBtb2R1bGUgaHRtbCB7CiAjaWYgIWRlZmluZWQo
TEFOR1VBR0VfQ09NKSB8fCAhTEFOR1VBR0VfQ09NCiAgICAgICAgIC8vIEV2ZW50IGhhbmRsZXIg
YXR0cmlidXRlcwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9u
YmVmb3JldW5sb2FkOworICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVy
IG9uaGFzaGNoYW5nZTsKICAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5l
ciBvbm1lc3NhZ2U7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIg
b25vZmZsaW5lOwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9u
b25saW5lOwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcAkocmV2aXNpb24g
NDcxOTcpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI2MCw2ICsyNjAsMTYgQEAgdm9pZCBIVE1MRnJhbWVTZXRFbGVtZW50OjpzZXRP
bmZvY3VzKFBhcwogICAgIGRvY3VtZW50KCktPnNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZl
bnROYW1lcygpLmZvY3VzRXZlbnQsIGV2ZW50TGlzdGVuZXIpOwogfQogCitFdmVudExpc3RlbmVy
KiBIVE1MRnJhbWVTZXRFbGVtZW50Ojpvbmhhc2hjaGFuZ2UoKSBjb25zdAoreworICAgIHJldHVy
biBkb2N1bWVudCgpLT5nZXRXaW5kb3dBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMo
KS5oYXNoY2hhbmdlRXZlbnQpOworfQorCit2b2lkIEhUTUxGcmFtZVNldEVsZW1lbnQ6OnNldE9u
aGFzaGNoYW5nZShQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+IGV2ZW50TGlzdGVuZXIpCit7Cisg
ICAgZG9jdW1lbnQoKS0+c2V0V2luZG93QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVz
KCkuaGFzaGNoYW5nZUV2ZW50LCBldmVudExpc3RlbmVyKTsKK30gICAKKwogRXZlbnRMaXN0ZW5l
ciogSFRNTEZyYW1lU2V0RWxlbWVudDo6b25sb2FkKCkgY29uc3QKIHsKICAgICByZXR1cm4gZG9j
dW1lbnQoKS0+Z2V0V2luZG93QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkubG9h
ZEV2ZW50KTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaAkocmV2aXNpb24gNDcx
OTcpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC03OSw2ICs3OSw4IEBAIHB1YmxpYzoKIAogICAgIEV2ZW50TGlzdGVuZXIqIG9uYmVmb3Jl
dW5sb2FkKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRPbmJlZm9yZXVubG9hZChQYXNzUmVmUHRyPEV2
ZW50TGlzdGVuZXI+KTsKKyAgICBFdmVudExpc3RlbmVyKiBvbmhhc2hjaGFuZ2UoKSBjb25zdDsK
KyAgICB2b2lkIHNldE9uaGFzaGNoYW5nZShQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKICAg
ICBFdmVudExpc3RlbmVyKiBvbm1lc3NhZ2UoKSBjb25zdDsKICAgICB2b2lkIHNldE9ubWVzc2Fn
ZShQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKICAgICBFdmVudExpc3RlbmVyKiBvbm9mZmxp
bmUoKSBjb25zdDsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5pZGwJKHJldmlz
aW9uIDQ3MTk3KQorKysgV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBAIG1vZHVsZSBodG1sIHsKICNpZiAhZGVmaW5lZChM
QU5HVUFHRV9DT00pIHx8ICFMQU5HVUFHRV9DT00KICAgICAgICAgLy8gRXZlbnQgaGFuZGxlciBh
dHRyaWJ1dGVzCiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25i
ZWZvcmV1bmxvYWQ7CisgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIg
b25oYXNoY2hhbmdlOwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVy
IG9ubWVzc2FnZTsKICAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBv
bm9mZmxpbmU7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25v
bmxpbmU7CkluZGV4OiBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAkocmV2aXNpb24gNDcxOTcpCisrKyBXZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU1NSw2ICsxNTU1LDE2IEBAIHZv
aWQgRE9NV2luZG93OjpzZXRPbmZvY3VzKFBhc3NSZWZQdHI8RXYKICAgICBzZXRBdHRyaWJ1dGVF
dmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50LCBldmVudExpc3RlbmVyKTsKIH0K
IAorRXZlbnRMaXN0ZW5lciogRE9NV2luZG93Ojpvbmhhc2hjaGFuZ2UoKSBjb25zdAoreworICAg
IHJldHVybiBnZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5oYXNoY2hhbmdl
RXZlbnQpOworfQorCit2b2lkIERPTVdpbmRvdzo6c2V0T25oYXNoY2hhbmdlKFBhc3NSZWZQdHI8
RXZlbnRMaXN0ZW5lcj4gZXZlbnRMaXN0ZW5lcikKK3sKKyAgICBzZXRBdHRyaWJ1dGVFdmVudExp
c3RlbmVyKGV2ZW50TmFtZXMoKS5oYXNoY2hhbmdlRXZlbnQsIGV2ZW50TGlzdGVuZXIpOworfQor
CiBFdmVudExpc3RlbmVyKiBET01XaW5kb3c6Om9ua2V5ZG93bigpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIGdldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmtleWRvd25FdmVudCk7
CkluZGV4OiBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5oCShyZXZpc2lvbiA0NzE5NykKKysrIFdlYkNvcmUvcGFnZS9ET01XaW5k
b3cuaAkod29ya2luZyBjb3B5KQpAQCAtMjc2LDYgKzI3Niw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgdm9pZCBzZXRPbmVycm9yKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOwog
ICAgICAgICBFdmVudExpc3RlbmVyKiBvbmZvY3VzKCkgY29uc3Q7CiAgICAgICAgIHZvaWQgc2V0
T25mb2N1cyhQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKKyAgICAgICAgRXZlbnRMaXN0ZW5l
ciogb25oYXNoY2hhbmdlKCkgY29uc3Q7CisgICAgICAgIHZvaWQgc2V0T25oYXNoY2hhbmdlKFBh
c3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOwogICAgICAgICBFdmVudExpc3RlbmVyKiBvbmtleWRv
d24oKSBjb25zdDsKICAgICAgICAgdm9pZCBzZXRPbmtleWRvd24oUGFzc1JlZlB0cjxFdmVudExp
c3RlbmVyPik7CiAgICAgICAgIEV2ZW50TGlzdGVuZXIqIG9ua2V5cHJlc3MoKSBjb25zdDsKSW5k
ZXg6IFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaWRsCShyZXZpc2lvbiA0NzE5NykKKysrIFdlYkNvcmUvcGFnZS9ET01XaW5k
b3cuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMTQsNiArMjE0LDcgQEAgbW9kdWxlIHdpbmRvdyB7
CiAgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZW5kZWQ7CiAgICAgICAgIGF0dHJp
YnV0ZSBFdmVudExpc3RlbmVyIG9uZXJyb3I7CiAgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3Rl
bmVyIG9uZm9jdXM7CisgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uaGFzaGNoYW5n
ZTsKICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25pbnB1dDsKICAgICAgICAgYXR0
cmlidXRlIEV2ZW50TGlzdGVuZXIgb25rZXlkb3duOwogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRM
aXN0ZW5lciBvbmtleXByZXNzOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNDcyMDQpCisrKyBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAwOS0wOC0x
MyAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzg1OTE+IGFu
ZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgyNjAKKyAgICAgICAg
b25oYXNoY2hhbmdlIHByb3BlcnR5IGNhbm5vdCBiZSBzZXQgZnJvbSBqYXZhc2NyaXB0LgorCisg
ICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBmYXN0L2xvYWRlci9vbmhhc2hjaGFuZ2UtYXR0cmlidXRlLWxpc3RlbmVycy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbG9hZGVyL29uaGFzaGNoYW5nZS1h
dHRyaWJ1dGUtbGlzdGVuZXJzLmh0bWw6IEFkZGVkLgorCiAyMDA5LTA4LTEzICBTdGV2ZSBCbG9j
ayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBM
ZXZpbi4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGll
cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDcxOTcpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0xNzIyLDYgKzE3MjIsNyBAQCB3aW5kb3cub25lbXB0aWVkIFtudWxs
XQogd2luZG93Lm9uZW5kZWQgW251bGxdCiB3aW5kb3cub25lcnJvciBbbnVsbF0KIHdpbmRvdy5v
bmZvY3VzIFtudWxsXQord2luZG93Lm9uaGFzaGNoYW5nZSBbbnVsbF0KIHdpbmRvdy5vbmlucHV0
IFtudWxsXQogd2luZG93Lm9ua2V5ZG93biBbbnVsbF0KIHdpbmRvdy5vbmtleXByZXNzIFtudWxs
XQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvb25oYXNoY2hhbmdlLWF0dHJpYnV0ZS1s
aXN0ZW5lcnMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbG9h
ZGVyL29uaGFzaGNoYW5nZS1hdHRyaWJ1dGUtbGlzdGVuZXJzLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL29uaGFzaGNoYW5nZS1hdHRyaWJ1dGUt
bGlzdGVuZXJzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5IEBACitBTEVS
VDogPGJvZHk+IGlubGluZSBhdHRyaWJ1dGUgY2FsbGVkLgorQUxFUlQ6IDxib2R5PiBhc3NpZ25l
ZCBhdHRyaWJ1dGUgY2FsbGVkLgorQUxFUlQ6IHdpbmRvdy5vbmhhc2hjaGFuZ2UgYXR0cmlidXRl
IGNhbGxlZC4KK1RoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgdGhlIHZhcmlvdXMgbWV0aG9kcyBv
ZiBzZXR0aW5nIGFuIG9uaGFzaGNoYW5nZSBoYW5kbGVyIGFsbCB3b3JrIGFzIGV4cGVjdGVkLgor
Q2xpY2tpbmcgdGhlIGxpbmtzIGJlbG93IG1hbnVhbGx5IHNob3VsZCBhbHNvIHJlc3VsdCBpbiB0
aGUgZXZlbnQgYmVpbmcgZmlyZWQgd2hlbiB0aGUgaGFzaCBhY3R1YWxseSBjaGFuZ2VzLgorR28g
dG8gZW1wdHkgaGFzaAorR28gdG8gbm9uLWVtcHR5IGhhc2gKK0VtcHR5IGhhc2ggYW5jaG9yCitO
b24tZW1wdHkgaGFzaCBhbmNob3IKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL29uaGFz
aGNoYW5nZS1hdHRyaWJ1dGUtbGlzdGVuZXJzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9sb2FkZXIvb25oYXNoY2hhbmdlLWF0dHJpYnV0ZS1saXN0ZW5lcnMuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL29uaGFzaGNoYW5nZS1hdHRyaWJ1
dGUtbGlzdGVuZXJzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDYgQEAKKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0PgorCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Cisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gc3RhcnRUZXN0KCkgeworCWxv
Y2F0aW9uLmhhc2ggPSAnIyc7IC8vIFRyYW5zaXRpb25pbmcgZnJvbSBubyBoYXNoIHRvIGFuIGVt
cHR5IGhhc2ggc2hvdWxkIG5vdCBnZW5lcmF0ZSBhbiBldmVudC4KKwlsb2NhdGlvbi5oYXNoID0g
JyNzb21lSGFzaCc7IC8vIFRoaXMgYWN0dWFsbHkgcmVmbGVjdHMgYSBjaGFuZ2VkIGhhc2ggYW5k
IHNob3VsZCBnZW5lcmF0ZSBhbiBldmVudC4KK30KKworZnVuY3Rpb24gYm9keUlubGluZUF0dHJp
YnV0ZSgpCit7CisJYWxlcnQoIjxib2R5PiBpbmxpbmUgYXR0cmlidXRlIGNhbGxlZC4iKTsKKwlk
b2N1bWVudC5ib2R5Lm9uaGFzaGNoYW5nZSA9IGJvZHlBc3NpZ25lZEF0dHJpYnV0ZTsKKwlsb2Nh
dGlvbi5oYXNoID0gJyMnOworfQorCitmdW5jdGlvbiBib2R5QXNzaWduZWRBdHRyaWJ1dGUoKQor
eworCWFsZXJ0KCI8Ym9keT4gYXNzaWduZWQgYXR0cmlidXRlIGNhbGxlZC4iKTsKKwl3aW5kb3cu
b25oYXNoY2hhbmdlID0gd2luZG93QXR0cmlidXRlOworCWxvY2F0aW9uLmhhc2ggPSAnI3NvbWVI
YXNoJzsKK30KKworZnVuY3Rpb24gd2luZG93QXR0cmlidXRlKCkKK3sKKwlhbGVydCgid2luZG93
Lm9uaGFzaGNoYW5nZSBhdHRyaWJ1dGUgY2FsbGVkLiIpOworCWlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCisJCWxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKwor
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpOyIgb25oYXNoY2hh
bmdlPSJib2R5SW5saW5lQXR0cmlidXRlKCk7Ij4KK1RoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQg
dGhlIHZhcmlvdXMgbWV0aG9kcyBvZiBzZXR0aW5nIGFuIG9uaGFzaGNoYW5nZSBoYW5kbGVyIGFs
bCB3b3JrIGFzIGV4cGVjdGVkLjxicj4KK0NsaWNraW5nIHRoZSBsaW5rcyBiZWxvdyBtYW51YWxs
eSBzaG91bGQgYWxzbyByZXN1bHQgaW4gdGhlIGV2ZW50IGJlaW5nIGZpcmVkIHdoZW4gdGhlIGhh
c2ggYWN0dWFsbHkgY2hhbmdlcy48YnI+Cis8YSBocmVmPSIjIj5HbyB0byBlbXB0eSBoYXNoPC9h
Pjxicj4KKzxhIGhyZWY9IiNzb21lSGFzaCI+R28gdG8gbm9uLWVtcHR5IGhhc2g8L2E+PGJyPgor
PGEgbmFtZT0iIyI+RW1wdHkgaGFzaCBhbmNob3I8L2E+PGJyPgorPGEgbmFtZT0iI3NvbWVIYXNo
Ij5Ob24tZW1wdHkgaGFzaCBhbmNob3I8L2E+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="18953"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="18958"
          type_id="3"
          status="-"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>