Commit bd22413e authored by gyzhou's avatar gyzhou Committed by Commit bot

Adds UMA histograms for desktop tab and audio capture through

JavaScript chrome.chooseDesktopMedia.

BUG=557222

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

Cr-Commit-Position: refs/heads/master@{#383772}
parent 438cc28a
......@@ -201,8 +201,6 @@ source_set("browser") {
sources += [
"media/capture/desktop_capture_device.cc",
"media/capture/desktop_capture_device.h",
"media/capture/desktop_capture_device_uma_types.cc",
"media/capture/desktop_capture_device_uma_types.h",
]
if (use_aura) {
sources += [
......
......@@ -17,6 +17,9 @@ enum DesktopCaptureCounters {
FIRST_SCREEN_CAPTURE_FAILED,
FIRST_WINDOW_CAPTURE_SUCCEEDED,
FIRST_WINDOW_CAPTURE_FAILED,
TAB_VIDEO_CAPTURER_CREATED,
TAB_AUDIO_CAPTURER_CREATED,
SYSTEM_LOOPBACK_AUDIO_CAPTURER_CREATED,
DESKTOP_CAPTURE_COUNTER_BOUNDARY
};
......
......@@ -16,6 +16,7 @@
#include "base/strings/string_number_conversions.h"
#include "base/strings/stringprintf.h"
#include "build/build_config.h"
#include "content/browser/media/capture/desktop_capture_device_uma_types.h"
#include "content/browser/media/capture/web_contents_audio_input_stream.h"
#include "content/browser/media/media_internals.h"
#include "content/browser/media/webrtc/webrtc_internals.h"
......@@ -382,6 +383,7 @@ void AudioInputRendererHost::DoCreateStream(
audio_params.set_format(media::AudioParameters::AUDIO_FAKE);
// Check if we have the permission to open the device and which device to use.
MediaStreamType type = MEDIA_NO_SERVICE;
std::string device_name;
std::string device_id = media::AudioManagerBase::kDefaultDeviceId;
if (audio_params.format() != media::AudioParameters::AUDIO_FAKE) {
......@@ -394,7 +396,7 @@ void AudioInputRendererHost::DoCreateStream(
MaybeUnregisterKeyboardMicStream(config);
return;
}
type = info->device.type;
device_id = info->device.id;
device_name = info->device.name;
oss << ": device_name=" << device_name;
......@@ -444,6 +446,9 @@ void AudioInputRendererHost::DoCreateStream(
audio_mirroring_manager_),
entry->writer.get(),
user_input_monitor_);
// Only count for captures from desktop media picker dialog.
if (entry->controller.get() && type == MEDIA_DESKTOP_AUDIO_CAPTURE)
IncrementDesktopCaptureCounter(TAB_AUDIO_CAPTURER_CREATED);
} else {
// We call CreateLowLatency regardless of the value of
// |audio_params.format|. Low latency can currently mean different things in
......@@ -459,6 +464,13 @@ void AudioInputRendererHost::DoCreateStream(
user_input_monitor_,
config.automatic_gain_control);
oss << ", AGC=" << config.automatic_gain_control;
// Only count for captures from desktop media picker dialog and system loop
// back audio.
if (entry->controller.get() && type == MEDIA_DESKTOP_AUDIO_CAPTURE &&
device_id == media::AudioManagerBase::kLoopbackInputDeviceId) {
IncrementDesktopCaptureCounter(SYSTEM_LOOPBACK_AUDIO_CAPTURER_CREATED);
}
}
if (!entry->controller.get()) {
......
......@@ -21,6 +21,7 @@
#include "base/thread_task_runner_handle.h"
#include "base/threading/sequenced_worker_pool.h"
#include "build/build_config.h"
#include "content/browser/media/capture/desktop_capture_device_uma_types.h"
#include "content/browser/media/capture/web_contents_video_capture_device.h"
#include "content/browser/media/media_internals.h"
#include "content/browser/renderer_host/media/video_capture_controller.h"
......@@ -524,6 +525,7 @@ VideoCaptureManager::DoStartDesktopCaptureOnDeviceThread(
if (desktop_id.type == DesktopMediaID::TYPE_WEB_CONTENTS) {
video_capture_device.reset(WebContentsVideoCaptureDevice::Create(id));
IncrementDesktopCaptureCounter(TAB_VIDEO_CAPTURER_CREATED);
} else {
#if defined(USE_AURA)
video_capture_device = DesktopCaptureDeviceAura::Create(desktop_id);
......
......@@ -1059,6 +1059,8 @@
'browser/media/capture/cursor_renderer_aura.h',
'browser/media/capture/cursor_renderer_mac.mm',
'browser/media/capture/cursor_renderer_mac.h',
'browser/media/capture/desktop_capture_device_uma_types.cc',
'browser/media/capture/desktop_capture_device_uma_types.h',
'browser/media/capture/web_contents_audio_input_stream.cc',
'browser/media/capture/web_contents_audio_input_stream.h',
'browser/media/capture/web_contents_audio_muter.cc',
......@@ -1965,8 +1967,6 @@
'sources': [
'browser/media/capture/desktop_capture_device.cc',
'browser/media/capture/desktop_capture_device.h',
'browser/media/capture/desktop_capture_device_uma_types.cc',
'browser/media/capture/desktop_capture_device_uma_types.h',
],
'dependencies': [
'../third_party/webrtc/modules/modules.gyp:desktop_capture',
......
......@@ -63396,6 +63396,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
<int value="3" label="First screen capture call failed."/>
<int value="4" label="First window capture call succeeded."/>
<int value="5" label="First window capture call failed."/>
<int value="6" label="Tab video capturer created."/>
<int value="7" label="Tab audio capturer created."/>
<int value="8" label="System loopback audio capturer created."/>
</enum>
<enum name="DesktopSearchRedirectionInfobarCloseAction" type="int">
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