Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Side by Side Diff: ash/public/interfaces/session_controller.mojom

Issue 2545723003: ash: Add SessionController/Client mojo interfaces (Closed)
Patch Set: use a default to fix null avatar image failures Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 module ash.mojom;
6
7 import "skia/public/interfaces/bitmap.mojom";
8
9 // Matches session_manager::SessionState
James Cook 2016/12/01 23:01:43 super nit: end with . (and below) for consistency
xiyuan 2016/12/06 00:46:34 Done.
10 [Extensible]
11 enum SessionState {
12 UNKNOWN,
James Cook 2016/12/01 23:01:43 nit: Please copy the comments for these enum value
xiyuan 2016/12/06 00:46:34 Done.
13 OOBE,
14 LOGIN_PRIMARY,
15 LOGGED_IN_NOT_ACTIVE,
16 ACTIVE,
17 LOCKED,
18 LOGIN_SECONDARY,
19 };
20
21 // Matches user_manager::UserType.
22 [Extensible]
23 enum UserType {
24 REGULAR,
25 GUEST,
26 PUBLIC_ACCOUNT,
27 SUPERVISED,
28 KIOSK,
29 CHILD,
30 ARC_KIOSK,
31 };
32
33 // Info about a user session in ash.
34 struct UserSession {
35 UserType type;
36 string account_id; // Serialized AccountId
37 string display_name;
38 string display_email;
39 skia.mojom.Bitmap avatar;
40 };
41
42 // Matches ash::AddUserSessionPolicy
43 [Extensible]
44 enum AddUserSessionPolicy {
45 ALLOWED,
46 ERROR_NOT_ALLOWED_PRIMARY_USER,
47 ERROR_NO_ELIGIBLE_USERS,
48 ERROR_MAXIMUM_USERS_REACHED,
49 };
50
51 // Interface for ash client (e.g. Chrome) to set session info for ash.
52 interface SessionController {
53 // Sets the client interface.
54 SetClient(SessionControllerClient client);
55
56 // Sets the maximum possible number of logged in users.
57 SetMaxUsers(uint32 max_users);
58
59 // Sets whether the screen can be locked.
60 SetCanLockScreen(bool can_lock);
61
62 // Sets whether the screen should be locked automatically before suspending.
63 SetShouldLockScreenAutomatically(bool should_lock);
64
65 // Sets whether adding a user to session is allowed.
66 SetAddUserSessionPolicy(AddUserSessionPolicy add_user_session_policy);
67
68 // Sets the current state of the ash session.
69 SetSessionState(SessionState session_state);
James Cook 2016/12/01 23:01:43 If all of the above functions are going to be call
xiyuan 2016/12/06 00:46:34 Makes sense. I was thinking keeping them separate
70
71 // Sets the list of user sessions. This list is taken as LRU sorted with
72 // the first being the currently active user session.
73 SetUserSessions(array<UserSession> user_sessions);
James Cook 2016/12/01 23:01:43 Is this going to be re-sent every time the order o
xiyuan 2016/12/06 00:46:34 Good point. I overlooked this. Split SetUserSessi
74 };
75
76 // Interface for ash to request session service from its client (e.g. Chrome).
77 interface SessionControllerClient {
78 // Requests to lock screen.
79 RequestLockScreen();
80
81 // Switch to the active user with |account_id|
82 // (if the user has already signed in).
James Cook 2016/12/01 23:01:43 nit: wrap with line above
xiyuan 2016/12/06 00:46:34 Done.
83 SwitchActiveUser(string account_id);
84
85 // Switch the active user to the next or previous user.
86 CycleActiveUser(bool next_user);
87 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698