Chromium Code Reviews| Index: content/renderer/p2p/socket_client_impl.cc |
| diff --git a/content/renderer/p2p/socket_client_impl.cc b/content/renderer/p2p/socket_client_impl.cc |
| index 1425151089cf42930e66dfd190dff516af893b44..55e75293642ddd558036ec418f25bc7a482d179d 100644 |
| --- a/content/renderer/p2p/socket_client_impl.cc |
| +++ b/content/renderer/p2p/socket_client_impl.cc |
| @@ -69,25 +69,35 @@ void P2PSocketClientImpl::DoInit(P2PSocketType type, |
| type, socket_id_, local_address, remote_address)); |
| } |
| -void P2PSocketClientImpl::SendWithDscp( |
| - const net::IPEndPoint& address, |
| - const std::vector<char>& data, |
| - const rtc::PacketOptions& options) { |
| +uint64 P2PSocketClientImpl::SendWithDscp(const net::IPEndPoint& address, |
| + const std::vector<char>& data, |
| + const rtc::PacketOptions& options) { |
| + uint64 unique_id = GetUniqueId(random_socket_id_, ++next_packet_id_); |
| if (!ipc_message_loop_->BelongsToCurrentThread()) { |
| ipc_message_loop_->PostTask( |
| - FROM_HERE, base::Bind( |
| - &P2PSocketClientImpl::SendWithDscp, this, address, data, options)); |
| - return; |
| + FROM_HERE, base::Bind(&P2PSocketClientImpl::SendWithDscpAndPacketId, |
| + this, address, data, options, unique_id)); |
| + return unique_id; |
| } |
| // Can send data only when the socket is open. |
| DCHECK(state_ == STATE_OPEN || state_ == STATE_ERROR); |
| if (state_ == STATE_OPEN) { |
| - uint64 unique_id = GetUniqueId(random_socket_id_, ++next_packet_id_); |
| - TRACE_EVENT_ASYNC_BEGIN0("p2p", "Send", unique_id); |
| - dispatcher_->SendP2PMessage(new P2PHostMsg_Send(socket_id_, address, data, |
| - options, unique_id)); |
| + SendWithDscpAndPacketId(address, data, options, unique_id); |
| } |
| + |
| + return unique_id; |
| +} |
| + |
| +void P2PSocketClientImpl::SendWithDscpAndPacketId( |
| + const net::IPEndPoint& address, |
| + const std::vector<char>& data, |
| + const rtc::PacketOptions& options, |
| + uint64 packet_id) { |
| + DCHECK_EQ(state_, STATE_OPEN); |
|
Sergey Ulanov
2014/12/17 20:05:30
I don't think this DCHECK is valid. SendWithDscp()
guoweis_left_chromium
2014/12/22 21:41:47
Done.
|
| + TRACE_EVENT_ASYNC_BEGIN0("p2p", "Send", packet_id); |
| + dispatcher_->SendP2PMessage( |
| + new P2PHostMsg_Send(socket_id_, address, data, options, packet_id)); |
| } |
| void P2PSocketClientImpl::Send(const net::IPEndPoint& address, |
| @@ -196,17 +206,20 @@ void P2PSocketClientImpl::DeliverOnIncomingTcpConnection( |
| } |
| } |
| -void P2PSocketClientImpl::OnSendComplete() { |
| +void P2PSocketClientImpl::OnSendComplete( |
| + const P2PSendPacketMetrics& send_metrics) { |
| DCHECK(ipc_message_loop_->BelongsToCurrentThread()); |
| delegate_message_loop_->PostTask( |
| - FROM_HERE, base::Bind(&P2PSocketClientImpl::DeliverOnSendComplete, this)); |
| + FROM_HERE, base::Bind(&P2PSocketClientImpl::DeliverOnSendComplete, this, |
| + send_metrics)); |
| } |
| -void P2PSocketClientImpl::DeliverOnSendComplete() { |
| +void P2PSocketClientImpl::DeliverOnSendComplete( |
| + const P2PSendPacketMetrics& send_metrics) { |
| DCHECK(delegate_message_loop_->BelongsToCurrentThread()); |
| if (delegate_) |
| - delegate_->OnSendComplete(); |
| + delegate_->OnSendComplete(send_metrics); |
| } |
| void P2PSocketClientImpl::OnError() { |