| 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 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 106 m_handshake->reset(); | 106 m_handshake->reset(); |
| 107 m_handshake->addExtensionProcessor(m_perMessageDeflate.createExtensionProces
sor()); | 107 m_handshake->addExtensionProcessor(m_perMessageDeflate.createExtensionProces
sor()); |
| 108 m_handshake->addExtensionProcessor(m_deflateFramer.createExtensionProcessor(
)); | 108 m_handshake->addExtensionProcessor(m_deflateFramer.createExtensionProcessor(
)); |
| 109 if (m_identifier) { | 109 if (m_identifier) { |
| 110 TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline"), "We
bSocketCreate", "data", InspectorWebSocketCreateEvent::data(m_document, m_identi
fier, url, protocol)); | 110 TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline"), "We
bSocketCreate", "data", InspectorWebSocketCreateEvent::data(m_document, m_identi
fier, url, protocol)); |
| 111 TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline.stack"
), "CallStack", "stack", InspectorCallStackEvent::currentCallStack()); | 111 TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline.stack"
), "CallStack", "stack", InspectorCallStackEvent::currentCallStack()); |
| 112 // FIXME(361045): remove InspectorInstrumentation calls once DevTools Ti
meline migrates to tracing. | 112 // FIXME(361045): remove InspectorInstrumentation calls once DevTools Ti
meline migrates to tracing. |
| 113 InspectorInstrumentation::didCreateWebSocket(m_document, m_identifier, u
rl, protocol); | 113 InspectorInstrumentation::didCreateWebSocket(m_document, m_identifier, u
rl, protocol); |
| 114 } | 114 } |
| 115 ref(); | 115 ref(); |
| 116 m_handle = SocketStreamHandle::create(m_handshake->url(), this); | 116 |
| 117 m_handle = SocketStreamHandle::create(this); |
| 118 ASSERT(m_handle); |
| 119 if (m_document->frame()) { |
| 120 m_document->frame()->loader().client()->dispatchWillOpenSocketStream(m_h
andle.get()); |
| 121 } |
| 122 m_handle->connect(m_handshake->url()); |
| 123 |
| 117 return true; | 124 return true; |
| 118 } | 125 } |
| 119 | 126 |
| 120 String MainThreadWebSocketChannel::subprotocol() | 127 String MainThreadWebSocketChannel::subprotocol() |
| 121 { | 128 { |
| 122 WTF_LOG(Network, "MainThreadWebSocketChannel %p subprotocol()", this); | 129 WTF_LOG(Network, "MainThreadWebSocketChannel %p subprotocol()", this); |
| 123 if (!m_handshake || m_handshake->mode() != WebSocketHandshake::Connected) | 130 if (!m_handshake || m_handshake->mode() != WebSocketHandshake::Connected) |
| 124 return ""; | 131 return ""; |
| 125 String serverProtocol = m_handshake->serverWebSocketProtocol(); | 132 String serverProtocol = m_handshake->serverWebSocketProtocol(); |
| 126 if (serverProtocol.isNull()) | 133 if (serverProtocol.isNull()) |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 263 m_suspended = true; | 270 m_suspended = true; |
| 264 } | 271 } |
| 265 | 272 |
| 266 void MainThreadWebSocketChannel::resume() | 273 void MainThreadWebSocketChannel::resume() |
| 267 { | 274 { |
| 268 m_suspended = false; | 275 m_suspended = false; |
| 269 if ((!m_buffer.isEmpty() || (m_state == ChannelClosed)) && m_client && !m_re
sumeTimer.isActive()) | 276 if ((!m_buffer.isEmpty() || (m_state == ChannelClosed)) && m_client && !m_re
sumeTimer.isActive()) |
| 270 m_resumeTimer.startOneShot(0, FROM_HERE); | 277 m_resumeTimer.startOneShot(0, FROM_HERE); |
| 271 } | 278 } |
| 272 | 279 |
| 273 void MainThreadWebSocketChannel::willOpenSocketStream(SocketStreamHandle* handle
) | |
| 274 { | |
| 275 WTF_LOG(Network, "MainThreadWebSocketChannel %p willOpenSocketStream()", thi
s); | |
| 276 ASSERT(handle); | |
| 277 if (m_document->frame()) | |
| 278 m_document->frame()->loader().client()->dispatchWillOpenSocketStream(han
dle); | |
| 279 } | |
| 280 | |
| 281 void MainThreadWebSocketChannel::didOpenSocketStream(SocketStreamHandle* handle) | 280 void MainThreadWebSocketChannel::didOpenSocketStream(SocketStreamHandle* handle) |
| 282 { | 281 { |
| 283 WTF_LOG(Network, "MainThreadWebSocketChannel %p didOpenSocketStream()", this
); | 282 WTF_LOG(Network, "MainThreadWebSocketChannel %p didOpenSocketStream()", this
); |
| 284 ASSERT(handle == m_handle); | 283 ASSERT(handle == m_handle); |
| 285 if (!m_document) | 284 if (!m_document) |
| 286 return; | 285 return; |
| 287 if (m_identifier) { | 286 if (m_identifier) { |
| 288 TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline"), "We
bSocketSendHandshakeRequest", "data", InspectorWebSocketEvent::data(m_document,
m_identifier)); | 287 TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline"), "We
bSocketSendHandshakeRequest", "data", InspectorWebSocketEvent::data(m_document,
m_identifier)); |
| 289 TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline.stack"
), "CallStack", "stack", InspectorCallStackEvent::currentCallStack()); | 288 TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline.stack"
), "CallStack", "stack", InspectorCallStackEvent::currentCallStack()); |
| 290 // FIXME(361045): remove InspectorInstrumentation calls once DevTools Ti
meline migrates to tracing. | 289 // FIXME(361045): remove InspectorInstrumentation calls once DevTools Ti
meline migrates to tracing. |
| (...skipping 574 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 865 } | 864 } |
| 866 | 865 |
| 867 Vector<char> frameData; | 866 Vector<char> frameData; |
| 868 frame.makeFrameData(frameData); | 867 frame.makeFrameData(frameData); |
| 869 | 868 |
| 870 m_perMessageDeflate.resetDeflateBuffer(); | 869 m_perMessageDeflate.resetDeflateBuffer(); |
| 871 return m_handle->send(frameData.data(), frameData.size()); | 870 return m_handle->send(frameData.data(), frameData.size()); |
| 872 } | 871 } |
| 873 | 872 |
| 874 } // namespace WebCore | 873 } // namespace WebCore |
| OLD | NEW |