OLD | NEW |
---|---|
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 Loading... | |
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); | |
201 this.detailType_ = ''; | |
stevenjb
2017/04/26 17:53:36
While testing I noticed that this causes problems
| |
167 }, | 202 }, |
168 | 203 |
169 /** | 204 /** |
170 * Event triggered by a device state enabled toggle. | 205 * Event triggered by a device state enabled toggle. |
171 * @param {!{detail: {enabled: boolean, | 206 * @param {!{detail: {enabled: boolean, |
172 * type: chrome.networkingPrivate.NetworkType}}} event | 207 * type: chrome.networkingPrivate.NetworkType}}} event |
173 * @private | 208 * @private |
174 */ | 209 */ |
175 onDeviceEnabledToggled_: function(event) { | 210 onDeviceEnabledToggled_: function(event) { |
176 if (event.detail.enabled) | 211 if (event.detail.enabled) |
177 this.networkingPrivate.enableNetworkType(event.detail.type); | 212 this.networkingPrivate.enableNetworkType(event.detail.type); |
178 else | 213 else |
179 this.networkingPrivate.disableNetworkType(event.detail.type); | 214 this.networkingPrivate.disableNetworkType(event.detail.type); |
180 }, | 215 }, |
181 | 216 |
182 /** | 217 /** |
183 * @param {!{detail: !CrOnc.NetworkStateProperties}} event | 218 * @param {!{detail: !CrOnc.NetworkStateProperties}} event |
184 * @private | 219 * @private |
185 */ | 220 */ |
186 onShowDetail_: function(event) { | 221 onShowDetail_: function(event) { |
222 this.detailType_ = event.detail.Type; | |
187 var params = new URLSearchParams; | 223 var params = new URLSearchParams; |
188 params.append('guid', event.detail.GUID); | 224 params.append('guid', event.detail.GUID); |
189 params.append('type', event.detail.Type); | 225 params.append('type', event.detail.Type); |
190 if (event.detail.Name) | 226 if (event.detail.Name) |
191 params.append('name', event.detail.Name); | 227 params.append('name', event.detail.Name); |
192 settings.navigateTo(settings.Route.NETWORK_DETAIL, params); | 228 settings.navigateTo(settings.Route.NETWORK_DETAIL, params); |
193 }, | 229 }, |
194 | 230 |
195 /** | 231 /** |
196 * @param {!{detail: {type: string}}} event | 232 * @param {!{detail: {type: string}}} event |
197 * @private | 233 * @private |
198 */ | 234 */ |
199 onShowNetworks_: function(event) { | 235 onShowNetworks_: function(event) { |
236 this.detailType_ = event.detail.Type; | |
200 var params = new URLSearchParams; | 237 var params = new URLSearchParams; |
201 params.append('type', event.detail.Type); | 238 params.append('type', event.detail.Type); |
202 this.subpageType_ = event.detail.Type; | 239 this.subpageType_ = event.detail.Type; |
203 settings.navigateTo(settings.Route.INTERNET_NETWORKS, params); | 240 settings.navigateTo(settings.Route.INTERNET_NETWORKS, params); |
204 }, | 241 }, |
205 | 242 |
206 /** | 243 /** |
207 * @return {string} | 244 * @return {string} |
208 * @private | 245 * @private |
209 */ | 246 */ |
210 getNetworksPageTitle_: function() { | 247 getNetworksPageTitle_: function() { |
211 return this.i18n('OncType' + this.subpageType_); | 248 return this.i18n('OncType' + this.subpageType_); |
212 }, | 249 }, |
213 | 250 |
214 /** | 251 /** |
215 * @param {!{detail: {type: string}}} event | 252 * @param {!{detail: {type: string}}} event |
216 * @private | 253 * @private |
217 */ | 254 */ |
218 onShowKnownNetworks_: function(event) { | 255 onShowKnownNetworks_: function(event) { |
256 this.detailType_ = event.detail.Type; | |
219 var params = new URLSearchParams; | 257 var params = new URLSearchParams; |
220 params.append('type', event.detail.Type); | 258 params.append('type', event.detail.Type); |
221 this.knownNetworksType_ = event.detail.type; | 259 this.knownNetworksType_ = event.detail.type; |
222 settings.navigateTo(settings.Route.KNOWN_NETWORKS, params); | 260 settings.navigateTo(settings.Route.KNOWN_NETWORKS, params); |
223 }, | 261 }, |
224 | 262 |
225 /** | 263 /** |
226 * Event triggered when the 'Add connections' div is tapped. | 264 * Event triggered when the 'Add connections' div is tapped. |
227 * @param {Event} event | 265 * @param {Event} event |
228 * @private | 266 * @private |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
322 onExtensionDisabled_: function(extension) { | 360 onExtensionDisabled_: function(extension) { |
323 this.onExtensionRemoved_(extension.id); | 361 this.onExtensionRemoved_(extension.id); |
324 }, | 362 }, |
325 | 363 |
326 /** | 364 /** |
327 * @param {!chrome.networkingPrivate.DeviceStateProperties} deviceState | 365 * @param {!chrome.networkingPrivate.DeviceStateProperties} deviceState |
328 * @return {boolean} | 366 * @return {boolean} |
329 * @private | 367 * @private |
330 */ | 368 */ |
331 deviceIsEnabled_: function(deviceState) { | 369 deviceIsEnabled_: function(deviceState) { |
332 return !!deviceState && deviceState.State == | 370 return !!deviceState && |
333 chrome.networkingPrivate.DeviceStateType.ENABLED; | 371 deviceState.State == chrome.networkingPrivate.DeviceStateType.ENABLED; |
334 }, | 372 }, |
335 | 373 |
336 /** | 374 /** |
337 * @param {!chrome.networkingPrivate.GlobalPolicy} globalPolicy | 375 * @param {!chrome.networkingPrivate.GlobalPolicy} globalPolicy |
338 * @return {boolean} | 376 * @return {boolean} |
339 */ | 377 */ |
340 allowAddConnection_: function(globalPolicy) { | 378 allowAddConnection_: function(globalPolicy) { |
341 return !globalPolicy.AllowOnlyPolicyNetworksToConnect; | 379 return !globalPolicy.AllowOnlyPolicyNetworksToConnect; |
342 }, | 380 }, |
343 | 381 |
344 /** | 382 /** |
345 * @param {!chrome.networkingPrivate.ThirdPartyVPNProperties} provider | 383 * @param {!chrome.networkingPrivate.ThirdPartyVPNProperties} provider |
346 * @return {string} | 384 * @return {string} |
347 */ | 385 */ |
348 getAddThirdParrtyVpnLabel_: function(provider) { | 386 getAddThirdParrtyVpnLabel_: function(provider) { |
349 return this.i18n('internetAddThirdPartyVPN', provider.ProviderName); | 387 return this.i18n('internetAddThirdPartyVPN', provider.ProviderName); |
350 } | 388 } |
351 }); | 389 }); |
OLD | NEW |