New issue
Advanced search Search tips

Issue 771698 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Oct 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

Make MockUserManager and ScopedUserManagerEnabler available ourside of src/chrome

Project Member Reported by steve...@chromium.org, Oct 4 2017

Issue description

In order to move some ash code (specifically tests) out of src/chrome, we will need access to user_manager testing tools.

ScopedUserManagerEnabler can easily be generalized to support UserManager and not just ChromeUserManager.

chromeos::MockUserManager should really be MockChromeUserManager, but renaming it may be more hassle than it is work.

We should create a user_manager::MockUserManagerBase that just mocks user_manager::UserManagerBase.

 
When the code is moved to ash, the code should use ash::SessionController instead of UserManager/SessionManager. Those two components only lives in chrome and ash code should not use them directly.
Are we going to move display_preferences.cc with the test? If so, we need to find ash alternative for UserCanSaveDisplayPreference() [1]. SessionController provides a subset of info, particular it does not provide IsLoggedInAsUserWithGaiaAccount. We could either dup the logic in User::TypeHasGaiaAccount (since we have UserType) or add a boolean property to mojom::UserInfo [2]. 

Once that is done, we can use AshTestBase::SimulateUserLogin to mock user sessions in ash. 

[1]: https://cs.chromium.org/chromium/src/chrome/browser/chromeos/display/display_preferences.cc?rcl=0e5c669729bc0cf58c7b1de966b9946d1ad36e36&l=203
[2]: https://cs.chromium.org/chromium/src/ash/public/interfaces/user_info.mojom?rcl=4524bd0724ebee107d3aafffc5dc0b66e04f634d&l=41
I was planning to use UserManager since it's already in a component, but it sounds like we don't want to expose that to src/ash so we will need an alternative to that.

So, I will go ahead and abandon this in favor of a different re-factor and will open a new issue to track that.

This isn't super important, just some cleanup that I thought would be easy :)

Status: WontFix (was: Started)
See  issue 678949  for tracking display_preferences migration.
Yeah, I suspect display stuff needs a more holistic solution. It's also complicated by the window server (outside ash) owning some display configuration, although I'm not sure exactly which pieces.

It's just the following that we need an equivalent for in Ash. It's something we are likely going to neeed/want elsewhere. It seems like something we could add to LoginState or make available through the session controller:

bool UserCanSaveDisplayPreference() {
  user_manager::UserManager* user_manager = user_manager::UserManager::Get();
  return user_manager->IsUserLoggedIn() &&
      (user_manager->IsLoggedInAsUserWithGaiaAccount() ||
       user_manager->IsLoggedInAsSupervisedUser() ||
       user_manager->IsLoggedInAsKioskApp());
}

Please add it to SessionController. LoginState has a similar problem as SessionManager/UserManager component as it is only instantiated and updated in the browser process. And I plan to replace it with SessionManager since the two have overlapped functionality.
SGTM

Project Member

Comment 10 by bugdroid1@chromium.org, Nov 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5

commit dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5
Author: Xiyuan Xia <xiyuan@chromium.org>
Date: Mon Nov 13 21:46:26 2017

ScopedUserManagerEnabler -> components/user_manager

Bug:  771698 ,  780542 
Change-Id: I751a646cd04ee62eaf9de34df974c6560b82afbe
Reviewed-on: https://chromium-review.googlesource.com/761716
Reviewed-by: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Hidehiko Abe <hidehiko@chromium.org>
Commit-Queue: Xiyuan Xia <xiyuan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#516065}
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/apps/app_browsertest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/BUILD.gn
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/arc/arc_play_store_enabled_preference_handler_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/arc/arc_session_manager_browsertest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/arc/arc_session_manager_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/arc/arc_support_host_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/arc/arc_util_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/arc/auth/arc_auth_service_browsertest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/arc/auth/arc_robot_auth_code_fetcher_browsertest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/arc/boot_phase_monitor/arc_boot_phase_monitor_bridge_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/arc/notification/arc_provision_notification_service_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/arc/optin/arc_terms_of_service_default_negotiator_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/arc/policy/arc_policy_bridge_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/arc/wallpaper/arc_wallpaper_service_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/authpolicy/auth_policy_credentials_manager_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/display/display_preferences_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/events/event_rewriter_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/extensions/quick_unlock_private/quick_unlock_private_api_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/extensions/wallpaper_private_api_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/file_manager/path_util_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/file_system_provider/mount_path_util_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/file_system_provider/service_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/input_method/input_method_persistence_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/lock_screen_apps/state_controller_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/login/auth/cryptohome_authenticator_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/login/easy_unlock/easy_unlock_tpm_key_manager_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/login/existing_user_controller_auto_login_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/login/kiosk_browsertest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/login/saml/saml_offline_signin_limiter_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/login/users/avatar/user_image_manager_browsertest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/login/users/multi_profile_user_controller_unittest.cc
[delete] https://crrev.com/58eab19b66fb85590854e5704163943ba4a6cb80/chrome/browser/chromeos/login/users/scoped_user_manager_enabler.cc
[delete] https://crrev.com/58eab19b66fb85590854e5704163943ba4a6cb80/chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/login/users/user_manager_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/net/network_portal_detector_impl_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/net/network_portal_notification_controller_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/net/network_pref_state_observer_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/policy/affiliated_invalidation_service_provider_impl_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/policy/device_status_collector_browsertest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/power/extension_event_observer_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/power/power_prefs_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/preferences_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/profiles/profile_list_chromeos_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/settings/device_settings_test_helper.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/settings/device_settings_test_helper.h
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/settings/session_manager_operation_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/status/data_promo_notification_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/chromeos/system/automatic_reboot_manager_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/extensions/api/bluetooth_low_energy/bluetooth_low_energy_apitest_chromeos.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/extensions/api/enterprise_platform_keys_private/enterprise_platform_keys_private_api_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/extensions/api/file_system/consent_provider_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/extensions/api/file_system/file_system_apitest_chromeos.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/extensions/api/identity/identity_apitest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/extensions/crx_installer_browsertest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/extensions/extension_garbage_collector_chromeos_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/extensions/external_provider_impl_chromeos_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/extensions/external_provider_impl_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/extensions/update_install_gate_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/extensions/user_script_listener_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/metrics/chromeos_metrics_provider_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/notifications/chrome_ash_message_center_client_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/policy/profile_policy_connector_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/profiles/profile_manager_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/signin/easy_unlock_service_unittest_chromeos.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/signin/signin_error_notifier_ash_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/sync/sync_error_notifier_ash_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/ui/app_list/arc/arc_app_test.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/ui/app_list/arc/arc_app_test.h
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/ui/ash/launcher/chrome_launcher_controller_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/ui/ash/multi_user/multi_user_context_menu_chromeos_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/ui/ash/multi_user/multi_user_util_chromeos_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/ui/ash/session_controller_client_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/ui/browser_finder_chromeos_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/ui/webui/chromeos/login/encryption_migration_screen_handler_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/ui/webui/chromeos/login/signin_userlist_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/ui/webui/help/version_updater_chromeos_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/ui/webui/settings/on_startup_handler_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/ui/webui/settings/profile_info_handler_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/chrome/browser/ui/webui/settings/site_settings_handler_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/components/arc/arc_util_unittest.cc
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/components/user_manager/BUILD.gn
[add] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/components/user_manager/scoped_user_manager.cc
[add] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/components/user_manager/scoped_user_manager.h
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/components/user_manager/user_manager.h
[modify] https://crrev.com/dfe3a9ff5d9d9bc2fed87e23ad1185cde4e732a5/components/user_manager/user_names.h

Status: Fixed (was: WontFix)
Fixed for arc.

Comment 12 by dchan@chromium.org, Jan 22 2018

Status: Archived (was: Fixed)

Comment 13 by dchan@chromium.org, Jan 23 2018

Status: Fixed (was: Archived)

Sign in to add a comment