Commit 99eab93b authored by Rainhard Findling's avatar Rainhard Findling Committed by Commit Bot

Safety check Chrome cleaner: add C++ side metrics

* Logs the Chrome cleaner result shown to users in an UMA histogram.

Bug: 1087263
Change-Id: I25cdd664300632f3d893f59a01c3803ce3db6f86
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2332802
Commit-Queue: Rainhard Findling <rainhard@chromium.org>
Reviewed-by: default avatarBrian White <bcwhite@chromium.org>
Reviewed-by: default avatarEsmael Elmoslimany <aee@chromium.org>
Cr-Commit-Position: refs/heads/master@{#795595}
parent c03527a3
...@@ -432,7 +432,11 @@ void SafetyCheckHandler::OnChromeCleanerCheckResult( ...@@ -432,7 +432,11 @@ void SafetyCheckHandler::OnChromeCleanerCheckResult(
event.SetIntKey(kNewState, static_cast<int>(status)); event.SetIntKey(kNewState, static_cast<int>(status));
event.SetStringKey(kDisplayString, GetStringForChromeCleaner(status)); event.SetStringKey(kDisplayString, GetStringForChromeCleaner(status));
FireWebUIListener(kChromeCleanerEvent, event); FireWebUIListener(kChromeCleanerEvent, event);
// TODO(crbug.com/1087263): Add metrics for the CCT result. if (status != ChromeCleanerStatus::kHidden &&
status != ChromeCleanerStatus::kChecking) {
base::UmaHistogramEnumeration("Settings.SafetyCheck.ChromeCleanerResult",
status);
}
chrome_cleaner_status_ = status; chrome_cleaner_status_ = status;
CompleteParentIfChildrenCompleted(); CompleteParentIfChildrenCompleted();
} }
......
...@@ -1146,11 +1146,24 @@ TEST_P(SafetyCheckHandlerChromeCleanerIdleTest, CheckChromeCleanerIdleStates) { ...@@ -1146,11 +1146,24 @@ TEST_P(SafetyCheckHandlerChromeCleanerIdleTest, CheckChromeCleanerIdleStates) {
safe_browsing::ChromeCleanerControllerImpl::GetInstance()->SetIdleForTesting( safe_browsing::ChromeCleanerControllerImpl::GetInstance()->SetIdleForTesting(
idle_reason_); idle_reason_);
safety_check_->PerformSafetyCheck(); safety_check_->PerformSafetyCheck();
// Ensure WebUI event is sent.
const base::DictionaryValue* event = const base::DictionaryValue* event =
GetSafetyCheckStatusChangedWithDataIfExists( GetSafetyCheckStatusChangedWithDataIfExists(
kChromeCleaner, static_cast<int>(expected_cct_status_)); kChromeCleaner, static_cast<int>(expected_cct_status_));
ASSERT_TRUE(event); ASSERT_TRUE(event);
VerifyDisplayString(event, expected_display_string_); VerifyDisplayString(event, expected_display_string_);
// Ensure UMA is logged.
if (expected_cct_status_ ==
SafetyCheckHandler::ChromeCleanerStatus::kHidden ||
expected_cct_status_ ==
SafetyCheckHandler::ChromeCleanerStatus::kChecking) {
// Hidden and checking state should not get recorded.
histogram_tester_.ExpectTotalCount(
"Settings.SafetyCheck.ChromeCleanerResult", 0);
} else {
histogram_tester_.ExpectBucketCount(
"Settings.SafetyCheck.ChromeCleanerResult", expected_cct_status_, 1);
}
} }
INSTANTIATE_TEST_SUITE_P( INSTANTIATE_TEST_SUITE_P(
......
...@@ -61431,6 +61431,13 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf ...@@ -61431,6 +61431,13 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
<int value="4" label="NOT_SUPPORTED"/> <int value="4" label="NOT_SUPPORTED"/>
</enum> </enum>
<enum name="SafetyCheckChromeCleanerStatus">
<int value="0" label="HIDDEN"/>
<int value="1" label="CHECKING"/>
<int value="2" label="INFECTED"/>
<int value="3" label="REBOOT_REQUIRED"/>
</enum>
<enum name="SafetyCheckExtensionsStatus"> <enum name="SafetyCheckExtensionsStatus">
<int value="0" label="CHECKING"/> <int value="0" label="CHECKING"/>
<int value="1" label="ERROR"/> <int value="1" label="ERROR"/>
...@@ -161380,6 +161380,13 @@ should be kept until we remove incident reporting. --> ...@@ -161380,6 +161380,13 @@ should be kept until we remove incident reporting. -->
</summary> </summary>
</histogram> </histogram>
<histogram name="Settings.SafetyCheck.ChromeCleanerResult"
enum="SafetyCheckChromeCleanerStatus" expires_after="M90">
<owner>rainhard@chromium.org</owner>
<owner>msramek@chromium.org</owner>
<summary>Resulting state of the safety check Chrome cleaner check.</summary>
</histogram>
<histogram name="Settings.SafetyCheck.ExtensionsResult" <histogram name="Settings.SafetyCheck.ExtensionsResult"
enum="SafetyCheckExtensionsStatus" expires_after="M90"> enum="SafetyCheckExtensionsStatus" expires_after="M90">
<owner>andzaytsev@google.com</owner> <owner>andzaytsev@google.com</owner>
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