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

Unified Diff: chrome/browser/resources/chromeos/login/oobe_welcome.js

Issue 2067153002: ChromeOS: Implement Network Selection screen of material design OOBE. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed tests. Created 4 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/chromeos/login/oobe_welcome.js
diff --git a/chrome/browser/resources/chromeos/login/oobe_welcome.js b/chrome/browser/resources/chromeos/login/oobe_welcome.js
index 3500dcd1162526f732e1797be8180a0eef5b67da..875748f1c21f894d88d4a2eb827d708b11a38160 100644
--- a/chrome/browser/resources/chromeos/login/oobe_welcome.js
+++ b/chrome/browser/resources/chromeos/login/oobe_welcome.js
@@ -2,30 +2,178 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+/**
+ * @fileoverview Polymer element for displaying material design OOBE.
+ */
+
Polymer({
is: 'oobe-welcome-md',
properties: {
- disabled: {
- type: Boolean,
- value: false,
- },
+ /**
+ * Currently selected system language.
+ */
currentLanguage: {
type: String,
value: 'English (US)',
},
},
+ /**
+ * GUID of the user-selected network. It is remembered after user taps on
+ * network entry. After we receive event "connected" on this network,
+ * OOBE will proceed.
+ */
+ networkLastSelectedGuid_: '',
+
+ /**
+ * Set proper focus.
stevenjb 2016/07/07 17:36:17 Sets
Alexander Alekseev 2016/07/08 01:12:28 Done.
+ */
focus: function() {
this.$.welcomeNextButton.focus();
},
+ /**
+ * Handle "visible" event.
stevenjb 2016/07/07 17:36:17 Handles (here and below)
Alexander Alekseev 2016/07/08 01:12:28 Done.
+ *
stevenjb 2016/07/07 17:36:17 nit: Empty line before @private is not needed.
Alexander Alekseev 2016/07/08 01:12:28 Done.
+ * @private
+ */
onAnimationFinish_: function() {
this.focus();
},
+ /**
+ * Handle "Next" button for "Welcome" screen.
+ *
+ * @private
+ */
onWelcomeNextButtonClicked_: function() {
+ this.$.networkSelect.maxHeight = 280;
stevenjb 2016/07/07 17:36:17 Instead of setting maxHeight to a specific value h
Alexander Alekseev 2016/07/08 01:12:29 maxHeight is not CSS attribute here, and setting i
stevenjb 2016/07/08 17:43:35 We should figure it out, because somebody later on
Alexander Alekseev 2016/07/09 04:31:30 It seems that it works now, so this is done.
+ this.$.networkSelect.showActive = false;
+ var self = this;
+ this.$.networkSelect.customItems = [
+ {
+ customItemName: 'proxySettingsMenuName',
+ polymerIcon: 'oobe-welcome:add',
+ customData: {
+ onTap: function() { self.OpenProxySettingsDialog_(); },
+ },
+ },
+ {
+ customItemName: 'addWiFiNetworkMenuName',
+ polymerIcon: 'oobe-welcome:add',
+ customData: {
+ onTap: function() { self.OpenAddWiFiNetworkDialog_(); },
+ },
+ },
+ {
+ customItemName: 'addMobileNetworkMenuName',
+ polymerIcon: 'oobe-welcome:add',
+ customData: {
+ onTap: function() { self.OpenAddWiFiNetworkDialog_(); },
+ },
+ },
+ ];
+ var self = this;
stevenjb 2016/07/07 17:36:17 ?
Alexander Alekseev 2016/07/08 01:12:29 Done.
+ this.$.networkSection.hidden = false;
+ this.$.welcomeSection.hidden = true;
+ },
+
+ /**
+ * Handle Networwork Setup screen "Proxy settings" button.
+ *
+ * @private
+ */
+ OpenProxySettingsDialog_: function(item) {
+ chrome.send('launchProxySettingsDialog');
+ },
+
+ /**
+ * Handle Networwork Setup screen "Add WiFi network" button.
+ *
+ * @private
+ */
+ OpenAddWiFiNetworkDialog_: function(item) {
+ chrome.send('launchAddWiFiNetworkDialog');
+ },
+
+ /**
+ * Handle Networwork Setup screen "Add cellular network" button.
+ *
+ * @private
+ */
+ OpenAddMobileNetworkDialog_: function(item) {
+ chrome.send('launchAddMobileNetworkDialog');
+ },
+
+ /**
+ * This is called when network setup is done.
+ *
+ * @private
+ */
+ onSelectedNetworkConnected_: function() {
$('oobe-connect').hidden = false;
$('oobe-welcome-md').hidden = true;
- }
+ },
+
+ /**
+ * This is called on every network that has "Connected" state.
stevenjb 2016/07/07 17:36:17 This gets called when a network enters the 'Connec
Alexander Alekseev 2016/07/08 01:12:28 Done.
+ *
+ * @param {!{detail: !CrOnc.NetworkStateProperties}} event
+ * @private
+ */
+ onNetworkConnected_: function(event) {
+ var state = event.detail;
+ if (state.GUID != this.networkLastSelectedGuid_)
+ return;
+
+ this.onSelectedNetworkConnected_();
+ },
+
+ /**
+ * This is called when user taps on network entry in networks list.
+ *
+ * @param {!{detail: !CrOnc.NetworkStateProperties}} event
+ * @private
+ */
+ onNetworkListNetworkItemSelected_: function(event) {
+ var state = event.detail;
+ // If user has not previously made a selection and selected network
+ // is already connected, just continue to the next screen.
+ if (this.networkLastSelectedGuid_ == '' &&
+ state.ConnectionState == CrOnc.ConnectionState.CONNECTED) {
+ this.onSelectedNetworkConnected_();
+ }
+
+ // If user has previously selected another network, there
+ // is pending connection attempt. So even if new selection is currently
+ // connected, it may get disconnected at any time.
+ // So just send one more connection request to cancel current attempts.
+ this.networkLastSelectedGuid_ = state.GUID;
+
+ var self = this;
+ var networkStateCopy = JSON.parse(JSON.stringify(state));
stevenjb 2016/07/07 17:36:17 var networkStateCopy = Object.assign({}, state);
Alexander Alekseev 2016/07/08 01:12:28 Done.
+
+ chrome.networkingPrivate.startConnect(state.GUID, function() {
+ var lastError = chrome.runtime.lastError;
+ if (!lastError)
+ return;
+
+ if (lastError.message == 'connected') {
+ self.onNetworkConnected_({'detail': networkStateCopy});
+ return;
+ }
+
+ if (lastError.message != 'connecting')
+ console.error('networkingPrivate.startConnect error: ' + lastError);
+ });
+ },
+
+ /**
+ * @param {!Event} event
+ */
+ onNetworkListCustomItemSelected_: function(e) {
+ var itemState = e.detail;
+ itemState.customData.onTap();
+ },
});

Powered by Google App Engine
This is Rietveld 408576698