Commit 15e8e855 authored by Rainhard Findling's avatar Rainhard Findling Committed by Commit Bot

Safety check Chrome cleaner: auto-update from CCT status

* Makes the safety check Chrome cleaner child automatically update from
  CCT state changes by registering it as a CCT observer.

Bug: 1087263
Change-Id: I0549e961c0e6afe0f34efff73c8381b4d551fa3a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2353259Reviewed-by: default avatarAndrey Zaytsev <andzaytsev@google.com>
Commit-Queue: Rainhard Findling <rainhard@chromium.org>
Cr-Commit-Position: refs/heads/master@{#798088}
parent dd116903
...@@ -144,7 +144,14 @@ SafetyCheckHandler::ChromeCleanerStatus fetchCurrentChromeCleanerStatus() { ...@@ -144,7 +144,14 @@ SafetyCheckHandler::ChromeCleanerStatus fetchCurrentChromeCleanerStatus() {
SafetyCheckHandler::SafetyCheckHandler() = default; SafetyCheckHandler::SafetyCheckHandler() = default;
SafetyCheckHandler::~SafetyCheckHandler() = default; SafetyCheckHandler::~SafetyCheckHandler() {
#if defined(OS_WIN) && BUILDFLAG(GOOGLE_CHROME_BRANDING)
// It seems |OnJavascriptDisallowed| is not always called before the
// deconstructor. Remove the CCT observer (no-op if not registered)
// also here to ensure it does not stay registered.
safe_browsing::ChromeCleanerController::GetInstance()->RemoveObserver(this);
#endif
}
void SafetyCheckHandler::SendSafetyCheckStartedWebUiUpdates() { void SafetyCheckHandler::SendSafetyCheckStartedWebUiUpdates() {
AllowJavascript(); AllowJavascript();
...@@ -355,9 +362,9 @@ void SafetyCheckHandler::CheckExtensions() { ...@@ -355,9 +362,9 @@ void SafetyCheckHandler::CheckExtensions() {
#if defined(OS_WIN) && BUILDFLAG(GOOGLE_CHROME_BRANDING) #if defined(OS_WIN) && BUILDFLAG(GOOGLE_CHROME_BRANDING)
void SafetyCheckHandler::CheckChromeCleaner() { void SafetyCheckHandler::CheckChromeCleaner() {
// TODO(crbug.com/1097757): Register as a Chrome cleaner observer instead // Registering the observer immediately triggers a callback with the
// to auto-update from Chrome cleaner state changes. // current state.
OnChromeCleanerCheckResult(fetchCurrentChromeCleanerStatus()); safe_browsing::ChromeCleanerController::GetInstance()->AddObserver(this);
} }
#endif #endif
...@@ -875,6 +882,10 @@ void SafetyCheckHandler::OnJavascriptDisallowed() { ...@@ -875,6 +882,10 @@ void SafetyCheckHandler::OnJavascriptDisallowed() {
version_updater_.reset(); version_updater_.reset();
// Stop observing safety check events. // Stop observing safety check events.
safety_check_.reset(nullptr); safety_check_.reset(nullptr);
#if defined(OS_WIN) && BUILDFLAG(GOOGLE_CHROME_BRANDING)
// Remove |this| as an observer for the Chrome cleaner.
safe_browsing::ChromeCleanerController::GetInstance()->RemoveObserver(this);
#endif
} }
void SafetyCheckHandler::RegisterMessages() { void SafetyCheckHandler::RegisterMessages() {
......
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