<?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>203919</bug_id>
          
          <creation_ts>2019-11-06 14:16:21 -0800</creation_ts>
          <short_desc>Port Worker to the HTML5 event loop</short_desc>
          <delta_ts>2019-11-07 16:07:45 -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>WebCore Misc.</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>
          
          <blocked>202843</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>kangil.han</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1587907</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-06 14:16:21 -0800</bug_when>
    <thetext>Port Worker to the HTML5 event loop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588087</commentid>
    <comment_count>1</comment_count>
      <attachid>383014</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-06 19:29:31 -0800</bug_when>
    <thetext>Created attachment 383014
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588391</commentid>
    <comment_count>2</comment_count>
      <attachid>383014</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-11-07 14:00:17 -0800</bug_when>
    <thetext>Comment on attachment 383014
Patch

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

&gt; Source/WebCore/workers/Worker.cpp:208
&gt; +        queueTaskToDispatchEvent(*this, TaskSource::DOMManipulation, Event::create(eventNames().errorEvent, Event::CanBubble::No, Event::IsCancelable::Yes));

Shouldn&apos;t this be Networking?

&gt; Source/WebCore/workers/WorkerMessagingProxy.cpp:107
&gt; -        workerObject-&gt;enqueueEvent(MessageEvent::create(WTFMove(ports), message.message.releaseNonNull()));
&gt; +        ActiveDOMObject::queueTaskToDispatchEvent(*workerObject, TaskSource::DOMManipulation, MessageEvent::create(WTFMove(ports), message.message.releaseNonNull()));

Shouldn&apos;t this be unshipped port message queue?
https://html.spec.whatwg.org/multipage/web-messaging.html#message-port-post-message-steps

&gt; Source/WebCore/workers/WorkerMessagingProxy.cpp:180
&gt; -        workerObject-&gt;enqueueEvent(ErrorEvent::create(errorMessage, sourceURL, lineNumber, columnNumber, { }));
&gt; +        ActiveDOMObject::queueTaskToDispatchEvent(*workerObject, TaskSource::DOMManipulation, ErrorEvent::create(errorMessage, sourceURL, lineNumber, columnNumber, { }));

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588392</commentid>
    <comment_count>3</comment_count>
      <attachid>383014</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-07 14:03:11 -0800</bug_when>
    <thetext>Comment on attachment 383014
Patch

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

&gt;&gt; Source/WebCore/workers/Worker.cpp:208
&gt;&gt; +        queueTaskToDispatchEvent(*this, TaskSource::DOMManipulation, Event::create(eventNames().errorEvent, Event::CanBubble::No, Event::IsCancelable::Yes));
&gt; 
&gt; Shouldn&apos;t this be Networking?

The spec says:
&quot;The task source for the tasks mentioned above is the DOM manipulation task source.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588394</commentid>
    <comment_count>4</comment_count>
      <attachid>383014</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-07 14:04:36 -0800</bug_when>
    <thetext>Comment on attachment 383014
Patch

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

&gt;&gt; Source/WebCore/workers/WorkerMessagingProxy.cpp:107
&gt;&gt; +        ActiveDOMObject::queueTaskToDispatchEvent(*workerObject, TaskSource::DOMManipulation, MessageEvent::create(WTFMove(ports), message.message.releaseNonNull()));
&gt; 
&gt; Shouldn&apos;t this be unshipped port message queue?
&gt; https://html.spec.whatwg.org/multipage/web-messaging.html#message-port-post-message-steps

We don&apos;t exactly match the spec here indeed but I am unclear how to exactly match the spec.
Would you like me to add a FIXME comment?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588396</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-11-07 14:07:50 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #4)
&gt; Comment on attachment 383014 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=383014&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/workers/WorkerMessagingProxy.cpp:107
&gt; &gt;&gt; +        ActiveDOMObject::queueTaskToDispatchEvent(*workerObject, TaskSource::DOMManipulation, MessageEvent::create(WTFMove(ports), message.message.releaseNonNull()));
&gt; &gt; 
&gt; &gt; Shouldn&apos;t this be unshipped port message queue?
&gt; &gt; https://html.spec.whatwg.org/multipage/web-messaging.html#message-port-post-message-steps
&gt; 
&gt; We don&apos;t exactly match the spec here indeed but I am unclear how to exactly
&gt; match the spec.
&gt; Would you like me to add a FIXME comment?

I think using DOM manipulation task source is super confusing here because it clearly isn&apos;t that. I think the closest thing is https://html.spec.whatwg.org/multipage/web-messaging.html#port-message-queue

See https://html.spec.whatwg.org/multipage/web-messaging.html#message-port-post-message-steps, which is invoked by postMessage on Worker, which uses the implicitly defined MessagePort of Worker.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588399</commentid>
    <comment_count>6</comment_count>
      <attachid>383014</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-07 14:10:16 -0800</bug_when>
    <thetext>Comment on attachment 383014
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/workers/WorkerMessagingProxy.cpp:107
&gt;&gt;&gt;&gt; +        ActiveDOMObject::queueTaskToDispatchEvent(*workerObject, TaskSource::DOMManipulation, MessageEvent::create(WTFMove(ports), message.message.releaseNonNull()));
&gt;&gt;&gt; 
&gt;&gt;&gt; Shouldn&apos;t this be unshipped port message queue?
&gt;&gt;&gt; https://html.spec.whatwg.org/multipage/web-messaging.html#message-port-post-message-steps
&gt;&gt; 
&gt;&gt; We don&apos;t exactly match the spec here indeed but I am unclear how to exactly match the spec.
&gt;&gt; Would you like me to add a FIXME comment?
&gt; 
&gt; I think using DOM manipulation task source is super confusing here because it clearly isn&apos;t that. I think the closest thing is https://html.spec.whatwg.org/multipage/web-messaging.html#port-message-queue
&gt; 
&gt; See https://html.spec.whatwg.org/multipage/web-messaging.html#message-port-post-message-steps, which is invoked by postMessage on Worker, which uses the implicitly defined MessagePort of Worker.

I used DOMManipulation for consistency with the rest of the spec. Yes, the spec is using DOMManipulation for things that are not DOMManipulation. See also:
https://w3c.github.io/ServiceWorker/#dom-serviceworker-postmessage-message-options

Even in service workers, the spec says to use DOMManipulation for postMessage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588404</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-11-07 14:17:43 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #6)
&gt; Comment on attachment 383014 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=383014&amp;action=review
&gt; 
&gt; &gt;&gt;&gt;&gt; Source/WebCore/workers/WorkerMessagingProxy.cpp:107
&gt; &gt;&gt;&gt;&gt; +        ActiveDOMObject::queueTaskToDispatchEvent(*workerObject, TaskSource::DOMManipulation, MessageEvent::create(WTFMove(ports), message.message.releaseNonNull()));
&gt; &gt;&gt;&gt; 
&gt; &gt;&gt;&gt; Shouldn&apos;t this be unshipped port message queue?
&gt; &gt;&gt;&gt; https://html.spec.whatwg.org/multipage/web-messaging.html#message-port-post-message-steps
&gt; &gt;&gt; 
&gt; &gt;&gt; We don&apos;t exactly match the spec here indeed but I am unclear how to exactly match the spec.
&gt; &gt;&gt; Would you like me to add a FIXME comment?
&gt; &gt; 
&gt; &gt; I think using DOM manipulation task source is super confusing here because it clearly isn&apos;t that. I think the closest thing is https://html.spec.whatwg.org/multipage/web-messaging.html#port-message-queue
&gt; &gt; 
&gt; &gt; See https://html.spec.whatwg.org/multipage/web-messaging.html#message-port-post-message-steps, which is invoked by postMessage on Worker, which uses the implicitly defined MessagePort of Worker.
&gt; 
&gt; I used DOMManipulation for consistency with the rest of the spec. Yes, the
&gt; spec is using DOMManipulation for things that are not DOMManipulation. See
&gt; also:
&gt; https://w3c.github.io/ServiceWorker/#dom-serviceworker-postmessage-message-
&gt; options
&gt; 
&gt; Even in service workers, the spec says to use DOMManipulation for
&gt; postMessage.

That&apos;s very strange. Perhaps we need a spec bug to clarify what task source is used for messaging. I&apos;d much prefer having a single task source for all messaging related APIs than ramp it together with DOM manipulation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588447</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-07 15:24:46 -0800</bug_when>
    <thetext>Committed r252212: &lt;https://trac.webkit.org/changeset/252212&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588448</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-07 15:25:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/57000977&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383014</attachid>
            <date>2019-11-06 19:29:31 -0800</date>
            <delta_ts>2019-11-07 16:07:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203919-20191106192928.patch</filename>
            <type>text/plain</type>
            <size>7555</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyMTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOThmZGMyMmU3Yzc4MDc1
ZjczYjEzYzdjNDRiMDk2NzdhMjM1NDE3OS4uOTA2YmExOWM4YmUyN2E5NjRlYTQzYjNiODg2OTM4
YmNlY2UxOWFiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE5LTExLTA2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUG9ydCBXb3JrZXIgdG8gdGhl
IEhUTUw1IGV2ZW50IGxvb3AKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMzkxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogZG9tL0FjdGl2ZURPTU9iamVjdC5oOgorICAgICAgICAqIHdvcmtlcnMvV29y
a2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6V29ya2VyKToKKyAgICAgICAgKFdl
YkNvcmU6Oldvcmtlcjo6dGVybWluYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6aGFz
UGVuZGluZ0FjdGl2aXR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6bm90aWZ5
RmluaXNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyOjpkaXNwYXRjaEV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6ZW5xdWV1ZUV2ZW50KTogRGVsZXRlZC4KKyAgICAgICAg
KiB3b3JrZXJzL1dvcmtlci5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJv
eHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTWVzc2FnaW5nUHJveHk6OnBvc3RNZXNz
YWdlVG9Xb3JrZXJPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTWVzc2FnaW5nUHJv
eHk6OnBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVjdCk6CisKIDIwMTktMTEtMDYgIENocmlzIExv
cmQgIDxjbG9yZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtDYWlyb10gQ2Fpcm8gZ3JhcGhpY3Mg
YmFja2VuZCB1c2VzIEltYWdlQnVmZmVyOjpjb3B5SW1hZ2UganVzdCB0byBhY2Nlc3MgbmF0aXZl
IGltYWdlIGJ1ZmZlciBoYW5kbGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQWN0
aXZlRE9NT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmgKaW5k
ZXggMTY1MmU0OGEwMTU4YzhhYmE5MzY5OGYzZTNmMGMwMjIzNmI1ZDYwOS4uZTBhMjU0NjFiNDAz
NmFhZmVhNGMxZmYzYmFjZDBmZGYyNmFmOGJjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0FjdGl2ZURPTU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01P
YmplY3QuaApAQCAtMTEzLDEyICsxMTMsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0NvbnRleHRT
dG9wcGVkKCkgY29uc3Q7CiAgICAgYm9vbCBpc0FsbG93ZWRUb1J1blNjcmlwdCgpIGNvbnN0Owog
Ci1wcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgQWN0aXZlRE9NT2JqZWN0KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqKTsKLSAgICBleHBsaWNpdCBBY3RpdmVET01PYmplY3QoRG9jdW1lbnQqKTsKLSAg
ICBleHBsaWNpdCBBY3RpdmVET01PYmplY3QoRG9jdW1lbnQmKTsKLSAgICB2aXJ0dWFsIH5BY3Rp
dmVET01PYmplY3QoKTsKLQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAgICAgc3RhdGljIHZv
aWQgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKFQmIG9iamVjdCwgVGFza1NvdXJjZSBzb3Vy
Y2UsIEZ1bmN0aW9uPHZvaWQgKCk+JiYgdGFzaykKICAgICB7CkBAIC0xMzYsNiArMTMwLDEyIEBA
IHByb3RlY3RlZDoKICAgICAgICAgfSk7CiAgICAgfQogCitwcm90ZWN0ZWQ6CisgICAgZXhwbGlj
aXQgQWN0aXZlRE9NT2JqZWN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKyAgICBleHBsaWNp
dCBBY3RpdmVET01PYmplY3QoRG9jdW1lbnQqKTsKKyAgICBleHBsaWNpdCBBY3RpdmVET01PYmpl
Y3QoRG9jdW1lbnQmKTsKKyAgICB2aXJ0dWFsIH5BY3RpdmVET01PYmplY3QoKTsKKwogcHJpdmF0
ZToKICAgICBlbnVtIENoZWNrZWRTY3JpcHRFeGVjdXRpb25Db250ZXh0VHlwZSB7IENoZWNrZWRT
Y3JpcHRFeGVjdXRpb25Db250ZXh0IH07CiAgICAgQWN0aXZlRE9NT2JqZWN0KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBDaGVja2VkU2NyaXB0RXhlY3V0aW9uQ29udGV4dFR5cGUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXIuY3BwCmluZGV4IGE3NjI5MTNlN2Q1NmI1ZjZiNjg3ZjI2Nzg5YmZhMzQx
ZDBjNzhkOTIuLjgxZDdmNDA2MTdmNGZhOWEwMmUzNThiZDNmNTZiODZiMzVhMDI1YmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlci5jcHAKQEAgLTY5LDcgKzY5LDYgQEAgaW5saW5lIFdvcmtlcjo6
V29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEpTQzo6UnVudGltZUZsYWdz
IHJ1bnRpbWUKICAgICAsIG1faWRlbnRpZmllcigid29ya2VyOiIgKyBJbnNwZWN0b3I6OklkZW50
aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigpKQogICAgICwgbV9jb250ZXh0UHJveHko
V29ya2VyR2xvYmFsU2NvcGVQcm94eTo6Y3JlYXRlKCp0aGlzKSkKICAgICAsIG1fcnVudGltZUZs
YWdzKHJ1bnRpbWVGbGFncykKLSAgICAsIG1fZXZlbnRRdWV1ZShHZW5lcmljRXZlbnRRdWV1ZTo6
Y3JlYXRlKCp0aGlzKSkKIHsKICAgICBzdGF0aWMgYm9vbCBhZGRlZExpc3RlbmVyOwogICAgIGlm
ICghYWRkZWRMaXN0ZW5lcikgewpAQCAtMTQ3LDcgKzE0Niw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+
IFdvcmtlcjo6cG9zdE1lc3NhZ2UoSlNDOjpKU0dsb2JhbE9iamVjdCYgc3RhdGUsIEpTQzo6SlNW
YWx1ZSBtCiB2b2lkIFdvcmtlcjo6dGVybWluYXRlKCkKIHsKICAgICBtX2NvbnRleHRQcm94eS50
ZXJtaW5hdGVXb3JrZXJHbG9iYWxTY29wZSgpOwotICAgIG1fZXZlbnRRdWV1ZS0+Y2FuY2VsQWxs
RXZlbnRzKCk7CisgICAgbV93YXNUZXJtaW5hdGVkID0gdHJ1ZTsKIH0KIAogY29uc3QgY2hhciog
V29ya2VyOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKQEAgLTE3OCw3ICsxNzcsNyBAQCB2
b2lkIFdvcmtlcjo6cmVzdW1lKCkKIAogYm9vbCBXb3JrZXI6Omhhc1BlbmRpbmdBY3Rpdml0eSgp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fY29udGV4dFByb3h5Lmhhc1BlbmRpbmdBY3Rpdml0eSgp
IHx8IEFjdGl2ZURPTU9iamVjdDo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgfHwgbV9ldmVudFF1ZXVl
LT5oYXNQZW5kaW5nRXZlbnRzKCk7CisgICAgcmV0dXJuIG1fY29udGV4dFByb3h5Lmhhc1BlbmRp
bmdBY3Rpdml0eSgpIHx8IEFjdGl2ZURPTU9iamVjdDo6aGFzUGVuZGluZ0FjdGl2aXR5KCk7CiB9
CiAKIHZvaWQgV29ya2VyOjpub3RpZnlOZXR3b3JrU3RhdGVDaGFuZ2UoYm9vbCBpc09uTGluZSkK
QEAgLTIwNiw3ICsyMDUsNyBAQCB2b2lkIFdvcmtlcjo6bm90aWZ5RmluaXNoZWQoKQogICAgICAg
ICByZXR1cm47CiAKICAgICBpZiAobV9zY3JpcHRMb2FkZXItPmZhaWxlZCgpKSB7Ci0gICAgICAg
IGVucXVldWVFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50LCBFdmVu
dDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6WWVzKSk7CisgICAgICAgIHF1
ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6RE9NTWFuaXB1bGF0aW9u
LCBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50LCBFdmVudDo6Q2FuQnViYmxl
OjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6WWVzKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKQEAgLTIxNiwxNCArMjE1LDEwIEBAIHZvaWQgV29ya2VyOjpub3RpZnlGaW5pc2hlZCgpCiAg
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzY3JpcHRJbXBvcnRlZCgqY29udGV4dCwgbV9z
Y3JpcHRMb2FkZXItPmlkZW50aWZpZXIoKSwgbV9zY3JpcHRMb2FkZXItPnNjcmlwdCgpKTsKIH0K
IAotdm9pZCBXb3JrZXI6OmVucXVldWVFdmVudChSZWY8RXZlbnQ+JiYgZXZlbnQpCi17Ci0gICAg
bV9ldmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoV1RGTW92ZShldmVudCkpOwotfQotCiB2b2lkIFdv
cmtlcjo6ZGlzcGF0Y2hFdmVudChFdmVudCYgZXZlbnQpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlRf
V0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbV9ldmVudFF1ZXVlLT5pc1N1c3BlbmRlZCgpKTsK
KyAgICBpZiAobV93YXNUZXJtaW5hdGVkKQorICAgICAgICByZXR1cm47CiAKICAgICBBYnN0cmFj
dFdvcmtlcjo6ZGlzcGF0Y2hFdmVudChldmVudCk7CiAgICAgaWYgKGlzPEVycm9yRXZlbnQ+KGV2
ZW50KSAmJiAhZXZlbnQuZGVmYXVsdFByZXZlbnRlZCgpICYmIGV2ZW50LmlzVHJ1c3RlZCgpICYm
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKaW5kZXgg
MWJiNTk1NWRmZWZhZjQyYWZkYWJjZDkwNDBhNzk0NWQ1MmY4OTlmZi4uN2RjYmY0ZjVmZWFhMDJj
ZGYwOTY3OWY2MjA3MGJhNmVmNDFkNTVjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oCkBAIC0y
OSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiQ29u
dGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJn
ZXQuaCIKLSNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQ
b3J0LmgiCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvUnVudGltZUZsYWdzLmg+CkBAIC02OCwxMyArNjcsMTEgQEAgcHVibGlj
OgogCiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpOyB9CiAKLSAgICB2b2lkIGVucXVldWVFdmVudChSZWY8RXZlbnQ+JiYpOworICAgIHZv
aWQgZGlzcGF0Y2hFdmVudChFdmVudCYpIGZpbmFsOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0
IFdvcmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgSlNDOjpSdW50aW1lRmxhZ3MsIGNvbnN0
IE9wdGlvbnMmKTsKIAotICAgIHZvaWQgZGlzcGF0Y2hFdmVudChFdmVudCYpIGZpbmFsOwotCiAg
ICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBXb3JrZXJFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KIAogICAgIHZvaWQg
bm90aWZ5TmV0d29ya1N0YXRlQ2hhbmdlKGJvb2wgaXNPbmxpbmUpOwpAQCAtOTgsNyArOTUsOCBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJp
dHlQb2xpY3kgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1N1c3BlbmRlZEZvckJhY2tGb3J3YXJk
Q2FjaGUgeyBmYWxzZSB9OwogICAgIEpTQzo6UnVudGltZUZsYWdzIG1fcnVudGltZUZsYWdzOwot
ICAgIFVuaXF1ZVJlZjxHZW5lcmljRXZlbnRRdWV1ZT4gbV9ldmVudFF1ZXVlOworICAgIERlcXVl
PFJlZlB0cjxFdmVudD4+IG1fcGVuZGluZ0V2ZW50czsKKyAgICBib29sIG1fd2FzVGVybWluYXRl
ZCB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCmluZGV4IDZkODllODMxYTdh
ZWE4Y2Y3MzVlZDFmMTdiMmYxM2U2MjgzMzU0ZDMuLjA0MjRkNGI3YmU2YTIzNzRjMTE0NjU0NjY3
YjgwNmQxY2NiNmQ5NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
TWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVz
c2FnaW5nUHJveHkuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgdm9pZCBXb3JrZXJNZXNzYWdpbmdQ
cm94eTo6cG9zdE1lc3NhZ2VUb1dvcmtlck9iamVjdChNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYm
IG0KICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBhdXRvIHBvcnRzID0gTWVzc2FnZVBv
cnQ6OmVudGFuZ2xlUG9ydHMoY29udGV4dCwgV1RGTW92ZShtZXNzYWdlLnRyYW5zZmVycmVkUG9y
dHMpKTsKLSAgICAgICAgd29ya2VyT2JqZWN0LT5lbnF1ZXVlRXZlbnQoTWVzc2FnZUV2ZW50Ojpj
cmVhdGUoV1RGTW92ZShwb3J0cyksIG1lc3NhZ2UubWVzc2FnZS5yZWxlYXNlTm9uTnVsbCgpKSk7
CisgICAgICAgIEFjdGl2ZURPTU9iamVjdDo6cXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp3b3Jr
ZXJPYmplY3QsIFRhc2tTb3VyY2U6OkRPTU1hbmlwdWxhdGlvbiwgTWVzc2FnZUV2ZW50OjpjcmVh
dGUoV1RGTW92ZShwb3J0cyksIG1lc3NhZ2UubWVzc2FnZS5yZWxlYXNlTm9uTnVsbCgpKSk7CiAg
ICAgfSk7CiB9CiAKQEAgLTE3Nyw3ICsxNzcsNyBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5
Ojpwb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZwog
CiAgICAgICAgIC8vIFdlIGRvbid0IGJvdGhlciBjaGVja2luZyB0aGUgYXNrZWRUb1Rlcm1pbmF0
ZSgpIGZsYWcgaGVyZSwgYmVjYXVzZSBleGNlcHRpb25zIHNob3VsZCAqYWx3YXlzKiBiZSByZXBv
cnRlZCBldmVuIGlmIHRoZSB0aHJlYWQgaXMgdGVybWluYXRlZC4KICAgICAgICAgLy8gVGhpcyBp
cyBpbnRlbnRpb25hbGx5IGRpZmZlcmVudCB0aGFuIHRoZSBiZWhhdmlvciBpbiBNZXNzYWdlV29y
a2VyVGFzaywgYmVjYXVzZSB0ZXJtaW5hdGVkIHdvcmtlcnMgbm8gbG9uZ2VyIGRlbGl2ZXIgbWVz
c2FnZXMgKHNlY3Rpb24gNC42IG9mIHRoZSBXZWJXb3JrZXIgc3BlYyksIGJ1dCB0aGV5IGRvIHJl
cG9ydCBleGNlcHRpb25zLgotICAgICAgICB3b3JrZXJPYmplY3QtPmVucXVldWVFdmVudChFcnJv
ckV2ZW50OjpjcmVhdGUoZXJyb3JNZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIsIGNvbHVt
bk51bWJlciwgeyB9KSk7CisgICAgICAgIEFjdGl2ZURPTU9iamVjdDo6cXVldWVUYXNrVG9EaXNw
YXRjaEV2ZW50KCp3b3JrZXJPYmplY3QsIFRhc2tTb3VyY2U6OkRPTU1hbmlwdWxhdGlvbiwgRXJy
b3JFdmVudDo6Y3JlYXRlKGVycm9yTWVzc2FnZSwgc291cmNlVVJMLCBsaW5lTnVtYmVyLCBjb2x1
bW5OdW1iZXIsIHsgfSkpOwogICAgIH0pOwogfQogCg==
</data>
<flag name="review"
          id="398766"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>