Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3036)

Unified Diff: chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_controller_win.cc

Issue 2906103002: Post-cleanup settings reset. (Closed)
Patch Set: Rebase Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_controller_win.cc
diff --git a/chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_controller_win.cc b/chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_controller_win.cc
index ce874ab3c967716d85b29b8e7ce84732f0c1629c..d8ba4d1170a692820f914d5bddcc92350f923f3c 100644
--- a/chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_controller_win.cc
+++ b/chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_controller_win.cc
@@ -2,10 +2,18 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+// DO NOT SUBMIT. Please ignore changes to this file for the moment.
+
#include "chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_controller_win.h"
+#include "base/barrier_closure.h"
#include "base/command_line.h"
#include "base/logging.h"
+#include "chrome/browser/browser_process.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/browser/safe_browsing/chrome_cleaner/settings_resetter_win.h"
+#include "components/chrome_cleaner/public/constants/constants.h"
#include "content/public/browser/browser_thread.h"
namespace safe_browsing {
@@ -95,6 +103,12 @@ void ChromeCleanerController::Cleanup() {
if (state_ != State::kInfected)
return;
+ // Tag all loaded profiles for settings reset post-cleanup.
+ for (Profile* profile :
+ g_browser_process->profile_manager()->GetLoadedProfiles()) {
+ TagProfileForResetting(profile);
+ }
+
state_ = State::kCleaning;
idle_reason_ = IdleReason::kInitialState;
NotifyAllObservers();
@@ -136,6 +150,9 @@ ChromeCleanerController::~ChromeCleanerController() {
g_chrome_cleaner_controller = nullptr;
}
+constexpr char kPostRebootResetPrefName[] =
+ "safebrowsing.chrome_cleaner.post_reboot_reset";
+
void ChromeCleanerController::OnCleanupFinished() {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
@@ -143,10 +160,20 @@ void ChromeCleanerController::OnCleanupFinished() {
if (base::CommandLine::ForCurrentProcess()->HasSwitch("reboot-required")) {
state_ = State::kRebootRequired;
idle_reason_ = IdleReason::kInitialState;
+ NotifyAllObservers();
+ SetKeepAlive(true);
} else {
state_ = State::kIdle;
idle_reason_ = GetIdleReasonFromCommandLine();
+ ResetPostCleanupSettingsIfTagged(
+ g_browser_process->profile_manager()->GetLoadedProfiles(),
+ base::BindOnce(&ChromeCleanerController::FinalizeCleanup,
+ base::RetainedRef(this)));
}
+}
+
+void ChromeCleanerController::FinalizeCleanup() {
+ DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
NotifyAllObservers();
SetKeepAlive(false);

Powered by Google App Engine
This is Rietveld 408576698