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 |