Index: chrome/browser/resources/settings/settings_menu/settings_menu.js |
diff --git a/chrome/browser/resources/settings/settings_menu/settings_menu.js b/chrome/browser/resources/settings/settings_menu/settings_menu.js |
index 0d1f2c9cd8d7bb71764067befab331b1bd86bd80..9047a049442fab62cbbc7d6a0351ad7379045cd8 100644 |
--- a/chrome/browser/resources/settings/settings_menu/settings_menu.js |
+++ b/chrome/browser/resources/settings/settings_menu/settings_menu.js |
@@ -15,7 +15,7 @@ Polymer({ |
/** |
* The current active route. |
- * @type {!SettingsRoute} |
+ * @type {!settings.Route} |
*/ |
currentRoute: { |
type: Object, |
@@ -52,7 +52,7 @@ Polymer({ |
}, |
/** |
- * @param {!SettingsRoute} newRoute |
+ * @param {!settings.Route} newRoute |
* @private |
*/ |
currentRouteChanged_: function(newRoute) { |
@@ -92,14 +92,22 @@ Polymer({ |
*/ |
openPage_: function(event) { |
this.ripple_(/** @type {!Node} */(event.currentTarget)); |
- var submenuRoute = event.currentTarget.parentNode.dataset.page; |
- if (submenuRoute) { |
- this.currentRoute = { |
- page: submenuRoute, |
- section: event.currentTarget.dataset.section, |
- subpage: [], |
- }; |
- } |
+ var page = event.currentTarget.parentNode.dataset.page; |
+ if (!page) |
+ return; |
+ |
+ var section = event.currentTarget.dataset.section; |
+ // TODO(tommycli): Use Object.values once Closure compilation supports it. |
+ var matchingKey = Object.keys(settings.Route).find(function(key) { |
+ var route = settings.Route[key]; |
+ // TODO(tommycli): Remove usage of page, section, and subpage properties. |
+ // Routes should be somehow directly bound to the menu elements. |
+ return route.page == page && route.section == section && |
+ route.subpage.length == 0; |
+ }); |
+ |
+ if (matchingKey) |
+ settings.navigateTo(settings.Route[matchingKey]); |
}, |
/** |