OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 }); |
OLD | NEW |