WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
86958
[WebSocket] WebSocket object should fire a simple event named error when it is required to fail the websocket connection.
https://bugs.webkit.org/show_bug.cgi?id=86958
Summary
[WebSocket] WebSocket object should fire a simple event named error when it i...
Li Yin
Reported
2012-05-20 01:10:04 PDT
Spec:
http://dev.w3.org/html5/websockets/#feedback-from-the-protocol
If the user agent was required to fail the websocket connection or the WebSocket connection is closed with prejudice, fire a simple event named error at the WebSocket object.
Attachments
Patch
(6.97 KB, patch)
2012-05-20 06:56 PDT
,
Li Yin
no flags
Details
Formatted Diff
Diff
Patch
(5.97 KB, patch)
2012-05-22 00:21 PDT
,
Li Yin
no flags
Details
Formatted Diff
Diff
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
Li Yin
Comment 1
2012-05-20 06:56:05 PDT
Created
attachment 142903
[details]
Patch
Takashi Toyoshima
Comment 2
2012-05-21 07:28:44 PDT
Hi Li, Thank you for sending a patch. Actually, this is a bug and should be fixed. A filed bug in chromium side issue tracker is here.
http://code.google.com/p/chromium/issues/detail?id=128057
I think original code just missed to call WebSocketChannelClient::didReceiveMessageError() in WebSocketChannel::fail(). Yuta, I think you write this part. Could you check this?
Yuta Kitamura
Comment 3
2012-05-21 22:37:00 PDT
Seems like the spec changed at
http://html5.org/tools/web-apps-tracker?from=6376&to=6377
(see also
https://www.w3.org/Bugs/Public/show_bug.cgi?id=13294
) As Takashi said, I think you just need to call didReceiveMessageError() in fail(). You don't have to add a new function to WebSocketChannelClient. You probably need to have a line like "RefPtr<WebSocketChannel> protect;" before calling didReceiveMessageError(), otherwise this function may cause the channel to get removed (because users may do "ws.close()" in onerror handler). Also, you might need to change the definition of didReceiveMessageError() to let it fire the event when the state is not OPEN or CLOSING. This is old code based on the old API spec, and I guess this restriction is leftover from the old age.
Yuta Kitamura
Comment 4
2012-05-21 22:44:22 PDT
Comment on
attachment 142903
[details]
Patch r- because adding a new callback fireErrorEvent() is clearly unacceptable. fireErrorEvent() doesn't work properly in Web Workers, as the definition for workers isn't provided.
Li Yin
Comment 5
2012-05-22 00:19:25 PDT
(In reply to
comment #3
)
> Seems like the spec changed at
http://html5.org/tools/web-apps-tracker?from=6376&to=6377
> (see also
https://www.w3.org/Bugs/Public/show_bug.cgi?id=13294
) > > As Takashi said, I think you just need to call didReceiveMessageError() in fail(). You don't have to add a new function to WebSocketChannelClient. > > You probably need to have a line like "RefPtr<WebSocketChannel> protect;" before calling didReceiveMessageError(), otherwise this function may cause the channel to get removed (because users may do "ws.close()" in onerror handler). > > Also, you might need to change the definition of didReceiveMessageError() to let it fire the event when the state is not OPEN or CLOSING. This is old code based on the old API spec, and I guess this restriction is leftover from the old age.
Thanks for your review and good solution, I have updated the patch, please review it again.
Li Yin
Comment 6
2012-05-22 00:21:23 PDT
Created
attachment 143210
[details]
Patch
Yuta Kitamura
Comment 7
2012-05-22 00:41:45 PDT
Comment on
attachment 143210
[details]
Patch Looks fine. Please wait for comments from a reviewer.
WebKit Review Bot
Comment 8
2012-05-22 03:51:26 PDT
Comment on
attachment 143210
[details]
Patch Clearing flags on attachment: 143210 Committed
r117944
: <
http://trac.webkit.org/changeset/117944
>
WebKit Review Bot
Comment 9
2012-05-22 03:51:30 PDT
All reviewed patches have been landed. Closing bug.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug