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

Unified Diff: chrome/browser/ui/webui/chromeos/login/encryption_migration_screen_handler.cc

Issue 2798023005: Force encryption migration if the device supports ARC. (Closed)
Patch Set: Bind |auth_mode| Created 3 years, 8 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/ui/webui/chromeos/login/encryption_migration_screen_handler.cc
diff --git a/chrome/browser/ui/webui/chromeos/login/encryption_migration_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/encryption_migration_screen_handler.cc
index d0299c45535225b7fdb51894e7d45d755df96483..e5779d378ec5231a9c3b1cd4149b61c702bffcc2 100644
--- a/chrome/browser/ui/webui/chromeos/login/encryption_migration_screen_handler.cc
+++ b/chrome/browser/ui/webui/chromeos/login/encryption_migration_screen_handler.cc
@@ -4,6 +4,9 @@
#include "chrome/browser/ui/webui/chromeos/login/encryption_migration_screen_handler.h"
+#include <string>
+#include <utility>
+
#include "chrome/browser/lifetime/application_lifetime.h"
#include "chromeos/cryptohome/homedir_methods.h"
#include "chromeos/dbus/cryptohome_client.h"
@@ -15,6 +18,7 @@ constexpr char kJsScreenPath[] = "login.EncryptionMigrationScreen";
// JS API callbacks names.
constexpr char kJsApiStartMigration[] = "startMigration";
+constexpr char kJsApiSkipMigration[] = "skipMigration";
constexpr char kJsApiRequestRestart[] = "requestRestart";
} // namespace
@@ -54,6 +58,11 @@ void EncryptionMigrationScreenHandler::SetUserContext(
user_context_ = user_context;
}
+void EncryptionMigrationScreenHandler::SetContinueLoginCallback(
+ ContinueLoginCallback callback) {
+ continue_login_callback_ = std::move(callback);
+}
+
void EncryptionMigrationScreenHandler::DeclareLocalizedValues(
::login::LocalizedValuesBuilder* builder) {}
@@ -70,6 +79,8 @@ void EncryptionMigrationScreenHandler::Initialize() {
void EncryptionMigrationScreenHandler::RegisterMessages() {
AddCallback(kJsApiStartMigration,
&EncryptionMigrationScreenHandler::HandleStartMigration);
+ AddCallback(kJsApiSkipMigration,
+ &EncryptionMigrationScreenHandler::HandleSkipMigration);
AddCallback(kJsApiRequestRestart,
&EncryptionMigrationScreenHandler::HandleRequestRestart);
}
@@ -78,6 +89,18 @@ void EncryptionMigrationScreenHandler::HandleStartMigration() {
StartMigration();
}
+void EncryptionMigrationScreenHandler::HandleSkipMigration() {
+ // If the user skips migration, we mount the cryptohome without performing the
+ // migration by reusing UserContext and LoginPerformer which were used in the
+ // previous attempt and dropping |is_forcing_dircrypto| flag in UserContext.
+ // In this case, the user can not launch ARC apps in the session, and will be
+ // asked to do the migration again in the next log-in attempt.
+ if (!continue_login_callback_.is_null()) {
+ user_context_.SetIsForcingDircrypto(false);
+ std::move(continue_login_callback_).Run(user_context_);
+ }
+}
+
void EncryptionMigrationScreenHandler::HandleRequestRestart() {
// TODO(fukino): If the migration finished successfully, we don't need to
// restart the device. Let's sign in to the desktop using the already-provided
@@ -117,6 +140,7 @@ void EncryptionMigrationScreenHandler::StartMigration() {
cryptohome::Authorization(auth_key),
base::Bind(&EncryptionMigrationScreenHandler::OnMigrationRequested,
weak_ptr_factory_.GetWeakPtr()));
+ UpdateUIState(UIState::MIGRATING);
}
void EncryptionMigrationScreenHandler::OnMigrationProgress(
« no previous file with comments | « chrome/browser/ui/webui/chromeos/login/encryption_migration_screen_handler.h ('k') | chromeos/chromeos_switches.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698