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

Side by Side Diff: chrome/browser/resources/settings/internet_page/internet_page.js

Issue 2841873004: MD Settings: Fix subpage navigation focus for bluetooth+internet (Closed)
Patch Set: Fix browser tests Created 3 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @fileoverview 6 * @fileoverview
7 * 'settings-internet-page' is the settings page containing internet 7 * 'settings-internet-page' is the settings page containing internet
8 * settings. 8 * settings.
9 */ 9 */
10 Polymer({ 10 Polymer({
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 * List of third party VPN providers. 81 * List of third party VPN providers.
82 * @type {!Array<!chrome.networkingPrivate.ThirdPartyVPNProperties>} 82 * @type {!Array<!chrome.networkingPrivate.ThirdPartyVPNProperties>}
83 * @private 83 * @private
84 */ 84 */
85 thirdPartyVpnProviders_: { 85 thirdPartyVpnProviders_: {
86 type: Array, 86 type: Array,
87 value: function() { 87 value: function() {
88 return []; 88 return [];
89 } 89 }
90 }, 90 },
91
92 /** @private {!Map<string, string>} */
93 focusConfig_: {
94 type: Object,
95 value: function() {
96 return new Map();
97 },
98 },
91 }, 99 },
92 100
101 /** @private {string} Type of last detail page visited. */
102 detailType_: '',
103
93 // Element event listeners 104 // Element event listeners
94 listeners: { 105 listeners: {
95 'device-enabled-toggled': 'onDeviceEnabledToggled_', 106 'device-enabled-toggled': 'onDeviceEnabledToggled_',
96 'show-detail': 'onShowDetail_', 107 'show-detail': 'onShowDetail_',
97 'show-known-networks': 'onShowKnownNetworks_', 108 'show-known-networks': 'onShowKnownNetworks_',
98 'show-networks': 'onShowNetworks_', 109 'show-networks': 'onShowNetworks_',
99 }, 110 },
100 111
101 // chrome.networkingPrivate listeners 112 // chrome.networkingPrivate listeners
102 /** @private {Function} */ 113 /** @private {Function} */
103 onExtensionAddedListener_: null, 114 onExtensionAddedListener_: null,
104 115
105 /** @private {Function} */ 116 /** @private {Function} */
106 onExtensionRemovedListener_: null, 117 onExtensionRemovedListener_: null,
107 118
108 /** @private {Function} */ 119 /** @private {Function} */
109 onExtensionDisabledListener_: null, 120 onExtensionDisabledListener_: null,
110 121
111 /** @override */ 122 /** @override */
112 attached: function() { 123 attached: function() {
113 this.onExtensionAddedListener_ = this.onExtensionAddedListener_ || 124 this.onExtensionAddedListener_ =
114 this.onExtensionAdded_.bind(this); 125 this.onExtensionAddedListener_ || this.onExtensionAdded_.bind(this);
115 chrome.management.onInstalled.addListener(this.onExtensionAddedListener_); 126 chrome.management.onInstalled.addListener(this.onExtensionAddedListener_);
116 chrome.management.onEnabled.addListener(this.onExtensionAddedListener_); 127 chrome.management.onEnabled.addListener(this.onExtensionAddedListener_);
117 128
118 this.onExtensionRemovedListener_ = this.onExtensionRemovedListener_ || 129 this.onExtensionRemovedListener_ =
119 this.onExtensionRemoved_.bind(this); 130 this.onExtensionRemovedListener_ || this.onExtensionRemoved_.bind(this);
120 chrome.management.onUninstalled.addListener( 131 chrome.management.onUninstalled.addListener(
121 this.onExtensionRemovedListener_); 132 this.onExtensionRemovedListener_);
122 133
123 this.onExtensionDisabledListener_ = this.onExtensionDisabledListener_ || 134 this.onExtensionDisabledListener_ = this.onExtensionDisabledListener_ ||
124 this.onExtensionDisabled_.bind(this); 135 this.onExtensionDisabled_.bind(this);
125 chrome.management.onDisabled.addListener(this.onExtensionDisabledListener_); 136 chrome.management.onDisabled.addListener(this.onExtensionDisabledListener_);
126 137
127 chrome.management.getAll(this.onGetAllExtensions_.bind(this)); 138 chrome.management.getAll(this.onGetAllExtensions_.bind(this));
128 139
129 this.networkingPrivate.getGlobalPolicy(function(policy) { 140 this.networkingPrivate.getGlobalPolicy(function(policy) {
130 this.globalPolicy_ = policy; 141 this.globalPolicy_ = policy;
131 }.bind(this)); 142 }.bind(this));
132 }, 143 },
133 144
134 /** @override */ 145 /** @override */
135 detached: function() { 146 detached: function() {
136 chrome.management.onInstalled.removeListener( 147 chrome.management.onInstalled.removeListener(
137 assert(this.onExtensionAddedListener_)); 148 assert(this.onExtensionAddedListener_));
138 chrome.management.onEnabled.removeListener( 149 chrome.management.onEnabled.removeListener(
139 assert(this.onExtensionAddedListener_)); 150 assert(this.onExtensionAddedListener_));
140 chrome.management.onUninstalled.removeListener( 151 chrome.management.onUninstalled.removeListener(
141 assert(this.onExtensionRemovedListener_)); 152 assert(this.onExtensionRemovedListener_));
142 chrome.management.onDisabled.removeListener( 153 chrome.management.onDisabled.removeListener(
143 assert(this.onExtensionDisabledListener_)); 154 assert(this.onExtensionDisabledListener_));
144 }, 155 },
145 156
146 /** 157 /**
147 * settings.RouteObserverBehavior 158 * settings.RouteObserverBehavior
148 * @param {!settings.Route} route 159 * @param {!settings.Route} route
160 * @param {!settings.Route} oldRoute
149 * @protected 161 * @protected
150 */ 162 */
151 currentRouteChanged: function(route) { 163 currentRouteChanged: function(route, oldRoute) {
152 if (route == settings.Route.INTERNET_NETWORKS) { 164 if (route == settings.Route.INTERNET_NETWORKS) {
153 // Handle direct navigation to the networks page, 165 // Handle direct navigation to the networks page,
154 // e.g. chrome://settings/internet/networks?type=WiFi 166 // e.g. chrome://settings/internet/networks?type=WiFi
155 var queryParams = settings.getQueryParameters(); 167 var queryParams = settings.getQueryParameters();
156 var type = queryParams.get('type'); 168 var type = queryParams.get('type');
157 if (type) 169 if (type)
158 this.subpageType_ = type; 170 this.subpageType_ = type;
159 } else if (route == settings.Route.KNOWN_NETWORKS) { 171 } else if (route == settings.Route.KNOWN_NETWORKS) {
160 // Handle direct navigation to the known networks page, 172 // Handle direct navigation to the known networks page,
161 // e.g. chrome://settings/internet/knownNetworks?type=WiFi 173 // e.g. chrome://settings/internet/knownNetworks?type=WiFi
162 var queryParams = settings.getQueryParameters(); 174 var queryParams = settings.getQueryParameters();
163 var type = queryParams.get('type'); 175 var type = queryParams.get('type');
164 if (type) 176 if (type)
165 this.knownNetworksType_ = type; 177 this.knownNetworksType_ = type;
178 } else if (
179 route != settings.Route.INTERNET && route != settings.Route.BASIC) {
180 // If we are navigating to a non internet section, do not set focus.
181 return;
166 } 182 }
183
184 if (!settings.Route.INTERNET.contains(oldRoute))
185 return;
186
187 // Focus the subpage arrow where appropriate.
188 var selector;
189 if (route == settings.Route.INTERNET_NETWORKS) {
190 // iron-list makes the correct timing to focus an item in the list
191 // very complicated, and the item may not exist, so just focus the
192 // entire list for now.
193 selector = '* /deep/ #networkList';
194 } else if (this.detailType_) {
195 selector = '* /deep/ #' + this.detailType_ + ' /deep/ .subpage-arrow';
196 }
197 if (selector && this.querySelector(selector))
198 this.focusConfig_.set(oldRoute.path, selector);
199 else
200 this.focusConfig_.delete(oldRoute.path);
167 }, 201 },
168 202
169 /** 203 /**
170 * Event triggered by a device state enabled toggle. 204 * Event triggered by a device state enabled toggle.
171 * @param {!{detail: {enabled: boolean, 205 * @param {!{detail: {enabled: boolean,
172 * type: chrome.networkingPrivate.NetworkType}}} event 206 * type: chrome.networkingPrivate.NetworkType}}} event
173 * @private 207 * @private
174 */ 208 */
175 onDeviceEnabledToggled_: function(event) { 209 onDeviceEnabledToggled_: function(event) {
176 if (event.detail.enabled) 210 if (event.detail.enabled)
177 this.networkingPrivate.enableNetworkType(event.detail.type); 211 this.networkingPrivate.enableNetworkType(event.detail.type);
178 else 212 else
179 this.networkingPrivate.disableNetworkType(event.detail.type); 213 this.networkingPrivate.disableNetworkType(event.detail.type);
180 }, 214 },
181 215
182 /** 216 /**
183 * @param {!{detail: !CrOnc.NetworkStateProperties}} event 217 * @param {!{detail: !CrOnc.NetworkStateProperties}} event
184 * @private 218 * @private
185 */ 219 */
186 onShowDetail_: function(event) { 220 onShowDetail_: function(event) {
221 this.detailType_ = event.detail.Type;
187 var params = new URLSearchParams; 222 var params = new URLSearchParams;
188 params.append('guid', event.detail.GUID); 223 params.append('guid', event.detail.GUID);
189 params.append('type', event.detail.Type); 224 params.append('type', event.detail.Type);
190 if (event.detail.Name) 225 if (event.detail.Name)
191 params.append('name', event.detail.Name); 226 params.append('name', event.detail.Name);
192 settings.navigateTo(settings.Route.NETWORK_DETAIL, params); 227 settings.navigateTo(settings.Route.NETWORK_DETAIL, params);
193 }, 228 },
194 229
195 /** 230 /**
196 * @param {!{detail: {type: string}}} event 231 * @param {!{detail: {type: string}}} event
197 * @private 232 * @private
198 */ 233 */
199 onShowNetworks_: function(event) { 234 onShowNetworks_: function(event) {
235 this.detailType_ = event.detail.Type;
200 var params = new URLSearchParams; 236 var params = new URLSearchParams;
201 params.append('type', event.detail.Type); 237 params.append('type', event.detail.Type);
202 this.subpageType_ = event.detail.Type; 238 this.subpageType_ = event.detail.Type;
203 settings.navigateTo(settings.Route.INTERNET_NETWORKS, params); 239 settings.navigateTo(settings.Route.INTERNET_NETWORKS, params);
204 }, 240 },
205 241
206 /** 242 /**
207 * @return {string} 243 * @return {string}
208 * @private 244 * @private
209 */ 245 */
210 getNetworksPageTitle_: function() { 246 getNetworksPageTitle_: function() {
211 return this.i18n('OncType' + this.subpageType_); 247 return this.i18n('OncType' + this.subpageType_);
212 }, 248 },
213 249
214 /** 250 /**
215 * @param {!{detail: {type: string}}} event 251 * @param {!{detail: {type: string}}} event
216 * @private 252 * @private
217 */ 253 */
218 onShowKnownNetworks_: function(event) { 254 onShowKnownNetworks_: function(event) {
255 this.detailType_ = event.detail.Type;
219 var params = new URLSearchParams; 256 var params = new URLSearchParams;
220 params.append('type', event.detail.Type); 257 params.append('type', event.detail.Type);
221 this.knownNetworksType_ = event.detail.type; 258 this.knownNetworksType_ = event.detail.type;
222 settings.navigateTo(settings.Route.KNOWN_NETWORKS, params); 259 settings.navigateTo(settings.Route.KNOWN_NETWORKS, params);
223 }, 260 },
224 261
225 /** 262 /**
226 * Event triggered when the 'Add connections' div is tapped. 263 * Event triggered when the 'Add connections' div is tapped.
227 * @param {Event} event 264 * @param {Event} event
228 * @private 265 * @private
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
322 onExtensionDisabled_: function(extension) { 359 onExtensionDisabled_: function(extension) {
323 this.onExtensionRemoved_(extension.id); 360 this.onExtensionRemoved_(extension.id);
324 }, 361 },
325 362
326 /** 363 /**
327 * @param {!chrome.networkingPrivate.DeviceStateProperties} deviceState 364 * @param {!chrome.networkingPrivate.DeviceStateProperties} deviceState
328 * @return {boolean} 365 * @return {boolean}
329 * @private 366 * @private
330 */ 367 */
331 deviceIsEnabled_: function(deviceState) { 368 deviceIsEnabled_: function(deviceState) {
332 return !!deviceState && deviceState.State == 369 return !!deviceState &&
333 chrome.networkingPrivate.DeviceStateType.ENABLED; 370 deviceState.State == chrome.networkingPrivate.DeviceStateType.ENABLED;
334 }, 371 },
335 372
336 /** 373 /**
337 * @param {!chrome.networkingPrivate.GlobalPolicy} globalPolicy 374 * @param {!chrome.networkingPrivate.GlobalPolicy} globalPolicy
338 * @return {boolean} 375 * @return {boolean}
339 */ 376 */
340 allowAddConnection_: function(globalPolicy) { 377 allowAddConnection_: function(globalPolicy) {
341 return !globalPolicy.AllowOnlyPolicyNetworksToConnect; 378 return !globalPolicy.AllowOnlyPolicyNetworksToConnect;
342 }, 379 },
343 380
344 /** 381 /**
345 * @param {!chrome.networkingPrivate.ThirdPartyVPNProperties} provider 382 * @param {!chrome.networkingPrivate.ThirdPartyVPNProperties} provider
346 * @return {string} 383 * @return {string}
347 */ 384 */
348 getAddThirdParrtyVpnLabel_: function(provider) { 385 getAddThirdParrtyVpnLabel_: function(provider) {
349 return this.i18n('internetAddThirdPartyVPN', provider.ProviderName); 386 return this.i18n('internetAddThirdPartyVPN', provider.ProviderName);
350 } 387 }
351 }); 388 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698