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

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

Issue 21004005: Made small refactoring of OobeUI. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Changed location of .oobe_completed. 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';
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 }; 46 };
47 47
48 /* Possible UI states of the error screen. */ 48 /* Possible UI states of the error screen. */
49 /** @const */ var ERROR_SCREEN_UI_STATE = { 49 /** @const */ var ERROR_SCREEN_UI_STATE = {
50 UNKNOWN: 'ui-state-unknown', 50 UNKNOWN: 'ui-state-unknown',
51 UPDATE: 'ui-state-update', 51 UPDATE: 'ui-state-update',
52 SIGNIN: 'ui-state-signin', 52 SIGNIN: 'ui-state-signin',
53 MANAGED_USER_CREATION_FLOW: 'ui-state-locally-managed' 53 MANAGED_USER_CREATION_FLOW: 'ui-state-locally-managed'
54 }; 54 };
55 55
56 /* Possible types of UI. */
57 /** @const */ var DISPLAY_TYPE = {
58 UNKNOWN: 'unknown',
59 OOBE: 'oobe',
60 LOGIN: 'login',
61 LOCK: 'lock',
62 USER_ADDING: 'user-adding'
63 };
64
56 cr.define('cr.ui.login', function() { 65 cr.define('cr.ui.login', function() {
57 var Bubble = cr.ui.Bubble; 66 var Bubble = cr.ui.Bubble;
58 67
59 /** 68 /**
60 * Maximum time in milliseconds to wait for step transition to finish. 69 * Maximum time in milliseconds to wait for step transition to finish.
61 * The value is used as the duration for ensureTransitionEndEvent below. 70 * The value is used as the duration for ensureTransitionEndEvent below.
62 * It needs to be inline with the step screen transition duration time 71 * It needs to be inline with the step screen transition duration time
63 * defined in css file. The current value in css is 200ms. To avoid emulated 72 * defined in css file. The current value in css is 200ms. To avoid emulated
64 * webkitTransitionEnd fired before real one, 250ms is used. 73 * webkitTransitionEnd fired before real one, 250ms is used.
65 * @const 74 * @const
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 */ 132 */
124 allowToggleVersion_: false, 133 allowToggleVersion_: false,
125 134
126 /** 135 /**
127 * Whether keyboard navigation flow is enforced. 136 * Whether keyboard navigation flow is enforced.
128 * @type {boolean} 137 * @type {boolean}
129 */ 138 */
130 forceKeyboardFlow_: false, 139 forceKeyboardFlow_: false,
131 140
132 /** 141 /**
142 * Type of UI.
143 * @type {string}
144 */
145 displayType_: DISPLAY_TYPE.UNKNOWN,
146
147 get displayType() {
148 return this.displayType_;
149 },
150
151 set displayType(displayType) {
152 this.displayType_ = displayType;
153 },
154
155 /**
133 * Gets current screen element. 156 * Gets current screen element.
134 * @type {HTMLElement} 157 * @type {HTMLElement}
135 */ 158 */
136 get currentScreen() { 159 get currentScreen() {
137 return $(this.screens_[this.currentStep_]); 160 return $(this.screens_[this.currentStep_]);
138 }, 161 },
139 162
140 /** 163 /**
141 * Hides/shows header (Shutdown/Add User/Cancel buttons). 164 * Hides/shows header (Shutdown/Add User/Cancel buttons).
142 * @param {boolean} hidden Whether header is hidden. 165 * @param {boolean} hidden Whether header is hidden.
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 defaultControl.focus(); 364 defaultControl.focus();
342 }); 365 });
343 ensureTransitionEndEvent(oldStep, MAX_SCREEN_TRANSITION_DURATION); 366 ensureTransitionEndEvent(oldStep, MAX_SCREEN_TRANSITION_DURATION);
344 } else { 367 } else {
345 oldStep.classList.add('hidden'); 368 oldStep.classList.add('hidden');
346 if (defaultControl) 369 if (defaultControl)
347 defaultControl.focus(); 370 defaultControl.focus();
348 } 371 }
349 } else { 372 } else {
350 // First screen on OOBE launch. 373 // First screen on OOBE launch.
351 if (document.body.classList.contains('oobe-display') && 374 if (this.isOobeUI() && innerContainer.classList.contains('down')) {
352 innerContainer.classList.contains('down')) {
353 innerContainer.classList.remove('down'); 375 innerContainer.classList.remove('down');
354 innerContainer.addEventListener( 376 innerContainer.addEventListener(
355 'webkitTransitionEnd', function f(e) { 377 'webkitTransitionEnd', function f(e) {
356 innerContainer.removeEventListener('webkitTransitionEnd', f); 378 innerContainer.removeEventListener('webkitTransitionEnd', f);
357 $('progress-dots').classList.remove('down'); 379 $('progress-dots').classList.remove('down');
358 chrome.send('loginVisible', ['oobe']); 380 chrome.send('loginVisible', ['oobe']);
359 // Refresh defaultControl. It could have changed. 381 // Refresh defaultControl. It could have changed.
360 var defaultControl = newStep.defaultControl; 382 var defaultControl = newStep.defaultControl;
361 if (defaultControl) 383 if (defaultControl)
362 defaultControl.focus(); 384 defaultControl.focus();
363 }); 385 });
364 ensureTransitionEndEvent(innerContainer, 386 ensureTransitionEndEvent(innerContainer,
365 MAX_SCREEN_TRANSITION_DURATION); 387 MAX_SCREEN_TRANSITION_DURATION);
366 } else { 388 } else {
367 if (defaultControl) 389 if (defaultControl)
368 defaultControl.focus(); 390 defaultControl.focus();
391 chrome.send('loginVisible', ['oobe']);
369 } 392 }
370 newHeader.classList.remove('right'); // Old OOBE.
371 } 393 }
372 this.currentStep_ = nextStepIndex; 394 this.currentStep_ = nextStepIndex;
373 $('oobe').className = nextStepId; 395 $('oobe').className = nextStepId;
374 396
375 $('step-logo').hidden = newStep.classList.contains('no-logo'); 397 $('step-logo').hidden = newStep.classList.contains('no-logo');
376 398
377 chrome.send('updateCurrentScreen', [this.currentScreen.id]); 399 chrome.send('updateCurrentScreen', [this.currentScreen.id]);
378 }, 400 },
379 401
380 /** 402 /**
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
557 * @param {string} requisition The device requisition. 579 * @param {string} requisition The device requisition.
558 */ 580 */
559 updateDeviceRequisition: function(requisition) { 581 updateDeviceRequisition: function(requisition) {
560 this.deviceRequisition_ = requisition; 582 this.deviceRequisition_ = requisition;
561 }, 583 },
562 584
563 /** 585 /**
564 * Returns true if Oobe UI is shown. 586 * Returns true if Oobe UI is shown.
565 */ 587 */
566 isOobeUI: function() { 588 isOobeUI: function() {
567 return !document.body.classList.contains('login-display'); 589 return document.body.classList.contains('oobe-display');
568 }, 590 },
569 591
570 /** 592 /**
571 * Returns true if the current UI type is the "Sign-in to add user"
572 * (another user session is already active).
573 */
574 isSignInToAddScreen: function() {
575 return document.documentElement.getAttribute('screen') ==
576 'user-adding';
577 },
578
579 /**
580 * Returns true if the current UI type is the lock screen.
581 */
582 isLockScreen: function() {
583 return document.documentElement.getAttribute('screen') == 'lock';
584 },
585
586 /**
587 * Returns true if sign in UI should trigger wallpaper load on boot. 593 * Returns true if sign in UI should trigger wallpaper load on boot.
588 */ 594 */
589 shouldLoadWallpaperOnBoot: function() { 595 shouldLoadWallpaperOnBoot: function() {
590 return loadTimeData.getString('bootIntoWallpaper') == 'on'; 596 return loadTimeData.getString('bootIntoWallpaper') == 'on';
591 }, 597 },
592 }; 598 };
593 599
594 /** 600 /**
595 * Initializes display manager. 601 * Initializes display manager.
596 */ 602 */
597 DisplayManager.initialize = function() { 603 DisplayManager.initialize = function() {
598 // Extracting screen type from URL. 604 // Extracting display type from URL.
599 var hash = window.location.hash; 605 var path = window.location.pathname.substr(1);
600 var screenType; 606 var displayType = DISPLAY_TYPE.UNKNOWN;
601 if (!hash) { 607 Object.getOwnPropertyNames(DISPLAY_TYPE).forEach(function(type) {
602 console.error('Screen type not found. Setting default value "login".'); 608 if (DISPLAY_TYPE[type] == path) {
603 screenType = 'login'; 609 displayType = path;
604 } else { 610 }
605 screenType = hash.substring(1); 611 });
612 if (displayType == DISPLAY_TYPE.UNKNOWN) {
613 console.error("Unknown display type '" + path + "'. Setting default.");
614 displayType = DISPLAY_TYPE.LOGIN;
606 } 615 }
607 document.documentElement.setAttribute('screen', screenType); 616 Oobe.getInstance().displayType = displayType;
617 document.documentElement.setAttribute('screen', displayType);
608 618
609 var link = $('enterprise-info-hint-link'); 619 var link = $('enterprise-info-hint-link');
610 link.addEventListener( 620 link.addEventListener(
611 'click', DisplayManager.handleEnterpriseHintLinkClick); 621 'click', DisplayManager.handleEnterpriseHintLinkClick);
612 }, 622 },
613 623
614 /** 624 /**
615 * Returns offset (top, left) of the element. 625 * Returns offset (top, left) of the element.
616 * @param {!Element} element HTML element. 626 * @param {!Element} element HTML element.
617 * @return {!Object} The offset (top, left). 627 * @return {!Object} The offset (top, left).
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
790 */ 800 */
791 DisplayManager.refocusCurrentPod = function() { 801 DisplayManager.refocusCurrentPod = function() {
792 $('pod-row').refocusCurrentPod(); 802 $('pod-row').refocusCurrentPod();
793 }; 803 };
794 804
795 // Export 805 // Export
796 return { 806 return {
797 DisplayManager: DisplayManager 807 DisplayManager: DisplayManager
798 }; 808 };
799 }); 809 });
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/webui_screen_locker.cc ('k') | chrome/browser/resources/chromeos/login/header_bar.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698