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