| Index: content/browser/renderer_host/pepper/pepper_tcp_socket.cc
|
| diff --git a/content/browser/renderer_host/pepper/pepper_tcp_socket.cc b/content/browser/renderer_host/pepper/pepper_tcp_socket.cc
|
| index aeb0425e652f29825a23c721bf164c87320965ca..baa60e3081188f463be235c8ea7601beea5650aa 100644
|
| --- a/content/browser/renderer_host/pepper/pepper_tcp_socket.cc
|
| +++ b/content/browser/renderer_host/pepper/pepper_tcp_socket.cc
|
| @@ -196,11 +196,33 @@ void PepperTCPSocket::Write(const std::string& data) {
|
| DoWrite();
|
| }
|
|
|
| +void PepperTCPSocket::SetBoolOption(uint32_t name, bool value) {
|
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| + DCHECK(socket_.get());
|
| +
|
| + switch (name) {
|
| + case PP_TCPSOCKETOPTION_NO_DELAY:
|
| + if (!IsSsl()) {
|
| + net::TCPClientSocket* tcp_socket =
|
| + static_cast<net::TCPClientSocket*>(socket_.get());
|
| + SendSetBoolOptionACK(tcp_socket->SetNoDelay(value));
|
| + } else {
|
| + SendSetBoolOptionACK(false);
|
| + }
|
| + return;
|
| + default:
|
| + break;
|
| + }
|
| +
|
| + NOTREACHED();
|
| + SendSetBoolOptionACK(false);
|
| +}
|
| +
|
| void PepperTCPSocket::StartConnect(const net::AddressList& addresses) {
|
| DCHECK(connection_state_ == CONNECT_IN_PROGRESS);
|
|
|
| - socket_.reset(
|
| - new net::TCPClientSocket(addresses, NULL, net::NetLog::Source()));
|
| + socket_.reset(new net::TCPClientSocket(addresses, NULL,
|
| + net::NetLog::Source()));
|
| int result = socket_->Connect(
|
| base::Bind(&PepperTCPSocket::OnConnectCompleted,
|
| base::Unretained(this)));
|
| @@ -303,6 +325,11 @@ void PepperTCPSocket::SendSSLHandshakeACK(bool succeeded) {
|
| certificate_fields));
|
| }
|
|
|
| +void PepperTCPSocket::SendSetBoolOptionACK(bool succeeded) {
|
| + manager_->Send(new PpapiMsg_PPBTCPSocket_SetBoolOptionACK(
|
| + routing_id_, plugin_dispatcher_id_, socket_id_, succeeded));
|
| +}
|
| +
|
| void PepperTCPSocket::OnResolveCompleted(int result) {
|
| DCHECK(connection_state_ == CONNECT_IN_PROGRESS);
|
|
|
| @@ -405,6 +432,12 @@ bool PepperTCPSocket::IsConnected() const {
|
| return connection_state_ == CONNECTED || connection_state_ == SSL_CONNECTED;
|
| }
|
|
|
| +bool PepperTCPSocket::IsSsl() const {
|
| + return connection_state_ == SSL_HANDSHAKE_IN_PROGRESS ||
|
| + connection_state_ == SSL_CONNECTED ||
|
| + connection_state_ == SSL_HANDSHAKE_FAILED;
|
| +}
|
| +
|
| void PepperTCPSocket::DoWrite() {
|
| DCHECK(write_buffer_base_.get());
|
| DCHECK(write_buffer_.get());
|
|
|