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

Unified Diff: ui/webui/resources/cr_elements/v1_0/network/cr_network_select.js

Issue 1277223002: Add cr-network-select element for selecting a Chrome OS network (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@issue_515987_network_configure
Patch Set: Created 5 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 side-by-side diff with in-line comments
Download patch
Index: ui/webui/resources/cr_elements/v1_0/network/cr_network_select.js
diff --git a/ui/webui/resources/cr_elements/v1_0/network/cr_network_select.js b/ui/webui/resources/cr_elements/v1_0/network/cr_network_select.js
new file mode 100644
index 0000000000000000000000000000000000000000..f2a9077e693bbd1cf20eedfaf231d01de827c69a
--- /dev/null
+++ b/ui/webui/resources/cr_elements/v1_0/network/cr_network_select.js
@@ -0,0 +1,103 @@
+// Copyright 2015 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 Polymer element wrapping cr-network-list including th
michaelpg 2015/08/10 07:35:03 +e
stevenjb 2015/08/10 19:19:48 Done.
+ * networkingPrivate calls to populate it.
+ */
+
+/**
+ * @element cr-network-select
+ */
+Polymer({
+ is: 'cr-network-select',
+
+ properties: {
michaelpg 2015/08/10 07:35:03 expandable, showActive, maxHeight?
stevenjb 2015/08/10 19:19:48 Done.
+ /**
+ * Network state for the active network.
+ * @type {?CrOnc.NetworkStateProperties}
+ */
+ activeNetworkState: {
+ type: Object,
+ value: null
+ },
+
+ /**
+ * List of all network state data for all visible networks.
+ * @type {!Array<!CrOnc.NetworkStateProperties>}
+ */
+ networkStateList: {
+ type: Array,
+ value: function() { return []; }
+ }
+ },
+
+ /**
+ * Listener function for chrome.networkingPrivate.onNetworkListChanged event.
+ * @type {?function(!Array<string>)}
+ * @private
+ */
+ networkListChangedListener_: null,
+
+ /**
+ * Listener function for chrome.networkingPrivate.onDeviceStateListChanged
+ * event.
+ * @type {?function(!Array<string>)}
+ * @private
+ */
+ deviceStateListChangedListener_: null,
+
+ /** @override */
+ attached: function() {
+ this.networkListChangedListener_ = this.refreshNetworks_.bind(this);
+ chrome.networkingPrivate.onNetworkListChanged.addListener(
+ this.networkListChangedListener_);
+
+ this.deviceStateListChangedListener_ = this.refreshNetworks_.bind(this);
+ chrome.networkingPrivate.onDeviceStateListChanged.addListener(
+ this.deviceStateListChangedListener_);
+
+ this.refreshNetworks_();
+ },
+
+ /** @override */
+ detached: function() {
+ chrome.networkingPrivate.onNetworksChanged.removeListener(
+ this.networksChangedListener_);
+ chrome.networkingPrivate.onDeviceStateListChanged.removeListener(
+ this.deviceStateListChangedListener_);
+ },
+
+ refreshNetworks_: function() {
+ var filter = {
+ networkType: 'All',
+ visible: true,
+ configured: false
+ };
+ chrome.networkingPrivate.requestNetworkScan();
+ chrome.networkingPrivate.getNetworks(
+ filter, this.getNetworksCallback_.bind(this));
+ },
+
+ getNetworksCallback_: function(states) {
+ this.activeNetworkState = (states && states.length && states[0]) || null;
michaelpg 2015/08/10 07:35:03 no need to check states.length also, shouldn't |s
stevenjb 2015/08/10 19:19:48 Yes. Done.
+ this.networkStateList = states;
+ },
+
+ /**
+ * Event triggered when a cr-network-list-item is selected.
+ * @param {!{detail: !CrOnc.NetworkStateProperties}} event
+ * @private
+ */
+ onNetworkListItemSelected_: function(event) {
+ var state = event.detail;
+ if (state.ConnectionState != CrOnc.ConnectionState.NOT_CONNECTED)
+ return;
+ chrome.networkingPrivate.startConnect(state.GUID, function() {
+ var lastError = chrome.runtime.lastError;
+ if (lastError && lastError != 'connecting')
+ console.error('networkingPrivate.startConnect error:', lastError);
michaelpg 2015/08/10 07:35:03 indent
stevenjb 2015/08/10 19:19:48 Done.
+ });
+ },
+});

Powered by Google App Engine
This is Rietveld 408576698