Chrome OS OOBE: Increase startup sound delay and add UMA metric.
This CL increases OOBE startup sound delay to 4 seconds, and adds UMA metric
on it.
Bug: 848485
Change-Id: I5401a2625634315760906789fcd69afe04d2972c
Reviewed-on: https://chromium-review.googlesource.com/1173014
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Reviewed-by: Wenzhao (Colin) Zang <wzang@chromium.org>
Commit-Queue: Alexander Alekseev <alemate@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582866}
diff --git a/chrome/browser/chromeos/login/ui/login_display_host_webui.cc b/chrome/browser/chromeos/login/ui/login_display_host_webui.cc
index a77031a..abb0931 100644
--- a/chrome/browser/chromeos/login/ui/login_display_host_webui.cc
+++ b/chrome/browser/chromeos/login/ui/login_display_host_webui.cc
@@ -18,6 +18,7 @@
#include "base/location.h"
#include "base/logging.h"
#include "base/macros.h"
+#include "base/metrics/histogram_macros.h"
#include "base/single_thread_task_runner.h"
#include "base/strings/string_split.h"
#include "base/strings/utf_string_conversions.h"
@@ -113,7 +114,7 @@
namespace {
// Maximum delay for startup sound after 'loginPromptVisible' signal.
-const int kStartupSoundMaxDelayMs = 2000;
+const int kStartupSoundMaxDelayMs = 4000;
// URL which corresponds to the login WebUI.
const char kLoginURL[] = "chrome://oobe/login";
@@ -357,14 +358,6 @@
device.type != chromeos::AudioDeviceType::AUDIO_TYPE_OTHER;
}
-// Returns true if it is too late to play startup sound.
-bool StartupSoundOutdated(base::TimeTicks login_prompt_visible_time) {
- // Don't try to play startup sound if login prompt has been already visible
- // for a long time.
- return base::TimeTicks::Now() - login_prompt_visible_time >
- base::TimeDelta::FromMilliseconds(kStartupSoundMaxDelayMs);
-}
-
} // namespace
namespace chromeos {
@@ -1202,9 +1195,17 @@
need_to_play_startup_sound_ = false;
oobe_startup_sound_played_ = true;
- if (StartupSoundOutdated(login_prompt_visible_time_))
- return;
+ const base::TimeDelta time_since_login_prompt_visible =
+ base::TimeTicks::Now() - login_prompt_visible_time_;
+ UMA_HISTOGRAM_TIMES("Accessibility.OOBEStartupSoundDelay",
+ time_since_login_prompt_visible);
+ // Don't try to play startup sound if login prompt has been already visible
+ // for a long time.
+ if (time_since_login_prompt_visible >
+ base::TimeDelta::FromMilliseconds(kStartupSoundMaxDelayMs)) {
+ return;
+ }
AccessibilityManager::Get()->PlayEarcon(SOUND_STARTUP,
PlaySoundOption::ALWAYS);
}
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index b0ed027..22db035 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -347,6 +347,15 @@
</summary>
</histogram>
+<histogram name="Accessibility.OOBEStartupSoundDelay" units="ms">
+ <owner>lpalmaro@chromium.org</owner>
+ <owner>alemate@chromium.org</owner>
+ <summary>
+ Delay between login_prompt_visible and Chrome OS OOBE startup sound
+ playback. Depends on sound subsystem initialization time.
+ </summary>
+</histogram>
+
<histogram name="Accessibility.State" enum="BooleanEnabled">
<obsolete>
Deprecated 12/2016 in Issue 672205 with the addition of