summaryrefslogtreecommitdiff
path: root/Source/WebKit/chromium/src/WebSocketImpl.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-02-03 09:55:33 +0100
committerSimon Hausmann <simon.hausmann@nokia.com>2012-02-03 09:55:33 +0100
commitcd44dc59cdfc39534aef4d417e9f3c412e3be139 (patch)
tree8d89889ba95ed6ec9322e733846cc9cce9d7dff1 /Source/WebKit/chromium/src/WebSocketImpl.cpp
parentd11f84f5b5cdc0d92a08af01b13472fdd5f9acb9 (diff)
downloadqtwebkit-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.cpp32
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