<?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>186383</bug_id>
          
          <creation_ts>2018-06-06 22:56:11 -0700</creation_ts>
          <short_desc>Release assert in Document::updateLayout() in WebPage::determinePrimarySnapshottedPlugIn()</short_desc>
          <delta_ts>2018-06-07 11:38:42 -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>WebKit2</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>dino</cc>
    
    <cc>graouts</cc>
    
    <cc>jonlee</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1430718</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-06-06 22:56:11 -0700</bug_when>
    <thetext>e.g.

#0	0x00000002cf969cd0 in ::WTFCrash() at /Users/antoine/Code/safari/OpenSource/Source/WTF/wtf/Assertions.cpp:267
#1	0x00000002cf969ce9 in ::WTFCrashWithSecurityImplication() at /Users/antoine/Code/safari/OpenSource/Source/WTF/wtf/Assertions.cpp:288
#2	0x00000002c1dc6926 in WebCore::Document::updateLayout() at /Users/antoine/Code/safari/OpenSource/Source/WebCore/dom/Document.cpp:1981
#3	0x00000002c30afa16 in WebCore::RenderView::hitTest(WebCore::HitTestRequest const&amp;, WebCore::HitTestLocation const&amp;, WebCore::HitTestResult&amp;) at /Users/antoine/Code/safari/OpenSource/Source/WebCore/rendering/RenderView.cpp:147
#4	0x00000002c30af9d4 in WebCore::RenderView::hitTest(WebCore::HitTestRequest const&amp;, WebCore::HitTestResult&amp;) at /Users/antoine/Code/safari/OpenSource/Source/WebCore/rendering/RenderView.cpp:142
#5	0x0000000101e03ec1 in WebKit::WebPage::determinePrimarySnapshottedPlugIn() at /Users/antoine/Code/safari/OpenSource/Source/WebKit/WebProcess/WebPage/WebPage.cpp:5407
#6	0x0000000101de27fe in WebKit::WebPage::determinePrimarySnapshottedPlugInTimerFired() at /Users/antoine/Code/safari/OpenSource/Source/WebKit/WebProcess/WebPage/WebPage.cpp:5342
#7	0x0000000101e16656 in WTF::RunLoop::Timer&lt;WebKit::WebPage&gt;::fired() at /Users/antoine/Builds/Debug/usr/local/include/wtf/RunLoop.h:148
#8	0x00000002cf9e2861 in WTF::RunLoop::TimerBase::timerFired(__CFRunLoopTimer*, void*) at /Users/antoine/Code/safari/OpenSource/Source/WTF/wtf/cf/RunLoopCF.cpp:84</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430719</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-06-06 22:56:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/40849498&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430723</commentid>
    <comment_count>2</comment_count>
      <attachid>342123</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-06-06 23:08:27 -0700</bug_when>
    <thetext>Created attachment 342123
Fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430849</commentid>
    <comment_count>3</comment_count>
      <attachid>342123</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2018-06-07 09:00:14 -0700</bug_when>
    <thetext>Comment on attachment 342123
Fixes the bug

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

&gt; LayoutTests/plugins/snapshotting/determine-primary-snapshotted-plugin-crash.html:22
&gt; +    }, 500);

Does this make flakiness a risk?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430889</commentid>
    <comment_count>4</comment_count>
      <attachid>342123</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-06-07 09:39:41 -0700</bug_when>
    <thetext>Comment on attachment 342123
Fixes the bug

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

&gt; Source/WebKit/ChangeLog:11
&gt; +        The release assert was hit because the descendent elemenet iterator, which instantiates ScriptDisallowedScope,
&gt; +        was alive as determinePrimarySnapshottedPlugIn updated the layout via RenderView::hitTest. Avoid this by copying
&gt; +        the list of plugin image elements into a vector first.

I would rephrase this to &quot;potentially updated&quot; or something along those lines.
determinePrimarySnapshottedPlugIn carefully issues a layout starting from the top level document and it expects the hittest&apos;s updateLayout() to be a no-op. I understand that with the current script-callbacks-after-layout model, this is not guaranteed at all. We need to invest some time in this area and ensure immutability for cases like this. What determinePrimarySnapshottedPlugIn() has today should be the preferred way of coding against mutation as opposed to nullchecks and refing all the things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430953</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-06-07 11:27:28 -0700</bug_when>
    <thetext>(In reply to Jon Lee from comment #3)
&gt; Comment on attachment 342123 [details]
&gt; Fixes the bug
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=342123&amp;action=review
&gt; 
&gt; &gt; LayoutTests/plugins/snapshotting/determine-primary-snapshotted-plugin-crash.html:22
&gt; &gt; +    }, 500);
&gt; 
&gt; Does this make flakiness a risk?

All other snapshot tests are doing this, and there doesn&apos;t seem to be a way to do this deterministically due to the way snapshot algorithm waits for the movie to get to a snapshottable state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430960</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-06-07 11:36:42 -0700</bug_when>
    <thetext>(In reply to zalan from comment #4)
&gt; Comment on attachment 342123 [details]
&gt; Fixes the bug
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=342123&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:11
&gt; &gt; +        The release assert was hit because the descendent elemenet iterator, which instantiates ScriptDisallowedScope,
&gt; &gt; +        was alive as determinePrimarySnapshottedPlugIn updated the layout via RenderView::hitTest. Avoid this by copying
&gt; &gt; +        the list of plugin image elements into a vector first.
&gt; 
&gt; I would rephrase this to &quot;potentially updated&quot; or something along those
&gt; lines.
&gt; determinePrimarySnapshottedPlugIn carefully issues a layout starting from
&gt; the top level document and it expects the hittest&apos;s updateLayout() to be a
&gt; no-op. I understand that with the current script-callbacks-after-layout
&gt; model, this is not guaranteed at all. We need to invest some time in this
&gt; area and ensure immutability for cases like this. What
&gt; determinePrimarySnapshottedPlugIn() has today should be the preferred way of
&gt; coding against mutation as opposed to nullchecks and refing all the things.

That&apos;s a big misleading since it&apos;s true today that invoking updateLayout in this function isn&apos;t safe (or at least would hit the release assertion). I&apos;d rephrase as &quot;invoked Document::updateLayout&quot; instead for clarity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430964</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-06-07 11:38:42 -0700</bug_when>
    <thetext>Committed r232591: &lt;https://trac.webkit.org/changeset/232591&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>342123</attachid>
            <date>2018-06-06 23:08:27 -0700</date>
            <delta_ts>2018-06-07 09:00:14 -0700</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>bug-186383-20180606230827.patch</filename>
            <type>text/plain</type>
            <size>8584</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzI1NzMpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE4LTA2LTA2ICBSeW9zdWtlIE5p
d2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbGVhc2UgYXNzZXJ0IGluIERvY3Vt
ZW50Ojp1cGRhdGVMYXlvdXQoKSBpbiBXZWJQYWdlOjpkZXRlcm1pbmVQcmltYXJ5U25hcHNob3R0
ZWRQbHVnSW4oKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTg2MzgzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80MDg0OTQ5OD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcmVsZWFzZSBhc3NlcnQg
d2FzIGhpdCBiZWNhdXNlIHRoZSBkZXNjZW5kZW50IGVsZW1lbmV0IGl0ZXJhdG9yLCB3aGljaCBp
bnN0YW50aWF0ZXMgU2NyaXB0RGlzYWxsb3dlZFNjb3BlLAorICAgICAgICB3YXMgYWxpdmUgYXMg
ZGV0ZXJtaW5lUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luIHVwZGF0ZWQgdGhlIGxheW91dCB2aWEg
UmVuZGVyVmlldzo6aGl0VGVzdC4gQXZvaWQgdGhpcyBieSBjb3B5aW5nCisgICAgICAgIHRoZSBs
aXN0IG9mIHBsdWdpbiBpbWFnZSBlbGVtZW50cyBpbnRvIGEgdmVjdG9yIGZpcnN0LgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpkZXRlcm1pbmVQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW4pOiBGaXhlZCB0aGUgcmVs
ZWFzZSBhc3NlcnQsIGFuZCBkZXBsb3llZCBSZWYgYW5kIFJlZlB0cgorICAgICAgICB0byBtYWtl
IHRoaXMgY29kZSBzYWZlLgorCiAyMDE4LTA2LTA2ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaCBpbiBsYW1iZGEgZnVuY3Rpb24gV1RGOjpGdW5j
dGlvbjx2b2lkICgpPjo6Q2FsbGFibGVXcmFwcGVyPFdlYktpdDo6RGlzcGxheUxpbms6OmRpc3Bs
YXlMaW5rQ2FsbGJhY2sKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCShyZXZpc2lvbiAyMzI1MzYpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTM2OSw0NCArNTM2OSw0
OSBAQCB2b2lkIFdlYlBhZ2U6OmRldGVybWluZVByaW1hcnlTbmFwc2hvdHRlCiAKICAgICBsYXlv
dXRJZk5lZWRlZCgpOwogCi0gICAgYXV0byYgbWFpbkZyYW1lID0gY29yZVBhZ2UoKS0+bWFpbkZy
YW1lKCk7Ci0gICAgaWYgKCFtYWluRnJhbWUudmlldygpKQotICAgICAgICByZXR1cm47Ci0gICAg
aWYgKCFtYWluRnJhbWUudmlldygpLT5yZW5kZXJWaWV3KCkpCisgICAgUmVmUHRyPEZyYW1lVmll
dz4gbWFpbkZyYW1lVmlldyA9IGNvcmVQYWdlKCktPm1haW5GcmFtZSgpLnZpZXcoKTsKKyAgICBp
ZiAoIW1haW5GcmFtZVZpZXcpCiAgICAgICAgIHJldHVybjsKLSAgICBSZW5kZXJWaWV3JiBtYWlu
UmVuZGVyVmlldyA9ICptYWluRnJhbWUudmlldygpLT5yZW5kZXJWaWV3KCk7CiAKICAgICBJbnRS
ZWN0IHNlYXJjaFJlY3QgPSBJbnRSZWN0KEludFBvaW50KCksIGNvcmVQYWdlKCktPm1haW5GcmFt
ZSgpLnZpZXcoKS0+Y29udGVudHNTaXplKCkpOwogICAgIHNlYXJjaFJlY3QuaW50ZXJzZWN0KElu
dFJlY3QoSW50UG9pbnQoKSwgSW50U2l6ZShwcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5TZWFyY2hM
aW1pdCwgcHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luU2VhcmNoTGltaXQpKSk7CiAKICAgICBIaXRU
ZXN0UmVxdWVzdCByZXF1ZXN0KEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSB8IEhpdFRlc3RSZXF1
ZXN0OjpBY3RpdmUgfCBIaXRUZXN0UmVxdWVzdDo6QWxsb3dDaGlsZEZyYW1lQ29udGVudCB8IEhp
dFRlc3RSZXF1ZXN0OjpJZ25vcmVDbGlwcGluZyB8IEhpdFRlc3RSZXF1ZXN0OjpEaXNhbGxvd1Vz
ZXJBZ2VudFNoYWRvd0NvbnRlbnQpOwogCi0gICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudCogY2Fu
ZGlkYXRlUGx1Z0luID0gbnVsbHB0cjsKKyAgICBSZWZQdHI8SFRNTFBsdWdJbkltYWdlRWxlbWVu
dD4gY2FuZGlkYXRlUGx1Z0luOwogICAgIHVuc2lnbmVkIGNhbmRpZGF0ZVBsdWdJbkFyZWEgPSAw
OwogCi0gICAgZm9yIChGcmFtZSogZnJhbWUgPSAmbWFpbkZyYW1lOyBmcmFtZTsgZnJhbWUgPSBm
cmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dFJlbmRlcmVkKCkpIHsKKyAgICBmb3IgKFJlZlB0cjxG
cmFtZT4gZnJhbWUgPSAmY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZy
YW1lLT50cmVlKCkudHJhdmVyc2VOZXh0UmVuZGVyZWQoKSkgewogICAgICAgICBpZiAoIWZyYW1l
LT5sb2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpLmNvbnRhaW5zUGx1Z2lucygpKQogICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgIGlmICghZnJhbWUtPmRvY3VtZW50KCkgfHwgIWZyYW1lLT52
aWV3KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBWZWN0b3I8UmVmPEhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQ+PiBub25QbGF5aW5nUGx1Z0luSW1hZ2VFbGVtZW50czsKICAgICAg
ICAgZm9yIChhdXRvJiBwbHVnSW5JbWFnZUVsZW1lbnQgOiBkZXNjZW5kYW50c09mVHlwZTxIVE1M
UGx1Z0luSW1hZ2VFbGVtZW50PigqZnJhbWUtPmRvY3VtZW50KCkpKSB7CiAgICAgICAgICAgICBp
ZiAocGx1Z0luSW1hZ2VFbGVtZW50LmRpc3BsYXlTdGF0ZSgpID09IEhUTUxQbHVnSW5FbGVtZW50
OjpQbGF5aW5nKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgbm9uUGxh
eWluZ1BsdWdJbkltYWdlRWxlbWVudHMuYXBwZW5kKHBsdWdJbkltYWdlRWxlbWVudCk7CisgICAg
ICAgIH0KIAotICAgICAgICAgICAgYXV0byBwbHVnaW5SZW5kZXJlciA9IHBsdWdJbkltYWdlRWxl
bWVudC5yZW5kZXJlcigpOworICAgICAgICBmb3IgKGF1dG8mIHBsdWdJbkltYWdlRWxlbWVudCA6
IG5vblBsYXlpbmdQbHVnSW5JbWFnZUVsZW1lbnRzKSB7CisgICAgICAgICAgICBhdXRvIHBsdWdp
blJlbmRlcmVyID0gcGx1Z0luSW1hZ2VFbGVtZW50LT5yZW5kZXJlcigpOwogICAgICAgICAgICAg
aWYgKCFwbHVnaW5SZW5kZXJlciB8fCAhcGx1Z2luUmVuZGVyZXItPmlzQm94KCkpCiAgICAgICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICBhdXRvJiBwbHVnaW5SZW5kZXJCb3ggPSBk
b3duY2FzdDxSZW5kZXJCb3g+KCpwbHVnaW5SZW5kZXJlcik7Ci0gICAgICAgICAgICBpZiAoIXBs
dWdJbkludGVyc2VjdHNTZWFyY2hSZWN0KHBsdWdJbkltYWdlRWxlbWVudCkpCisgICAgICAgICAg
ICBpZiAoIXBsdWdJbkludGVyc2VjdHNTZWFyY2hSZWN0KHBsdWdJbkltYWdlRWxlbWVudC5nZXQo
KSkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgIEludFJlY3QgcGx1
Z0luUmVjdFJlbGF0aXZlVG9WaWV3ID0gcGx1Z0luSW1hZ2VFbGVtZW50LmNsaWVudFJlY3QoKTsK
LSAgICAgICAgICAgIFNjcm9sbFBvc2l0aW9uIHNjcm9sbFBvc2l0aW9uID0gbWFpbkZyYW1lLnZp
ZXcoKS0+ZG9jdW1lbnRTY3JvbGxQb3NpdGlvblJlbGF0aXZlVG9WaWV3T3JpZ2luKCk7CisgICAg
ICAgICAgICBJbnRSZWN0IHBsdWdJblJlY3RSZWxhdGl2ZVRvVmlldyA9IHBsdWdJbkltYWdlRWxl
bWVudC0+Y2xpZW50UmVjdCgpOworICAgICAgICAgICAgU2Nyb2xsUG9zaXRpb24gc2Nyb2xsUG9z
aXRpb24gPSBtYWluRnJhbWVWaWV3LT5kb2N1bWVudFNjcm9sbFBvc2l0aW9uUmVsYXRpdmVUb1Zp
ZXdPcmlnaW4oKTsKICAgICAgICAgICAgIEludFJlY3QgcGx1Z0luUmVjdFJlbGF0aXZlVG9Ub3BE
b2N1bWVudChwbHVnSW5SZWN0UmVsYXRpdmVUb1ZpZXcubG9jYXRpb24oKSArIHNjcm9sbFBvc2l0
aW9uLCBwbHVnSW5SZWN0UmVsYXRpdmVUb1ZpZXcuc2l6ZSgpKTsKICAgICAgICAgICAgIEhpdFRl
c3RSZXN1bHQgaGl0VGVzdFJlc3VsdChwbHVnSW5SZWN0UmVsYXRpdmVUb1RvcERvY3VtZW50LmNl
bnRlcigpKTsKLSAgICAgICAgICAgIG1haW5SZW5kZXJWaWV3LmhpdFRlc3QocmVxdWVzdCwgaGl0
VGVzdFJlc3VsdCk7CiAKLSAgICAgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBoaXRUZXN0UmVz
dWx0LnRhcmdldEVsZW1lbnQoKTsKKyAgICAgICAgICAgIGlmICghbWFpbkZyYW1lVmlldy0+cmVu
ZGVyVmlldygpKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1haW5GcmFt
ZVZpZXctPnJlbmRlclZpZXcoKS0+aGl0VGVzdChyZXF1ZXN0LCBoaXRUZXN0UmVzdWx0KTsKKwor
ICAgICAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBoaXRUZXN0UmVzdWx0LnRhcmdl
dEVsZW1lbnQoKTsKICAgICAgICAgICAgIGlmICghZWxlbWVudCkKICAgICAgICAgICAgICAgICBj
b250aW51ZTsKIApAQCAtNTQxOCwxOCArNTQyMywxOCBAQCB2b2lkIFdlYlBhZ2U6OmRldGVybWlu
ZVByaW1hcnlTbmFwc2hvdHRlCiAgICAgICAgICAgICBpbmZsYXRlZFBsdWdpblJlY3QuaW5mbGF0
ZVgoeE9mZnNldCk7CiAgICAgICAgICAgICBpbmZsYXRlZFBsdWdpblJlY3QuaW5mbGF0ZVkoeU9m
ZnNldCk7CiAKLSAgICAgICAgICAgIGlmIChlbGVtZW50ICE9ICZwbHVnSW5JbWFnZUVsZW1lbnQp
IHsKKyAgICAgICAgICAgIGlmIChlbGVtZW50ICE9IHBsdWdJbkltYWdlRWxlbWVudC5wdHIoKSkg
ewogICAgICAgICAgICAgICAgIGlmICghKGlzPEhUTUxJbWFnZUVsZW1lbnQ+KCplbGVtZW50KQog
ICAgICAgICAgICAgICAgICAgICAmJiBpbmZsYXRlZFBsdWdpblJlY3QuY29udGFpbnMoZWxlbWVu
dFJlY3RSZWxhdGl2ZVRvVG9wRG9jdW1lbnQpCiAgICAgICAgICAgICAgICAgICAgICYmIGVsZW1l
bnRSZWN0UmVsYXRpdmVUb1RvcERvY3VtZW50LndpZHRoKCkgPiBwbHVnaW5SZW5kZXJCb3gud2lk
dGgoKSAqIG1pbmltdW1PdmVybGFwcGluZ0ltYWdlVG9QbHVnaW5EaW1lbnNpb25TY2FsZQogICAg
ICAgICAgICAgICAgICAgICAmJiBlbGVtZW50UmVjdFJlbGF0aXZlVG9Ub3BEb2N1bWVudC5oZWln
aHQoKSA+IHBsdWdpblJlbmRlckJveC5oZWlnaHQoKSAqIG1pbmltdW1PdmVybGFwcGluZ0ltYWdl
VG9QbHVnaW5EaW1lbnNpb25TY2FsZSkpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICAgICAgICAgIExPRyhQbHVnaW5zLCAiUHJpbWFyeSBQbHVnLUluIERldGVjdGlvbjog
UGx1Zy1pbiBpcyBoaWRkZW4gYnkgYW4gaW1hZ2UgdGhhdCBpcyByb3VnaGx5IGFsaWduZWQgd2l0
aCBpdCwgYXV0b3BsYXlpbmcgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCBpdCdzIGFjdHVh
bGx5IHRoZSBwcmltYXJ5IHBsdWctaW4uIik7Ci0gICAgICAgICAgICAgICAgcGx1Z0luSW1hZ2VF
bGVtZW50LnJlc3RhcnRTbmFwc2hvdHRlZFBsdWdJbigpOworICAgICAgICAgICAgICAgIHBsdWdJ
bkltYWdlRWxlbWVudC0+cmVzdGFydFNuYXBzaG90dGVkUGx1Z0luKCk7CiAgICAgICAgICAgICB9
CiAKICAgICAgICAgICAgIGlmIChwbHVnSW5Jc1ByaW1hcnlTaXplKHBsdWdJbkltYWdlRWxlbWVu
dCwgY2FuZGlkYXRlUGx1Z0luQXJlYSkpCi0gICAgICAgICAgICAgICAgY2FuZGlkYXRlUGx1Z0lu
ID0gJnBsdWdJbkltYWdlRWxlbWVudDsKKyAgICAgICAgICAgICAgICBjYW5kaWRhdGVQbHVnSW4g
PSBXVEZNb3ZlKHBsdWdJbkltYWdlRWxlbWVudCk7CiAgICAgICAgIH0KICAgICB9CiAgICAgaWYg
KCFjYW5kaWRhdGVQbHVnSW4pIHsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzMjUzNikKKysrIExheW91
dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE4LTA2
LTA2ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbGVhc2Ug
YXNzZXJ0IGluIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKSBpbiBXZWJQYWdlOjpkZXRlcm1pbmVQ
cmltYXJ5U25hcHNob3R0ZWRQbHVnSW4oKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTg2MzgzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80MDg0OTQ5
OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRl
ZCBhIHJlZ3Jlc3Npb24gdGVzdC4KKworICAgICAgICAqIHBsdWdpbnMvc25hcHNob3R0aW5nL2Rl
dGVybWluZS1wcmltYXJ5LXNuYXBzaG90dGVkLXBsdWdpbi1jcmFzaC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHBsdWdpbnMvc25hcHNob3R0aW5nL2RldGVybWluZS1wcmltYXJ5LXNu
YXBzaG90dGVkLXBsdWdpbi1jcmFzaC5odG1sOiBBZGRlZC4KKwogMjAxOC0wNi0wNSAgSmVyIE5v
YmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OICgyMzE4MTcp
OiBWaWRlb3MgcGVybWFuZW50bHkgYmxhbmsgb3V0IGFmdGVyIHN3aXRjaGluZyBvdXQgb2YgYSB0
YWIgYW5kIGJhY2sgaW4KSW5kZXg6IExheW91dFRlc3RzL3BsdWdpbnMvc25hcHNob3R0aW5nL2Rl
dGVybWluZS1wcmltYXJ5LXNuYXBzaG90dGVkLXBsdWdpbi1jcmFzaC1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9zbmFwc2hvdHRpbmcvZGV0ZXJtaW5lLXBy
aW1hcnktc25hcHNob3R0ZWQtcGx1Z2luLWNyYXNoLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQp
CisrKyBMYXlvdXRUZXN0cy9wbHVnaW5zL3NuYXBzaG90dGluZy9kZXRlcm1pbmUtcHJpbWFyeS1z
bmFwc2hvdHRlZC1wbHVnaW4tY3Jhc2gtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNCBAQAorVGhpcyB0ZXN0cyBkZXRlcm1pbmluZyB0aGUgcHJpbWFyeSBzbmFwc2hvdHRl
ZCBwbHVnaW4gZG9lcyBub3QgaGl0IGFuIGFzc2VydGlvbi4KKworUEFTUworCkluZGV4OiBMYXlv
dXRUZXN0cy9wbHVnaW5zL3NuYXBzaG90dGluZy9kZXRlcm1pbmUtcHJpbWFyeS1zbmFwc2hvdHRl
ZC1wbHVnaW4tY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL3Nu
YXBzaG90dGluZy9kZXRlcm1pbmUtcHJpbWFyeS1zbmFwc2hvdHRlZC1wbHVnaW4tY3Jhc2guaHRt
bAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9wbHVnaW5zL3NuYXBzaG90dGluZy9kZXRl
cm1pbmUtcHJpbWFyeS1zbmFwc2hvdHRlZC1wbHVnaW4tY3Jhc2guaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8cD5U
aGlzIHRlc3RzIGRldGVybWluaW5nIHRoZSBwcmltYXJ5IHNuYXBzaG90dGVkIHBsdWdpbiBkb2Vz
IG5vdCBoaXQgYW4gYXNzZXJ0aW9uLjwvcD4KKzxkaXYgaWQ9InJlc3VsdCI+RkFJTDwvZGl2Pgor
PGVtYmVkIGlkPSJ0ZXN0UGx1Z2luIiBzcmM9IndlYmtpdC10ZXN0LW5ldHNjYXBlIiB0eXBlPSJh
cHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlIj48L2VtYmVkPgorPHNjcmlwdD4KK2lm
ICghd2luZG93LnRlc3RSdW5uZXIpCisgICAgcmVzdWx0LnRleHRDb250ZW50ID0gJ1RoaXMgdGVz
dCByZXF1aXJlcyBXZWJLaXRUZXN0UnVubmVyLic7CitlbHNlIHsKKyAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0UGx1Z0luU25hcHNob3R0aW5nRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0TWF4aW11bVBsdWdJblNuYXBzaG90QXR0ZW1wdHMoMCk7CisgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAg
c2V0VGltZW91dCgoKSA9PiB7CisgICAgICAgIGNvbnN0IHRlc3RQbHVnaW4gPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGVzdFBsdWdpbiIpOworICAgICAgICBpZiAoaW50ZXJuYWxzLmlzUGx1
Z2luU25hcHNob3R0ZWQodGVzdFBsdWdpbikpCisgICAgICAgICAgICByZXN1bHQudGV4dENvbnRl
bnQgPSAnUEFTUyc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJlc3VsdC50ZXh0Q29udGVu
dCA9ICdGQUlMIC0gbm90IHNuYXBzaG90JzsKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CisgICAgfSwgNTAwKTsKK30KKworPC9zY3JpcHQ+Cg==
</data>
<flag name="review"
          id="360271"
          type_id="1"
          status="+"
          setter="jonlee"
    />
          </attachment>
      

    </bug>

</bugzilla>