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

Unified Diff: chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc

Issue 1650133002: Start and stop RTC event logs from private extension API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Split the logging handler into one for audio recordings and one for event logs Created 4 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/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..74c1b31493efbed001babc807b4132d34bfca2ec 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,
@@ -96,7 +100,8 @@ WebrtcLoggingPrivateFunction::LoggingHandlerFromRequest(
if (!host)
return nullptr;
- return base::UserDataAdapter<WebRtcLoggingHandlerHost>::Get(host, host);
+ return base::UserDataAdapter<WebRtcLoggingHandlerHost>::Get(
+ host, WebRtcLoggingHandlerHost::kWebRtcLoggingHandlerHostKey);
}
scoped_refptr<WebRtcLoggingHandlerHost>
@@ -130,19 +135,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;
@@ -318,7 +323,8 @@ bool WebrtcLoggingPrivateStartRtpDumpFunction::RunAsync() {
return false;
scoped_refptr<WebRtcLoggingHandlerHost> webrtc_logging_handler_host(
- base::UserDataAdapter<WebRtcLoggingHandlerHost>::Get(host, host));
+ base::UserDataAdapter<WebRtcLoggingHandlerHost>::Get(
+ host, WebRtcLoggingHandlerHost::kWebRtcLoggingHandlerHostKey));
WebRtcLoggingHandlerHost::GenericDoneCallback callback = base::Bind(
&WebrtcLoggingPrivateStartRtpDumpFunction::FireCallback, this);
@@ -360,7 +366,8 @@ bool WebrtcLoggingPrivateStopRtpDumpFunction::RunAsync() {
return false;
scoped_refptr<WebRtcLoggingHandlerHost> webrtc_logging_handler_host(
- base::UserDataAdapter<WebRtcLoggingHandlerHost>::Get(host, host));
+ base::UserDataAdapter<WebRtcLoggingHandlerHost>::Get(
+ host, WebRtcLoggingHandlerHost::kWebRtcLoggingHandlerHostKey));
WebRtcLoggingHandlerHost::GenericDoneCallback callback = base::Bind(
&WebrtcLoggingPrivateStopRtpDumpFunction::FireCallback, this);
@@ -394,10 +401,11 @@ bool WebrtcLoggingPrivateStartAudioDebugRecordingsFunction::RunAsync() {
if (!host)
return false;
- scoped_refptr<WebRtcLoggingHandlerHost> webrtc_logging_handler_host(
- base::UserDataAdapter<WebRtcLoggingHandlerHost>::Get(host, host));
+ scoped_refptr<AudioDebugRecordingsHandler> audio_debug_recrdings_handler(
Guido Urdaneta 2016/02/23 13:57:34 typo: recrdings -> recordings
terelius-chromium 2016/03/02 10:01:09 Done. Thanks!
+ base::UserDataAdapter<AudioDebugRecordingsHandler>::Get(
+ host, AudioDebugRecordingsHandler::kAudioDebugRecordingsHandlerKey));
- webrtc_logging_handler_host->StartAudioDebugRecordings(
+ audio_debug_recrdings_handler->StartAudioDebugRecordings(
host, base::TimeDelta::FromSeconds(params->seconds),
base::Bind(
&WebrtcLoggingPrivateStartAudioDebugRecordingsFunction::FireCallback,
@@ -423,10 +431,11 @@ bool WebrtcLoggingPrivateStopAudioDebugRecordingsFunction::RunAsync() {
if (!host)
return false;
- scoped_refptr<WebRtcLoggingHandlerHost> webrtc_logging_handler_host(
- base::UserDataAdapter<WebRtcLoggingHandlerHost>::Get(host, host));
+ scoped_refptr<AudioDebugRecordingsHandler> audio_debug_recrdings_handler(
+ base::UserDataAdapter<AudioDebugRecordingsHandler>::Get(
+ host, AudioDebugRecordingsHandler::kAudioDebugRecordingsHandlerKey));
- webrtc_logging_handler_host->StopAudioDebugRecordings(
+ audio_debug_recrdings_handler->StopAudioDebugRecordings(
host,
base::Bind(
&WebrtcLoggingPrivateStopAudioDebugRecordingsFunction::FireCallback,
@@ -437,4 +446,68 @@ bool WebrtcLoggingPrivateStopAudioDebugRecordingsFunction::RunAsync() {
return true;
}
+bool WebrtcLoggingPrivateStartRtcEventLoggingFunction::RunAsync() {
+ if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kEnableRtcEventLoggingFromExtension)) {
Henrik Grunell 2016/02/23 15:29:10 kEnableRtcEventLoggingFromExtension -> kEnableWebR
terelius-chromium 2016/03/02 10:01:09 Done.
+ 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<RtcEventLogHandler> rtc_event_log_handler(
+ base::UserDataAdapter<RtcEventLogHandler>::Get(
+ host, RtcEventLogHandler::kRtcEventLogHandlerKey));
+
+ rtc_event_log_handler->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<RtcEventLogHandler> rtc_event_log_handler(
+ base::UserDataAdapter<RtcEventLogHandler>::Get(
+ host, RtcEventLogHandler::kRtcEventLogHandlerKey));
Henrik Grunell 2016/02/23 15:29:10 Same here. Rtc -> WebRtc
terelius-chromium 2016/03/02 10:01:09 Done.
+
+ rtc_event_log_handler->StopRtcEventLogging(
+ host,
+ base::Bind(&WebrtcLoggingPrivateStopRtcEventLoggingFunction::FireCallback,
+ this),
+ base::Bind(
+ &WebrtcLoggingPrivateStopRtcEventLoggingFunction::FireErrorCallback,
+ this));
+ return true;
+}
+
} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698