diff options
author | axis <qt-info@nokia.com> | 2009-11-04 14:07:39 (GMT) |
---|---|---|
committer | axis <qt-info@nokia.com> | 2009-11-04 14:07:39 (GMT) |
commit | 9cda9fb4bb496a7c589767bdcead131dbcdeeb79 (patch) | |
tree | 2302096f06d4629ea62a85317429daa74ce6f02d /src/3rdparty/webkit/WebCore/websockets/WebSocket.cpp | |
parent | be6357bfa96cdaffa5797fef99e95cac7121e5b3 (diff) | |
parent | 7905101fb5ef18c776be515b9287356b1efc5ceb (diff) | |
download | Qt-9cda9fb4bb496a7c589767bdcead131dbcdeeb79.zip Qt-9cda9fb4bb496a7c589767bdcead131dbcdeeb79.tar.gz Qt-9cda9fb4bb496a7c589767bdcead131dbcdeeb79.tar.bz2 |
Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt into 4.6-s60
Diffstat (limited to 'src/3rdparty/webkit/WebCore/websockets/WebSocket.cpp')
-rw-r--r-- | src/3rdparty/webkit/WebCore/websockets/WebSocket.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/3rdparty/webkit/WebCore/websockets/WebSocket.cpp b/src/3rdparty/webkit/WebCore/websockets/WebSocket.cpp index f3bbdd7..32e0559 100644 --- a/src/3rdparty/webkit/WebCore/websockets/WebSocket.cpp +++ b/src/3rdparty/webkit/WebCore/websockets/WebSocket.cpp @@ -110,7 +110,8 @@ WebSocket::WebSocket(ScriptExecutionContext* context) WebSocket::~WebSocket() { - close(); + if (m_channel.get()) + m_channel->disconnect(); } void WebSocket::connect(const KURL& url, ExceptionCode& ec) @@ -190,7 +191,7 @@ ScriptExecutionContext* WebSocket::scriptExecutionContext() const void WebSocket::didConnect() { LOG(Network, "WebSocket %p didConnect", this); - if (m_state != CONNECTING) { + if (m_state != CONNECTING || !scriptExecutionContext()) { didClose(); return; } @@ -201,7 +202,7 @@ void WebSocket::didConnect() void WebSocket::didReceiveMessage(const String& msg) { LOG(Network, "WebSocket %p didReceiveMessage %s", this, msg.utf8().data()); - if (m_state != OPEN) + if (m_state != OPEN || !scriptExecutionContext()) return; RefPtr<MessageEvent> evt = MessageEvent::create(); // FIXME: origin, lastEventId, source, messagePort. @@ -213,7 +214,8 @@ void WebSocket::didClose() { LOG(Network, "WebSocket %p didClose", this); m_state = CLOSED; - scriptExecutionContext()->postTask(ProcessWebSocketEventTask::create(this, Event::create(eventNames().closeEvent, false, false))); + if (scriptExecutionContext()) + scriptExecutionContext()->postTask(ProcessWebSocketEventTask::create(this, Event::create(eventNames().closeEvent, false, false))); } EventTargetData* WebSocket::eventTargetData() |