<?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>203960</bug_id>
          
          <creation_ts>2019-11-07 09:09:44 -0800</creation_ts>
          <short_desc>Port MessagePort to the HTML5 event loop</short_desc>
          <delta_ts>2019-11-08 08:10:20 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=203995</see_also>
          <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>aakash_jain</cc>
    
    <cc>ap</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>kangil.han</cc>
    
    <cc>rniwa</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1588248</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-07 09:09:44 -0800</bug_when>
    <thetext>Port MessagePort to the HTML5 event loop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588249</commentid>
    <comment_count>1</comment_count>
      <attachid>383055</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-07 09:10:25 -0800</bug_when>
    <thetext>Created attachment 383055
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588393</commentid>
    <comment_count>2</comment_count>
      <attachid>383055</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-11-07 14:04:22 -0800</bug_when>
    <thetext>Comment on attachment 383055
Patch

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

&gt; Source/WebCore/dom/MessagePort.cpp:278
&gt; -            m_eventQueue-&gt;enqueueEvent(MessageEvent::create(WTFMove(ports), message.message.releaseNonNull()));
&gt; +            queueTaskToDispatchEvent(*this, TaskSource::PostedMessage, MessageEvent::create(WTFMove(ports), message.message.releaseNonNull()));

Hm... the posted message task source is only used for window post message steps:
https://html.spec.whatwg.org/multipage/web-messaging.html#window-post-message-steps
https://html.spec.whatwg.org/multipage/web-messaging.html#posted-message-task-source

Shouldn&apos;t this be port message queue or unshipped port message queue?
https://html.spec.whatwg.org/multipage/web-messaging.html#port-message-queue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588395</commentid>
    <comment_count>3</comment_count>
      <attachid>383055</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-07 14:07:06 -0800</bug_when>
    <thetext>Comment on attachment 383055
Patch

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

&gt;&gt; Source/WebCore/dom/MessagePort.cpp:278
&gt;&gt; +            queueTaskToDispatchEvent(*this, TaskSource::PostedMessage, MessageEvent::create(WTFMove(ports), message.message.releaseNonNull()));
&gt; 
&gt; Hm... the posted message task source is only used for window post message steps:
&gt; https://html.spec.whatwg.org/multipage/web-messaging.html#window-post-message-steps
&gt; https://html.spec.whatwg.org/multipage/web-messaging.html#posted-message-task-source
&gt; 
&gt; Shouldn&apos;t this be port message queue or unshipped port message queue?
&gt; https://html.spec.whatwg.org/multipage/web-messaging.html#port-message-queue

Looks like you&apos;re right, the spec says:
&quot;Add a task that runs the following steps to the port message queue of targetPort:&quot;

How do you propose I match the spec though?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588397</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-11-07 14:09:15 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #3)
&gt; Comment on attachment 383055 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=383055&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/dom/MessagePort.cpp:278
&gt; &gt;&gt; +            queueTaskToDispatchEvent(*this, TaskSource::PostedMessage, MessageEvent::create(WTFMove(ports), message.message.releaseNonNull()));
&gt; &gt; 
&gt; &gt; Hm... the posted message task source is only used for window post message steps:
&gt; &gt; https://html.spec.whatwg.org/multipage/web-messaging.html#window-post-message-steps
&gt; &gt; https://html.spec.whatwg.org/multipage/web-messaging.html#posted-message-task-source
&gt; &gt; 
&gt; &gt; Shouldn&apos;t this be port message queue or unshipped port message queue?
&gt; &gt; https://html.spec.whatwg.org/multipage/web-messaging.html#port-message-queue
&gt; 
&gt; Looks like you&apos;re right, the spec says:
&gt; &quot;Add a task that runs the following steps to the port message queue of
&gt; targetPort:&quot;
&gt; 
&gt; How do you propose I match the spec though?

I think we just add TaskSource type of PostMessageQueue. Maybe add a comment saying that the spec says each port has its own task source but we coalesce into one. Because HTML5 event loop spec allows whatever task source to be picked, this is okay for our implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588436</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-07 15:16:13 -0800</bug_when>
    <thetext>Committed r252209: &lt;https://trac.webkit.org/changeset/252209&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588441</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-07 15:17:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/57000643&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588628</commentid>
    <comment_count>7</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2019-11-08 07:07:24 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #5)
&gt; Committed r252209: &lt;https://trac.webkit.org/changeset/252209&gt;
This likely caused layout Test fast/workers/worker-close-more.html to fail. Tracked in https://bugs.webkit.org/show_bug.cgi?id=203995</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588648</commentid>
    <comment_count>8</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-11-08 08:10:20 -0800</bug_when>
    <thetext>(In reply to Aakash Jain from comment #7)
&gt; (In reply to Chris Dumez from comment #5)
&gt; &gt; Committed r252209: &lt;https://trac.webkit.org/changeset/252209&gt;
&gt; This likely caused layout Test fast/workers/worker-close-more.html to fail.
&gt; Tracked in https://bugs.webkit.org/show_bug.cgi?id=203995

I was able to reproduce this by just running the test. It fails on 252209 but not on 252208</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383055</attachid>
            <date>2019-11-07 09:10:25 -0800</date>
            <delta_ts>2019-11-07 16:08:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203960-20191107091022.patch</filename>
            <type>text/plain</type>
            <size>4158</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyMTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTkwNWU0OGZlY2UzYWNj
YmY1ZDJmODcyMGRjZTJkMjA1MTQ3MDE5Zi4uZjRjZDIyZTM1NjhkMWU3NWE3NjFhMDNkNjVjYzA0
MDAwNzk2MmQyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTExLTA3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUG9ydCBNZXNzYWdlUG9ydCB0
byB0aGUgSFRNTDUgZXZlbnQgbG9vcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAzOTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBkb20vTWVzc2FnZVBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVzc2FnZVBvcnQ6Ok1lc3NhZ2VQb3J0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0
OjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9ydDo6ZGlzcGF0Y2hNZXNzYWdl
cyk6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9ydDo6ZGlzcGF0Y2hFdmVudCk6CisgICAg
ICAgICogZG9tL01lc3NhZ2VQb3J0Lmg6CisgICAgICAgICogZG9tL1Rhc2tTb3VyY2UuaDoKKwog
MjAxOS0xMS0wNiAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAog
ICAgICAgICBXRUJDT1JFX1RFU1RTVVBQT1JUX0VYUE9SVCBzaG91bGQgYmUgdXNlZCBvbmx5IGZv
ciBXZWJDb3JlVGVzdFN1cHBvcnQsIG5vdCBmb3IgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdl
UG9ydC5jcHAKaW5kZXggZTBjNjA5MjJhZTdkMDliYjFhNDY3NGY4NjlkMjFjNGIxMjBkYTk0MS4u
YjE3NDc1OWM4OWE2Mzc3OWFjNGY1NmUxMzgxZjcxNWEzYjgxZTg0NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
TWVzc2FnZVBvcnQuY3BwCkBAIC05OCw3ICs5OCw2IEBAIE1lc3NhZ2VQb3J0OjpNZXNzYWdlUG9y
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBjb25zdCBN
CiAgICAgOiBBY3RpdmVET01PYmplY3QoJnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCiAgICAgLCBt
X2lkZW50aWZpZXIobG9jYWwpCiAgICAgLCBtX3JlbW90ZUlkZW50aWZpZXIocmVtb3RlKQotICAg
ICwgbV9ldmVudFF1ZXVlKEdlbmVyaWNFdmVudFF1ZXVlOjpjcmVhdGUoKnRoaXMpKQogewogICAg
IExPRyhNZXNzYWdlUG9ydHMsICJDcmVhdGVkIE1lc3NhZ2VQb3J0ICVzICglcCkgaW4gcHJvY2Vz
cyAlIiBQUkl1NjQsIG1faWRlbnRpZmllci5sb2dTdHJpbmcoKS51dGY4KCkuZGF0YSgpLCB0aGlz
LCBQcm9jZXNzOjppZGVudGlmaWVyKCkudG9VSW50NjQoKSk7CiAKQEAgLTIzNSw3ICsyMzQsNiBA
QCB2b2lkIE1lc3NhZ2VQb3J0OjpjbG9zZSgpCiAgICAgfQogCiAgICAgcmVtb3ZlQWxsRXZlbnRM
aXN0ZW5lcnMoKTsKLSAgICBtX2V2ZW50UXVldWUtPmNsb3NlKCk7CiB9CiAKIHZvaWQgTWVzc2Fn
ZVBvcnQ6OmNvbnRleHREZXN0cm95ZWQoKQpAQCAtMjc3LDEzICsyNzUsMjEgQEAgdm9pZCBNZXNz
YWdlUG9ydDo6ZGlzcGF0Y2hNZXNzYWdlcygpCiAgICAgICAgICAgICBpZiAoY29udGV4dElzV29y
a2VyICYmIGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPigqbV9zY3JpcHRFeGVjdXRpb25Db250
ZXh0KS5pc0Nsb3NpbmcoKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBh
dXRvIHBvcnRzID0gTWVzc2FnZVBvcnQ6OmVudGFuZ2xlUG9ydHMoKm1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCwgV1RGTW92ZShtZXNzYWdlLnRyYW5zZmVycmVkUG9ydHMpKTsKLSAgICAgICAgICAg
IG1fZXZlbnRRdWV1ZS0+ZW5xdWV1ZUV2ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKFdURk1vdmUo
cG9ydHMpLCBtZXNzYWdlLm1lc3NhZ2UucmVsZWFzZU5vbk51bGwoKSkpOworICAgICAgICAgICAg
cXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpQb3N0ZWRNZXNzYWdl
LCBNZXNzYWdlRXZlbnQ6OmNyZWF0ZShXVEZNb3ZlKHBvcnRzKSwgbWVzc2FnZS5tZXNzYWdlLnJl
bGVhc2VOb25OdWxsKCkpKTsKICAgICAgICAgfQogICAgIH07CiAKICAgICBNZXNzYWdlUG9ydENo
YW5uZWxQcm92aWRlcjo6ZnJvbUNvbnRleHQoKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkudGFr
ZUFsbE1lc3NhZ2VzRm9yUG9ydChtX2lkZW50aWZpZXIsIFdURk1vdmUobWVzc2FnZXNUYWtlbkhh
bmRsZXIpKTsKIH0KIAordm9pZCBNZXNzYWdlUG9ydDo6ZGlzcGF0Y2hFdmVudChFdmVudCYgZXZl
bnQpCit7CisgICAgaWYgKG1fY2xvc2VkKQorICAgICAgICByZXR1cm47CisKKyAgICBFdmVudFRh
cmdldDo6ZGlzcGF0Y2hFdmVudChldmVudCk7Cit9CisKIHZvaWQgTWVzc2FnZVBvcnQ6OnVwZGF0
ZUFjdGl2aXR5KE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eSBoYXNBY3Rp
dml0eSkKIHsKICAgICBib29sIGhhc0hhZExvY2FsQWN0aXZpdHkgPSBtX2hhc0hhZExvY2FsQWN0
aXZpdHlTaW5jZUxhc3RDaGVjazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNz
YWdlUG9ydC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmgKaW5kZXggNTVhNjgx
YTVhYjBkODRhM2QwMThkYWM0NzAwNGVhYjEyNmM4MjgzMC4uZjBiNWU5YmUxMjVhMGI0M2IzZjY4
OGZkYmUxMTI3NGU1OWRlOTJmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3Nh
Z2VQb3J0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmgKQEAgLTI5LDcg
KzI5LDYgQEAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJFdmVudFRh
cmdldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCi0jaW5jbHVkZSAiR2VuZXJpY0V2ZW50
UXVldWUuaCIKICNpbmNsdWRlICJNZXNzYWdlUG9ydENoYW5uZWwuaCIKICNpbmNsdWRlICJNZXNz
YWdlUG9ydElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cy5o
IgpAQCAtOTYsNiArOTUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWZFdmVudFRhcmdldCgpIGZp
bmFsIHsgcmVmKCk7IH0KICAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IGRlcmVm
KCk7IH0KIAorICAgIHZvaWQgZGlzcGF0Y2hFdmVudChFdmVudCYpIGZpbmFsOworCiBwcml2YXRl
OgogICAgIGV4cGxpY2l0IE1lc3NhZ2VQb3J0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25z
dCBNZXNzYWdlUG9ydElkZW50aWZpZXImIGxvY2FsLCBjb25zdCBNZXNzYWdlUG9ydElkZW50aWZp
ZXImIHJlbW90ZSk7CiAKQEAgLTEyNiw3ICsxMjcsNiBAQCBwcml2YXRlOgogICAgIE1lc3NhZ2VQ
b3J0SWRlbnRpZmllciBtX3JlbW90ZUlkZW50aWZpZXI7CiAKICAgICBtdXRhYmxlIHN0ZDo6YXRv
bWljPHVuc2lnbmVkPiBtX3JlZkNvdW50IHsgMSB9OwotICAgIFVuaXF1ZVJlZjxHZW5lcmljRXZl
bnRRdWV1ZT4gbV9ldmVudFF1ZXVlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Rhc2tTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9UYXNrU291cmNlLmgKaW5kZXggOTcyMmU3YmQyODk5Y2Y3MmI5NTcwMGRiZmQ5ZmVkYzk4
ZGM5YTFlOC4uYzU1M2NhMjNkNzJmNTAzZjdiZDQ5OGViOWRjOTUzMTg0NGFjZWY2YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Rhc2tTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vVGFza1NvdXJjZS5oCkBAIC0zMyw2ICszMyw3IEBAIGVudW0gY2xhc3MgVGFza1NvdXJj
ZSA6IHVpbnQ4X3QgewogICAgIEZvbnRMb2FkaW5nLAogICAgIElkbGVUYXNrLAogICAgIE5ldHdv
cmtpbmcsCisgICAgUG9zdGVkTWVzc2FnZSwKICAgICBVc2VySW50ZXJhY3Rpb24KIH07CiAK
</data>
<flag name="review"
          id="398809"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>