| 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 |