[Webkit-unassigned] [Bug 39340] New: WebSocket: resume should not process buffer if already processing.
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Tue May 18 20:41:16 PDT 2010
https://bugs.webkit.org/show_bug.cgi?id=39340
Summary: WebSocket: resume should not process buffer if already
processing.
Product: WebKit
Version: 528+ (Nightly build)
Platform: All
OS/Version: All
Status: NEW
Severity: Normal
Priority: P2
Component: Tools / Tests
AssignedTo: webkit-unassigned at lists.webkit.org
ReportedBy: ukai at chromium.org
CC: ap at webkit.org
Reported on chromium issue tracker: http://code.google.com/p/chromium/issues/detail?id=44309
I investigated this and found this happens as follows:
- didReceiveData called for handshake response message and initial websocket frame
- processBuffer found handshake response header and WebSocket connection is established.
- didConnect
- dispatch open event
..
- while processing handler code, it might issue some API which will send IPC to browser process
- RenderThread::Send will enter modal loop, which will suspend active DOM objects
- WebSocket and its WebSocketChannel is suspended
..
- RenderThread::Send exit modal loop, which will resume active DOM objects
- WebSocket and its WebSocketChannel is resumed
processBuffer found initial websocket frame and fire message event
- didReceiveMessage
- dispatch message event
Thus, message event is dispatched while open event handler is running, which is wrong behavior.
This issue is in Chromium, but not in chromium test_shell nor in WebKit nightly build.
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list