| Index: chrome/browser/ui/webui/settings/chrome_cleanup_handler.cc
|
| diff --git a/chrome/browser/ui/webui/settings/chrome_cleanup_handler.cc b/chrome/browser/ui/webui/settings/chrome_cleanup_handler.cc
|
| index 8965dafa3bec7498abef5948cf508324bb214300..e786d4c37ebd464958b35690aded140ebd5a9a38 100644
|
| --- a/chrome/browser/ui/webui/settings/chrome_cleanup_handler.cc
|
| +++ b/chrome/browser/ui/webui/settings/chrome_cleanup_handler.cc
|
| @@ -75,6 +75,10 @@ void ChromeCleanupHandler::RegisterMessages() {
|
| base::Bind(&ChromeCleanupHandler::HandleRestartComputer,
|
| base::Unretained(this)));
|
| web_ui()->RegisterMessageCallback(
|
| + "setLogsUploadPermission",
|
| + base::Bind(&ChromeCleanupHandler::HandleSetLogsUploadPermission,
|
| + base::Unretained(this)));
|
| + web_ui()->RegisterMessageCallback(
|
| "startCleanup", base::Bind(&ChromeCleanupHandler::HandleStartCleanup,
|
| base::Unretained(this)));
|
| }
|
| @@ -116,6 +120,12 @@ void ChromeCleanupHandler::OnRebootRequired() {
|
| base::Value("chrome-cleanup-on-reboot-required"));
|
| }
|
|
|
| +void ChromeCleanupHandler::OnLogsEnabledChanged(bool logs_enabled) {
|
| + CallJavascriptFunction("cr.webUIListenerCallback",
|
| + base::Value("chrome-cleanup-upload-permission-change"),
|
| + base::Value(logs_enabled));
|
| +}
|
| +
|
| void ChromeCleanupHandler::HandleDismiss(const base::ListValue* args) {
|
| DCHECK_EQ(0U, args->GetSize());
|
|
|
| @@ -134,6 +144,9 @@ void ChromeCleanupHandler::HandleRegisterChromeCleanerObserver(
|
| base::FeatureList::IsEnabled(safe_browsing::kInBrowserCleanerUIFeature));
|
|
|
| AllowJavascript();
|
| +
|
| + // Send the current logs upload state.
|
| + OnLogsEnabledChanged(controller_->logs_enabled());
|
| }
|
|
|
| void ChromeCleanupHandler::HandleRestartComputer(const base::ListValue* args) {
|
| @@ -141,16 +154,32 @@ void ChromeCleanupHandler::HandleRestartComputer(const base::ListValue* args) {
|
|
|
| CallJavascriptFunction("cr.webUIListenerCallback",
|
| base::Value("chrome-cleanup-on-dismiss"));
|
| - // TODO(proberge): Show a prompt to reboot the system.
|
| +
|
| + controller_->Reboot();
|
| +}
|
| +
|
| +void ChromeCleanupHandler::HandleSetLogsUploadPermission(
|
| + const base::ListValue* args) {
|
| + CHECK_EQ(1U, args->GetSize());
|
| + bool allow_logs_upload = false;
|
| + args->GetBoolean(0, &allow_logs_upload);
|
| +
|
| + controller_->SetLogsEnabled(allow_logs_upload);
|
| }
|
|
|
| void ChromeCleanupHandler::HandleStartCleanup(const base::ListValue* args) {
|
| - DCHECK_EQ(0U, args->GetSize());
|
| + CHECK_EQ(1U, args->GetSize());
|
| + bool allow_logs_upload = false;
|
| + args->GetBoolean(0, &allow_logs_upload);
|
| +
|
| + // The state is propagated to all open tabs and should be consistent.
|
| + DCHECK_EQ(controller_->logs_enabled(), allow_logs_upload);
|
|
|
| controller_->ReplyWithUserResponse(
|
| - // TODO(proberge): Send kAcceptedWithLogs or kAcceptedWithoutLogs based on
|
| - // the state of a logs upload permissions checkbox.
|
| - profile_, ChromeCleanerController::UserResponse::kAcceptedWithoutLogs);
|
| + profile_,
|
| + allow_logs_upload
|
| + ? ChromeCleanerController::UserResponse::kAcceptedWithLogs
|
| + : ChromeCleanerController::UserResponse::kAcceptedWithoutLogs);
|
| }
|
|
|
| } // namespace settings
|
|
|