forked from chromium/chromium
-
Notifications
You must be signed in to change notification settings - Fork 0
/
glanceables_util.cc
51 lines (41 loc) · 1.84 KB
/
glanceables_util.cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ash/glanceables/glanceables_util.h"
#include "base/base_paths.h"
#include "base/files/file_path.h"
#include "base/metrics/histogram_functions.h"
#include "base/path_service.h"
#include "components/prefs/pref_registry_simple.h"
#include "components/prefs/pref_service.h"
namespace ash::glanceables_util {
// Pref name for how long the signout screenshot took on the previous signout.
const char kSignoutScreenshotDuration[] = "ash.signout_screenshot.duration";
void RegisterLocalStatePrefs(PrefRegistrySimple* registry) {
registry->RegisterTimeDeltaPref(kSignoutScreenshotDuration,
base::TimeDelta());
}
void SaveSignoutScreenshotDuration(PrefService* local_state,
base::TimeDelta duration) {
local_state->SetTimeDelta(kSignoutScreenshotDuration, duration);
}
void RecordSignoutScreenshotDurationMetric(PrefService* local_state) {
base::TimeDelta duration =
local_state->GetTimeDelta(kSignoutScreenshotDuration);
// Don't record the metric if we don't have a value.
if (duration.is_zero())
return;
base::UmaHistogramTimes("Ash.Glanceables.SignoutScreenshotDuration",
duration);
// Reset the pref in case the next signout doesn't record a screenshot.
local_state->SetTimeDelta(kSignoutScreenshotDuration, base::TimeDelta());
}
base::FilePath GetSignoutScreenshotPath() {
base::FilePath home_dir;
CHECK(base::PathService::Get(base::DIR_HOME, &home_dir));
return home_dir.AppendASCII("signout_screenshot.png");
}
base::TimeDelta GetSignoutScreenshotDurationForTest(PrefService* local_state) {
return local_state->GetTimeDelta(kSignoutScreenshotDuration);
}
} // namespace ash::glanceables_util