Chromium Code Reviews| 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 |