(1) When starting the setup flow, when launched from non-OOBE. (2) When enabling the EasyUnlock toggle in settings. (3) When enabling the entire Better Together suite, which implicitly enables EasyUnlock.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/08d6785af6586b2253d249efe649535cb2f24db1 commit 08d6785af6586b2253d249efe649535cb2f24db1 Author: Ryan Hansberry <hansberry@chromium.org> Date: Thu Aug 16 18:07:56 2018 [CrOS Multidevice] Create AuthTokenValidator interface and test double. AuthTokenValidator will allow MultiDeviceSetupService to verify incoming AuthToken identifier strings, in order to verify that the user has recently been authenticated, before changing security-sensitive features. Bug: 870122 Change-Id: I131160fbd5757d74e7640769c2df5afd3706641c Reviewed-on: https://chromium-review.googlesource.com/1176381 Commit-Queue: Ryan Hansberry <hansberry@chromium.org> Reviewed-by: Kyle Horimoto <khorimoto@chromium.org> Cr-Commit-Position: refs/heads/master@{#583733} [modify] https://crrev.com/08d6785af6586b2253d249efe649535cb2f24db1/chromeos/services/multidevice_setup/public/cpp/BUILD.gn [add] https://crrev.com/08d6785af6586b2253d249efe649535cb2f24db1/chromeos/services/multidevice_setup/public/cpp/auth_token_validator.h [add] https://crrev.com/08d6785af6586b2253d249efe649535cb2f24db1/chromeos/services/multidevice_setup/public/cpp/fake_auth_token_validator.cc [add] https://crrev.com/08d6785af6586b2253d249efe649535cb2f24db1/chromeos/services/multidevice_setup/public/cpp/fake_auth_token_validator.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f1418e640ad0cb9287ce8ada6f5ae866e1395705 commit f1418e640ad0cb9287ce8ada6f5ae866e1395705 Author: Ryan Hansberry <hansberry@chromium.org> Date: Thu Aug 16 18:59:00 2018 [CrOS Multidevice] Inject concrete AuthTokenValidator into MultiDeviceSetupService. Create a concrete implementation of AuthTokenValidator, using QuickUnlockStorage as its underlying logic. It is retrieved via a AuthTokenValidatorFactory in order to make browser the owner of the AuthTokenValidatorImpl, not //chromeos. Bug: 870122 Change-Id: I880f6ca519fe2e7ccc6c857cc08927eaf9ac3e32 Reviewed-on: https://chromium-review.googlesource.com/1176436 Commit-Queue: Ryan Hansberry <hansberry@chromium.org> Reviewed-by: Kyle Horimoto <khorimoto@chromium.org> Reviewed-by: Bernhard Bauer <bauerb@chromium.org> Cr-Commit-Position: refs/heads/master@{#583763} [modify] https://crrev.com/f1418e640ad0cb9287ce8ada6f5ae866e1395705/chrome/browser/chromeos/BUILD.gn [add] https://crrev.com/f1418e640ad0cb9287ce8ada6f5ae866e1395705/chrome/browser/chromeos/multidevice_setup/auth_token_validator_factory.cc [add] https://crrev.com/f1418e640ad0cb9287ce8ada6f5ae866e1395705/chrome/browser/chromeos/multidevice_setup/auth_token_validator_factory.h [add] https://crrev.com/f1418e640ad0cb9287ce8ada6f5ae866e1395705/chrome/browser/chromeos/multidevice_setup/auth_token_validator_impl.cc [add] https://crrev.com/f1418e640ad0cb9287ce8ada6f5ae866e1395705/chrome/browser/chromeos/multidevice_setup/auth_token_validator_impl.h [modify] https://crrev.com/f1418e640ad0cb9287ce8ada6f5ae866e1395705/chrome/browser/profiles/profile_impl.cc [modify] https://crrev.com/f1418e640ad0cb9287ce8ada6f5ae866e1395705/chromeos/services/multidevice_setup/multidevice_setup_impl.cc [modify] https://crrev.com/f1418e640ad0cb9287ce8ada6f5ae866e1395705/chromeos/services/multidevice_setup/multidevice_setup_impl.h [modify] https://crrev.com/f1418e640ad0cb9287ce8ada6f5ae866e1395705/chromeos/services/multidevice_setup/multidevice_setup_impl_unittest.cc [modify] https://crrev.com/f1418e640ad0cb9287ce8ada6f5ae866e1395705/chromeos/services/multidevice_setup/multidevice_setup_initializer.cc [modify] https://crrev.com/f1418e640ad0cb9287ce8ada6f5ae866e1395705/chromeos/services/multidevice_setup/multidevice_setup_initializer.h [modify] https://crrev.com/f1418e640ad0cb9287ce8ada6f5ae866e1395705/chromeos/services/multidevice_setup/multidevice_setup_service.cc [modify] https://crrev.com/f1418e640ad0cb9287ce8ada6f5ae866e1395705/chromeos/services/multidevice_setup/multidevice_setup_service.h [modify] https://crrev.com/f1418e640ad0cb9287ce8ada6f5ae866e1395705/chromeos/services/multidevice_setup/multidevice_setup_service_unittest.cc [modify] https://crrev.com/f1418e640ad0cb9287ce8ada6f5ae866e1395705/chromeos/services/multidevice_setup/public/cpp/multidevice_setup_client_impl_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e5e5821f7f34e2acd230b197a6ad206a2d1e1de0 commit e5e5821f7f34e2acd230b197a6ad206a2d1e1de0 Author: Ryan Hansberry <hansberry@chromium.org> Date: Tue Aug 21 22:41:19 2018 Factor out password_prompt_dialog from people_page/ to controls/. A new people_page/lock_screen_password_prompt_dialog is created that implements lock screen specific logic that previously resided in password_prompt_dialog. Bug: 870122 Change-Id: If1fb68e6b7fd84f91850a169342ab04fb8a75404 Reviewed-on: https://chromium-review.googlesource.com/1179377 Commit-Queue: Ryan Hansberry <hansberry@chromium.org> Reviewed-by: Tommy Li <tommycli@chromium.org> Reviewed-by: Kyle Horimoto <khorimoto@chromium.org> Cr-Commit-Position: refs/heads/master@{#584913} [modify] https://crrev.com/e5e5821f7f34e2acd230b197a6ad206a2d1e1de0/chrome/browser/resources/settings/controls/BUILD.gn [rename] https://crrev.com/e5e5821f7f34e2acd230b197a6ad206a2d1e1de0/chrome/browser/resources/settings/controls/password_prompt_dialog.html [add] https://crrev.com/e5e5821f7f34e2acd230b197a6ad206a2d1e1de0/chrome/browser/resources/settings/controls/password_prompt_dialog.js [modify] https://crrev.com/e5e5821f7f34e2acd230b197a6ad206a2d1e1de0/chrome/browser/resources/settings/people_page/BUILD.gn [modify] https://crrev.com/e5e5821f7f34e2acd230b197a6ad206a2d1e1de0/chrome/browser/resources/settings/people_page/lock_screen.html [modify] https://crrev.com/e5e5821f7f34e2acd230b197a6ad206a2d1e1de0/chrome/browser/resources/settings/people_page/lock_screen.js [add] https://crrev.com/e5e5821f7f34e2acd230b197a6ad206a2d1e1de0/chrome/browser/resources/settings/people_page/lock_screen_password_prompt_dialog.html [add] https://crrev.com/e5e5821f7f34e2acd230b197a6ad206a2d1e1de0/chrome/browser/resources/settings/people_page/lock_screen_password_prompt_dialog.js [delete] https://crrev.com/913f1641f753a2a10c0dfc3bbfc0ae345474ef3a/chrome/browser/resources/settings/people_page/password_prompt_dialog.js [modify] https://crrev.com/e5e5821f7f34e2acd230b197a6ad206a2d1e1de0/chrome/browser/resources/settings/settings_resources.grd [modify] https://crrev.com/e5e5821f7f34e2acd230b197a6ad206a2d1e1de0/chrome/test/data/webui/settings/cr_settings_browsertest.js [modify] https://crrev.com/e5e5821f7f34e2acd230b197a6ad206a2d1e1de0/chrome/test/data/webui/settings/quick_unlock_authenticate_browsertest_chromeos.js
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/1c28cefbe1d46b65f43e1161eb3fdd3afa4dde6b commit 1c28cefbe1d46b65f43e1161eb3fdd3afa4dde6b Author: Ryan Hansberry <hansberry@chromium.org> Date: Wed Aug 22 01:17:55 2018 [CrOS Multidevice] Expect AuthToken on security-sensitive MultiDeviceSetup methods. Only move forward with the SetFeatureEnabled() and SetHostDevice() methods if a valid AuthToken is provided. Bug: 870122 Change-Id: I5367490cc28a51ee38161d23ca900b52f9793afc Reviewed-on: https://chromium-review.googlesource.com/1178567 Commit-Queue: Ryan Hansberry <hansberry@chromium.org> Reviewed-by: Tommy Li <tommycli@chromium.org> Reviewed-by: Kyle Horimoto <khorimoto@chromium.org> Reviewed-by: Robert Sesek <rsesek@chromium.org> Cr-Commit-Position: refs/heads/master@{#584943} [modify] https://crrev.com/1c28cefbe1d46b65f43e1161eb3fdd3afa4dde6b/chrome/browser/resources/chromeos/multidevice_setup/multidevice_setup.js [modify] https://crrev.com/1c28cefbe1d46b65f43e1161eb3fdd3afa4dde6b/chrome/browser/resources/settings/multidevice_page/multidevice_browser_proxy.js [modify] https://crrev.com/1c28cefbe1d46b65f43e1161eb3fdd3afa4dde6b/chrome/browser/ui/webui/settings/chromeos/multidevice_handler.cc [modify] https://crrev.com/1c28cefbe1d46b65f43e1161eb3fdd3afa4dde6b/chrome/browser/ui/webui/settings/chromeos/multidevice_handler_unittest.cc [modify] https://crrev.com/1c28cefbe1d46b65f43e1161eb3fdd3afa4dde6b/chromeos/services/multidevice_setup/BUILD.gn [modify] https://crrev.com/1c28cefbe1d46b65f43e1161eb3fdd3afa4dde6b/chromeos/services/multidevice_setup/multidevice_setup_impl.cc [modify] https://crrev.com/1c28cefbe1d46b65f43e1161eb3fdd3afa4dde6b/chromeos/services/multidevice_setup/multidevice_setup_impl.h [modify] https://crrev.com/1c28cefbe1d46b65f43e1161eb3fdd3afa4dde6b/chromeos/services/multidevice_setup/multidevice_setup_impl_unittest.cc [modify] https://crrev.com/1c28cefbe1d46b65f43e1161eb3fdd3afa4dde6b/chromeos/services/multidevice_setup/multidevice_setup_initializer.cc [modify] https://crrev.com/1c28cefbe1d46b65f43e1161eb3fdd3afa4dde6b/chromeos/services/multidevice_setup/multidevice_setup_initializer.h [modify] https://crrev.com/1c28cefbe1d46b65f43e1161eb3fdd3afa4dde6b/chromeos/services/multidevice_setup/multidevice_setup_service_unittest.cc [modify] https://crrev.com/1c28cefbe1d46b65f43e1161eb3fdd3afa4dde6b/chromeos/services/multidevice_setup/public/cpp/fake_multidevice_setup.cc [modify] https://crrev.com/1c28cefbe1d46b65f43e1161eb3fdd3afa4dde6b/chromeos/services/multidevice_setup/public/cpp/fake_multidevice_setup.h [modify] https://crrev.com/1c28cefbe1d46b65f43e1161eb3fdd3afa4dde6b/chromeos/services/multidevice_setup/public/cpp/fake_multidevice_setup_client.cc [modify] https://crrev.com/1c28cefbe1d46b65f43e1161eb3fdd3afa4dde6b/chromeos/services/multidevice_setup/public/cpp/fake_multidevice_setup_client.h [modify] https://crrev.com/1c28cefbe1d46b65f43e1161eb3fdd3afa4dde6b/chromeos/services/multidevice_setup/public/cpp/multidevice_setup_client.h [modify] https://crrev.com/1c28cefbe1d46b65f43e1161eb3fdd3afa4dde6b/chromeos/services/multidevice_setup/public/cpp/multidevice_setup_client_impl.cc [modify] https://crrev.com/1c28cefbe1d46b65f43e1161eb3fdd3afa4dde6b/chromeos/services/multidevice_setup/public/cpp/multidevice_setup_client_impl.h [modify] https://crrev.com/1c28cefbe1d46b65f43e1161eb3fdd3afa4dde6b/chromeos/services/multidevice_setup/public/cpp/multidevice_setup_client_impl_unittest.cc [modify] https://crrev.com/1c28cefbe1d46b65f43e1161eb3fdd3afa4dde6b/chromeos/services/multidevice_setup/public/mojom/multidevice_setup.mojom
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/56d3d720c25268184350c8830c6c9776abcd652e commit 56d3d720c25268184350c8830c6c9776abcd652e Author: Ryan Hansberry <hansberry@chromium.org> Date: Wed Aug 22 02:09:59 2018 [CrOS Multidevice] Authenticate user before enabling some features. Before Smart Lock or Better Together Suite can be enabled, the user is prompted to confirm their password. The auth token that is generated by the process is then passed along to MultiDeviceSetupService. For other features which don't require authentication, simply call out to MultiDeviceSetupService with no auth token. This CL always requires Better Together Suite enabling to be an authenticated request. However, that's really only necessary in the case that the Smart Lock user pref is enabled. A follow-up CL will remove this unnecessary authentication requirement; see crbug.com/876377. Bug: 870122 Change-Id: I95056000a3dccf27c4d62329d7f04a737f1e1c4a Reviewed-on: https://chromium-review.googlesource.com/1184025 Commit-Queue: Ryan Hansberry <hansberry@chromium.org> Reviewed-by: Kyle Horimoto <khorimoto@chromium.org> Reviewed-by: Hector Carmona <hcarmona@chromium.org> Cr-Commit-Position: refs/heads/master@{#584948} [modify] https://crrev.com/56d3d720c25268184350c8830c6c9776abcd652e/chrome/browser/resources/settings/multidevice_page/BUILD.gn [modify] https://crrev.com/56d3d720c25268184350c8830c6c9776abcd652e/chrome/browser/resources/settings/multidevice_page/multidevice_browser_proxy.js [modify] https://crrev.com/56d3d720c25268184350c8830c6c9776abcd652e/chrome/browser/resources/settings/multidevice_page/multidevice_feature_toggle.html [modify] https://crrev.com/56d3d720c25268184350c8830c6c9776abcd652e/chrome/browser/resources/settings/multidevice_page/multidevice_feature_toggle.js [modify] https://crrev.com/56d3d720c25268184350c8830c6c9776abcd652e/chrome/browser/resources/settings/multidevice_page/multidevice_page.html [modify] https://crrev.com/56d3d720c25268184350c8830c6c9776abcd652e/chrome/browser/resources/settings/multidevice_page/multidevice_page.js
Comment 1 by hansberry@chromium.org
, Aug 9Status: Started (was: Available)