summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrsorokin <rsorokin@chromium.org>2015-02-19 11:10:52 -0800
committerCommit bot <commit-bot@chromium.org>2015-02-19 19:11:34 +0000
commit7e757cb1c68a2843ad91c949f42f8200d748b62c (patch)
tree575172af19767b47c363f1111d10f35190f602f9
parent081765c8b5103397acf81ec03e61d6b2a0250b10 (diff)
downloadchromium_src-7e757cb1c68a2843ad91c949f42f8200d748b62c.zip
chromium_src-7e757cb1c68a2843ad91c949f42f8200d748b62c.tar.gz
chromium_src-7e757cb1c68a2843ad91c949f42f8200d748b62c.tar.bz2
Chrome OS Gaia: UI specific changes to implement MinuteMaid flow.
Gaia takes full window Show guest button on gaia screen Show more settings button for creation supervised users Hide enterprise container BUG=451959 TBR=oshima@chromium.org Review URL: https://codereview.chromium.org/930953002 Cr-Commit-Position: refs/heads/master@{#317088}
-rw-r--r--chrome/app/theme/default_100_percent/cros/icon_more_vert_white.pngbin0 -> 219 bytes
-rw-r--r--chrome/app/theme/default_200_percent/cros/icon_more_vert_white.pngbin0 -> 313 bytes
-rw-r--r--chrome/app/theme/theme_resources.grd1
-rw-r--r--chrome/browser/resources/chromeos/login/header_bar.css26
-rw-r--r--chrome/browser/resources/chromeos/login/header_bar.html12
-rw-r--r--chrome/browser/resources/chromeos/login/header_bar.js71
-rw-r--r--chrome/browser/resources/chromeos/login/screen_gaia_signin.css23
-rw-r--r--chrome/browser/resources/chromeos/login/screen_gaia_signin.html2
-rw-r--r--chrome/browser/resources/chromeos/login/screen_gaia_signin.js51
-rw-r--r--chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.cc15
-rw-r--r--ui/login/screen_container.css11
11 files changed, 195 insertions, 17 deletions
diff --git a/chrome/app/theme/default_100_percent/cros/icon_more_vert_white.png b/chrome/app/theme/default_100_percent/cros/icon_more_vert_white.png
new file mode 100644
index 0000000..fdc4a5a
--- /dev/null
+++ b/chrome/app/theme/default_100_percent/cros/icon_more_vert_white.png
Binary files differ
diff --git a/chrome/app/theme/default_200_percent/cros/icon_more_vert_white.png b/chrome/app/theme/default_200_percent/cros/icon_more_vert_white.png
new file mode 100644
index 0000000..2955c02
--- /dev/null
+++ b/chrome/app/theme/default_200_percent/cros/icon_more_vert_white.png
Binary files differ
diff --git a/chrome/app/theme/theme_resources.grd b/chrome/app/theme/theme_resources.grd
index 981fed8..445a8f7 100644
--- a/chrome/app/theme/theme_resources.grd
+++ b/chrome/app/theme/theme_resources.grd
@@ -392,6 +392,7 @@
</if>
<if expr="chromeos">
<structure type="chrome_scaled_image" name="IDR_ICON_ADD_USER_WHITE" file="cros/icon_add_user_white.png" />
+ <structure type="chrome_scaled_image" name="IDR_ICON_MORE_VERT_WHITE" file="cros/icon_more_vert_white.png" />
<structure type="chrome_scaled_image" name="IDR_ICON_GUEST_WHITE" file="cros/icon_guest_white.png" />
<structure type="chrome_scaled_image" name="IDR_ICON_POWER_WHITE" file="cros/icon_power_white.png" />
</if>
diff --git a/chrome/browser/resources/chromeos/login/header_bar.css b/chrome/browser/resources/chromeos/login/header_bar.css
index 7676f02..c199d22 100644
--- a/chrome/browser/resources/chromeos/login/header_bar.css
+++ b/chrome/browser/resources/chromeos/login/header_bar.css
@@ -65,6 +65,22 @@ html[screen=oobe] .login-header-bar-animate-slow {
height: 34px;
}
+.add-supervised-user-menu {
+ display: none;
+}
+
+#more-settings-header-bar-item.active .add-supervised-user-menu {
+ background-color: white;
+ border: 1px solid lightgray;
+ border-radius: 2px;
+ bottom: 15px;
+ display: block;
+ font-size: 13px;
+ left: 15px;
+ position: absolute;
+ width: 220px;
+}
+
html[dir=rtl] .header-bar-item {
background-position: right center;
}
@@ -73,6 +89,7 @@ html[dir=rtl] .header-bar-item {
#login-header-bar #restart-button,
#login-header-bar #add-user-button,
#login-header-bar #guest-user-button,
+#login-header-bar #more-settings-button,
#login-header-bar #cancel-multiple-sign-in-button {
-webkit-padding-start: 24px;
background-position: left center;
@@ -83,11 +100,16 @@ html[dir=rtl] .header-bar-item {
html[dir=rtl] #login-header-bar #shutdown-button,
html[dir=rtl] #login-header-bar #restart-button,
html[dir=rtl] #login-header-bar #add-user-button,
+html[dir=rtl] #login-header-bar #more-settings-button,
html[dir=rtl] #login-header-bar #guest-user-button,
html[dir=rtl] #login-header-bar #cancel-multiple-sign-in-button {
background-position: right center;
}
+#login-header-bar #more-settings-header-bar-item {
+ position: relative;
+}
+
#login-header-bar #shutdown-button {
background-image: url(chrome://theme/IDR_ICON_POWER_WHITE);
}
@@ -100,6 +122,10 @@ html[dir=rtl] #login-header-bar #cancel-multiple-sign-in-button {
background-image: url(chrome://theme/IDR_ICON_ADD_USER_WHITE);
}
+#login-header-bar #more-settings-button {
+ background-image: url(chrome://theme/IDR_ICON_MORE_VERT_WHITE);
+}
+
#login-header-bar #guest-user-button {
background-image: url(chrome://theme/IDR_ICON_GUEST_WHITE);
}
diff --git a/chrome/browser/resources/chromeos/login/header_bar.html b/chrome/browser/resources/chromeos/login/header_bar.html
index b523745..a106c250 100644
--- a/chrome/browser/resources/chromeos/login/header_bar.html
+++ b/chrome/browser/resources/chromeos/login/header_bar.html
@@ -11,15 +11,21 @@
<button id="show-apps-button" class="custom-appearance"
i18n-content="showApps"></button>
</div>
+ <div id="guest-user-header-bar-item" class="header-bar-item" hidden>
+ <button id="guest-user-button" class="custom-appearance"
+ i18n-content="browseAsGuest"></button>
+ </div>
<div id="add-user-header-bar-item" class="header-bar-item" hidden>
<button id="add-user-button" class="custom-appearance"
i18n-content="addUser"></button>
<button id="cancel-add-user-button" class="custom-appearance"
i18n-content="cancel" hidden></button>
</div>
- <div id="guest-user-header-bar-item" class="header-bar-item" hidden>
- <button id="guest-user-button" class="custom-appearance"
- i18n-content="browseAsGuest"></button>
+ <div id="more-settings-header-bar-item" class="header-bar-item">
+ <button id="more-settings-button" class="custom-appearance"></button>
+ <div class="add-supervised-user-menu" aria-label="Add supervised user">
+ <span class="add-supervised-user-command">Add supervised user</span>
+ </div>
</div>
<div id="sign-out-user-item" class="header-bar-item" hidden>
<button id="sign-out-user-button" class="custom-appearance"
diff --git a/chrome/browser/resources/chromeos/login/header_bar.js b/chrome/browser/resources/chromeos/login/header_bar.js
index d1d9781..2a3b622 100644
--- a/chrome/browser/resources/chromeos/login/header_bar.js
+++ b/chrome/browser/resources/chromeos/login/header_bar.js
@@ -21,6 +21,9 @@ cr.define('login', function() {
// Whether guest button should be shown when header bar is in normal mode.
showGuest_: false,
+ // Whehter MinuteMaid flow is active.
+ isMinuteMaid_: false,
+
// Whether the reboot button should be shown the when header bar is in
// normal mode.
showReboot_: false,
@@ -29,6 +32,10 @@ cr.define('login', function() {
// normal mode.
showShutdown_: true,
+ // Whether the create supervised user button should be shown when the header
+ // bar is in normal mode. It will be shown in "More settings" menu.
+ showCreateSupervised_: false,
+
// Current UI state of the sign-in screen.
signinUIState_: SIGNIN_UI_STATE.HIDDEN,
@@ -37,6 +44,7 @@ cr.define('login', function() {
/** @override */
decorate: function() {
+ document.addEventListener('click', this.handleClick_.bind(this));
$('shutdown-header-bar-item').addEventListener('click',
this.handleShutdownClick_);
$('shutdown-button').addEventListener('click',
@@ -47,6 +55,8 @@ cr.define('login', function() {
this.handleShutdownClick_);
$('add-user-button').addEventListener('click',
this.handleAddUserClick_);
+ $('more-settings-button').addEventListener('click',
+ this.handleMoreSettingsClick_.bind(this));
$('cancel-add-user-button').addEventListener('click',
this.handleCancelAddUserClick_);
$('guest-user-header-bar-item').addEventListener('click',
@@ -60,6 +70,8 @@ cr.define('login', function() {
$('cancel-consumer-management-enrollment-button').addEventListener(
'click',
this.handleCancelConsumerManagementEnrollmentClick_);
+ this.addSupervisedUserMenu.addEventListener('click',
+ this.handleAddSupervisedUserClick_.bind(this));
if (Oobe.getInstance().displayType == DISPLAY_TYPE.LOGIN ||
Oobe.getInstance().displayType == DISPLAY_TYPE.OOBE) {
if (Oobe.getInstance().newKioskUI)
@@ -94,6 +106,32 @@ cr.define('login', function() {
button.disabled = value;
},
+ get getMoreSettingsMenu() {
+ return $('more-settings-header-bar-item');
+ },
+
+ get addSupervisedUserMenu() {
+ return this.querySelector('.add-supervised-user-menu');
+ },
+
+ /**
+ * Whether action box button is in active state.
+ * @type {boolean}
+ */
+ get isMoreSettingsActive() {
+ return this.getMoreSettingsMenu.classList.contains('active');
+ },
+ set isMoreSettingsActive(active) {
+ if (active == this.isMoreSettingsActive)
+ return;
+ if (active) {
+ this.getMoreSettingsMenu.classList.add('active');
+ } else {
+ this.getMoreSettingsMenu.classList.remove('active');
+ }
+ },
+
+
/**
* Add user button click handler.
*
@@ -107,6 +145,19 @@ cr.define('login', function() {
e.stopPropagation();
},
+ handleMoreSettingsClick_: function(e) {
+ this.isMoreSettingsActive = !this.isMoreSettingsActive;
+ e.stopPropagation();
+ },
+
+ handleClick_: function(e) {
+ this.isMoreSettingsActive = false;
+ },
+
+ handleAddSupervisedUserClick_: function(e) {
+ chrome.send('showSupervisedUserCreationScreen');
+ e.preventDefault();
+ },
/**
* Cancel add user button click handler.
*
@@ -188,6 +239,16 @@ cr.define('login', function() {
this.updateUI_();
},
+ set minuteMaid(value) {
+ this.isMinuteMaid_ = value;
+ this.updateUI_();
+ },
+
+ set showCreateSupervisedButton(value) {
+ this.showCreateSupervised_ = value;
+ this.updateUI_();
+ },
+
/**
* If true the "Restart" button is shown.
*
@@ -267,11 +328,17 @@ cr.define('login', function() {
$('add-user-button').hidden =
!accountPickerIsActive || isMultiProfilesUI || isLockScreen;
- $('cancel-add-user-button').hidden = accountPickerIsActive ||
+ $('more-settings-header-bar-item').hidden = !this.isMinuteMaid_ ||
+ !gaiaIsActive ||
+ !this.showCreateSupervised_;
+ $('cancel-add-user-button').hidden =
+ (gaiaIsActive && this.isMinuteMaid_) ||
+ accountPickerIsActive ||
!this.allowCancel_ ||
wrongHWIDWarningIsActive ||
isMultiProfilesUI;
- $('guest-user-header-bar-item').hidden = gaiaIsActive ||
+ $('guest-user-header-bar-item').hidden =
+ (gaiaIsActive && !this.isMinuteMaid_) ||
supervisedUserCreationDialogIsActive ||
!this.showGuest_ ||
wrongHWIDWarningIsActive ||
diff --git a/chrome/browser/resources/chromeos/login/screen_gaia_signin.css b/chrome/browser/resources/chromeos/login/screen_gaia_signin.css
index 37a2808..aeacbd9 100644
--- a/chrome/browser/resources/chromeos/login/screen_gaia_signin.css
+++ b/chrome/browser/resources/chromeos/login/screen_gaia_signin.css
@@ -13,6 +13,11 @@
width: 522px;
}
+.minute-maid #gaia-signin {
+ background: rgb(66, 133, 244);
+ padding: 50px 0 0 0;
+ width: 522px;
+}
#gaia-signin.full-width {
padding: 75px 0 0;
}
@@ -37,10 +42,19 @@
}
}
+.minute-maid #signin-right,
.no-right-panel #signin-right {
display: none;
}
+.minute-maid #close-button-item {
+ background: transparent none;
+ background-image: url(chrome://theme/IDR_PANEL_CLOSE);
+ background-position: left center;
+ background-repeat: no-repeat;
+ background-size: 30px;
+}
+
.signin-text {
color: #666;
margin-top: 20px;
@@ -63,6 +77,8 @@
height: 100%;
}
+.minute-maid #signin-frame,
+.minute-maid #gaia-signin-form-container,
.full-width #signin-frame,
.full-width #gaia-signin-form-container {
width: 100%;
@@ -78,6 +94,8 @@
width: 1px;
}
+.gaia-signin .minute-maid #step-logo,
+.gaia-signin .minute-maid #gaia-signin-divider,
.no-right-panel #gaia-signin-divider {
display: none;
}
@@ -91,6 +109,7 @@
webview#signin-frame {
display: block;
+ margin-left: 0;
overflow: hidden;
padding: 0;
}
@@ -117,6 +136,10 @@ webview#signin-frame {
text-align: center;
}
+.minute-maid #enterprise-info-container {
+ display: none;
+}
+
#enterprise-info-container #enterprise-info {
display: inline-block;
}
diff --git a/chrome/browser/resources/chromeos/login/screen_gaia_signin.html b/chrome/browser/resources/chromeos/login/screen_gaia_signin.html
index acae182..f16eef8 100644
--- a/chrome/browser/resources/chromeos/login/screen_gaia_signin.html
+++ b/chrome/browser/resources/chromeos/login/screen_gaia_signin.html
@@ -1,5 +1,7 @@
<div class="step right hidden" id="gaia-signin" role="group"
aria-live="polite" hidden>
+ <div id="close-button-item" hidden>
+ </div>
<div class="step-contents">
<div id="gaia-signin-form-container">
<div id="login-box"><!-- Aligned with the login box in iframe --></div>
diff --git a/chrome/browser/resources/chromeos/login/screen_gaia_signin.js b/chrome/browser/resources/chromeos/login/screen_gaia_signin.js
index bd0de57..cde1b91 100644
--- a/chrome/browser/resources/chromeos/login/screen_gaia_signin.js
+++ b/chrome/browser/resources/chromeos/login/screen_gaia_signin.js
@@ -48,6 +48,12 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
isLocal_: false,
/**
+ * Whether MinuteMaid flow is active.
+ * @type {boolean}
+ */
+ isMinuteMaid: false,
+
+ /**
* Email of the user, which is logging in using offline mode.
* @type {string}
*/
@@ -138,6 +144,11 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
e.preventDefault();
});
+ $('close-button-item').addEventListener('click', function(e) {
+ this.cancel();
+ e.preventDefault();
+ }.bind(this));
+
this.updateLocalizedContent();
},
@@ -300,11 +311,20 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
if (data.localizedStrings)
params.localizedStrings = data.localizedStrings;
- if (data.gaiaEndpoint) {
+ if (data.useMinuteMaid) {
+ this.isMinuteMaid = true;
+ $('inner-container').classList.add('minute-maid');
+ $('progress-dots').hidden = true;
data.useEmbedded = false;
- params.gaiaPath = data.gaiaEndpoint;
+ $('login-header-bar').showGuestButton = true;
}
+ if (data.gaiaEndpoint)
+ params.gaiaPath = data.gaiaEndpoint;
+
+ $('login-header-bar').minuteMaid = this.isMinuteMaid;
+
+
if (data.useEmbedded)
params.gaiaPath = 'EmbeddedSignIn';
@@ -346,16 +366,21 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
reasonLabel.hidden = true;
}
- $('createAccount').hidden = !data.createAccount;
- $('guestSignin').hidden = !data.guestSignin;
- $('createSupervisedUserPane').hidden = !data.supervisedUsersEnabled;
-
- $('createSupervisedUserLinkPlaceholder').hidden =
- !data.supervisedUsersCanCreate;
- $('createSupervisedUserNoManagerText').hidden =
- data.supervisedUsersCanCreate;
- $('createSupervisedUserNoManagerText').textContent =
- data.supervisedUsersRestrictionReason;
+ if (this.isMinuteMaid) {
+ $('login-header-bar').showCreateSupervisedButton =
+ data.supervisedUsersCanCreate;
+ } else {
+ $('createAccount').hidden = !data.createAccount;
+ $('guestSignin').hidden = !data.guestSignin;
+ $('createSupervisedUserPane').hidden = !data.supervisedUsersEnabled;
+
+ $('createSupervisedUserLinkPlaceholder').hidden =
+ !data.supervisedUsersCanCreate;
+ $('createSupervisedUserNoManagerText').hidden =
+ data.supervisedUsersCanCreate;
+ $('createSupervisedUserNoManagerText').textContent =
+ data.supervisedUsersRestrictionReason;
+ }
var isEnrollingConsumerManagement = data.isEnrollingConsumerManagement;
$('consumerManagementEnrollment').hidden = !isEnrollingConsumerManagement;
@@ -384,6 +409,7 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
updateCancelButtonState: function() {
this.cancelAllowed_ = this.isShowUsers_ && $('pod-row').pods.length;
$('login-header-bar').allowCancel = this.cancelAllowed_;
+ $('close-button-item').hidden = !this.cancelAllowed_;
},
switchToFullTab: function() {
@@ -419,6 +445,7 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
if (Oobe.getInstance().currentScreen === this) {
Oobe.getInstance().updateScreenSize(this);
$('login-header-bar').allowCancel = isSAML || this.cancelAllowed_;
+ $('close-button-item').hidden = !(isSAML || this.cancelAllowed_);
}
},
diff --git a/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.cc
index 2551a84..7758c65 100644
--- a/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.cc
+++ b/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.cc
@@ -53,6 +53,9 @@ const char kAuthIframeParentName[] = "signin-frame";
const char kAuthIframeParentOrigin[] =
"chrome-extension://mfffpogegjflfpflabcdkioaeobkgjik/";
+// TODO(rsorokin): Move this to the proper file.
+const char kMinuteMaidPath[] = "ChromeOsEmbeddedSetup";
+
void UpdateAuthParams(base::DictionaryValue* params,
bool has_users,
bool is_enrolling_consumer_management) {
@@ -220,6 +223,14 @@ void GaiaScreenHandler::LoadGaia(const GaiaContext& context) {
base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+ if (StartupUtils::IsWebviewSigninEnabled()) {
+ params.SetBoolean("useMinuteMaid", true);
+ if (!command_line->HasSwitch(switches::kGaiaEndpointChromeOS)) {
+ command_line->AppendSwitchASCII(switches::kGaiaEndpointChromeOS,
+ kMinuteMaidPath);
+ }
+ }
+
const GURL gaia_url =
command_line->HasSwitch(::switches::kGaiaUrl)
? GURL(command_line->GetSwitchValueASCII(::switches::kGaiaUrl))
@@ -711,6 +722,10 @@ void GaiaScreenHandler::ShowGaiaScreenIfReady() {
}
void GaiaScreenHandler::MaybePreloadAuthExtension() {
+ // TODO(rsorokin): Revert that when issue with hidden webview load will be
+ // fixed.
+ if (StartupUtils::IsWebviewSigninEnabled())
+ return;
VLOG(1) << "MaybePreloadAuthExtension() call.";
// If cookies clearing was initiated or |dns_clear_task_running_| then auth
diff --git a/ui/login/screen_container.css b/ui/login/screen_container.css
index c19983d..dcecc38 100644
--- a/ui/login/screen_container.css
+++ b/ui/login/screen_container.css
@@ -105,6 +105,17 @@
top: 15px;
}
+#close-button-item {
+ -webkit-margin-start: 17px;
+ display: flex;
+ position: absolute;
+ right: 15px;
+ top: 15px;
+ width: 30px;
+ height: 30px;
+ z-index: 1;
+}
+
#progress-dots {
-webkit-box-pack: center;
-webkit-transition: opacity 200ms ease-in-out,