OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <vector> | 5 #include <vector> |
6 | 6 |
7 #include "webkit/tools/test_shell/simple_socket_stream_bridge.h" | 7 #include "webkit/tools/test_shell/simple_socket_stream_bridge.h" |
8 | 8 |
9 #include "base/atomicops.h" | 9 #include "base/atomicops.h" |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
171 socket_ = net::SocketStreamJob::CreateSocketStreamJob( | 171 socket_ = net::SocketStreamJob::CreateSocketStreamJob( |
172 url, this, g_request_context->transport_security_state(), | 172 url, this, g_request_context->transport_security_state(), |
173 g_request_context->ssl_config_service()); | 173 g_request_context->ssl_config_service()); |
174 socket_->set_context(g_request_context); | 174 socket_->set_context(g_request_context); |
175 socket_->Connect(); | 175 socket_->Connect(); |
176 } | 176 } |
177 | 177 |
178 void WebSocketStreamHandleBridgeImpl::DoSend(std::vector<char>* data) { | 178 void WebSocketStreamHandleBridgeImpl::DoSend(std::vector<char>* data) { |
179 DCHECK(base::MessageLoop::current() == g_io_thread); | 179 DCHECK(base::MessageLoop::current() == g_io_thread); |
180 scoped_ptr<std::vector<char> > scoped_data(data); | 180 scoped_ptr<std::vector<char> > scoped_data(data); |
181 if (!socket_) | 181 if (!socket_.get()) |
182 return; | 182 return; |
183 if (!socket_->SendData(&(data->at(0)), data->size())) | 183 if (!socket_->SendData(&(data->at(0)), data->size())) |
184 socket_->Close(); | 184 socket_->Close(); |
185 } | 185 } |
186 | 186 |
187 void WebSocketStreamHandleBridgeImpl::DoClose() { | 187 void WebSocketStreamHandleBridgeImpl::DoClose() { |
188 DCHECK(base::MessageLoop::current() == g_io_thread); | 188 DCHECK(base::MessageLoop::current() == g_io_thread); |
189 if (!socket_) | 189 if (!socket_.get()) |
190 return; | 190 return; |
191 socket_->Close(); | 191 socket_->Close(); |
192 } | 192 } |
193 | 193 |
194 void WebSocketStreamHandleBridgeImpl::DoOnConnected( | 194 void WebSocketStreamHandleBridgeImpl::DoOnConnected( |
195 int max_pending_send_allowed) { | 195 int max_pending_send_allowed) { |
196 DCHECK(base::MessageLoop::current() == message_loop_); | 196 DCHECK(base::MessageLoop::current() == message_loop_); |
197 base::subtle::NoBarrier_AtomicIncrement(&num_pending_tasks_, -1); | 197 base::subtle::NoBarrier_AtomicIncrement(&num_pending_tasks_, -1); |
198 if (delegate_) | 198 if (delegate_) |
199 delegate_->DidOpenStream(handle_, max_pending_send_allowed); | 199 delegate_->DidOpenStream(handle_, max_pending_send_allowed); |
(...skipping 13 matching lines...) Expand all Loading... |
213 scoped_ptr<std::vector<char> > scoped_data(data); | 213 scoped_ptr<std::vector<char> > scoped_data(data); |
214 if (delegate_) | 214 if (delegate_) |
215 delegate_->DidReceiveData(handle_, &(data->at(0)), data->size()); | 215 delegate_->DidReceiveData(handle_, &(data->at(0)), data->size()); |
216 } | 216 } |
217 | 217 |
218 void WebSocketStreamHandleBridgeImpl::DoOnClose() { | 218 void WebSocketStreamHandleBridgeImpl::DoOnClose() { |
219 DCHECK(base::MessageLoop::current() == message_loop_); | 219 DCHECK(base::MessageLoop::current() == message_loop_); |
220 base::subtle::NoBarrier_AtomicIncrement(&num_pending_tasks_, -1); | 220 base::subtle::NoBarrier_AtomicIncrement(&num_pending_tasks_, -1); |
221 // Don't handle OnClose if there are pending tasks. | 221 // Don't handle OnClose if there are pending tasks. |
222 DCHECK_EQ(num_pending_tasks_, 0); | 222 DCHECK_EQ(num_pending_tasks_, 0); |
223 DCHECK(!socket_); | 223 DCHECK(!socket_.get()); |
224 DCHECK_EQ(socket_id_, kNoSocketId); | 224 DCHECK_EQ(socket_id_, kNoSocketId); |
225 webkit_glue::WebSocketStreamHandleDelegate* delegate = delegate_; | 225 webkit_glue::WebSocketStreamHandleDelegate* delegate = delegate_; |
226 delegate_ = NULL; | 226 delegate_ = NULL; |
227 if (delegate) | 227 if (delegate) |
228 delegate->DidClose(handle_); | 228 delegate->DidClose(handle_); |
229 Release(); | 229 Release(); |
230 } | 230 } |
231 | 231 |
232 void WebSocketStreamHandleBridgeImpl::DoOnError( | 232 void WebSocketStreamHandleBridgeImpl::DoOnError( |
233 int error_code, const char* error_msg) { | 233 int error_code, const char* error_msg) { |
(...skipping 16 matching lines...) Expand all Loading... |
250 g_io_thread = NULL; | 250 g_io_thread = NULL; |
251 g_request_context = NULL; | 251 g_request_context = NULL; |
252 } | 252 } |
253 | 253 |
254 /* static */ | 254 /* static */ |
255 webkit_glue::WebSocketStreamHandleBridge* SimpleSocketStreamBridge::Create( | 255 webkit_glue::WebSocketStreamHandleBridge* SimpleSocketStreamBridge::Create( |
256 WebKit::WebSocketStreamHandle* handle, | 256 WebKit::WebSocketStreamHandle* handle, |
257 webkit_glue::WebSocketStreamHandleDelegate* delegate) { | 257 webkit_glue::WebSocketStreamHandleDelegate* delegate) { |
258 return new WebSocketStreamHandleBridgeImpl(handle, delegate); | 258 return new WebSocketStreamHandleBridgeImpl(handle, delegate); |
259 } | 259 } |
OLD | NEW |