This document gives a brief description of consumer user types that can log in to a Chrome OS devices.
This does not include enterprise user types. For more information about enterprise user types, see
Regular users that were registered using their GAIA account.
Users that logged in using
In order to add a child user to the device, the user has to go through an adapted GAIA flow, which also requires their parent to authenticate.
Child users require a user policy that may, for example, control their device usage time limits. If a policy cannot be fetched, either from policy server or local cache, user login attempts will fail.
A child account can be created at https://families.google.com/signupkid/famlink-kc?e=UnicornFamily.
For internal Google instructions for creating child accounts (including test accounts), see go/unicorn-test-account-creation.
During child login, user session start will be delayed up to 10 seconds until the user‘s policies have been refreshed (using the user’s OAuth token). This might cause issues for tests that include child user login, as it may add unnecessary time to the test runtime. To avoid this, tests should:
LocalPolicyTestServerMixin
to serve a policy for the test user.UserPolicyMixin
.UserPolicyMixin
propagates policy changes to LocalPolicyTestServerMixin
optionally provided in its constructor.LocalPolicyTestServer
, to avoid setting user's cached policy before they ever logged in, might be more appropriate.FakeGaiaMixin
to serve the child user's auth tokens.LoginManagerMixin
, the injected UserContext
has to have the refresh token matching the token passed to FakeGaiaMixin
.LoggedInUserMixin
is a compound helper mixin that conveniently packages the mixins mentioned above into an easy-to-use interface.Ephemeral, anonymous users that are logged into an incognito session. The user cryptohome is mounted on tmpfs, and none of the data from the user session is persisted after the guest session ends.
To test guest session state, use GuestSessionMixin
- this will set up appropriate guest session flags.
Testing guest user login is more complicated, as guest login requires Chrome restart. The test will require two parts:
PRE_BrowserTest
test that requests loginBrowserTest
that can test guest session stateTo properly set up and preserve Chrome flags between sessions runs, use LoginManagerMixin
, and set it up using LoginManagerMixin::set_session_restore_enabled()