diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-02-03 09:55:33 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-02-03 09:55:33 +0100 |
commit | cd44dc59cdfc39534aef4d417e9f3c412e3be139 (patch) | |
tree | 8d89889ba95ed6ec9322e733846cc9cce9d7dff1 /Source/WebKit/chromium/src/WebSocketImpl.cpp | |
parent | d11f84f5b5cdc0d92a08af01b13472fdd5f9acb9 (diff) | |
download | qtwebkit-cd44dc59cdfc39534aef4d417e9f3c412e3be139.tar.gz |
Imported WebKit commit fce473cb4d55aa9fe9d0b0322a2fffecb731b961 (http://svn.webkit.org/repository/webkit/trunk@106560)
Diffstat (limited to 'Source/WebKit/chromium/src/WebSocketImpl.cpp')
-rw-r--r-- | Source/WebKit/chromium/src/WebSocketImpl.cpp | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/Source/WebKit/chromium/src/WebSocketImpl.cpp b/Source/WebKit/chromium/src/WebSocketImpl.cpp index 9c4e8534f..f0bf28206 100644 --- a/Source/WebKit/chromium/src/WebSocketImpl.cpp +++ b/Source/WebKit/chromium/src/WebSocketImpl.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2011 Google Inc. All rights reserved. + * Copyright (C) 2011, 2012 Google Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are @@ -31,6 +31,7 @@ #include "config.h" #include "WebSocketImpl.h" +#include "ArrayBuffer.h" #include "Document.h" #include "KURL.h" #if ENABLE(WEB_SOCKETS) @@ -43,7 +44,7 @@ class WebSocketChannel { } // namespace WebCore #endif -#include "platform/WebData.h" +#include "WebArrayBuffer.h" #include "WebDocument.h" #include "WebSocketClient.h" #include "platform/WebString.h" @@ -55,6 +56,7 @@ namespace WebKit { WebSocketImpl::WebSocketImpl(const WebDocument& document, WebSocketClient* client) : m_client(client) + , m_binaryType(BinaryTypeBlob) { #if ENABLE(WEB_SOCKETS) m_private = WebSocketChannel::create(PassRefPtr<Document>(document).get(), this); @@ -72,6 +74,19 @@ WebSocketImpl::~WebSocketImpl() #endif } +WebSocket::BinaryType WebSocketImpl::binaryType() const +{ + return m_binaryType; +} + +bool WebSocketImpl::setBinaryType(BinaryType binaryType) +{ + if (binaryType > BinaryTypeArrayBuffer) + return false; + m_binaryType = binaryType; + return true; +} + void WebSocketImpl::connect(const WebURL& url, const WebString& protocol) { #if ENABLE(WEB_SOCKETS) @@ -99,10 +114,10 @@ bool WebSocketImpl::sendText(const WebString& message) #endif } -bool WebSocketImpl::sendBinary(const WebData& binaryData) +bool WebSocketImpl::sendArrayBuffer(const WebArrayBuffer& webArrayBuffer) { #if ENABLE(WEB_SOCKETS) - return m_private->send(binaryData.data(), binaryData.size()); + return m_private->send(*PassRefPtr<ArrayBuffer>(webArrayBuffer)); #else ASSERT_NOT_REACHED(); #endif @@ -166,7 +181,14 @@ void WebSocketImpl::didReceiveMessage(const String& message) void WebSocketImpl::didReceiveBinaryData(PassOwnPtr<Vector<char> > binaryData) { #if ENABLE(WEB_SOCKETS) - m_client->didReceiveBinaryData(WebData(binaryData->data(), binaryData->size())); + switch (m_binaryType) { + case BinaryTypeBlob: + // FIXME: Handle Blob after supporting WebBlob. + break; + case BinaryTypeArrayBuffer: + m_client->didReceiveArrayBuffer(WebArrayBuffer(ArrayBuffer::create(binaryData->data(), binaryData->size()))); + break; + } #else ASSERT_NOT_REACHED(); #endif |