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

Unified Diff: chrome/browser/extensions/api/cast_channel/cast_socket.cc

Issue 160973002: Two chagnes to cast socket: (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 6 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: chrome/browser/extensions/api/cast_channel/cast_socket.cc
===================================================================
--- chrome/browser/extensions/api/cast_channel/cast_socket.cc (revision 250590)
+++ chrome/browser/extensions/api/cast_channel/cast_socket.cc (working copy)
@@ -71,9 +71,11 @@
ApiResource(owner_extension_id),
channel_id_(0),
url_(url),
+ url_log_str_("[URL: " + url.spec() + "] "),
Wez 2014/02/12 21:13:16 nit: Is "URL:" redundant here?
mark a. foltz 2014/02/12 21:45:02 This is really only for the purposes of logging an
Wez 2014/02/12 21:52:14 +1
Munjal (Google) 2014/02/12 22:34:36 Done. Started doing that but thought I cannot do
Munjal (Google) 2014/02/12 22:34:36 Done.
delegate_(delegate),
auth_required_(false),
current_message_size_(0),
+ current_message_(new CastMessage()),
net_log_(net_log),
connect_state_(CONN_STATE_NONE),
write_state_(WRITE_STATE_NONE),
@@ -145,8 +147,8 @@
bool result = net::X509Certificate::GetDEREncoded(
ssl_info.cert->os_cert_handle(), cert);
if (result)
- VLOG(1) << "[URL: " << url_.spec()
- << "] Successfully extracted peer certificate: " << *cert;
+ VLOG(1) << url_log_str_
+ << "Successfully extracted peer certificate: " << *cert;
return result;
}
@@ -156,7 +158,7 @@
void CastSocket::Connect(const net::CompletionCallback& callback) {
DCHECK(CalledOnValidThread());
- VLOG(1) << "Connect readyState = " << ready_state_;
+ VLOG(1) << url_log_str_ << "Connect readyState = " << ready_state_;
if (ready_state_ != READY_STATE_NONE) {
callback.Run(net::ERR_CONNECTION_FAILED);
return;
@@ -232,7 +234,7 @@
}
int CastSocket::DoTcpConnect() {
- VLOG(1) << "DoTcpConnect";
+ VLOG(1) << url_log_str_ << "DoTcpConnect";
connect_state_ = CONN_STATE_TCP_CONNECT_COMPLETE;
tcp_socket_ = CreateTcpSocket();
return tcp_socket_->Connect(
@@ -240,7 +242,7 @@
}
int CastSocket::DoTcpConnectComplete(int result) {
- VLOG(1) << "DoTcpConnectComplete: " << result;
+ VLOG(1) << url_log_str_ << "DoTcpConnectComplete: " << result;
if (result == net::OK) {
// Enable TCP protocol-level keep-alive.
bool result = tcp_socket_->SetKeepAlive(true, kTcpKeepAliveDelaySecs);
@@ -251,7 +253,7 @@
}
int CastSocket::DoSslConnect() {
- VLOG(1) << "DoSslConnect";
+ VLOG(1) << url_log_str_ << "DoSslConnect";
connect_state_ = CONN_STATE_SSL_CONNECT_COMPLETE;
socket_ = CreateSslSocket(tcp_socket_.PassAs<net::StreamSocket>());
return socket_->Connect(
@@ -259,7 +261,7 @@
}
int CastSocket::DoSslConnectComplete(int result) {
- VLOG(1) << "DoSslConnectComplete: " << result;
+ VLOG(1) << url_log_str_ << "DoSslConnectComplete: " << result;
if (result == net::ERR_CERT_AUTHORITY_INVALID &&
peer_cert_.empty() &&
ExtractPeerCert(&peer_cert_)) {
@@ -271,11 +273,12 @@
}
int CastSocket::DoAuthChallengeSend() {
- VLOG(1) << "DoAuthChallengeSend";
+ VLOG(1) << url_log_str_ << "DoAuthChallengeSend";
connect_state_ = CONN_STATE_AUTH_CHALLENGE_SEND_COMPLETE;
CastMessage challenge_message;
CreateAuthChallengeMessage(&challenge_message);
- VLOG(1) << "Sending challenge: " << CastMessageToString(challenge_message);
+ VLOG(1) << url_log_str_
+ << "Sending challenge: " << CastMessageToString(challenge_message);
// Post a task to send auth challenge so that DoWriteLoop is not nested inside
// DoConnectLoop. This is not strictly necessary but keeps the write loop
// code decoupled from connect loop code.
@@ -289,7 +292,7 @@
}
int CastSocket::DoAuthChallengeSendComplete(int result) {
- VLOG(1) << "DoAuthChallengeSendComplete: " << result;
+ VLOG(1) << url_log_str_ << "DoAuthChallengeSendComplete: " << result;
if (result < 0)
return result;
connect_state_ = CONN_STATE_AUTH_CHALLENGE_REPLY_COMPLETE;
@@ -302,12 +305,12 @@
}
int CastSocket::DoAuthChallengeReplyComplete(int result) {
- VLOG(1) << "DoAuthChallengeReplyComplete: " << result;
+ VLOG(1) << url_log_str_ << "DoAuthChallengeReplyComplete: " << result;
if (result < 0)
return result;
if (!VerifyChallengeReply())
return net::ERR_FAILED;
- VLOG(1) << "Auth challenge verification succeeded";
+ VLOG(1) << url_log_str_ << "Auth challenge verification succeeded";
return net::OK;
}
@@ -322,7 +325,7 @@
void CastSocket::Close(const net::CompletionCallback& callback) {
DCHECK(CalledOnValidThread());
- VLOG(1) << "Close ReadyState = " << ready_state_;
+ VLOG(1) << url_log_str_ << "Close ReadyState = " << ready_state_;
tcp_socket_.reset();
socket_.reset();
cert_verifier_.reset();
@@ -366,7 +369,7 @@
void CastSocket::DoWriteLoop(int result) {
DCHECK(CalledOnValidThread());
- VLOG(1) << "WriteData q = " << write_queue_.size();
+ VLOG(1) << url_log_str_ << "DoWriteLoop queue size: " << write_queue_.size();
if (write_queue_.empty()) {
write_state_ = WRITE_STATE_NONE;
@@ -416,8 +419,9 @@
DCHECK(!write_queue_.empty());
WriteRequest& request = write_queue_.front();
- VLOG(1) << "WriteData byte_count = " << request.io_buffer->size()
- << " bytes_written " << request.io_buffer->BytesConsumed();
+ VLOG(2) << url_log_str_
+ << "WriteData byte_count = " << request.io_buffer->size()
+ << " bytes_written " << request.io_buffer->BytesConsumed();
write_state_ = WRITE_STATE_WRITE_COMPLETE;
@@ -564,10 +568,11 @@
}
int CastSocket::DoReadComplete(int result) {
- VLOG(1) << "DoReadDataComplete result = " << result
+ VLOG(2) << url_log_str_ << "DoReadComplete result = " << result
<< " header offset = " << header_read_buffer_->offset()
<< " body offset = " << body_read_buffer_->offset();
if (result <= 0) { // 0 means EOF: the peer closed the socket
+ VLOG(1) << url_log_str_ << "Read error, peer closed the socket";
error_state_ = CHANNEL_ERROR_SOCKET_ERROR;
read_state_ = READ_STATE_ERROR;
return result == 0 ? net::ERR_FAILED : result;
@@ -603,22 +608,23 @@
int CastSocket::DoReadCallback() {
read_state_ = READ_STATE_READ;
- if (IsAuthMessage(current_message_)) {
+ const CastMessage& message = *(current_message_.get());
+ if (IsAuthMessage(message)) {
// An auth message is received, check that connect flow is running.
if (ready_state_ == READY_STATE_CONNECTING) {
- challenge_reply_.reset(new CastMessage(current_message_));
+ challenge_reply_.reset(new CastMessage(message));
PostTaskToStartConnectLoop(net::OK);
} else {
read_state_ = READ_STATE_ERROR;
}
} else if (delegate_) {
- MessageInfo message;
- if (CastMessageToMessageInfo(current_message_, &message))
- delegate_->OnMessage(this, message);
+ MessageInfo message_info;
+ if (CastMessageToMessageInfo(message, &message_info))
+ delegate_->OnMessage(this, message_info);
else
read_state_ = READ_STATE_ERROR;
}
- current_message_.Clear();
+ current_message_->Clear();
Wez 2014/02/12 21:13:16 Rather than clearing & re-using the CastMessage, w
Munjal (Google) 2014/02/12 22:34:36 So that we don't create many objects on the heap e
return net::OK;
}
@@ -641,7 +647,8 @@
if (header.message_size > kMaxMessageSize)
return false;
- VLOG(1) << "Parsed header { message_size: " << header.message_size << " }";
+ VLOG(2) << url_log_str_
+ << "Parsed header { message_size: " << header.message_size << " }";
current_message_size_ = header.message_size;
return true;
}
@@ -649,7 +656,7 @@
bool CastSocket::ProcessBody() {
DCHECK_EQ(static_cast<uint32>(body_read_buffer_->offset()),
current_message_size_);
- if (!current_message_.ParseFromArray(
+ if (!current_message_->ParseFromArray(
body_read_buffer_->StartOfBuffer(), current_message_size_)) {
return false;
}
@@ -686,7 +693,7 @@
}
bool CastSocket::ParseChannelUrl(const GURL& url) {
- VLOG(1) << "url = " + url.spec();
+ VLOG(2) << url_log_str_ << "ParseChannelUrl";
if (url.SchemeIs(kCastInsecureScheme)) {
auth_required_ = false;
} else if (url.SchemeIs(kCastSecureScheme)) {
@@ -696,8 +703,8 @@
}
// TODO(mfoltz): Manual parsing, yech. Register cast[s] as standard schemes?
// TODO(mfoltz): Test for IPv6 addresses. Brackets or no brackets?
- // TODO(mfoltz): Maybe enforce restriction to IPv4 private and IPv6 link-local
- // networks
Wez 2014/02/12 21:13:16 Did this need re-wrapping?
Munjal (Google) 2014/02/12 22:34:36 Yes, I think it was 81 without wrapping.
+ // TODO(mfoltz): Maybe enforce restriction to IPv4 private and IPv6
+ // link-local networks
const std::string& path = url.path();
// Shortest possible: //A:B
if (path.size() < 5) {
@@ -712,7 +719,7 @@
}
const std::string& ip_address_str = path.substr(2, colon - 2);
const std::string& port_str = path.substr(colon + 1);
- VLOG(1) << "addr " << ip_address_str << " port " << port_str;
+ VLOG(2) << url_log_str_ << "IP: " << ip_address_str << " Port: " << port_str;
int port;
if (!base::StringToInt(port_str, &port))
return false;

Powered by Google App Engine
This is Rietveld 408576698