Chromium Code Reviews| Index: chrome/browser/resources/settings/internet_page/internet_page.js |
| diff --git a/chrome/browser/resources/settings/internet_page/internet_page.js b/chrome/browser/resources/settings/internet_page/internet_page.js |
| index c25245484617256fb38619566fc80f6d8eba2962..1b13a2cc79b8fee76ce19723065a52fe04db78e9 100644 |
| --- a/chrome/browser/resources/settings/internet_page/internet_page.js |
| +++ b/chrome/browser/resources/settings/internet_page/internet_page.js |
| @@ -88,8 +88,22 @@ Polymer({ |
| return []; |
| } |
| }, |
| + |
| + /** |
| + * @type {!Map<string, string>} |
|
dpapad
2017/04/25 21:25:19
Ni: Use shorthand syntax,
@private {!Map<string, s
stevenjb
2017/04/25 23:32:53
Done.
|
| + * @private |
| + */ |
| + focusConfig_: { |
| + type: Object, |
| + value: function() { |
| + return new Map(); |
| + }, |
| + }, |
| }, |
| + /** @private {string} Type of last detail page visited. */ |
| + detailType_: '', |
| + |
| // Element event listeners |
| listeners: { |
| 'device-enabled-toggled': 'onDeviceEnabledToggled_', |
| @@ -110,13 +124,13 @@ Polymer({ |
| /** @override */ |
| attached: function() { |
| - this.onExtensionAddedListener_ = this.onExtensionAddedListener_ || |
| - this.onExtensionAdded_.bind(this); |
| + this.onExtensionAddedListener_ = |
| + this.onExtensionAddedListener_ || this.onExtensionAdded_.bind(this); |
| chrome.management.onInstalled.addListener(this.onExtensionAddedListener_); |
| chrome.management.onEnabled.addListener(this.onExtensionAddedListener_); |
| - this.onExtensionRemovedListener_ = this.onExtensionRemovedListener_ || |
| - this.onExtensionRemoved_.bind(this); |
| + this.onExtensionRemovedListener_ = |
| + this.onExtensionRemovedListener_ || this.onExtensionRemoved_.bind(this); |
| chrome.management.onUninstalled.addListener( |
| this.onExtensionRemovedListener_); |
| @@ -146,9 +160,10 @@ Polymer({ |
| /** |
| * settings.RouteObserverBehavior |
| * @param {!settings.Route} route |
| + * @param {!settings.Route} oldRoute |
| * @protected |
| */ |
| - currentRouteChanged: function(route) { |
| + currentRouteChanged: function(route, oldRoute) { |
| if (route == settings.Route.INTERNET_NETWORKS) { |
| // Handle direct navigation to the networks page, |
| // e.g. chrome://settings/internet/networks?type=WiFi |
| @@ -163,6 +178,27 @@ Polymer({ |
| var type = queryParams.get('type'); |
| if (type) |
| this.knownNetworksType_ = type; |
| + } else if (route != settings.Route.INTERNET && route.path != '/') { |
|
dpapad
2017/04/25 21:25:19
Is this equivalent to the following?
} else if (r
stevenjb
2017/04/25 23:32:53
Looks like it. Done.
|
| + // If we are navigating to a non internet section, do not set focus. |
| + return; |
| + } |
| + |
| + // Focus the subpage arrow where appropriate. |
| + if (oldRoute == settings.Route.NETWORK_DETAIL || |
|
dpapad
2017/04/25 21:25:19
Is this equivalent to the following?
if (!setting
stevenjb
2017/04/25 23:32:53
Handy. Yes. Done.
|
| + oldRoute == settings.Route.INTERNET_NETWORKS || |
| + oldRoute == settings.Route.KNOWN_NETWORKS) { |
| + var selector; |
| + if (route == settings.Route.INTERNET_NETWORKS) { |
|
dpapad
2017/04/25 21:25:19
Nit (optional): This can be compacted as follows:
stevenjb
2017/04/25 23:32:53
Acknowledged.
|
| + // iron-list makes the correct timing to focus an item in the list |
| + // very complicated, and the item may not exist, so just focus the |
| + // entire list for now. |
| + selector = '* /deep/ #networkList'; |
| + } else if (this.detailType_) { |
| + selector = '* /deep/ #' + this.detailType_ + ' /deep/ .subpage-arrow'; |
| + } |
| + if (selector && this.querySelector(selector)) |
|
dpapad
2017/04/25 21:25:19
When would querySelector(selector) return nothing
stevenjb
2017/04/25 23:32:53
If an Ethernet cable were unplugged while visiting
|
| + this.focusConfig_.set(oldRoute.path, selector); |
|
dpapad
2017/04/25 21:25:19
I don't fully understand the updates to the focusC
stevenjb
2017/04/25 23:32:53
Done.
(I took this approach because of the dynami
|
| + this.detailType_ = ''; |
| } |
| }, |
| @@ -184,6 +220,7 @@ Polymer({ |
| * @private |
| */ |
| onShowDetail_: function(event) { |
| + this.detailType_ = event.detail.Type; |
| var params = new URLSearchParams; |
| params.append('guid', event.detail.GUID); |
| params.append('type', event.detail.Type); |
| @@ -197,6 +234,7 @@ Polymer({ |
| * @private |
| */ |
| onShowNetworks_: function(event) { |
| + this.detailType_ = event.detail.Type; |
| var params = new URLSearchParams; |
| params.append('type', event.detail.Type); |
| this.subpageType_ = event.detail.Type; |
| @@ -216,6 +254,7 @@ Polymer({ |
| * @private |
| */ |
| onShowKnownNetworks_: function(event) { |
| + this.detailType_ = event.detail.Type; |
| var params = new URLSearchParams; |
| params.append('type', event.detail.Type); |
| this.knownNetworksType_ = event.detail.type; |
| @@ -329,8 +368,8 @@ Polymer({ |
| * @private |
| */ |
| deviceIsEnabled_: function(deviceState) { |
| - return !!deviceState && deviceState.State == |
| - chrome.networkingPrivate.DeviceStateType.ENABLED; |
| + return !!deviceState && |
| + deviceState.State == chrome.networkingPrivate.DeviceStateType.ENABLED; |
| }, |
| /** |