Commit 8b830e96 authored by tyoshino@chromium.org's avatar tyoshino@chromium.org

Make log messages in socket_stream_dispatcher.cc consistent and add more info.

- Since this file contains two classes, include "Bridge #id" and "SocketStreamDispatcher::" to distinguish between logs of them.
- Print pointer address instead of socket ID where it can be uninitialized or already unset.

Review URL: https://codereview.chromium.org/13533006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@192817 0039d316-1c4b-4281-b951-d872f2087c98
parent b7763c10
......@@ -54,12 +54,16 @@ class IPCWebSocketStreamHandleBridge
void DoConnect(const GURL& url);
void DoClose();
// The ID for this bridge and corresponding SocketStream instance in the
// browser process.
int socket_id_;
ChildThread* child_thread_;
WebKit::WebSocketStreamHandle* handle_;
webkit_glue::WebSocketStreamHandleDelegate* delegate_;
// Map from ID to bridge instance.
static base::LazyInstance<IDMap<IPCWebSocketStreamHandleBridge> >::Leaky
all_bridges;
};
......@@ -75,17 +79,20 @@ IPCWebSocketStreamHandleBridge* IPCWebSocketStreamHandleBridge::FromSocketId(
}
IPCWebSocketStreamHandleBridge::~IPCWebSocketStreamHandleBridge() {
DVLOG(1) << "IPCWebSocketStreamHandleBridge destructor socket_id="
<< socket_id_;
if (socket_id_ != kNoSocketId) {
child_thread_->Send(new SocketStreamHostMsg_Close(socket_id_));
socket_id_ = kNoSocketId;
}
DVLOG(1) << "Bridge (" << this << ", socket_id_=" << socket_id_
<< ") Destructor";
if (socket_id_ == kNoSocketId)
return;
child_thread_->Send(new SocketStreamHostMsg_Close(socket_id_));
socket_id_ = kNoSocketId;
}
void IPCWebSocketStreamHandleBridge::Connect(const GURL& url) {
DCHECK(child_thread_);
DVLOG(1) << "Connect url=" << url;
DVLOG(1) << "Bridge (" << this << ") Connect (url=" << url << ")";
child_thread_->message_loop()->PostTask(
FROM_HERE,
base::Bind(&IPCWebSocketStreamHandleBridge::DoConnect, this, url));
......@@ -93,7 +100,9 @@ void IPCWebSocketStreamHandleBridge::Connect(const GURL& url) {
bool IPCWebSocketStreamHandleBridge::Send(
const std::vector<char>& data) {
DVLOG(1) << "Send data.size=" << data.size();
DVLOG(1) << "Bridge #" << socket_id_ << " Send (" << data.size()
<< " bytes)";
if (child_thread_->Send(
new SocketStreamHostMsg_SendData(socket_id_, data))) {
if (delegate_)
......@@ -104,7 +113,8 @@ bool IPCWebSocketStreamHandleBridge::Send(
}
void IPCWebSocketStreamHandleBridge::Close() {
DVLOG(1) << "Close socket_id" << socket_id_;
DVLOG(1) << "Bridge #" << socket_id_ << " Close";
AddRef(); // Released in DoClose().
child_thread_->message_loop()->PostTask(
FROM_HERE,
......@@ -112,25 +122,33 @@ void IPCWebSocketStreamHandleBridge::Close() {
}
void IPCWebSocketStreamHandleBridge::OnConnected(int max_pending_send_allowed) {
DVLOG(1) << "IPCWebSocketStreamHandleBridge::OnConnected socket_id="
<< socket_id_;
DVLOG(1) << "Bridge #" << socket_id_
<< " OnConnected (max_pending_send_allowed="
<< max_pending_send_allowed << ")";
if (delegate_)
delegate_->DidOpenStream(handle_, max_pending_send_allowed);
}
void IPCWebSocketStreamHandleBridge::OnSentData(int amount_sent) {
DVLOG(1) << "Bridge #" << socket_id_ << " OnSentData (" << amount_sent
<< " bytes)";
if (delegate_)
delegate_->DidSendData(handle_, amount_sent);
}
void IPCWebSocketStreamHandleBridge::OnReceivedData(
const std::vector<char>& data) {
DVLOG(1) << "Bridge #" << socket_id_ << " OnReceiveData (" << data.size()
<< " bytes)";
if (delegate_)
delegate_->DidReceiveData(handle_, &data[0], data.size());
}
void IPCWebSocketStreamHandleBridge::OnClosed() {
DVLOG(1) << "IPCWebSocketStreamHandleBridge::OnClosed";
DVLOG(1) << "Bridge #" << socket_id_ << " OnClosed";
if (socket_id_ != kNoSocketId) {
all_bridges.Get().Remove(socket_id_);
socket_id_ = kNoSocketId;
......@@ -157,10 +175,10 @@ void IPCWebSocketStreamHandleBridge::DoConnect(const GURL& url) {
AddRef(); // Released in OnClosed().
if (child_thread_->Send(
new SocketStreamHostMsg_Connect(render_view_id, url, socket_id_))) {
DVLOG(1) << "Connect socket_id=" << socket_id_;
DVLOG(1) << "Bridge #" << socket_id_ << " sent IPC Connect";
// TODO(ukai): timeout to OnConnected.
} else {
DLOG(ERROR) << "IPC SocketStream_Connect failed.";
DLOG(ERROR) << "Bridge #" << socket_id_ << " failed to send IPC Connect";
OnClosed();
}
}
......@@ -196,42 +214,51 @@ bool SocketStreamDispatcher::OnMessageReceived(const IPC::Message& msg) {
void SocketStreamDispatcher::OnConnected(int socket_id,
int max_pending_send_allowed) {
DVLOG(1) << "SocketStreamDispatcher::OnConnected socket_id=" << socket_id
<< " max_pending_send_allowed=" << max_pending_send_allowed;
DVLOG(1) << "SocketStreamDispatcher::OnConnected (max_pending_send_allowed="
<< max_pending_send_allowed << ") to socket_id=" << socket_id;
IPCWebSocketStreamHandleBridge* bridge =
IPCWebSocketStreamHandleBridge::FromSocketId(socket_id);
if (bridge)
bridge->OnConnected(max_pending_send_allowed);
else
DLOG(ERROR) << "No SocketStreamHandleBridge for socket_id=" << socket_id;
DLOG(ERROR) << "No bridge for socket_id=" << socket_id;
}
void SocketStreamDispatcher::OnSentData(int socket_id, int amount_sent) {
DVLOG(1) << "SocketStreamDispatcher::OnSentData (" << amount_sent
<< " bytes) to socket_id=" << socket_id;
IPCWebSocketStreamHandleBridge* bridge =
IPCWebSocketStreamHandleBridge::FromSocketId(socket_id);
if (bridge)
bridge->OnSentData(amount_sent);
else
DLOG(ERROR) << "No SocketStreamHandleBridge for socket_id=" << socket_id;
DLOG(ERROR) << "No bridge for socket_id=" << socket_id;
}
void SocketStreamDispatcher::OnReceivedData(
int socket_id, const std::vector<char>& data) {
DVLOG(1) << "SocketStreamDispatcher::OnReceivedData (" << data.size()
<< " bytes) to socket_id=" << socket_id;
IPCWebSocketStreamHandleBridge* bridge =
IPCWebSocketStreamHandleBridge::FromSocketId(socket_id);
if (bridge)
bridge->OnReceivedData(data);
else
DLOG(ERROR) << "No SocketStreamHandleBridge for socket_id=" << socket_id;
DLOG(ERROR) << "No bridge for socket_id=" << socket_id;
}
void SocketStreamDispatcher::OnClosed(int socket_id) {
DVLOG(1) << "SocketStreamDispatcher::OnClosed to socket_id=" << socket_id;
IPCWebSocketStreamHandleBridge* bridge =
IPCWebSocketStreamHandleBridge::FromSocketId(socket_id);
if (bridge)
bridge->OnClosed();
else
DLOG(ERROR) << "No SocketStreamHandleBridge for socket_id=" << socket_id;
DLOG(ERROR) << "No bridge for socket_id=" << socket_id;
}
} // namespace content
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment