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 dd66609cf9564896c5e422e4788bccdc9ef29f9f..4ac5821ca2776efe76f883eec67c6476f4967823 100644 |
--- a/chrome/browser/resources/settings/settings_menu/settings_menu.js |
+++ b/chrome/browser/resources/settings/settings_menu/settings_menu.js |
@@ -9,8 +9,13 @@ |
Polymer({ |
is: 'settings-menu', |
+ behaviors: [settings.RouteObserverBehavior], |
+ |
properties: { |
/** @private */ |
+ aboutSelected_: Boolean, |
+ |
+ /** @private */ |
advancedOpened_: Boolean, |
tommycli
2016/08/22 23:23:00
I think you can axe this property declaration, sin
dschuyler
2016/08/22 23:35:09
Done.
|
/** |
@@ -43,6 +48,28 @@ Polymer({ |
}, |
/** |
+ * Handle setting selected menu item from URL routes as well as menu |
+ * selections. |
tommycli
2016/08/22 23:23:00
nit: clarify comment to something like:
Update me
dschuyler
2016/08/22 23:35:09
I wanted to point out that some of the code
is imp
tommycli
2016/08/22 23:36:58
Thanks. New comments helpful. This is a subtle pie
|
+ * @param {!settings.Route} newRoute |
+ */ |
+ currentRouteChanged: function(newRoute) { |
+ // Make the three menus mutually exclusive. |
+ if (settings.Route.ABOUT.contains(newRoute)) { |
+ this.aboutSelected_ = true; |
+ this.$.advancedMenu.selected = null; |
+ this.$.basicMenu.selected = null; |
+ } else if (settings.Route.ADVANCED.contains(newRoute)) { |
+ this.aboutSelected_ = false; |
+ this.$.advancedMenu.selected = newRoute.path; |
+ this.$.basicMenu.selected = null; |
+ } else if (settings.Route.BASIC.contains(newRoute)) { |
+ this.aboutSelected_ = false; |
+ this.$.advancedMenu.selected = null; |
+ this.$.basicMenu.selected = newRoute.path; |
+ } |
+ }, |
+ |
+ /** |
* @param {!Event} event |
* @private |
*/ |