tree: 460d20f1f6e9b141dab8edd8ee4b57ffeb864411
  1. access_code_input.cc
  2. access_code_input.h
  3. access_code_input_unittest.cc
  4. animated_auth_factors_label_wrapper.cc
  5. animated_auth_factors_label_wrapper.h
  6. animated_rounded_image_view.cc
  7. animated_rounded_image_view.h
  8. animation_frame.h
  9. arrow_button_view.cc
  10. arrow_button_view.h
  11. auth_error_bubble.cc
  12. auth_error_bubble.h
  13. auth_factor_model.cc
  14. auth_factor_model.h
  15. auth_icon_view.cc
  16. auth_icon_view.h
  17. auth_icon_view_unittest.cc
  18. auth_panel_debug_view.cc
  19. auth_panel_debug_view.h
  20. bottom_status_indicator.cc
  21. bottom_status_indicator.h
  22. disabled_auth_message_view.cc
  23. disabled_auth_message_view.h
  24. fake_fingerprint_auth_factor_model.cc
  25. fake_fingerprint_auth_factor_model.h
  26. fake_login_detachable_base_model.cc
  27. fake_login_detachable_base_model.h
  28. fake_smart_lock_auth_factor_model.cc
  29. fake_smart_lock_auth_factor_model.h
  30. fingerprint_auth_factor_model.cc
  31. fingerprint_auth_factor_model.h
  32. fingerprint_auth_factor_model_unittest.cc
  33. horizontal_image_sequence_animation_decoder.cc
  34. horizontal_image_sequence_animation_decoder.h
  35. hover_notifier.cc
  36. hover_notifier.h
  37. image_parser.cc
  38. image_parser.h
  39. kiosk_app_default_message.cc
  40. kiosk_app_default_message.h
  41. local_authentication_request_controller_impl.cc
  42. local_authentication_request_controller_impl.h
  43. local_authentication_request_controller_impl_pixeltest.cc
  44. local_authentication_request_controller_impl_unittest.cc
  45. local_authentication_request_view.cc
  46. local_authentication_request_view.h
  47. local_authentication_request_widget.cc
  48. local_authentication_request_widget.h
  49. local_authentication_test_api.cc
  50. local_authentication_test_api.h
  51. lock_contents_view.cc
  52. lock_contents_view.h
  53. lock_contents_view_constants.h
  54. lock_contents_view_test_api.cc
  55. lock_contents_view_test_api.h
  56. lock_contents_view_unittest.cc
  57. lock_debug_view.cc
  58. lock_debug_view.h
  59. lock_screen.cc
  60. lock_screen.h
  61. lock_screen_media_view.cc
  62. lock_screen_media_view.h
  63. lock_screen_media_view_unittest.cc
  64. lock_screen_sanity_unittest.cc
  65. lock_window_unittest.cc
  66. locked_tpm_message_view.cc
  67. locked_tpm_message_view.h
  68. login_arrow_navigation_delegate.cc
  69. login_arrow_navigation_delegate.h
  70. login_auth_factors_view.cc
  71. login_auth_factors_view.h
  72. login_auth_factors_view_unittest.cc
  73. login_auth_user_view.cc
  74. login_auth_user_view.h
  75. login_auth_user_view_pixeltest.cc
  76. login_auth_user_view_unittest.cc
  77. login_base_bubble_view.cc
  78. login_base_bubble_view.h
  79. login_base_bubble_view_unittest.cc
  80. login_big_user_view.cc
  81. login_big_user_view.h
  82. login_button.cc
  83. login_button.h
  84. login_camera_timeout_view.cc
  85. login_camera_timeout_view.h
  86. login_constants.h
  87. login_data_dispatcher.cc
  88. login_data_dispatcher.h
  89. login_detachable_base_model.cc
  90. login_detachable_base_model.h
  91. login_display_style.h
  92. login_error_bubble.cc
  93. login_error_bubble.h
  94. login_error_bubble_unittest.cc
  95. login_expanded_public_account_view.cc
  96. login_expanded_public_account_view.h
  97. login_expanded_public_account_view_unittest.cc
  98. login_keyboard_test_base.cc
  99. login_keyboard_test_base.h
  100. login_password_view.cc
  101. login_password_view.h
  102. login_password_view_test.cc
  103. login_pin_input_view.cc
  104. login_pin_input_view.h
  105. login_pin_input_view_unittest.cc
  106. login_pin_view.cc
  107. login_pin_view.h
  108. login_pin_view_unittest.cc
  109. login_public_account_user_view.cc
  110. login_public_account_user_view.h
  111. login_public_account_user_view_unittest.cc
  112. login_remove_account_dialog.cc
  113. login_remove_account_dialog.h
  114. login_remove_account_dialog_unittest.cc
  115. login_test_base.cc
  116. login_test_base.h
  117. login_test_utils.cc
  118. login_test_utils.h
  119. login_tooltip_view.cc
  120. login_tooltip_view.h
  121. login_user_view.cc
  122. login_user_view.h
  123. login_user_view_unittest.cc
  124. management_bubble.cc
  125. management_bubble.h
  126. management_disclosure_dialog.cc
  127. management_disclosure_dialog.h
  128. management_disclosure_dialog_unittest.cc
  129. management_disclosure_field_trial.cc
  130. management_disclosure_field_trial.h
  131. non_accessible_view.cc
  132. non_accessible_view.h
  133. OWNERS
  134. pin_keyboard_animation.cc
  135. pin_keyboard_animation.h
  136. pin_request_view.cc
  137. pin_request_view.h
  138. pin_request_view_unittest.cc
  139. pin_request_widget.cc
  140. pin_request_widget.h
  141. pin_status_message_view.cc
  142. pin_status_message_view.h
  143. public_account_menu_view.cc
  144. public_account_menu_view.h
  145. public_account_monitoring_info_dialog.cc
  146. public_account_monitoring_info_dialog.h
  147. README.md
  148. scrollable_users_list_view.cc
  149. scrollable_users_list_view.h
  150. smart_lock_auth_factor_model.cc
  151. smart_lock_auth_factor_model.h
  152. smart_lock_auth_factor_model_unittest.cc
  153. user_state.cc
  154. user_state.h
  155. user_switch_flip_animation.cc
  156. user_switch_flip_animation.h
  157. views_utils.cc
  158. views_utils.h
  159. views_utils_unittest.cc
ash/login/ui/README.md

General hierarchy of UI elements in authentication UI:

LockScreen is the root element, that owns LockContentsView (potentially wrapped in LockDebugView). It resides in kShellWindowId_LockScreenContainer layer of the primary display.

LoginDataDispatcher implements LoginScreenModel and redirects calls to its observers, main of which is LockContentView.

LockContentView is a full-screen view that owns and displays all other authentication UI elements:

  • When only one user is in the list it is displayed using LoginBigUserView;
  • When two users are on the list, they are displayed using two LoginBigUserViews;
  • When 3+ users are in the list, one LoginBigUserView is used to display selected user, and rest of the users are displayed using ScrollableUsersListView;
  • LoginExpandedPublicAccountView when the user tries to sign in to public account.
    • Allows selection of language/keyboard for Public session
    • Displays monitoring warning indicator and triggers PublicAccountWarningDialog
    • Allows to actually sign in to the public account
  • Also owns/refers to following optional UI elements:
    • LockScreenMediaControlsView
    • NoteActionLaunchButton
    • UI that shows information about system.
    • Various bubbles and indicators
      • UserAddingScreenIndicator displayed when screen is used for multiprofile login
      • BottomStatusIndicator for indicating management/ADB sideloading info
      • ManagementBubble for management disclosure
      • AuthErrorBubble for displaying auth errors
      • LoginErrorBubble for displaying:
        • security warnings when detachable keyboard does not match one used on previous login
        • ext4 migration warning
        • supervised user deprecation notice
      • LoginTooltipView for easy unlock tooltips

LoginBigUserView contains one of:

  • LoginPublicAccountUserView that consists of:
    • LoginUserView (see below)
    • Arrow button to proceed to showing LoginExpandedPublicAccountView (see above)
  • LoginAuthUserView that represents user information and provides UI for authentication. It consists of:
    • LoginUserView
      • (Animated) user image
      • Name label
      • Drop-down info with an option to remove user
    • LoginPasswordView that shows:
      • Password input field
      • “Show Password” button
      • CAPS LOCK indicator
      • Submit button
      • Quick unlock indicator
    • or pair of LoginPinView (that provides digital keyboard) along with LoginPinInputView (that provides positional input field)
    • Password/PIN toggle button
    • Button to trigger online sign-in
    • FingerprintView
    • ChallengeResponseView
    • DisabledAuthMessageView (e.g. when child user has an associated time limit)
    • LockedTpmMessageView

PinRequestWidget works as a standalone UI. It contains a PinRequestView that consists of LoginPinKeyboard and one of either FixedLengthCodeInput or FlexCodeInput, both of which are subclasses of AccessCodeInput.