Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1095)

Unified Diff: webkit/tools/test_shell/simple_socket_stream_bridge.cc

Issue 15946006: Move C++ code from webkit/tools/test_shell to webkit/support (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix npapi_test_plugin Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webkit/tools/test_shell/simple_socket_stream_bridge.cc
diff --git a/webkit/tools/test_shell/simple_socket_stream_bridge.cc b/webkit/tools/test_shell/simple_socket_stream_bridge.cc
deleted file mode 100644
index 23253ccd74513ecab518f028ed0d63ab8001a04f..0000000000000000000000000000000000000000
--- a/webkit/tools/test_shell/simple_socket_stream_bridge.cc
+++ /dev/null
@@ -1,259 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <vector>
-
-#include "webkit/tools/test_shell/simple_socket_stream_bridge.h"
-
-#include "base/atomicops.h"
-#include "base/bind.h"
-#include "base/memory/ref_counted.h"
-#include "base/message_loop.h"
-#include "base/utf_string_conversions.h"
-#include "googleurl/src/gurl.h"
-#include "net/socket_stream/socket_stream_job.h"
-#include "net/websockets/websocket_job.h"
-#include "net/url_request/url_request_context.h"
-#include "third_party/WebKit/public/platform/WebSocketStreamHandle.h"
-#include "webkit/glue/websocketstreamhandle_bridge.h"
-#include "webkit/glue/websocketstreamhandle_delegate.h"
-
-using webkit_glue::WebSocketStreamHandleBridge;
-
-const int kNoSocketId = 0;
-
-namespace {
-
-base::MessageLoop* g_io_thread;
-net::URLRequestContext* g_request_context;
-
-class WebSocketStreamHandleBridgeImpl
- : public WebSocketStreamHandleBridge,
- public net::SocketStream::Delegate {
- public:
- WebSocketStreamHandleBridgeImpl(
- WebKit::WebSocketStreamHandle* handle,
- webkit_glue::WebSocketStreamHandleDelegate* delegate);
-
- // WebSocketStreamHandleBridge methods.
- virtual void Connect(const GURL& url) OVERRIDE;
- virtual bool Send(const std::vector<char>& data) OVERRIDE;
- virtual void Close() OVERRIDE;
-
- // net::SocketStream::Delegate methods.
- virtual void OnConnected(net::SocketStream* req,
- int max_pending_send_allowed) OVERRIDE;
- virtual void OnSentData(net::SocketStream* req,
- int amount_sent) OVERRIDE;
- virtual void OnReceivedData(net::SocketStream* req,
- const char* data, int len) OVERRIDE;
- virtual void OnClose(net::SocketStream* req) OVERRIDE;
- virtual void OnError(const net::SocketStream* req, int error_code) OVERRIDE;
-
- private:
- virtual ~WebSocketStreamHandleBridgeImpl();
-
- // Runs on |g_io_thread|;
- void DoConnect(const GURL& url);
- void DoSend(std::vector<char>* data);
- void DoClose();
-
- // Runs on |message_loop_|;
- void DoOnConnected(int max_amount_send_allowed);
- void DoOnSentData(int amount_sent);
- void DoOnReceivedData(std::vector<char>* data);
- void DoOnClose();
- void DoOnError(int error_code, const char* error_msg);
-
- int socket_id_;
- base::MessageLoop* message_loop_;
- WebKit::WebSocketStreamHandle* handle_;
- webkit_glue::WebSocketStreamHandleDelegate* delegate_;
-
- scoped_refptr<net::SocketStreamJob> socket_;
- // Number of pending tasks to handle net::SocketStream::Delegate methods.
- base::subtle::Atomic32 num_pending_tasks_;
-
- DISALLOW_COPY_AND_ASSIGN(WebSocketStreamHandleBridgeImpl);
-};
-
-WebSocketStreamHandleBridgeImpl::WebSocketStreamHandleBridgeImpl(
- WebKit::WebSocketStreamHandle* handle,
- webkit_glue::WebSocketStreamHandleDelegate* delegate)
- : socket_id_(kNoSocketId),
- message_loop_(base::MessageLoop::current()),
- handle_(handle),
- delegate_(delegate),
- num_pending_tasks_(0) {
- net::WebSocketJob::EnsureInit();
-}
-
-WebSocketStreamHandleBridgeImpl::~WebSocketStreamHandleBridgeImpl() {
- DCHECK_EQ(socket_id_, kNoSocketId);
-}
-
-void WebSocketStreamHandleBridgeImpl::Connect(const GURL& url) {
- DCHECK(g_io_thread);
- AddRef(); // Released in DoOnClose().
- g_io_thread->PostTask(
- FROM_HERE,
- base::Bind(&WebSocketStreamHandleBridgeImpl::DoConnect, this, url));
- if (delegate_)
- delegate_->WillOpenStream(handle_, url);
-}
-
-bool WebSocketStreamHandleBridgeImpl::Send(
- const std::vector<char>& data) {
- DCHECK(g_io_thread);
- g_io_thread->PostTask(
- FROM_HERE,
- base::Bind(&WebSocketStreamHandleBridgeImpl::DoSend, this,
- new std::vector<char>(data)));
- return true;
-}
-
-void WebSocketStreamHandleBridgeImpl::Close() {
- DCHECK(g_io_thread);
- g_io_thread->PostTask(
- FROM_HERE,
- base::Bind(&WebSocketStreamHandleBridgeImpl::DoClose, this));
-}
-
-void WebSocketStreamHandleBridgeImpl::OnConnected(
- net::SocketStream* socket, int max_pending_send_allowed) {
- base::subtle::NoBarrier_AtomicIncrement(&num_pending_tasks_, 1);
- message_loop_->PostTask(
- FROM_HERE,
- base::Bind(&WebSocketStreamHandleBridgeImpl::DoOnConnected, this,
- max_pending_send_allowed));
-}
-
-void WebSocketStreamHandleBridgeImpl::OnSentData(
- net::SocketStream* socket, int amount_sent) {
- base::subtle::NoBarrier_AtomicIncrement(&num_pending_tasks_, 1);
- message_loop_->PostTask(
- FROM_HERE,
- base::Bind(&WebSocketStreamHandleBridgeImpl::DoOnSentData, this,
- amount_sent));
-}
-
-void WebSocketStreamHandleBridgeImpl::OnReceivedData(
- net::SocketStream* socket, const char* data, int len) {
- base::subtle::NoBarrier_AtomicIncrement(&num_pending_tasks_, 1);
- message_loop_->PostTask(
- FROM_HERE,
- base::Bind(&WebSocketStreamHandleBridgeImpl::DoOnReceivedData, this,
- new std::vector<char>(data, data + len)));
-}
-
-void WebSocketStreamHandleBridgeImpl::OnClose(net::SocketStream* socket) {
- base::subtle::NoBarrier_AtomicIncrement(&num_pending_tasks_, 1);
- // Release socket_ on IO thread.
- socket_ = NULL;
- socket_id_ = kNoSocketId;
- message_loop_->PostTask(
- FROM_HERE,
- base::Bind(&WebSocketStreamHandleBridgeImpl::DoOnClose, this));
-}
-
-void WebSocketStreamHandleBridgeImpl::OnError(
- const net::SocketStream* socket, int error_code) {
- base::subtle::NoBarrier_AtomicIncrement(&num_pending_tasks_, 1);
- message_loop_->PostTask(
- FROM_HERE,
- base::Bind(&WebSocketStreamHandleBridgeImpl::DoOnError, this,
- error_code, net::ErrorToString(error_code)));
-}
-
-void WebSocketStreamHandleBridgeImpl::DoConnect(const GURL& url) {
- DCHECK(base::MessageLoop::current() == g_io_thread);
- socket_ = net::SocketStreamJob::CreateSocketStreamJob(
- url, this, g_request_context->transport_security_state(),
- g_request_context->ssl_config_service());
- socket_->set_context(g_request_context);
- socket_->Connect();
-}
-
-void WebSocketStreamHandleBridgeImpl::DoSend(std::vector<char>* data) {
- DCHECK(base::MessageLoop::current() == g_io_thread);
- scoped_ptr<std::vector<char> > scoped_data(data);
- if (!socket_.get())
- return;
- if (!socket_->SendData(&(data->at(0)), data->size()))
- socket_->Close();
-}
-
-void WebSocketStreamHandleBridgeImpl::DoClose() {
- DCHECK(base::MessageLoop::current() == g_io_thread);
- if (!socket_.get())
- return;
- socket_->Close();
-}
-
-void WebSocketStreamHandleBridgeImpl::DoOnConnected(
- int max_pending_send_allowed) {
- DCHECK(base::MessageLoop::current() == message_loop_);
- base::subtle::NoBarrier_AtomicIncrement(&num_pending_tasks_, -1);
- if (delegate_)
- delegate_->DidOpenStream(handle_, max_pending_send_allowed);
-}
-
-void WebSocketStreamHandleBridgeImpl::DoOnSentData(int amount_sent) {
- DCHECK(base::MessageLoop::current() == message_loop_);
- base::subtle::NoBarrier_AtomicIncrement(&num_pending_tasks_, -1);
- if (delegate_)
- delegate_->DidSendData(handle_, amount_sent);
-}
-
-void WebSocketStreamHandleBridgeImpl::DoOnReceivedData(
- std::vector<char>* data) {
- DCHECK(base::MessageLoop::current() == message_loop_);
- base::subtle::NoBarrier_AtomicIncrement(&num_pending_tasks_, -1);
- scoped_ptr<std::vector<char> > scoped_data(data);
- if (delegate_)
- delegate_->DidReceiveData(handle_, &(data->at(0)), data->size());
-}
-
-void WebSocketStreamHandleBridgeImpl::DoOnClose() {
- DCHECK(base::MessageLoop::current() == message_loop_);
- base::subtle::NoBarrier_AtomicIncrement(&num_pending_tasks_, -1);
- // Don't handle OnClose if there are pending tasks.
- DCHECK_EQ(num_pending_tasks_, 0);
- DCHECK(!socket_.get());
- DCHECK_EQ(socket_id_, kNoSocketId);
- webkit_glue::WebSocketStreamHandleDelegate* delegate = delegate_;
- delegate_ = NULL;
- if (delegate)
- delegate->DidClose(handle_);
- Release();
-}
-
-void WebSocketStreamHandleBridgeImpl::DoOnError(
- int error_code, const char* error_msg) {
- DCHECK(base::MessageLoop::current() == message_loop_);
- base::subtle::NoBarrier_AtomicIncrement(&num_pending_tasks_, -1);
- if (delegate_)
- delegate_->DidFail(handle_, error_code, ASCIIToUTF16(error_msg));
-}
-
-} // namespace
-
-/* static */
-void SimpleSocketStreamBridge::InitializeOnIOThread(
- net::URLRequestContext* request_context) {
- g_io_thread = base::MessageLoop::current();
- g_request_context = request_context;
-}
-
-void SimpleSocketStreamBridge::Cleanup() {
- g_io_thread = NULL;
- g_request_context = NULL;
-}
-
-/* static */
-webkit_glue::WebSocketStreamHandleBridge* SimpleSocketStreamBridge::Create(
- WebKit::WebSocketStreamHandle* handle,
- webkit_glue::WebSocketStreamHandleDelegate* delegate) {
- return new WebSocketStreamHandleBridgeImpl(handle, delegate);
-}
« no previous file with comments | « webkit/tools/test_shell/simple_socket_stream_bridge.h ('k') | webkit/tools/test_shell/simple_webcookiejar_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698