<?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>240227</bug_id>
          
          <creation_ts>2022-05-09 03:56:54 -0700</creation_ts>
          <short_desc>[WinCairo] CloseEvent has wasClean=true and no error code when the WebSocket connection got terminated from the server side</short_desc>
          <delta_ts>2023-02-08 12:04:22 -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>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Windows 10</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="Max Schmitt">max</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>aperez</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>fujii</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1867603</commentid>
    <comment_count>0</comment_count>
    <who name="Max Schmitt">max</who>
    <bug_when>2022-05-09 03:56:54 -0700</bug_when>
    <thetext>Repro:

```js
// server.js
const express = require(&apos;express&apos;);
const ws = require(&apos;ws&apos;);
const app = express();
const wsServer = new ws.Server({ noServer: true });
app.get(&quot;/&quot;, (req, res)=&gt;res.end(`
&lt;p&gt;watch console&lt;/p&gt;
&lt;script&gt;
function createWs(){
  const ws=new WebSocket(&quot;ws://localhost:3003/ws&quot;);
  ws.onopen = e =&gt; console.log(&quot;onopen&quot;, e);
  ws.onerror = e =&gt; console.error(&quot;onerror&quot;,e);
  ws.onclose = e =&gt; {
    console.log(&quot;onclose&quot;,e,e.code,e.wasClean);
    document.writeln(&quot;onclose with code &quot; + e.code + &quot; wasClean: &quot; + e.wasClean);
  };
}
createWs();
&lt;/script&gt;
`));
const server = app.listen(3003);
server.on(&apos;upgrade&apos;, (request, socket, head) =&gt; {
  wsServer.handleUpgrade(request, socket, head, socket =&gt; {
    socket.terminate();
  });
});
```

1. `mkdir tmp`
2. `cd tmp`
3. `npm init -y`
4. `npm install ws express`
5. `node server.js`
6. Navigate to `http://localhost:3003`

Expected (Firefox, Chromium): `onclose with code 1006 wasClean: false `
Actual (Epiphany 42.1, Custom WebKit on tip-of-tree): `onclose with code 0 wasClean: true`

Downstream bug: https://github.com/microsoft/playwright/issues/12353</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1930976</commentid>
    <comment_count>1</comment_count>
    <who name="Max Schmitt">max</who>
    <bug_when>2023-02-03 12:28:06 -0800</bug_when>
    <thetext>Looks like this is fixed on Linux now and is only present in Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1931483</commentid>
    <comment_count>2</comment_count>
      <attachid>464871</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2023-02-06 13:57:23 -0800</bug_when>
    <thetext>Created attachment 464871
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1931556</commentid>
    <comment_count>3</comment_count>
      <attachid>464879</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2023-02-06 16:35:09 -0800</bug_when>
    <thetext>Created attachment 464879
server.js

WinCairo WK1 can&apos;t load the page because it has no Content-Type responose header. Modified server.js.
I confirmed WinCairo WK1 works fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1931582</commentid>
    <comment_count>4</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2023-02-06 17:50:56 -0800</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/9728</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1932098</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-02-08 12:03:26 -0800</bug_when>
    <thetext>Committed 260025@main (42847605cf96): &lt;https://commits.webkit.org/260025@main&gt;

Reviewed commits have been landed. Closing PR #9728 and removing active labels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1932099</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-02-08 12:04:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/105186438&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464871</attachid>
            <date>2023-02-06 13:57:23 -0800</date>
            <delta_ts>2023-02-06 17:52:59 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>wip.patch</filename>
            <type>text/plain</type>
            <size>589</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY3VybC9XZWJTb2NrZXRU
YXNrQ3VybC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2N1cmwvV2ViU29ja2V0
VGFza0N1cmwuY3BwCmluZGV4IDAyZDZiMTUzNDBmNi4uOTA4Zjc1ZjgzYjlmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2N1cmwvV2ViU29ja2V0VGFza0N1cmwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY3VybC9XZWJTb2NrZXRUYXNrQ3Vy
bC5jcHAKQEAgLTEzMSw3ICsxMzEsNyBAQCB2b2lkIFdlYlNvY2tldFRhc2s6OmRpZFJlY2VpdmVE
YXRhKFdlYkNvcmU6OkN1cmxTdHJlYW1JRCwgY29uc3QgV2ViQ29yZTo6U2hhcmVkQgogICAgICAg
ICByZXR1cm47CiAKICAgICBpZiAoIWJ1ZmZlci5zaXplKCkpIHsKLSAgICAgICAgZGlkQ2xvc2Uo
MCwgeyB9KTsKKyAgICAgICAgZGlkQ2xvc2UoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6Q2xv
c2VFdmVudENvZGU6OkNsb3NlRXZlbnRDb2RlQWJub3JtYWxDbG9zdXJlLCB7IH0pOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>464879</attachid>
            <date>2023-02-06 16:35:09 -0800</date>
            <delta_ts>2023-02-06 16:35:09 -0800</delta_ts>
            <desc>server.js</desc>
            <filename>server.js</filename>
            <type>text/javascript</type>
            <size>781</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">Y29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTsKY29uc3Qgd3MgPSByZXF1aXJlKCd3
cycpOwpjb25zdCBhcHAgPSBleHByZXNzKCk7CmNvbnN0IHdzU2VydmVyID0gbmV3IHdzLlNlcnZl
cih7IG5vU2VydmVyOiB0cnVlIH0pOwphcHAuZ2V0KCIvIiwgKHJlcSwgcmVzKT0+IHsKICAgIHJl
cy5zZXQoJ0NvbnRlbnQtVHlwZScsICd0ZXh0L2h0bWwnKTsKICAgIHJlcy5lbmQoYAo8cD53YXRj
aCBjb25zb2xlPC9wPgo8c2NyaXB0PgpmdW5jdGlvbiBjcmVhdGVXcygpewogIGNvbnN0IHdzPW5l
dyBXZWJTb2NrZXQoIndzOi8vbG9jYWxob3N0OjMwMDMvd3MiKTsKICB3cy5vbm9wZW4gPSBlID0+
IGNvbnNvbGUubG9nKCJvbm9wZW4iLCBlKTsKICB3cy5vbmVycm9yID0gZSA9PiBjb25zb2xlLmVy
cm9yKCJvbmVycm9yIixlKTsKICB3cy5vbmNsb3NlID0gZSA9PiB7CiAgICBjb25zb2xlLmxvZygi
b25jbG9zZSIsZSxlLmNvZGUsZS53YXNDbGVhbik7CiAgICBkb2N1bWVudC53cml0ZWxuKCJvbmNs
b3NlIHdpdGggY29kZSAiICsgZS5jb2RlICsgIiB3YXNDbGVhbjogIiArIGUud2FzQ2xlYW4pOwog
IH07Cn0KY3JlYXRlV3MoKTsKPC9zY3JpcHQ+CmApfSk7CmNvbnN0IHNlcnZlciA9IGFwcC5saXN0
ZW4oMzAwMyk7CnNlcnZlci5vbigndXBncmFkZScsIChyZXF1ZXN0LCBzb2NrZXQsIGhlYWQpID0+
IHsKICB3c1NlcnZlci5oYW5kbGVVcGdyYWRlKHJlcXVlc3QsIHNvY2tldCwgaGVhZCwgc29ja2V0
ID0+IHsKICAgIHNvY2tldC50ZXJtaW5hdGUoKTsKICB9KTsKfSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>