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

Unified Diff: content/browser/renderer_host/pepper/pepper_tcp_socket.cc

Issue 12220050: Provide a way to disable Nagle's algorithm on Pepper TCP sockets. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add missing completion callback implementation. Created 7 years, 10 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: 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 61ccdc2bafe5157b81294c6ad642c303292678b0..b49b1ac6f39c357d7ca869cf3447337db128a884 100644
--- a/content/browser/renderer_host/pepper/pepper_tcp_socket.cc
+++ b/content/browser/renderer_host/pepper/pepper_tcp_socket.cc
@@ -196,11 +196,32 @@ void PepperTCPSocket::Write(const std::string& data) {
DoWrite();
}
+void PepperTCPSocket::SetBoolFeature(uint32_t name, bool value) {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
+ DCHECK(socket_.get());
+
+ switch (static_cast<PP_TCPSocketFeature_Private>(name)) {
+ case PP_TCPSOCKETFEATURE_NO_DELAY:
yzshen1 2013/02/08 21:51:11 wrong indent.
Wez 2013/02/10 04:47:02 Done.
+ if (!IsSsl()) {
+ SendSetBoolFeatureACK(
+ static_cast<net::TCPClientSocket*>(socket_.get())->SetNoDelay(value));
+ } else {
+ SendSetBoolFeatureACK(false);
+ }
+ return;
+ default:
+ break;
+ }
+
+ NOTREACHED();
+ SendSetBoolFeatureACK(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)));
@@ -405,6 +426,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 ||
yzshen1 2013/02/08 21:51:11 wrong indent.
Wez 2013/02/10 04:47:02 Done.
+ connection_state_ == SSL_HANDSHAKE_FAILED;
+}
+
void PepperTCPSocket::DoWrite() {
DCHECK(write_buffer_base_.get());
DCHECK(write_buffer_.get());

Powered by Google App Engine
This is Rietveld 408576698