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

Side by Side Diff: chrome/browser/resources/chromeos/login/display_manager.js

Issue 22914008: Refactor kiosk app launch to be part of login screen UI flow. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 4 months 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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
5 /** 5 /**
6 * @fileoverview Display manager for WebUI OOBE and login. 6 * @fileoverview Display manager for WebUI OOBE and login.
7 */ 7 */
8 8
9 // TODO(xiyuan): Find a better to share those constants. 9 // TODO(xiyuan): Find a better to share those constants.
10 /** @const */ var SCREEN_OOBE_NETWORK = 'connect'; 10 /** @const */ var SCREEN_OOBE_NETWORK = 'connect';
11 /** @const */ var SCREEN_OOBE_EULA = 'eula'; 11 /** @const */ var SCREEN_OOBE_EULA = 'eula';
12 /** @const */ var SCREEN_OOBE_UPDATE = 'update'; 12 /** @const */ var SCREEN_OOBE_UPDATE = 'update';
13 /** @const */ var SCREEN_OOBE_ENROLLMENT = 'oauth-enrollment'; 13 /** @const */ var SCREEN_OOBE_ENROLLMENT = 'oauth-enrollment';
14 /** @const */ var SCREEN_OOBE_KIOSK_ENABLE = 'kiosk-enable'; 14 /** @const */ var SCREEN_OOBE_KIOSK_ENABLE = 'kiosk-enable';
15 /** @const */ var SCREEN_GAIA_SIGNIN = 'gaia-signin'; 15 /** @const */ var SCREEN_GAIA_SIGNIN = 'gaia-signin';
16 /** @const */ var SCREEN_ACCOUNT_PICKER = 'account-picker'; 16 /** @const */ var SCREEN_ACCOUNT_PICKER = 'account-picker';
17 /** @const */ var SCREEN_ERROR_MESSAGE = 'error-message'; 17 /** @const */ var SCREEN_ERROR_MESSAGE = 'error-message';
18 /** @const */ var SCREEN_USER_IMAGE_PICKER = 'user-image'; 18 /** @const */ var SCREEN_USER_IMAGE_PICKER = 'user-image';
19 /** @const */ var SCREEN_TPM_ERROR = 'tpm-error-message'; 19 /** @const */ var SCREEN_TPM_ERROR = 'tpm-error-message';
20 /** @const */ var SCREEN_PASSWORD_CHANGED = 'password-changed'; 20 /** @const */ var SCREEN_PASSWORD_CHANGED = 'password-changed';
21 /** @const */ var SCREEN_CREATE_MANAGED_USER_FLOW = 21 /** @const */ var SCREEN_CREATE_MANAGED_USER_FLOW =
22 'managed-user-creation'; 22 'managed-user-creation';
23 /** @const */ var SCREEN_APP_LAUNCH_SPLASH = 'app-launch-splash';
23 24
24 /* Accelerator identifiers. Must be kept in sync with webui_login_view.cc. */ 25 /* Accelerator identifiers. Must be kept in sync with webui_login_view.cc. */
25 /** @const */ var ACCELERATOR_CANCEL = 'cancel'; 26 /** @const */ var ACCELERATOR_CANCEL = 'cancel';
26 /** @const */ var ACCELERATOR_ENROLLMENT = 'enrollment'; 27 /** @const */ var ACCELERATOR_ENROLLMENT = 'enrollment';
27 /** @const */ var ACCELERATOR_KIOSK_ENABLE = 'kiosk_enable'; 28 /** @const */ var ACCELERATOR_KIOSK_ENABLE = 'kiosk_enable';
28 /** @const */ var ACCELERATOR_VERSION = 'version'; 29 /** @const */ var ACCELERATOR_VERSION = 'version';
29 /** @const */ var ACCELERATOR_RESET = 'reset'; 30 /** @const */ var ACCELERATOR_RESET = 'reset';
30 /** @const */ var ACCELERATOR_LEFT = 'left'; 31 /** @const */ var ACCELERATOR_LEFT = 'left';
31 /** @const */ var ACCELERATOR_RIGHT = 'right'; 32 /** @const */ var ACCELERATOR_RIGHT = 'right';
32 /** @const */ var ACCELERATOR_DEVICE_REQUISITION = 'device_requisition'; 33 /** @const */ var ACCELERATOR_DEVICE_REQUISITION = 'device_requisition';
33 /** @const */ var ACCELERATOR_DEVICE_REQUISITION_REMORA = 34 /** @const */ var ACCELERATOR_DEVICE_REQUISITION_REMORA =
34 'device_requisition_remora'; 35 'device_requisition_remora';
36 /** @const */ var ACCELERATOR_APP_LAUNCH_BAILOUT = 'app_launch_bailout';
35 37
36 /* Help topic identifiers. */ 38 /* Help topic identifiers. */
37 /** @const */ var HELP_TOPIC_ENTERPRISE_REPORTING = 2535613; 39 /** @const */ var HELP_TOPIC_ENTERPRISE_REPORTING = 2535613;
38 40
39 /* Signin UI state constants. Used to control header bar UI. */ 41 /* Signin UI state constants. Used to control header bar UI. */
40 /** @const */ var SIGNIN_UI_STATE = { 42 /** @const */ var SIGNIN_UI_STATE = {
41 HIDDEN: 0, 43 HIDDEN: 0,
42 GAIA_SIGNIN: 1, 44 GAIA_SIGNIN: 1,
43 ACCOUNT_PICKER: 2, 45 ACCOUNT_PICKER: 2,
44 WRONG_HWID_WARNING: 3, 46 WRONG_HWID_WARNING: 3,
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 chrome.send('toggleResetScreen'); 207 chrome.send('toggleResetScreen');
206 } 208 }
207 } else if (name == ACCELERATOR_DEVICE_REQUISITION) { 209 } else if (name == ACCELERATOR_DEVICE_REQUISITION) {
208 if (this.isOobeUI()) 210 if (this.isOobeUI())
209 this.showDeviceRequisitionPrompt_(); 211 this.showDeviceRequisitionPrompt_();
210 } else if (name == ACCELERATOR_DEVICE_REQUISITION_REMORA) { 212 } else if (name == ACCELERATOR_DEVICE_REQUISITION_REMORA) {
211 if (this.isOobeUI()) { 213 if (this.isOobeUI()) {
212 this.deviceRequisition_ = 'remora'; 214 this.deviceRequisition_ = 'remora';
213 this.showDeviceRequisitionPrompt_(); 215 this.showDeviceRequisitionPrompt_();
214 } 216 }
217 } else if (name == ACCELERATOR_APP_LAUNCH_BAILOUT) {
218 var currentStepId = this.screens_[this.currentStep_];
219 if (currentStepId == SCREEN_APP_LAUNCH_SPLASH) {
220 chrome.send('cancelAppLaunch');
221 }
xiyuan 2013/08/15 18:19:42 nit: Remove enclosing {} for one liner.
Tim Song 2013/08/16 19:07:59 Done.
215 } 222 }
216 223
217 if (!this.forceKeyboardFlow_) 224 if (!this.forceKeyboardFlow_)
218 return; 225 return;
219 226
220 // Handle special accelerators for keyboard enhanced navigation flow. 227 // Handle special accelerators for keyboard enhanced navigation flow.
221 if (name == ACCELERATOR_LEFT) 228 if (name == ACCELERATOR_LEFT)
222 keyboard.raiseKeyFocusPrevious(document.activeElement); 229 keyboard.raiseKeyFocusPrevious(document.activeElement);
223 else if (name == ACCELERATOR_RIGHT) 230 else if (name == ACCELERATOR_RIGHT)
224 keyboard.raiseKeyFocusNext(document.activeElement); 231 keyboard.raiseKeyFocusNext(document.activeElement);
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
455 this.appendButtons_(el.buttons, screenId); 462 this.appendButtons_(el.buttons, screenId);
456 }, 463 },
457 464
458 /** 465 /**
459 * Updates inner container size based on the size of the current screen and 466 * Updates inner container size based on the size of the current screen and
460 * other screens in the same group. 467 * other screens in the same group.
461 * Should be executed on screen change / screen size change. 468 * Should be executed on screen change / screen size change.
462 * @param {!HTMLElement} screen Screen that is being shown. 469 * @param {!HTMLElement} screen Screen that is being shown.
463 */ 470 */
464 updateScreenSize: function(screen) { 471 updateScreenSize: function(screen) {
472 if (screen.classList.contains('fullscreen')) {
473 this.setFullScreen_(screen);
474 return;
475 }
476
465 // Have to reset any previously predefined screen size first 477 // Have to reset any previously predefined screen size first
466 // so that screen contents would define it instead (offsetHeight/width). 478 // so that screen contents would define it instead (offsetHeight/width).
467 // http://crbug.com/146539 479 // http://crbug.com/146539
468 screen.style.width = ''; 480 screen.style.width = '';
469 screen.style.height = ''; 481 screen.style.height = '';
470 482
471 var height = screen.offsetHeight; 483 var height = screen.offsetHeight;
472 var width = screen.offsetWidth; 484 var width = screen.offsetWidth;
473 for (var i = 0, screenGroup; screenGroup = SCREEN_GROUPS[i]; i++) { 485 for (var i = 0, screenGroup; screenGroup = SCREEN_GROUPS[i]; i++) {
474 if (screenGroup.indexOf(screen.id) != -1) { 486 if (screenGroup.indexOf(screen.id) != -1) {
475 // Set screen dimensions to maximum dimensions within this group. 487 // Set screen dimensions to maximum dimensions within this group.
476 for (var j = 0, screen2; screen2 = $(screenGroup[j]); j++) { 488 for (var j = 0, screen2; screen2 = $(screenGroup[j]); j++) {
477 height = Math.max(height, screen2.offsetHeight); 489 height = Math.max(height, screen2.offsetHeight);
478 width = Math.max(width, screen2.offsetWidth); 490 width = Math.max(width, screen2.offsetWidth);
479 } 491 }
480 break; 492 break;
481 } 493 }
482 } 494 }
483 $('inner-container').style.height = height + 'px'; 495 $('inner-container').style.height = height + 'px';
484 $('inner-container').style.width = width + 'px'; 496 $('inner-container').style.width = width + 'px';
485 // This requires |screen| to have 'box-sizing: border-box'. 497 // This requires |screen| to have 'box-sizing: border-box'.
486 screen.style.width = width + 'px'; 498 screen.style.width = width + 'px';
487 screen.style.height = height + 'px'; 499 screen.style.height = height + 'px';
488 }, 500 },
489 501
490 /** 502 /**
503 * Resizes a screen to be fullscreen.
504 */
505 setFullScreen_: function(screen) {
xiyuan 2013/08/15 18:19:42 This could be done via CSS. In oobe_screen.css: .
Tim Song 2013/08/16 19:07:59 Good call. #outer-container is the parent of the #
506 var outerContainer = $('outer-container');
507 var oobe = $('oobe');
508 var innerContainer = $('inner-container');
509 outerContainer.style.width = '100%';
510 outerContainer.style.height = '100%';
511 oobe.style.width = '100%';
512 oobe.style.height = '100%';
513 innerContainer.style.width = '100%';
514 innerContainer.style.height = '100%';
515 screen.style.width = '100%';
516 screen.style.height = '100%';
517 },
518
519 /**
491 * Updates localized content of the screens like headers, buttons and links. 520 * Updates localized content of the screens like headers, buttons and links.
492 * Should be executed on language change. 521 * Should be executed on language change.
493 */ 522 */
494 updateLocalizedContent_: function() { 523 updateLocalizedContent_: function() {
495 for (var i = 0, screenId; screenId = this.screens_[i]; ++i) { 524 for (var i = 0, screenId; screenId = this.screens_[i]; ++i) {
496 var screen = $(screenId); 525 var screen = $(screenId);
497 var buttonStrip = $(screenId + '-controls'); 526 var buttonStrip = $(screenId + '-controls');
498 if (buttonStrip) 527 if (buttonStrip)
499 buttonStrip.innerHTML = ''; 528 buttonStrip.innerHTML = '';
500 // TODO(nkostylev): Update screen headers for new OOBE design. 529 // TODO(nkostylev): Update screen headers for new OOBE design.
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after
790 */ 819 */
791 DisplayManager.refocusCurrentPod = function() { 820 DisplayManager.refocusCurrentPod = function() {
792 $('pod-row').refocusCurrentPod(); 821 $('pod-row').refocusCurrentPod();
793 }; 822 };
794 823
795 // Export 824 // Export
796 return { 825 return {
797 DisplayManager: DisplayManager 826 DisplayManager: DisplayManager
798 }; 827 };
799 }); 828 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698