Force encryption migration if the device supports ARC.
This CL includes following changes:
* Add |is_forcing_dircrypto| to UserContext to pass the configuration
from ExistingUserController to CryptohomeAuthenticator.
The flag affects MountParameter for MountEx API.
* If a regular user signs in and ARC is available, ExistingUserController
flips the flag to ensure that the cryptohome is encrypted in
dircrypto.
* Add a user-facing flag to enable the migration, since the backend of
the migration procedure is not completely ready yet.
* If a user choose "SKIP" in the migration screen, the screen handler
let the user sign in by using previously-used UserContext and LoginPerformer,
and dripping the |is_forcing_dircrypto| flag.
BUG=706017
TEST=manually tested following cases on samus with ARC support.
1) Enable the flag in owner profile, create a cryptohome in ecryptfs, and sign in to the new profile. It showed migration screen.
2) Clicking "SKIP" on the screen shows the user's desktop.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation
Review-Url: https://codereview.chromium.org/2798023005
Cr-Commit-Position: refs/heads/master@{#462773}
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 9d7797b5..d52f73551 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -2196,6 +2196,10 @@
{"enable-native-cups", flag_descriptions::kEnableNativeCupsName,
flag_descriptions::kEnableNativeCupsDescription, kOsCrOS,
SINGLE_VALUE_TYPE(switches::kEnableNativeCups)},
+ {"enable-encryption-migration",
+ flag_descriptions::kEnableEncryptionMigrationName,
+ flag_descriptions::kEnableEncryptionMigrationDescription, kOsCrOS,
+ SINGLE_VALUE_TYPE(chromeos::switches::kEnableEncryptionMigration)},
#endif // OS_CHROMEOS
#if !defined(OS_ANDROID) && !defined(OS_IOS) && defined(GOOGLE_CHROME_BUILD)
{"enable-google-branded-context-menu",