Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | |
| 4 <include src="../../../../ui/login/screen.js"> | 5 <include src="../../../../ui/login/screen.js"> |
| 5 <include src="../../../../ui/login/bubble.js"> | 6 <include src="../../../../ui/login/bubble.js"> |
| 6 <include src="../../../../ui/login/login_ui_tools.js"> | 7 <include src="../../../../ui/login/login_ui_tools.js"> |
| 7 <include src="../../../../ui/login/display_manager.js"> | 8 <include src="../../../../ui/login/display_manager.js"> |
| 8 <include src="control_bar.js"> | |
| 9 <include src="../../../../ui/login/account_picker/screen_account_picker.js"> | 9 <include src="../../../../ui/login/account_picker/screen_account_picker.js"> |
| 10 <include src="../../../../ui/login/account_picker/user_pod_row.js"> | 10 <include src="../../../../ui/login/account_picker/user_pod_row.js"> |
| 11 <include src="../../../../ui/login/resource_loader.js"> | 11 |
| 12 <include src="user_manager_tutorial.js"> | |
| 13 | 12 |
| 14 cr.define('cr.ui', function() { | 13 cr.define('cr.ui', function() { |
| 15 var DisplayManager = cr.ui.login.DisplayManager; | 14 var DisplayManager = cr.ui.login.DisplayManager; |
| 16 var UserManagerTutorial = cr.ui.login.UserManagerTutorial; | |
| 17 | 15 |
| 18 /** | 16 /** |
| 19 * Constructs an Out of box controller. It manages initialization of screens, | 17 * Manages initialization of screens, transitions, and error messages. |
| 20 * transitions, error messages display. | 18 * @constructor |
| 21 * @extends {DisplayManager} | 19 * @extends {DisplayManager} |
| 22 * @constructor | |
| 23 */ | 20 */ |
| 24 function Oobe() { | 21 function UserManager() {} |
| 25 } | |
| 26 | 22 |
| 27 cr.addSingletonGetter(Oobe); | 23 cr.addSingletonGetter(UserManager); |
| 28 | 24 |
| 29 Oobe.prototype = { | 25 UserManager.prototype = { |
| 30 __proto__: DisplayManager.prototype, | 26 __proto__: DisplayManager.prototype, |
| 31 }; | 27 }; |
| 32 | 28 |
| 33 /** | 29 /** |
| 30 * Initializes the UserManager. | |
| 31 */ | |
| 32 UserManager.initialize = function() { | |
| 33 cr.ui.login.DisplayManager.initialize(); | |
| 34 login.AccountPickerScreen.register(); | |
| 35 cr.ui.Bubble.decorate($('bubble')); | |
| 36 | |
| 37 chrome.send('userManagerInitialize', [window.location.hash]); | |
|
Dan Beam
2016/03/08 21:10:30
it's preferable to not interact with the browser d
Moe
2016/03/09 15:29:03
Done.
| |
| 38 }; | |
| 39 | |
| 40 /** | |
| 34 * Shows the given screen. | 41 * Shows the given screen. |
| 35 * @param {bool} showGuest Whether the 'Browse as Guest' button is displayed. | 42 * @param {boolean} showGuest True if 'Browse as Guest' button should be |
| 36 * @param {bool} showAddPerson Whether the 'Add Person' button is displayed. | 43 * displayed. |
| 44 * @param {boolean} showAddPerson True if 'Add Person' button should be | |
| 45 * displayed. | |
| 37 */ | 46 */ |
| 38 Oobe.showUserManagerScreen = function(showGuest, showAddPerson) { | 47 UserManager.showUserManagerScreen = function(showGuest, showAddPerson) { |
| 39 Oobe.getInstance().showScreen({id: 'account-picker', | 48 UserManager.getInstance().showScreen({id: 'account-picker', |
| 40 data: {disableAddUser: false}}); | 49 data: {disableAddUser: false}}); |
| 41 // The ChromeOS account-picker will hide the AddUser button if a user is | |
| 42 // logged in and the screen is "locked", so we must re-enabled it | |
| 43 $('add-user-header-bar-item').hidden = false; | |
| 44 | |
| 45 // Hide control options if the user does not have the right permissions. | 50 // Hide control options if the user does not have the right permissions. |
| 46 $('guest-user-button').hidden = !showGuest; | 51 var controlBar = document.querySelector('control-bar'); |
| 47 $('add-user-button').hidden = !showAddPerson; | 52 controlBar.showGuest = showGuest; |
| 48 $('login-header-bar').hidden = false; | 53 controlBar.showAddPerson = showAddPerson; |
| 49 | 54 |
| 50 // Disable the context menu, as the Print/Inspect element items don't | 55 // Disable the context menu, as the Print/Inspect element items don't |
| 51 // make sense when displayed as a widget. | 56 // make sense when displayed as a widget. |
| 52 document.addEventListener('contextmenu', function(e) {e.preventDefault();}); | 57 document.addEventListener('contextmenu', function(e) {e.preventDefault();}); |
| 53 | 58 |
| 54 var hash = window.location.hash; | 59 // TODO(mahmadi): start the tutorial if the location hash is #tutorial. |
| 55 if (hash && hash == '#tutorial') | |
| 56 UserManagerTutorial.startTutorial(); | |
| 57 }; | 60 }; |
| 58 | 61 |
| 59 /** | 62 /** |
| 60 * Open a new browser for the given profile. | 63 * Open a new browser for the given profile. |
| 61 * @param {string} profilePath The profile's path. | 64 * @param {string} profilePath The profile's path. |
| 62 */ | 65 */ |
| 63 Oobe.launchUser = function(profilePath) { | 66 UserManager.launchUser = function(profilePath) { |
| 64 chrome.send('launchUser', [profilePath]); | 67 chrome.send('launchUser', [profilePath]); |
| 65 }; | 68 }; |
| 66 | 69 |
| 67 /** | 70 /** |
| 68 * Disables signin UI. | 71 * Disables signin UI. |
| 69 */ | 72 */ |
| 70 Oobe.disableSigninUI = function() { | 73 UserManager.disableSigninUI = function() { |
| 71 DisplayManager.disableSigninUI(); | 74 DisplayManager.disableSigninUI(); |
| 72 }; | 75 }; |
| 73 | 76 |
| 74 /** | 77 /** |
| 75 * Shows signin UI. | 78 * Shows signin UI. |
| 76 * @param {string} opt_email An optional email for signin UI. | 79 * @param {string=} opt_email An optional email for signin UI. |
| 77 */ | 80 */ |
| 78 Oobe.showSigninUI = function(opt_email) { | 81 UserManager.showSigninUI = function(opt_email) { |
| 79 DisplayManager.showSigninUI(opt_email); | 82 DisplayManager.showSigninUI(opt_email); |
| 80 }; | 83 }; |
| 81 | 84 |
| 82 /** | 85 /** |
| 83 * Shows sign-in error bubble. | 86 * Shows sign-in error bubble. |
| 84 * @param {number} loginAttempts Number of login attemps tried. | 87 * @param {number} loginAttempts Number of login attempts tried. |
| 85 * @param {string} message Error message to show. | 88 * @param {string} message Error message to show. |
| 86 * @param {string} link Text to use for help link. | 89 * @param {string} link Text to use for help link. |
| 87 * @param {number} helpId Help topic Id associated with help link. | 90 * @param {number} helpId Help topic Id associated with help link. |
| 88 */ | 91 */ |
| 89 Oobe.showSignInError = function(loginAttempts, message, link, helpId) { | 92 UserManager.showSignInError = function(loginAttempts, message, link, helpId) { |
| 90 DisplayManager.showSignInError(loginAttempts, message, link, helpId); | 93 DisplayManager.showSignInError(loginAttempts, message, link, helpId); |
| 91 }; | 94 }; |
| 92 | 95 |
| 93 /** | 96 /** |
| 94 * Clears error bubble as well as optional menus that could be open. | 97 * Clears error bubble as well as optional menus that could be open. |
| 95 */ | 98 */ |
| 96 Oobe.clearErrors = function() { | 99 UserManager.clearErrors = function() { |
| 97 DisplayManager.clearErrors(); | 100 DisplayManager.clearErrors(); |
| 98 }; | 101 }; |
|
Dan Beam
2016/03/08 21:10:30
this class looks mainly like a wrapper? what's th
Moe
2016/03/09 15:29:03
That's correct. src/chrome/browser/resources/chrom
| |
| 99 | 102 |
| 100 /** | |
| 101 * Clears password field in user-pod. | |
| 102 */ | |
| 103 Oobe.clearUserPodPassword = function() { | |
| 104 DisplayManager.clearUserPodPassword(); | |
| 105 }; | |
| 106 | |
| 107 /** | |
| 108 * Restores input focus to currently selected pod. | |
| 109 */ | |
| 110 Oobe.refocusCurrentPod = function() { | |
| 111 DisplayManager.refocusCurrentPod(); | |
| 112 }; | |
| 113 | |
| 114 /** | |
| 115 * Show the user manager tutorial | |
| 116 * @param {string} email The user's email, if signed in. | |
| 117 * @param {string} displayName The user's display name. | |
| 118 */ | |
| 119 Oobe.showUserManagerTutorial = function() { | |
| 120 UserManagerTutorial.startTutorial(); | |
| 121 }; | |
| 122 | |
| 123 // Export | 103 // Export |
| 124 return { | 104 return { |
| 125 Oobe: Oobe | 105 UserManager: UserManager |
| 126 }; | 106 }; |
| 127 }); | 107 }); |
| 128 | 108 |
| 129 cr.define('UserManager', function() { | 109 // Alias to Oobe for use in src/ui/login/account_picker/user_pod_row.js |
| 130 'use strict'; | 110 var Oobe = cr.ui.UserManager; |
| 131 | |
| 132 function initialize() { | |
| 133 cr.ui.login.DisplayManager.initialize(); | |
| 134 cr.ui.login.UserManagerTutorial.initialize(); | |
| 135 login.AccountPickerScreen.register(); | |
| 136 cr.ui.Bubble.decorate($('bubble')); | |
| 137 login.HeaderBar.decorate($('login-header-bar')); | |
| 138 | |
| 139 // Hide the header bar until the showUserManagerMethod can apply function | |
| 140 // parameters that affect widget visiblity. | |
| 141 $('login-header-bar').hidden = true; | |
| 142 | |
| 143 chrome.send('userManagerInitialize', [window.location.hash]); | |
| 144 } | |
| 145 | |
| 146 // Return an object with all of the exports. | |
| 147 return { | |
| 148 initialize: initialize | |
| 149 }; | |
| 150 }); | |
| 151 | |
| 152 var Oobe = cr.ui.Oobe; | |
| 153 | 111 |
| 154 // Allow selection events on components with editable text (password field) | 112 // Allow selection events on components with editable text (password field) |
| 155 // bug (http://code.google.com/p/chromium/issues/detail?id=125863) | 113 // bug (http://code.google.com/p/chromium/issues/detail?id=125863) |
| 156 disableTextSelectAndDrag(function(e) { | 114 disableTextSelectAndDrag(function(e) { |
| 157 var src = e.target; | 115 var src = e.target; |
| 158 return src instanceof HTMLTextAreaElement || | 116 return src instanceof HTMLTextAreaElement || |
| 159 src instanceof HTMLInputElement && | 117 src instanceof HTMLInputElement && |
| 160 /text|password|search/.test(src.type); | 118 /text|password|search/.test(src.type); |
| 161 }); | 119 }); |
| 162 | 120 |
| 163 document.addEventListener('DOMContentLoaded', UserManager.initialize); | 121 document.addEventListener('DOMContentLoaded', cr.ui.UserManager.initialize); |
| OLD | NEW |