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

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

Issue 2906103002: Post-cleanup settings reset. (Closed)
Patch Set: Code reviews Created 3 years, 6 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 7424302ac5fb187933b0806bf737636c3c166b5a..e2ab68400e650f5a8e4eeffb4b57e6e471d0365a 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
@@ -18,9 +18,13 @@
#include "base/task_scheduler/task_traits.h"
#include "base/threading/thread_restrictions.h"
#include "base/threading/thread_task_runner_handle.h"
+#include "chrome/browser/browser_process.h"
#include "chrome/browser/metrics/chrome_metrics_service_accessor.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_fetcher_win.h"
#include "chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_runner_win.h"
+#include "chrome/browser/safe_browsing/chrome_cleaner/settings_resetter_win.h"
#include "chrome/browser/safe_browsing/chrome_cleaner/srt_client_info_win.h"
#include "components/chrome_cleaner/public/constants/constants.h"
#include "components/safe_browsing/common/safe_browsing_prefs.h"
@@ -110,6 +114,20 @@ bool ChromeCleanerControllerDelegate::IsMetricsAndCrashReportingEnabled() {
return ChromeMetricsServiceAccessor::IsMetricsAndCrashReportingEnabled();
}
+void ChromeCleanerControllerDelegate::InvokeTagForResetting(Profile* profile) {
+ std::unique_ptr<PostCleanupSettingsResetter> resetter(
+ PostCleanupSettingsResetter::Create());
robertshield 2017/06/12 15:00:04 Create() is documented as returning null if resett
ftirelo 2017/06/13 18:52:48 Simplified the interface as suggested.
+ resetter->TagForResetting(profile);
+}
+
+void ChromeCleanerControllerDelegate::InvokeResetTaggedProfiles(
+ std::vector<Profile*> profiles,
+ base::OnceClosure continuation) {
+ std::unique_ptr<PostCleanupSettingsResetter> resetter(
+ PostCleanupSettingsResetter::Create());
+ resetter->ResetTaggedProfiles(std::move(profiles), std::move(continuation));
+}
+
// static
ChromeCleanerController* ChromeCleanerController::GetInstance() {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
@@ -159,6 +177,7 @@ void ChromeCleanerController::Scan(
}
void ChromeCleanerController::ReplyWithUserResponse(
+ Profile* profile,
UserResponse user_response) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
DCHECK(prompt_user_callback_);
@@ -172,6 +191,7 @@ void ChromeCleanerController::ReplyWithUserResponse(
case UserResponse::kAccepted:
acceptance = PromptAcceptance::ACCEPTED;
new_state = State::kCleaning;
+ delegate_->InvokeTagForResetting(profile);
break;
case UserResponse::kDenied: // Fallthrough
case UserResponse::kDismissed:
@@ -367,8 +387,10 @@ void ChromeCleanerController::OnCleanerProcessDone(
}
if (process_status.exit_code == kRebootNotRequiredExitCode) {
- idle_reason_ = IdleReason::kCleaningSucceeded;
- SetStateAndNotifyObservers(State::kIdle);
+ delegate_->InvokeResetTaggedProfiles(
+ g_browser_process->profile_manager()->GetLoadedProfiles(),
+ base::BindOnce(&ChromeCleanerController::OnSettingsResetCompleted,
+ base::Unretained(this)));
return;
}
@@ -376,4 +398,9 @@ void ChromeCleanerController::OnCleanerProcessDone(
SetStateAndNotifyObservers(State::kIdle);
}
+void ChromeCleanerController::OnSettingsResetCompleted() {
+ idle_reason_ = IdleReason::kCleaningSucceeded;
+ SetStateAndNotifyObservers(State::kIdle);
+}
+
} // namespace safe_browsing

Powered by Google App Engine
This is Rietveld 408576698