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 a1387eaa5c0ffa301e4a27cfef4cae96203e151d..d60ac9aed699cf5813594c0eb0d7fcfdd1083dc6 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 |
@@ -42,6 +42,10 @@ namespace StartAudioDebugRecordings = |
api::webrtc_logging_private::StartAudioDebugRecordings; |
namespace StopAudioDebugRecordings = |
api::webrtc_logging_private::StopAudioDebugRecordings; |
+namespace StartRtcEventLogging = |
+ api::webrtc_logging_private::StartRtcEventLogging; |
+namespace StopRtcEventLogging = |
+ api::webrtc_logging_private::StopRtcEventLogging; |
namespace { |
std::string HashIdWithOrigin(const std::string& security_origin, |
@@ -130,19 +134,19 @@ void WebrtcLoggingPrivateFunctionWithUploadCallback::FireCallback( |
SendResponse(success); |
} |
-void WebrtcLoggingPrivateFunctionWithAudioDebugRecordingsCallback:: |
+void WebrtcLoggingPrivateFunctionWithTimeLimitedRecordingCallback:: |
FireErrorCallback(const std::string& error_message) { |
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
SetError(error_message); |
SendResponse(false); |
} |
-void WebrtcLoggingPrivateFunctionWithAudioDebugRecordingsCallback::FireCallback( |
+void WebrtcLoggingPrivateFunctionWithTimeLimitedRecordingCallback::FireCallback( |
const std::string& prefix_path, |
bool did_stop, |
bool did_manual_stop) { |
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
- api::webrtc_logging_private::AudioDebugRecordingsInfo result; |
+ api::webrtc_logging_private::TimeLimitedRecordingInfo result; |
result.prefix_path = prefix_path; |
result.did_stop = did_stop; |
result.did_manual_stop = did_manual_stop; |
@@ -437,4 +441,66 @@ bool WebrtcLoggingPrivateStopAudioDebugRecordingsFunction::RunAsync() { |
return true; |
} |
+bool WebrtcLoggingPrivateStartRtcEventLoggingFunction::RunAsync() { |
+ if (!base::CommandLine::ForCurrentProcess()->HasSwitch( |
+ switches::kEnableRtcEventLoggingFromExtension)) { |
+ return false; |
+ } |
+ |
+ scoped_ptr<StartRtcEventLogging::Params> params( |
+ StartRtcEventLogging::Params::Create(*args_)); |
+ EXTENSION_FUNCTION_VALIDATE(params.get()); |
+ |
+ if (params->seconds < 0) { |
+ FireErrorCallback("seconds must be greater than or equal to 0"); |
+ return true; |
+ } |
+ |
+ content::RenderProcessHost* host = |
+ RphFromRequest(params->request, params->security_origin); |
+ if (!host) |
+ return false; |
+ |
+ scoped_refptr<WebRtcLoggingHandlerHost> webrtc_logging_handler_host( |
+ base::UserDataAdapter<WebRtcLoggingHandlerHost>::Get(host, host)); |
+ |
+ webrtc_logging_handler_host->StartRtcEventLogging( |
+ host, base::TimeDelta::FromSeconds(params->seconds), |
+ base::Bind( |
+ &WebrtcLoggingPrivateStartRtcEventLoggingFunction::FireCallback, |
+ this), |
+ base::Bind( |
+ &WebrtcLoggingPrivateStartRtcEventLoggingFunction::FireErrorCallback, |
+ this)); |
+ return true; |
+} |
+ |
+bool WebrtcLoggingPrivateStopRtcEventLoggingFunction::RunAsync() { |
+ if (!base::CommandLine::ForCurrentProcess()->HasSwitch( |
+ switches::kEnableRtcEventLoggingFromExtension)) { |
+ return false; |
+ } |
+ |
+ scoped_ptr<StopRtcEventLogging::Params> params( |
+ StopRtcEventLogging::Params::Create(*args_)); |
+ EXTENSION_FUNCTION_VALIDATE(params.get()); |
+ |
+ content::RenderProcessHost* host = |
+ RphFromRequest(params->request, params->security_origin); |
+ if (!host) |
+ return false; |
+ |
+ scoped_refptr<WebRtcLoggingHandlerHost> webrtc_logging_handler_host( |
+ base::UserDataAdapter<WebRtcLoggingHandlerHost>::Get(host, host)); |
+ |
+ webrtc_logging_handler_host->StopRtcEventLogging( |
+ host, |
+ base::Bind(&WebrtcLoggingPrivateStopRtcEventLoggingFunction::FireCallback, |
+ this), |
+ base::Bind( |
+ &WebrtcLoggingPrivateStopRtcEventLoggingFunction::FireErrorCallback, |
+ this)); |
+ return true; |
+} |
+ |
} // namespace extensions |