Bug 120295

Summary: Active WebSocket should send closing handshake to server on page navigation or page close
Product: WebKit Reporter: Vivek Galatage <vivekg>
Component: WebCore Misc.Assignee: Vivek Galatage <vivekg>
Status: NEW    
Severity: Normal CC: ap, buildbot, rniwa
Priority: P2 Keywords: BlinkMergeCandidate
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch
ap: review-, buildbot: commit-queue-
Archive of layout-test-results from webkit-ews-07 for mac-mountainlion none

Vivek Galatage
Reported 2013-08-26 02:49:10 PDT
With a active websocket, when page navigates or page closes, the connection to the web server is terminated but the closing handshake is not sent. Specification URL: http://dev.w3.org/html5/websockets/#garbage-collection Blink review URLs: https://codereview.chromium.org/23201008 https://codereview.chromium.org/23069004/ Patch follows.
Attachments
Patch (14.68 KB, patch)
2013-08-26 03:02 PDT, Vivek Galatage
ap: review-
buildbot: commit-queue-
Archive of layout-test-results from webkit-ews-07 for mac-mountainlion (566.10 KB, application/zip)
2013-08-26 04:21 PDT, Build Bot
no flags
Vivek Galatage
Comment 1 2013-08-26 03:02:26 PDT
Build Bot
Comment 2 2013-08-26 04:21:16 PDT
Comment on attachment 209632 [details] Patch Attachment 209632 [details] did not pass mac-ews (mac): Output: http://webkit-queues.appspot.com/results/1574017 New failing tests: http/tests/websocket/tests/hybi/url-no-trailing-slash.html http/tests/websocket/tests/hybi/broken-utf8.html http/tests/security/contentSecurityPolicy/connect-src-websocket-blocked.html
Build Bot
Comment 3 2013-08-26 04:21:17 PDT
Created attachment 209636 [details] Archive of layout-test-results from webkit-ews-07 for mac-mountainlion The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: webkit-ews-07 Port: mac-mountainlion Platform: Mac OS X 10.8.4
Vivek Galatage
Comment 4 2013-08-26 06:03:56 PDT
(In reply to comment #2) > (From update of attachment 209632 [details]) > Attachment 209632 [details] did not pass mac-ews (mac): > Output: http://webkit-queues.appspot.com/results/1574017 > > New failing tests: > http/tests/websocket/tests/hybi/url-no-trailing-slash.html > http/tests/websocket/tests/hybi/broken-utf8.html > http/tests/security/contentSecurityPolicy/connect-src-websocket-blocked.html If I run these cases one-by-one then all of them run without crash. Any idea what must be going wrong?
Alexey Proskuryakov
Comment 5 2013-08-26 09:26:34 PDT
Comment on attachment 209632 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=209632&action=review > Source/WebCore/Modules/websockets/WebSocket.cpp:491 > + m_channel->close(WebSocketChannel::CloseEventCodeGoingAway, String()); > m_channel->disconnect(); Maybe m_channel becomes 0 after the close() call?
Vivek Galatage
Comment 6 2013-08-26 10:30:45 PDT
(In reply to comment #5) > (From update of attachment 209632 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=209632&action=review > > > Source/WebCore/Modules/websockets/WebSocket.cpp:491 > > + m_channel->close(WebSocketChannel::CloseEventCodeGoingAway, String()); > > m_channel->disconnect(); > > Maybe m_channel becomes 0 after the close() call? I tried it by not calling disconnect() after the close() as it calls a timer function which eventually disconnects the channel. But result still remains the same. Although while running it on Qt port for linux, all cases passed without any crash. Anything related to core platform component for Mac?
Note You need to log in before you can comment on or make changes to this bug.