OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_controller_
win.h" | 5 #include "chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_controller_
win.h" |
6 | 6 |
7 #include <windows.h> | 7 #include <windows.h> |
8 | 8 |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
150 // Short-circuit if the instance doesn't exist to avoid creating it during | 150 // Short-circuit if the instance doesn't exist to avoid creating it during |
151 // navigation to chrome://settings. | 151 // navigation to chrome://settings. |
152 if (!g_instance_exists) | 152 if (!g_instance_exists) |
153 return false; | 153 return false; |
154 | 154 |
155 State state = GetInstance()->state(); | 155 State state = GetInstance()->state(); |
156 return state == State::kInfected || state == State::kCleaning || | 156 return state == State::kInfected || state == State::kCleaning || |
157 state == State::kRebootRequired; | 157 state == State::kRebootRequired; |
158 } | 158 } |
159 | 159 |
| 160 void ChromeCleanerController::SetLogsEnabled(bool logs_enabled) { |
| 161 if (logs_enabled_ == logs_enabled) |
| 162 return; |
| 163 |
| 164 logs_enabled_ = logs_enabled; |
| 165 for (auto& observer : observer_list_) |
| 166 observer.OnLogsEnabledChanged(logs_enabled_); |
| 167 } |
| 168 |
160 void ChromeCleanerController::SetDelegateForTesting( | 169 void ChromeCleanerController::SetDelegateForTesting( |
161 ChromeCleanerControllerDelegate* delegate) { | 170 ChromeCleanerControllerDelegate* delegate) { |
162 DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); | 171 DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); |
163 delegate_ = delegate ? delegate : real_delegate_.get(); | 172 delegate_ = delegate ? delegate : real_delegate_.get(); |
164 DCHECK(delegate_); | 173 DCHECK(delegate_); |
165 } | 174 } |
166 | 175 |
167 void ChromeCleanerController::DismissRebootForTesting() { | 176 void ChromeCleanerController::DismissRebootForTesting() { |
168 DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); | 177 DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); |
169 DCHECK_EQ(State::kRebootRequired, state()); | 178 DCHECK_EQ(State::kRebootRequired, state()); |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
207 DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); | 216 DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); |
208 | 217 |
209 if (state() != State::kInfected) | 218 if (state() != State::kInfected) |
210 return; | 219 return; |
211 | 220 |
212 DCHECK(prompt_user_callback_); | 221 DCHECK(prompt_user_callback_); |
213 | 222 |
214 PromptAcceptance acceptance = PromptAcceptance::DENIED; | 223 PromptAcceptance acceptance = PromptAcceptance::DENIED; |
215 State new_state = State::kIdle; | 224 State new_state = State::kIdle; |
216 switch (user_response) { | 225 switch (user_response) { |
217 case UserResponse::kAccepted: | 226 case UserResponse::kAcceptedWithLogs: |
218 acceptance = PromptAcceptance::ACCEPTED; | 227 acceptance = PromptAcceptance::ACCEPTED_WITH_LOGS; |
| 228 SetLogsEnabled(true); |
219 new_state = State::kCleaning; | 229 new_state = State::kCleaning; |
220 delegate_->TagForResetting(profile); | 230 delegate_->TagForResetting(profile); |
221 break; | 231 break; |
| 232 case UserResponse::kAcceptedWithoutLogs: |
| 233 acceptance = PromptAcceptance::ACCEPTED_WITHOUT_LOGS; |
| 234 SetLogsEnabled(false); |
| 235 new_state = State::kCleaning; |
| 236 delegate_->TagForResetting(profile); |
| 237 break; |
222 case UserResponse::kDenied: // Fallthrough | 238 case UserResponse::kDenied: // Fallthrough |
223 case UserResponse::kDismissed: | 239 case UserResponse::kDismissed: |
224 acceptance = PromptAcceptance::DENIED; | 240 acceptance = PromptAcceptance::DENIED; |
225 idle_reason_ = IdleReason::kUserDeclinedCleanup; | 241 idle_reason_ = IdleReason::kUserDeclinedCleanup; |
226 new_state = State::kIdle; | 242 new_state = State::kIdle; |
227 break; | 243 break; |
228 } | 244 } |
229 | 245 |
230 BrowserThread::GetTaskRunnerForThread(BrowserThread::IO) | 246 BrowserThread::GetTaskRunnerForThread(BrowserThread::IO) |
231 ->PostTask(FROM_HERE, | 247 ->PostTask(FROM_HERE, |
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
449 observer.OnRebootFailed(); | 465 observer.OnRebootFailed(); |
450 } | 466 } |
451 } | 467 } |
452 | 468 |
453 void ChromeCleanerController::OnSettingsResetCompleted() { | 469 void ChromeCleanerController::OnSettingsResetCompleted() { |
454 idle_reason_ = IdleReason::kCleaningSucceeded; | 470 idle_reason_ = IdleReason::kCleaningSucceeded; |
455 SetStateAndNotifyObservers(State::kIdle); | 471 SetStateAndNotifyObservers(State::kIdle); |
456 } | 472 } |
457 | 473 |
458 } // namespace safe_browsing | 474 } // namespace safe_browsing |
OLD | NEW |