Commit 8e9ccf99 authored by Rainhard Findling's avatar Rainhard Findling Committed by Commit Bot

Safety check: add tests for the Chrome cleaner child backend

* This CL supersedes the previously failed attempts to land those
  tests (see crrev.com/c/2285386).
* Test that each possible CCT status results in the corresponding
  safety check child status and display string.
* Test that CCT being enterprise managed is handled correctly.

Bug: 1087263
Change-Id: If13b4458c60b6a5a6c82f1e42e41ebec95d81da1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2292213
Commit-Queue: Rainhard Findling <rainhard@chromium.org>
Reviewed-by: default avatarJoe Mason <joenotcharles@chromium.org>
Reviewed-by: default avatarEsmael Elmoslimany <aee@chromium.org>
Cr-Commit-Position: refs/heads/master@{#792174}
parent 681f11ff
......@@ -219,6 +219,10 @@ void ChromeCleanerControllerDelegate::StartRebootPromptFlow(
ChromeCleanerRebootDialogControllerImpl::Create(controller);
}
bool ChromeCleanerControllerDelegate::IsAllowedByPolicy() {
return safe_browsing::SwReporterIsAllowedByPolicy();
}
// static
ChromeCleanerControllerImpl* ChromeCleanerControllerImpl::GetInstance() {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
......@@ -281,6 +285,11 @@ void ChromeCleanerControllerImpl::SetStateForTesting(State state) {
idle_reason_ = IdleReason::kInitial;
}
void ChromeCleanerControllerImpl::SetIdleForTesting(IdleReason idle_reason) {
state_ = State::kIdle;
idle_reason_ = idle_reason;
}
// static
void ChromeCleanerControllerImpl::ResetInstanceForTesting() {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
......@@ -522,7 +531,7 @@ void ChromeCleanerControllerImpl::Reboot() {
}
bool ChromeCleanerControllerImpl::IsAllowedByPolicy() {
return safe_browsing::SwReporterIsAllowedByPolicy();
return delegate_->IsAllowedByPolicy();
}
bool ChromeCleanerControllerImpl::IsReportingManagedByPolicy(Profile* profile) {
......
......@@ -49,6 +49,9 @@ class ChromeCleanerControllerDelegate {
// Starts the reboot prompt flow if a cleanup requires a machine restart.
virtual void StartRebootPromptFlow(ChromeCleanerController* controller);
// Checks if the cleaner is allowed to run by enterprise policy.
virtual bool IsAllowedByPolicy();
};
class ChromeCleanerControllerImpl : public ChromeCleanerController {
......@@ -84,6 +87,7 @@ class ChromeCleanerControllerImpl : public ChromeCleanerController {
// Force the current controller's state for tests that check the effect of
// starting and completing reporter runs.
void SetStateForTesting(State state);
void SetIdleForTesting(IdleReason idle_reason);
private:
ChromeCleanerControllerImpl();
......
......@@ -17,7 +17,6 @@
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/webui/version_ui.h"
#include "chrome/common/channel_info.h"
#include "chrome/common/chrome_features.h"
#include "chrome/common/url_constants.h"
#include "chrome/grit/chromium_strings.h"
#include "chrome/grit/generated_resources.h"
......@@ -231,9 +230,7 @@ void SafetyCheckHandler::PerformSafetyCheck() {
CheckExtensions();
#if defined(OS_WIN) && BUILDFLAG(GOOGLE_CHROME_BRANDING)
if (base::FeatureList::IsEnabled(features::kSafetyCheckChromeCleanerChild)) {
CheckChromeCleaner();
}
CheckChromeCleaner();
#endif
}
......@@ -351,12 +348,9 @@ void SafetyCheckHandler::CheckExtensions() {
void SafetyCheckHandler::CheckChromeCleaner() {
if (safe_browsing::ChromeCleanerController::GetInstance()
->IsAllowedByPolicy()) {
safe_browsing::ChromeCleanerController::State state =
safe_browsing::ChromeCleanerController::GetInstance()->state();
safe_browsing::ChromeCleanerController::IdleReason idle_reason =
safe_browsing::ChromeCleanerController::GetInstance()->idle_reason();
OnChromeCleanerCheckResult(
ConvertToChromeCleanerStatus(state, idle_reason));
OnChromeCleanerCheckResult(ConvertToChromeCleanerStatus(
safe_browsing::ChromeCleanerController::GetInstance()->state(),
safe_browsing::ChromeCleanerController::GetInstance()->idle_reason()));
} else {
OnChromeCleanerCheckResult(ChromeCleanerStatus::kDisabledByAdmin);
}
......@@ -881,8 +875,7 @@ void SafetyCheckHandler::CompleteParentIfChildrenCompleted() {
return;
}
#if defined(OS_WIN) && BUILDFLAG(GOOGLE_CHROME_BRANDING)
if (base::FeatureList::IsEnabled(features::kSafetyCheckChromeCleanerChild) &&
chrome_cleaner_status_ == ChromeCleanerStatus::kChecking) {
if (chrome_cleaner_status_ == ChromeCleanerStatus::kChecking) {
return;
}
#endif
......
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