enrollment.js revision ddb351dbec246cf1fab5ec20d2d5520909041de1
1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Use of this source code is governed by a BSD-style license that can be 3ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// found in the LICENSE file. 4ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 5ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsencr.define('enterpriseEnrollment', function() { 6ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 7ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen function showScreen(screen) { 8ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen var screens = ['login-screen', 'confirmation-screen']; 9ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen for (var i = 0; i < screens.length; i++) { 10ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen $(screens[i]).hidden = screens[i] != screen; 11ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Hiding an iframe unfortunately doesn't remove it or its contents from 13ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // tabbing order. To hack around this: 14ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // - Hide the content document (if it exists), so nested elements won't 15ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // receive focus and relinquish focus if they already have it. 16ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // - Set tabIndex = -1 on the iframe, so it doesn't get focused itself. 17ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // 18ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // See https://bugs.webkit.org/show_bug.cgi?id=55861 19ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen iframes = $(screens[i]).getElementsByTagName('iframe'); 20ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen for (var j = 0; j < iframes.length; j++) { 21ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen var display = ''; 22ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen if (screens[i] != screen) { 23ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen display = 'none'; 24ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen iframes[j].tabIndex = -1; 25ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen } else { 26ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen display = 'block'; 27ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen iframes[j].removeAttribute('tabIndex'); 28ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen } 29ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen if (iframes[j].contentDocument && iframes[j].contentDocument.body) { 30ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen iframes[j].contentDocument.body.style.display = display; 31ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen } 32ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen } 33ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen } 34ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen } 35ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 36ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen function showInitialScreen() { 37ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen var args = JSON.parse(chrome.dialogArguments); 38ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen showScreen(args.initialScreen); 39ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen } 40ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 41ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen return { 42ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen showScreen: showScreen, 43ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen showInitialScreen: showInitialScreen 44ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen }; 45ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen}); 46ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 47ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsendocument.addEventListener('DOMContentLoaded', 48ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen enterpriseEnrollment.showInitialScreen); 49