Commit f1e68f9d authored by Renato Silva's avatar Renato Silva Committed by Commit Bot

Update crOS Public Session Terms Of Service to MD

This update introduces a new Polymer element for the Terms Of Service
screen for public sessions.

Bug: 1007867
Change-Id: I4c71e2d1ec58683ada0155f54087664bc029e957
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1856098
Commit-Queue: Renato Silva <rrsilva@google.com>
Reviewed-by: default avatarDenis Kuznetsov [CET] <antrim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#711324}
parent 6f813ad4
......@@ -839,9 +839,10 @@ IN_PROC_BROWSER_TEST_P(PublicSessionWithTermsOfServiceOobeTest,
OobeScreenWaiter(TermsOfServiceScreenView::kScreenId).Wait();
test::OobeJS()
.CreateWaiter(test::GetOobeElementPath({"tos-accept-button"}))
.CreateWaiter(
test::GetOobeElementPath({"terms-of-service", "acceptButton"}))
->Wait();
test::OobeJS().ClickOnPath({"tos-accept-button"});
test::OobeJS().ClickOnPath({"terms-of-service", "acceptButton"});
OobeScreenExitWaiter(TermsOfServiceScreenView::kScreenId).Wait();
......
......@@ -29,6 +29,9 @@ class TermsOfServiceScreen : public BaseScreen {
public:
enum class Result { ACCEPTED, DECLINED };
// The possible states that the screen may assume.
enum class ScreenState : int { LOADING = 0, LOADED = 1, ERROR = 2 };
using ScreenExitCallback = base::RepeatingCallback<void(Result result)>;
TermsOfServiceScreen(TermsOfServiceScreenView* view,
const ScreenExitCallback& exit_callback);
......
......@@ -25,6 +25,7 @@
<include src="oobe_reset.html">
<include src="oobe_reset_confirmation_overlay.html">
<include src="oobe_supervision_transition.html">
<include src="oobe_terms_of_service.html">
<include src="encryption_migration.html">
<include src="enrollment_license_card.html">
<include src="enterprise_enrollment.html">
......
......@@ -29,6 +29,7 @@
// <include src="oobe_buttons.js">
// <include src="oobe_change_picture.js">
// <include src="oobe_dialog.js">
// <include src="oobe_terms_of_service.js">
// <include src="arc_terms_of_service.js">
// <include src="oobe_reset.js">
// <include src="oobe_reset_confirmation_overlay.js">
......
......@@ -23,6 +23,7 @@
<include src="oobe_hid_detection.html">
<include src="oobe_reset.html">
<include src="oobe_reset_confirmation_overlay.html">
<include src="oobe_terms_of_service.html">
<include src="oobe_update.html">
<include src="oobe_i18n_dropdown.html">
<include src="oobe_welcome_dialog.html">
......
......@@ -32,6 +32,7 @@
// <include src="oobe_change_picture.js">
// <include src="oobe_dialog.js">
// <include src="oobe_eula.js">
// <include src="oobe_terms_of_service.js">
// <include src="oobe_hid_detection.js">
// <include src="oobe_reset.js">
// <include src="oobe_reset_confirmation_overlay.js">
......
......@@ -53,7 +53,6 @@
<link rel="stylesheet" href="oobe_screen_reset.css">
<link rel="stylesheet" href="oobe_screen_autolaunch.css">
<link rel="stylesheet" href="oobe_screen_enable_kiosk.css">
<link rel="stylesheet" href="oobe_screen_terms_of_service.css">
<link rel="stylesheet" href="oobe_screen_auto_enrollment_check.css">
<link rel="stylesheet" href="oobe_screen_supervision_transition.css">
<link rel="stylesheet" href="screen_app_launch_splash.css">
......
......@@ -22,7 +22,6 @@
// <include src="oobe_screen_reset.js">
// <include src="oobe_screen_autolaunch.js">
// <include src="oobe_screen_enable_kiosk.js">
// <include src="oobe_screen_terms_of_service.js">
// <include src="oobe_screen_supervision_transition.js">
// <include src="oobe_screen_assistant_optin_flow.js">
// <include src="oobe_select.js">
......@@ -78,7 +77,6 @@ cr.define('cr.ui.Oobe', function() {
login.ErrorMessageScreen.register();
login.TPMErrorMessageScreen.register();
login.PasswordChangedScreen.register();
login.TermsOfServiceScreen.register();
login.SyncConsentScreen.register();
login.FingerprintSetupScreen.register();
login.ArcTermsOfServiceScreen.register();
......
......@@ -3,7 +3,8 @@
<oobe-adb-sideloading-screen id="adb-sideloading" class="step hidden">
</oobe-adb-sideloading-screen>
<include src="oobe_screen_enable_kiosk.html">
<include src="oobe_screen_terms_of_service.html">
<terms-of-service id="terms-of-service" class="step right hidden">
</terms-of-service>
<include src="oobe_screen_supervision_transition.html">
<include src="oobe_screen_assistant_optin_flow.html">
<include src="../../../../../ui/login/account_picker/chromeos_screen_account_picker.html">
......
......@@ -58,7 +58,6 @@
<link rel="stylesheet" href="oobe_screen_reset.css">
<link rel="stylesheet" href="oobe_screen_autolaunch.css">
<link rel="stylesheet" href="oobe_screen_enable_kiosk.css">
<link rel="stylesheet" href="oobe_screen_terms_of_service.css">
<link rel="stylesheet" href="oobe_screen_auto_enrollment_check.css">
<link rel="stylesheet" href="oobe_screen_supervision_transition.css">
......
......@@ -23,7 +23,6 @@
// <include src="oobe_screen_reset.js">
// <include src="oobe_screen_autolaunch.js">
// <include src="oobe_screen_enable_kiosk.js">
// <include src="oobe_screen_terms_of_service.js">
// <include src="oobe_screen_supervision_transition.js">
// <include src="oobe_screen_assistant_optin_flow.js">
// <include src="oobe_select.js">
......@@ -85,7 +84,6 @@ cr.define('cr.ui.Oobe', function() {
login.ErrorMessageScreen.register();
login.TPMErrorMessageScreen.register();
login.PasswordChangedScreen.register();
login.TermsOfServiceScreen.register();
login.SyncConsentScreen.register();
login.FingerprintSetupScreen.register();
login.ArcTermsOfServiceScreen.register();
......
/* Copyright (c) 2013 The Chromium Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file. */
#terms-of-service {
padding: 70px 17px 21px;
}
#tos-container {
border: 1px solid #d9d9d9;
height: 222px;
}
#terms-of-service .step-contents {
margin-bottom: 49px;
margin-inline-start: 32px;
}
#terms-of-service h1 {
font-size: 100%;
font-weight: normal;
margin: 0 0 8px 0;
width: 630px;
}
#tos-subheading {
color: rgb(100, 100, 100);
font-size: 11px;
margin: 0 0 27px 0;
width: 630px;
}
#tos-container {
margin-inline-end: -2px;
width: 630px;
}
#tos-content {
box-sizing: border-box;
display: flex;
flex-direction: column;
height: 100%;
min-height: 0;
padding: 8px 13px 0 13px;
}
#terms-of-service h2 {
font-size: 100%;
margin: 0 0 13px 0;
}
#tos-content-main {
display: block;
flex: 1;
}
#tos-loading,
#tos-error {
-webkit-align-items: center;
-webkit-flex-direction: column;
-webkit-justify-content: center;
display: none;
height: 100%;
width: 100%;
}
#terms-of-service p {
color: rgb(100, 100, 100);
font-size: 12px;
margin: 0;
text-align: center;
}
#terms-of-service p + p {
margin-top: 4px;
}
.step.tos-loading #tos-content {
display: none;
}
.step.tos-loading #tos-loading {
display: -webkit-flex;
min-height: 0;
}
.step.error #tos-content,
.step.error #tos-accept-button {
display: none;
}
.step.error #tos-error {
display: -webkit-flex;
min-height: 0;
}
#terms-of-service.error #tos-back-button {
margin-inline-end: 1px;
}
<div class="step right hidden tos-loading" id="terms-of-service" hidden>
<div class="step-contents">
<h1 id="tos-heading"></h1>
<div id="tos-subheading"></div>
<div id="tos-container">
<div id="tos-content">
<h2 id="tos-content-heading"></h2>
<webview id="tos-content-main"></webview>
</div>
<div id="tos-loading">
<div>
<p i18n-content="termsOfServiceLoading"></p>
</div>
</div>
<div id="tos-error">
<div>
<p i18n-content="termsOfServiceError"></p>
<p i18n-content="termsOfServiceTryAgain"></p>
</div>
</div>
</div>
</div>
<div id="terms-of-service-controls" class="step-controls"></div>
</div>
// Copyright (c) 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/**
* @fileoverview Oobe Terms of Service screen implementation.
*/
login.createScreen('TermsOfServiceScreen', 'terms-of-service', function() {
return {
EXTERNAL_API:
['setDomain', 'setTermsOfServiceLoadError', 'setTermsOfService'],
/**
* Updates headings on the screen to indicate that the Terms of Service
* being shown belong to |domain|.
* @param {string} domain The domain whose Terms of Service are being shown.
*/
setDomain: function(domain) {
$('tos-heading').textContent =
loadTimeData.getStringF('termsOfServiceScreenHeading', domain);
$('tos-subheading').textContent =
loadTimeData.getStringF('termsOfServiceScreenSubheading', domain);
$('tos-content-heading').textContent =
loadTimeData.getStringF('termsOfServiceContentHeading', domain);
},
/**
* Displays an error message on the Terms of Service screen. Called when the
* download of the Terms of Service has failed.
*/
setTermsOfServiceLoadError: function() {
this.classList.remove('tos-loading');
this.classList.add('error');
},
/**
* Displays the given |termsOfService|, enables the accept button and moves
* the focus to it.
* @param {string} termsOfService The terms of service, as plain text.
*/
setTermsOfService: function(termsOfService) {
this.classList.remove('tos-loading');
// Load the Terms of Service text as data url in a <webview> to ensure
// the content from the web does not load within the privileged WebUI
// process.
$('tos-content-main').src = 'data:text/html;charset=utf-8,' +
encodeURIComponent('<style>' +
'body {' +
' font-family: Roboto, sans-serif;' +
' font-size: 14px;' +
' margin : 0;' +
' padding : 0;' +
' white-space: pre-wrap;' +
'}' +
'</style>' +
'<body>' + termsOfService + '<body>');
$('tos-accept-button').disabled = false;
// Initially, the back button is focused and the accept button is
// disabled.
// Move the focus to the accept button now but only if the user has not
// moved the focus anywhere in the meantime.
if (!$('tos-back-button').blurred)
$('tos-accept-button').focus();
},
/**
* Buttons in Oobe wizard's button strip.
* @type {array} Array of Buttons.
*/
get buttons() {
var buttons = [];
var backButton = this.ownerDocument.createElement('button');
backButton.id = 'tos-back-button';
backButton.textContent =
loadTimeData.getString('termsOfServiceBackButton');
backButton.addEventListener('click', function(event) {
$('tos-back-button').disabled = true;
$('tos-accept-button').disabled = true;
chrome.send('termsOfServiceBack');
});
backButton.addEventListener('blur', function(event) {
this.blurred = true;
});
buttons.push(backButton);
var acceptButton = this.ownerDocument.createElement('button');
acceptButton.id = 'tos-accept-button';
acceptButton.disabled = this.classList.contains('tos-loading');
acceptButton.classList.add('preserve-disabled-state');
acceptButton.textContent =
loadTimeData.getString('termsOfServiceAcceptButton');
acceptButton.addEventListener('click', function(event) {
$('tos-back-button').disabled = true;
$('tos-accept-button').disabled = true;
chrome.send('termsOfServiceAccept');
});
buttons.push(acceptButton);
return buttons;
},
/**
* Returns the control which should receive initial focus.
*/
get defaultControl() {
return $('tos-accept-button').disabled ? $('tos-back-button') :
$('tos-accept-button');
},
};
});
......@@ -8,7 +8,8 @@
<include src="oobe_screen_reset.html">
<include src="oobe_screen_autolaunch.html">
<include src="oobe_screen_enable_kiosk.html">
<include src="oobe_screen_terms_of_service.html">
<terms-of-service id="terms-of-service" class="step right hidden">
</terms-of-service>
<include src="oobe_screen_update.html">
<include src="oobe_screen_auto_enrollment_check.html">
<include src="oobe_screen_hid_detection.html">
......
/* Copyright 2019 The Chromium Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
oobe-dialog > iron-icon.warning {
--iron-icon-fill-color: rgb(219, 68, 55);
}
<!-- Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file. -->
<link rel="import" href="chrome://resources/polymer/v1_0/iron-icon/iron-icon.html">
<link rel="import" href="chrome://resources/polymer/v1_0/iron-iconset-svg/iron-iconset-svg.html">
<link rel="import" href="chrome://resources/cr_elements/icons.html">
<link rel="import" href="chrome://resources/html/i18n_behavior.html">
<link rel="import" href="chrome://oobe/custom_elements.html">
<iron-iconset-svg name="oobe-eula-32" size="32">
<svg>
<defs>
<!-- The Google "G" icon. -->
<g id="googleg" fill="none" fill-rule="evenodd">
<path d="M30.42 16.83c0-1.03-.092-2.017-.264-2.966H16.5v5.61h7.804c-.336 1.81-1.358 3.347-2.894 4.375v3.637h4.686c2.742-2.524 4.324-6.242 4.324-10.657z" fill="#4285F4"></path>
<path d="M16.5 31c3.915 0 7.197-1.298 9.596-3.513L21.41 23.85c-1.298.87-2.96 1.383-4.91 1.383-3.777 0-6.973-2.55-8.113-5.978H3.542v3.757C5.928 27.752 10.832 31 16.5 31z" fill="#34A853"></path>
<path d="M8.387 19.255c-.29-.87-.455-1.8-.455-2.755 0-.956.165-1.885.455-2.755V9.988H3.542C2.56 11.946 2 14.16 2 16.5s.56 4.554 1.542 6.512l4.845-3.757z" fill="#FBBC05"></path>
<path d="M16.5 7.767c2.13 0 4.04.732 5.543 2.168l4.16-4.158C23.69 3.437 20.407 2 16.5 2 10.832 2 5.928 5.25 3.542 9.988l4.845 3.757c1.14-3.427 4.336-5.978 8.113-5.978z" fill="#EA4335"></path>
<path d="M2 2h29v29H2"></path>
</g>
</defs>
</svg>
</iron-iconset-svg>
<iron-iconset-svg name="oobe-eula-64" size="64">
<svg>
<defs>
<!-- The Google "G" icon. -->
<g id="googleg" fill="none" fill-rule="evenodd">
<path d="M59.84 32.66c0-2.057-.185-4.035-.527-5.933H32v11.218h15.607c-.672 3.625-2.715 6.696-5.787 8.753v7.276h9.373c5.483-5.05 8.647-12.483 8.647-21.315z" fill="#4285F4"></path>
<path d="M32 61c7.83 0 14.395-2.597 19.193-7.026l-9.373-7.276c-2.596 1.74-5.918 2.768-9.82 2.768-7.553 0-13.946-5.1-16.227-11.956H6.085v7.514C10.855 54.5 20.665 61 32 61z" fill="#34A853"></path>
<path d="M15.773 37.51c-.58-1.74-.91-3.6-.91-5.51 0-1.91.33-3.77.91-5.51v-7.514H6.085C4.12 22.89 3 27.32 3 32s1.12 9.11 3.085 13.024l9.688-7.514z" fill="#FBBC05"></path>
<path d="M32 14.534c4.258 0 8.08 1.463 11.086 4.337l8.318-8.317C46.38 5.873 39.817 3 32 3 20.664 3 10.856 9.5 6.085 18.976l9.688 7.514c2.28-6.855 8.674-11.956 16.227-11.956z" fill="#EA4335"></path>
<path d="M3 3h58v58H3"></path>
</g>
</defs>
</svg>
</iron-iconset-svg>
<dom-module id="terms-of-service">
<template>
<link rel="stylesheet" href="chrome://resources/css/throbber.css">
<link rel="stylesheet" href="oobe_dialog_host.css">
<link rel="stylesheet" href="oobe_terms_of_service.css">
<link rel="stylesheet" href="oobe_flex_layout.css">
<!-- ERROR DIALOG -->
<oobe-dialog id="termsOfServiceErrorDialog" role="dialog"
aria-labelledby="title"
hidden="[[!isInErrorState_(uiState)]]" has-buttons>
<iron-icon icon="cr:warning" slot="oobe-icon" class="warning">
</iron-icon>
<h1 id="title" slot="title">
<div>
[[i18nDynamic(locale, 'termsOfServiceError')]]
</div>
</h1>
<div slot="subtitle">
<div>
[[i18nDynamic(locale, 'termsOfServiceTryAgain')]]
</div>
</div>
<div slot="bottom-buttons" class="flex layout horizontal">
<oobe-back-button id="errorBackButton"
disabled="[[backButtonDisabled_]]"
on-tap="onTosBackButtonPressed_"></oobe-back-button>
</div>
</oobe-dialog>
<!-- NORMAL DIALOG -->
<oobe-dialog id="termsOfServiceDialog" role="dialog"
aria-labelledby="title"
hidden="[[isInErrorState_(uiState)]]" has-buttons>
<hd-iron-icon slot="oobe-icon" id="termsOfServiceGoogleIcon"
icon1x="oobe-eula-32:googleg" icon2x="oobe-eula-64:googleg">
</hd-iron-icon>
<h1 id="title" slot="title">
<div id="tosHeading">[[i18nDynamic(locale,
'termsOfServiceScreenHeading',
tosDomain_)]]</div>
</h1>
<div slot="subtitle">
<div id="tosSubheading">[[i18nDynamic(locale,
'termsOfServiceScreenSubheading',
tosDomain_)]]</div>
</div>
<div slot="footer" class="flex layout center-justified vertical">
<div hidden="[[!isLoading_(uiState)]]">
<throbber-notice id="termsOfServiceLoadingThrobber"
text="[[i18nDynamic(locale, termsOfServiceLoading)]]">
</throbber-notice>
</div>
<webview id="termsOfServiceFrame" hidden="[[isLoading_(uiState)]]"
role="document" class="focus-on-show flex">
</webview>
</div>
<div slot="bottom-buttons" class="flex layout horizontal end-justified">
<oobe-back-button id="backButton" disabled="[[backButtonDisabled_]]"
on-tap="onTosBackButtonPressed_"></oobe-back-button>
<oobe-text-button id="acceptButton" inverse
disabled="[[acceptButtonDisabled_]]"
on-tap="onTermsOfServiceAccepted_">
<div>
[[i18nDynamic(locale, 'termsOfServiceAcceptButton')]]
</div>
</oobe-text-button>
</div>
</oobe-dialog>
</template>
</dom-module>
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Enum that describes the current state of the Terms Of Service screen
var TermsOfServiceScreenState = {LOADING: 0, LOADED: 1, ERROR: 2};
/**
* @fileoverview Polymer element for displaying material design Terms Of Service
* screen.
*/
Polymer({
is: 'terms-of-service',
behaviors: [I18nBehavior, OobeDialogHostBehavior, LoginScreenBehavior],
properties: {
// Whether the back button is disabled.
backButtonDisabled_: {type: Boolean, value: false},
// Whether the accept button is disabled.
acceptButtonDisabled_: {type: Boolean, value: true},
// The domain that the terms of service belongs to.
tosDomain_: {type: String, value: ''},
// The current state of the screen.
uiState: {type: Number, value: 0 /* TermsOfServiceScreenState.LOADING */},
},
// Whether the screen is still loading.
isLoading_: function(state) {
return state == TermsOfServiceScreenState.LOADING;
},
// Whether the screen has finished loading.
isLoaded_: function(state) {
return state == TermsOfServiceScreenState.LOADED;
},
// Whether the screen is in an error state.
isInErrorState_: function(state) {
return state == TermsOfServiceScreenState.ERROR;
},
EXTERNAL_API: [
'setDomain',
'setTermsOfServiceLoadError',
'setTermsOfService',
],
/** @override */
ready: function() {
this.initializeLoginScreen('TermsOfServiceScreen', {
resetAllowed: true,
enableDebuggingAllowed: true,
});
},
focus: function() {
this.$.termsOfServiceDialog.show();
},
/** Called when dialog is shown */
onBeforeShow: function() {
this.behaviors.forEach((behavior) => {
if (behavior.onBeforeShow)
behavior.onBeforeShow.call(this);
});
},
/**
* This is called when strings are updated.
* @override
*/
updateLocalizedContent: function(event) {
this.i18nUpdateLocale();
},
/**
* The 'on-tap' event handler for the 'Accept' button.
* @private
*/
onTermsOfServiceAccepted_: function() {
// Ignore on-tap events when disabled.
// TODO: Polymer Migration - Remove this when the migration is finished.
// See: https://github.com/Polymer/polymer/issues/4685
if (this.acceptButtonDisabled_)
return;
this.backButtonDisabled_ = true;
this.acceptButtonDisabled_ = true;
chrome.send('termsOfServiceAccept');
},
/**
* The 'on-tap' event handler for the 'Back' button.
* @private
*/
onTosBackButtonPressed_: function() {
// Ignore on-tap events when disabled.
// TODO: Polymer Migration - Remove this when the migration is finished.
// See: https://github.com/Polymer/polymer/issues/4685
if (this.backButtonDisabled_)
return;
this.backButtonDisabled_ = true;
this.acceptButtonDisabled_ = true;
chrome.send('termsOfServiceBack');
},
/**
* Updates headings on the screen to indicate that the Terms of Service
* being shown belong to |domain|.
* @param {string} domain The domain whose Terms of Service are being shown.
*/
setDomain: function(domain) {
this.tosDomain_ = domain;
},
/**
* Displays an error message on the Terms of Service screen. Called when the
* download of the Terms of Service has failed.
*/
setTermsOfServiceLoadError: function() {
// Disable the accept button, hide the iframe, show warning icon.
this.uiState = TermsOfServiceScreenState.ERROR;
this.acceptButtonDisabled_ = true;
this.backButtonDisabled_ = false;
},
/**
* Displays the given |termsOfService| and enables the accept button.
* @param {string} termsOfService The terms of service, as plain text.
*/
setTermsOfService: function(termsOfService) {
this.$.termsOfServiceFrame.src =
'data:text/html;charset=utf-8,' +
encodeURIComponent(
'<style>' +
'body {' +
' font-family: Roboto, sans-serif;' +
' color: RGBA(0,0,0,.87);' +
' font-size: 14sp;' +
' margin : 0;' +
' padding : 0;' +
' white-space: pre-wrap;' +
'}' +
'#tosContainer {' +
' overflow: auto;' +
' height: 99%;' +
' border: 0.5px solid rgb(224, 224, 224);' +
' border-radius: 4px;' +
' box-shadow: inset 0 0 4px 4px rgba(224, 224, 224, .5);' +
' padding-left: 16px;' +
' padding-right: 16px;' +
'}' +
'#tosContainer::-webkit-scrollbar-thumb {' +
' border-radius: 10px;' +
'}' +
'</style>' +
'<body><div id="tosContainer">' + termsOfService + '</div>' +
'</body>');
// Mark the loading as complete.
this.acceptButtonDisabled_ = false;
this.uiState = TermsOfServiceScreenState.LOADED;
},
});
......@@ -103,7 +103,8 @@ cr.define('cr.ui.login', function() {
/**
* Group of screens (screen IDs) where factory-reset screen invocation is
* available.
* available. Newer screens using Polymer use the attribute
* `resetAllowed` in their `ready()` method.
* @type Array<string>
* @const
*/
......@@ -119,7 +120,6 @@ cr.define('cr.ui.login', function() {
SCREEN_ERROR_MESSAGE,
SCREEN_TPM_ERROR,
SCREEN_PASSWORD_CHANGED,
SCREEN_TERMS_OF_SERVICE,
SCREEN_ARC_TERMS_OF_SERVICE,
SCREEN_WRONG_HWID,
SCREEN_CONFIRM_PASSWORD,
......@@ -134,7 +134,8 @@ cr.define('cr.ui.login', function() {
/**
* Group of screens (screen IDs) where enable debuggingscreen invocation is
* available.
* available. Newer screens using Polymer use the attribute
* `enableDebuggingAllowed` in their `ready()` method.
* @type Array<string>
* @const
*/
......@@ -142,8 +143,7 @@ cr.define('cr.ui.login', function() {
SCREEN_OOBE_HID_DETECTION,
SCREEN_OOBE_NETWORK,
SCREEN_OOBE_EULA,
SCREEN_OOBE_UPDATE,
SCREEN_TERMS_OF_SERVICE
SCREEN_OOBE_UPDATE
];
/**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment