| Index: chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc
|
| diff --git a/chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc b/chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc
|
| index 9d02674b65a561a2a92fde4c19d7f6d97cb503c2..d12289f3d1add1a2d940fcd88a92304ecc266f44 100644
|
| --- a/chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc
|
| +++ b/chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc
|
| @@ -279,6 +279,16 @@ bool WebrtcLoggingPrivateStartRtpDumpFunction::RunAsync() {
|
| scoped_ptr<StartRtpDump::Params> params(StartRtpDump::Params::Create(*args_));
|
| EXTENSION_FUNCTION_VALIDATE(params.get());
|
|
|
| + if (!params->incoming && !params->outgoing) {
|
| + StartRtpDumpCallback(false, "Either incoming or outgoing must be true.");
|
| + return true;
|
| + }
|
| +
|
| + RtpDumpType type =
|
| + (params->incoming && params->outgoing)
|
| + ? RTP_DUMP_BOTH
|
| + : (params->incoming ? RTP_DUMP_INCOMING : RTP_DUMP_OUTGOING);
|
| +
|
| content::RenderProcessHost* host =
|
| RphFromTabIdAndSecurityOrigin(params->tab_id, params->security_origin);
|
| if (!host)
|
| @@ -290,14 +300,20 @@ bool WebrtcLoggingPrivateStartRtpDumpFunction::RunAsync() {
|
| WebRtcLoggingHandlerHost::GenericDoneCallback callback = base::Bind(
|
| &WebrtcLoggingPrivateStartRtpDumpFunction::StartRtpDumpCallback, this);
|
|
|
| + // This call cannot fail.
|
| + content::RenderProcessHost::WebRtcStopRtpDumpCallback stop_callback =
|
| + host->StartRtpDump(params->incoming,
|
| + params->outgoing,
|
| + base::Bind(&WebRtcLoggingHandlerHost::OnRtpPacket,
|
| + webrtc_logging_handler_host));
|
| +
|
| BrowserThread::PostTask(BrowserThread::IO,
|
| FROM_HERE,
|
| base::Bind(&WebRtcLoggingHandlerHost::StartRtpDump,
|
| webrtc_logging_handler_host,
|
| - params->incoming,
|
| - params->outgoing,
|
| - callback));
|
| -
|
| + type,
|
| + callback,
|
| + stop_callback));
|
| return true;
|
| }
|
|
|
| @@ -320,6 +336,16 @@ bool WebrtcLoggingPrivateStopRtpDumpFunction::RunAsync() {
|
| scoped_ptr<StopRtpDump::Params> params(StopRtpDump::Params::Create(*args_));
|
| EXTENSION_FUNCTION_VALIDATE(params.get());
|
|
|
| + if (!params->incoming && !params->outgoing) {
|
| + StopRtpDumpCallback(false, "Either incoming or outgoing must be true.");
|
| + return true;
|
| + }
|
| +
|
| + RtpDumpType type =
|
| + (params->incoming && params->outgoing)
|
| + ? RTP_DUMP_BOTH
|
| + : (params->incoming ? RTP_DUMP_INCOMING : RTP_DUMP_OUTGOING);
|
| +
|
| content::RenderProcessHost* host =
|
| RphFromTabIdAndSecurityOrigin(params->tab_id, params->security_origin);
|
| if (!host)
|
| @@ -335,10 +361,8 @@ bool WebrtcLoggingPrivateStopRtpDumpFunction::RunAsync() {
|
| FROM_HERE,
|
| base::Bind(&WebRtcLoggingHandlerHost::StopRtpDump,
|
| webrtc_logging_handler_host,
|
| - params->incoming,
|
| - params->outgoing,
|
| + type,
|
| callback));
|
| -
|
| return true;
|
| }
|
|
|
|
|