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" |
11 #include "base/memory/ref_counted.h" | 11 #include "base/memory/ref_counted.h" |
12 #include "base/message_loop.h" | 12 #include "base/message_loop.h" |
13 #include "base/utf_string_conversions.h" | 13 #include "base/utf_string_conversions.h" |
14 #include "googleurl/src/gurl.h" | 14 #include "googleurl/src/gurl.h" |
15 #include "net/socket_stream/socket_stream_job.h" | 15 #include "net/socket_stream/socket_stream_job.h" |
16 #include "net/websockets/websocket_job.h" | 16 #include "net/websockets/websocket_job.h" |
17 #include "net/url_request/url_request_context.h" | 17 #include "net/url_request/url_request_context.h" |
18 #include "third_party/WebKit/public/platform/WebSocketStreamHandle.h" | 18 #include "third_party/WebKit/public/platform/WebSocketStreamHandle.h" |
19 #include "webkit/glue/websocketstreamhandle_bridge.h" | 19 #include "webkit/glue/websocketstreamhandle_bridge.h" |
20 #include "webkit/glue/websocketstreamhandle_delegate.h" | 20 #include "webkit/glue/websocketstreamhandle_delegate.h" |
21 | 21 |
22 using webkit_glue::WebSocketStreamHandleBridge; | 22 using webkit_glue::WebSocketStreamHandleBridge; |
23 | 23 |
24 const int kNoSocketId = 0; | 24 const int kNoSocketId = 0; |
25 | 25 |
26 namespace { | 26 namespace { |
27 | 27 |
28 MessageLoop* g_io_thread; | 28 base::MessageLoop* g_io_thread; |
29 net::URLRequestContext* g_request_context; | 29 net::URLRequestContext* g_request_context; |
30 | 30 |
31 class WebSocketStreamHandleBridgeImpl | 31 class WebSocketStreamHandleBridgeImpl |
32 : public WebSocketStreamHandleBridge, | 32 : public WebSocketStreamHandleBridge, |
33 public net::SocketStream::Delegate { | 33 public net::SocketStream::Delegate { |
34 public: | 34 public: |
35 WebSocketStreamHandleBridgeImpl( | 35 WebSocketStreamHandleBridgeImpl( |
36 WebKit::WebSocketStreamHandle* handle, | 36 WebKit::WebSocketStreamHandle* handle, |
37 webkit_glue::WebSocketStreamHandleDelegate* delegate); | 37 webkit_glue::WebSocketStreamHandleDelegate* delegate); |
38 | 38 |
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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) { |
234 DCHECK(MessageLoop::current() == message_loop_); | 234 DCHECK(base::MessageLoop::current() == message_loop_); |
235 base::subtle::NoBarrier_AtomicIncrement(&num_pending_tasks_, -1); | 235 base::subtle::NoBarrier_AtomicIncrement(&num_pending_tasks_, -1); |
236 if (delegate_) | 236 if (delegate_) |
237 delegate_->DidFail(handle_, error_code, ASCIIToUTF16(error_msg)); | 237 delegate_->DidFail(handle_, error_code, ASCIIToUTF16(error_msg)); |
238 } | 238 } |
239 | 239 |
240 } // namespace | 240 } // namespace |
241 | 241 |
242 /* static */ | 242 /* static */ |
243 void SimpleSocketStreamBridge::InitializeOnIOThread( | 243 void SimpleSocketStreamBridge::InitializeOnIOThread( |
244 net::URLRequestContext* request_context) { | 244 net::URLRequestContext* request_context) { |
245 g_io_thread = base::MessageLoop::current(); | 245 g_io_thread = base::MessageLoop::current(); |
246 g_request_context = request_context; | 246 g_request_context = request_context; |
247 } | 247 } |
248 | 248 |
249 void SimpleSocketStreamBridge::Cleanup() { | 249 void SimpleSocketStreamBridge::Cleanup() { |
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 |