| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 29 */ | 29 */ |
| 30 | 30 |
| 31 #include "web/WebSocketImpl.h" | 31 #include "web/WebSocketImpl.h" |
| 32 | 32 |
| 33 #include "core/dom/DOMArrayBuffer.h" | 33 #include "core/dom/DOMArrayBuffer.h" |
| 34 #include "core/dom/Document.h" | 34 #include "core/dom/Document.h" |
| 35 #include "core/fileapi/FileReaderLoader.h" |
| 35 #include "core/frame/ConsoleTypes.h" | 36 #include "core/frame/ConsoleTypes.h" |
| 36 #include "modules/websockets/DocumentWebSocketChannel.h" | 37 #include "modules/websockets/DocumentWebSocketChannel.h" |
| 37 #include "modules/websockets/WebSocketChannel.h" | 38 #include "modules/websockets/WebSocketChannel.h" |
| 38 #include "public/platform/WebString.h" | 39 #include "public/platform/WebString.h" |
| 39 #include "public/platform/WebURL.h" | 40 #include "public/platform/WebURL.h" |
| 40 #include "public/web/WebArrayBuffer.h" | 41 #include "public/web/WebArrayBuffer.h" |
| 41 #include "public/web/WebDocument.h" | 42 #include "public/web/WebDocument.h" |
| 42 #include "web/WebSocketChannelClientProxy.h" | 43 #include "web/WebSocketChannelClientProxy.h" |
| 43 #include "wtf/text/CString.h" | 44 #include "wtf/text/CString.h" |
| 44 #include "wtf/text/WTFString.h" | 45 #include "wtf/text/WTFString.h" |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 157 m_subprotocol = subprotocol; | 158 m_subprotocol = subprotocol; |
| 158 m_extensions = extensions; | 159 m_extensions = extensions; |
| 159 m_client->didConnect(); | 160 m_client->didConnect(); |
| 160 } | 161 } |
| 161 | 162 |
| 162 void WebSocketImpl::didReceiveTextMessage(const String& payload) | 163 void WebSocketImpl::didReceiveTextMessage(const String& payload) |
| 163 { | 164 { |
| 164 m_client->didReceiveMessage(WebString(payload)); | 165 m_client->didReceiveMessage(WebString(payload)); |
| 165 } | 166 } |
| 166 | 167 |
| 167 void WebSocketImpl::didReceiveBinaryMessage(PassOwnPtr<Vector<char>> payload) | 168 void WebSocketImpl::didReceiveArrayBuffer(PassOwnPtr<Vector<char>> payload) |
| 168 { | 169 { |
| 169 switch (m_binaryType) { | 170 switch (m_binaryType) { |
| 170 case BinaryTypeBlob: | 171 case BinaryTypeBlob: |
| 171 // FIXME: Handle Blob after supporting WebBlob. | 172 // FIXME: Handle Blob after supporting WebBlob. |
| 172 break; | 173 break; |
| 173 case BinaryTypeArrayBuffer: | 174 case BinaryTypeArrayBuffer: |
| 174 m_client->didReceiveArrayBuffer(WebArrayBuffer(DOMArrayBuffer::create(pa
yload->data(), payload->size()))); | 175 m_client->didReceiveArrayBuffer(WebArrayBuffer(DOMArrayBuffer::create(pa
yload->data(), payload->size()))); |
| 175 break; | 176 break; |
| 176 } | 177 } |
| 177 } | 178 } |
| 178 | 179 |
| 180 void WebSocketImpl::didReceiveBlob(PassRefPtr<BlobDataHandle> blob) |
| 181 { |
| 182 // FIXME: Should this method do anything? If so, what? |
| 183 ASSERT_NOT_REACHED(); |
| 184 } |
| 185 |
| 179 void WebSocketImpl::didError() | 186 void WebSocketImpl::didError() |
| 180 { | 187 { |
| 181 m_client->didReceiveMessageError(); | 188 m_client->didReceiveMessageError(); |
| 182 } | 189 } |
| 183 | 190 |
| 184 void WebSocketImpl::didConsumeBufferedAmount(unsigned long consumed) | 191 void WebSocketImpl::didConsumeBufferedAmount(unsigned long consumed) |
| 185 { | 192 { |
| 186 m_client->didConsumeBufferedAmount(consumed); | 193 m_client->didConsumeBufferedAmount(consumed); |
| 187 | 194 |
| 188 // FIXME: Deprecate the following statements. | 195 // FIXME: Deprecate the following statements. |
| 189 m_bufferedAmount -= consumed; | 196 m_bufferedAmount -= consumed; |
| 190 m_client->didUpdateBufferedAmount(m_bufferedAmount); | 197 m_client->didUpdateBufferedAmount(m_bufferedAmount); |
| 191 } | 198 } |
| 192 | 199 |
| 193 void WebSocketImpl::didStartClosingHandshake() | 200 void WebSocketImpl::didStartClosingHandshake() |
| 194 { | 201 { |
| 195 m_client->didStartClosingHandshake(); | 202 m_client->didStartClosingHandshake(); |
| 196 } | 203 } |
| 197 | 204 |
| 198 void WebSocketImpl::didClose(WebSocketChannelClient::ClosingHandshakeCompletionS
tatus status, unsigned short code, const String& reason) | 205 void WebSocketImpl::didClose(WebSocketChannelClient::ClosingHandshakeCompletionS
tatus status, unsigned short code, const String& reason) |
| 199 { | 206 { |
| 200 m_isClosingOrClosed = true; | 207 m_isClosingOrClosed = true; |
| 201 m_client->didClose(static_cast<WebSocketClient::ClosingHandshakeCompletionSt
atus>(status), code, WebString(reason)); | 208 m_client->didClose(static_cast<WebSocketClient::ClosingHandshakeCompletionSt
atus>(status), code, WebString(reason)); |
| 202 | 209 |
| 203 // FIXME: Deprecate this call. | 210 // FIXME: Deprecate this call. |
| 204 m_client->didClose(m_bufferedAmount - m_bufferedAmountAfterClose, static_cas
t<WebSocketClient::ClosingHandshakeCompletionStatus>(status), code, WebString(re
ason)); | 211 m_client->didClose(m_bufferedAmount - m_bufferedAmountAfterClose, static_cas
t<WebSocketClient::ClosingHandshakeCompletionStatus>(status), code, WebString(re
ason)); |
| 205 } | 212 } |
| 206 | 213 |
| 207 } // namespace blink | 214 } // namespace blink |
| OLD | NEW |