Commit d09466de authored by georgesak's avatar georgesak Committed by Commit bot

Added UMA statistics for Chrome Cleaner.

BUG=425601

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

Cr-Commit-Position: refs/heads/master@{#302124}
parent af99b7dc
...@@ -82,7 +82,11 @@ const base::FilePath::CharType kSwReporterExeName[] = ...@@ -82,7 +82,11 @@ const base::FilePath::CharType kSwReporterExeName[] =
// Where to fetch the reporter exit code in the registry. // Where to fetch the reporter exit code in the registry.
const wchar_t kSoftwareRemovalToolRegistryKey[] = const wchar_t kSoftwareRemovalToolRegistryKey[] =
L"Software\\Google\\Software Removal Tool"; L"Software\\Google\\Software Removal Tool";
const wchar_t kCleanerSuffixRegistryKey[] = L"Cleaner";
const wchar_t kExitCodeRegistryValueName[] = L"ExitCode"; const wchar_t kExitCodeRegistryValueName[] = L"ExitCode";
const wchar_t kVersionRegistryValueName[] = L"Version";
const wchar_t kStartTimeRegistryValueName[] = L"StartTime";
const wchar_t kEndTimeRegistryValueName[] = L"EndTime";
// Field trial strings. // Field trial strings.
const char kSRTPromptTrialName[] = "SRTPromptFieldTrial"; const char kSRTPromptTrialName[] = "SRTPromptFieldTrial";
...@@ -330,6 +334,47 @@ void RegisterSwReporterComponent(ComponentUpdateService* cus, ...@@ -330,6 +334,47 @@ void RegisterSwReporterComponent(ComponentUpdateService* cus,
return; return;
} }
// Check if we have information from Cleaner and record UMA statistics.
base::string16 cleaner_key_name(kSoftwareRemovalToolRegistryKey);
cleaner_key_name.append(1, L'\\').append(kCleanerSuffixRegistryKey);
base::win::RegKey cleaner_key(
HKEY_CURRENT_USER, cleaner_key_name.c_str(), KEY_ALL_ACCESS);
// Cleaner is assumed to have run if we have a start time.
if (cleaner_key.Valid() &&
cleaner_key.HasValue(kStartTimeRegistryValueName)) {
// Get version number.
if (cleaner_key.HasValue(kVersionRegistryValueName)) {
DWORD version;
cleaner_key.ReadValueDW(kVersionRegistryValueName, &version);
UMA_HISTOGRAM_SPARSE_SLOWLY("SoftwareReporter.Cleaner.Version", version);
cleaner_key.DeleteValue(kVersionRegistryValueName);
}
// Get start & end time. If we don't have an end time, we can assume the
// cleaner has crashed.
bool completed = cleaner_key.HasValue(kEndTimeRegistryValueName);
UMA_HISTOGRAM_BOOLEAN("SoftwareReporter.Cleaner.HasCompleted", completed);
if (completed) {
int64 start_time_value;
cleaner_key.ReadInt64(kStartTimeRegistryValueName, &start_time_value);
int64 end_time_value;
cleaner_key.ReadInt64(kEndTimeRegistryValueName, &end_time_value);
cleaner_key.DeleteValue(kEndTimeRegistryValueName);
base::TimeDelta run_time(base::Time::FromInternalValue(end_time_value) -
base::Time::FromInternalValue(start_time_value));
UMA_HISTOGRAM_LONG_TIMES("SoftwareReporter.Cleaner.RunningTime",
run_time);
}
// Get exit code.
if (cleaner_key.HasValue(kExitCodeRegistryValueName)) {
DWORD exit_code;
cleaner_key.ReadValueDW(kExitCodeRegistryValueName, &exit_code);
UMA_HISTOGRAM_SPARSE_SLOWLY("SoftwareReporter.Cleaner.ExitCode",
exit_code);
cleaner_key.DeleteValue(kExitCodeRegistryValueName);
}
cleaner_key.DeleteValue(kStartTimeRegistryValueName);
}
// Install the component. // Install the component.
scoped_ptr<ComponentInstallerTraits> traits( scoped_ptr<ComponentInstallerTraits> traits(
new SwReporterInstallerTraits(prefs)); new SwReporterInstallerTraits(prefs));
......
...@@ -33698,6 +33698,29 @@ Therefore, the affected-histogram name has to have at least one dot in it. ...@@ -33698,6 +33698,29 @@ Therefore, the affected-histogram name has to have at least one dot in it.
</summary> </summary>
</histogram> </histogram>
<histogram name="SoftwareReporter.Cleaner.ExitCode">
<owner>mad@chromium.org</owner>
<summary>The exit code of the software reporter cleaner tool.</summary>
</histogram>
<histogram name="SoftwareReporter.Cleaner.HasCompleted" enum="BooleanCompleted">
<owner>mad@chromium.org</owner>
<summary>
Whether the software reporter cleaner tool has finished execution, otherwise
assume it has crashed.
</summary>
</histogram>
<histogram name="SoftwareReporter.Cleaner.RunningTime" units="ms">
<owner>mad@chromium.org</owner>
<summary>How long it took to run the software reporter cleaner tool.</summary>
</histogram>
<histogram name="SoftwareReporter.Cleaner.Version">
<owner>mad@chromium.org</owner>
<summary>The build version of the software reporter cleaner tool.</summary>
</histogram>
<histogram name="SoftwareReporter.MajorVersion"> <histogram name="SoftwareReporter.MajorVersion">
<owner>mad@chromium.org</owner> <owner>mad@chromium.org</owner>
<summary> <summary>
...@@ -40086,6 +40109,11 @@ Therefore, the affected-histogram name has to have at least one dot in it. ...@@ -40086,6 +40109,11 @@ Therefore, the affected-histogram name has to have at least one dot in it.
<int value="1" label="Common Name used"/> <int value="1" label="Common Name used"/>
</enum> </enum>
<enum name="BooleanCompleted" type="int">
<int value="0" label="Not Completed"/>
<int value="1" label="Completed"/>
</enum>
<enum name="BooleanCorrupt" type="int"> <enum name="BooleanCorrupt" type="int">
<int value="0" label="Not Corrupt"/> <int value="0" label="Not Corrupt"/>
<int value="1" label="Corrupt"/> <int value="1" label="Corrupt"/>
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