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

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

Issue 2966453002: Chrome Cleaner UI: Add logs upload permission checkbox to the dialog (Closed)
Patch Set: More comments 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 9eb9da33abb64205e1e5f25fb01353a712534561..0ea7937d7e838017721cd74ace026eed07c8420c 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
@@ -41,8 +41,9 @@ using ::chrome_cleaner::mojom::ChromePrompt;
using ::chrome_cleaner::mojom::PromptAcceptance;
using ::content::BrowserThread;
-// Keeps track of whether GetInstance() has been called.
-bool g_instance_exists = false;
+// The global singleton instance. Exposed outside of GetInstance() so that it
+// can be reset by tests.
+ChromeCleanerController* g_controller = nullptr;
// TODO(alito): Move these shared exit codes to the chrome_cleaner component.
// https://crbug.com/727956
@@ -139,17 +140,17 @@ void ChromeCleanerControllerDelegate::ResetTaggedProfiles(
ChromeCleanerController* ChromeCleanerController::GetInstance() {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
- static ChromeCleanerController* const kInstance =
- new ChromeCleanerController();
- g_instance_exists = true;
- return kInstance;
+ if (!g_controller)
+ g_controller = new ChromeCleanerController();
+
+ return g_controller;
}
// static
bool ChromeCleanerController::ShouldShowCleanupInSettingsUI() {
// Short-circuit if the instance doesn't exist to avoid creating it during
// navigation to chrome://settings.
- if (!g_instance_exists)
+ if (!g_controller)
return false;
State state = GetInstance()->state();
@@ -157,6 +158,15 @@ bool ChromeCleanerController::ShouldShowCleanupInSettingsUI() {
state == State::kRebootRequired;
}
+void ChromeCleanerController::SetLogsEnabled(bool logs_enabled) {
+ if (logs_enabled_ == logs_enabled)
+ return;
+
+ logs_enabled_ = logs_enabled;
+ for (auto& observer : observer_list_)
+ observer.OnLogsEnabledChanged(logs_enabled_);
+}
+
void ChromeCleanerController::SetDelegateForTesting(
ChromeCleanerControllerDelegate* delegate) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
@@ -164,10 +174,14 @@ void ChromeCleanerController::SetDelegateForTesting(
DCHECK(delegate_);
}
-void ChromeCleanerController::DismissRebootForTesting() {
- DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
- DCHECK_EQ(State::kRebootRequired, state());
- state_ = State::kIdle;
+// static
+void ChromeCleanerController::ResetInstanceForTesting() {
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+
+ if (g_controller) {
+ delete g_controller;
+ g_controller = nullptr;
+ }
}
void ChromeCleanerController::AddObserver(Observer* observer) {
@@ -214,8 +228,15 @@ void ChromeCleanerController::ReplyWithUserResponse(
PromptAcceptance acceptance = PromptAcceptance::DENIED;
State new_state = State::kIdle;
switch (user_response) {
- case UserResponse::kAccepted:
- acceptance = PromptAcceptance::ACCEPTED;
+ case UserResponse::kAcceptedWithLogs:
+ acceptance = PromptAcceptance::ACCEPTED_WITH_LOGS;
+ SetLogsEnabled(true);
+ new_state = State::kCleaning;
+ delegate_->TagForResetting(profile);
+ break;
+ case UserResponse::kAcceptedWithoutLogs:
+ acceptance = PromptAcceptance::ACCEPTED_WITHOUT_LOGS;
+ SetLogsEnabled(false);
new_state = State::kCleaning;
delegate_->TagForResetting(profile);
break;

Powered by Google App Engine
This is Rietveld 408576698