Chromium Code Reviews| Index: chrome/browser/resources/settings/global_scroll_target_behavior.js |
| diff --git a/chrome/browser/resources/settings/global_scroll_target_behavior.js b/chrome/browser/resources/settings/global_scroll_target_behavior.js |
| index 80623632864d0c234cd6ba31255fef1c7a8f4d0a..e9da6442fadd85aa36bbe343ea4a05d1d350022d 100644 |
| --- a/chrome/browser/resources/settings/global_scroll_target_behavior.js |
| +++ b/chrome/browser/resources/settings/global_scroll_target_behavior.js |
| @@ -12,7 +12,7 @@ cr.define('settings', function() { |
| var scrollTargetResolver = new PromiseResolver(); |
| /** @polymerBehavior */ |
| - var GlobalScrollTargetBehavior = { |
| + var GlobalScrollTargetBehaviorImpl = { |
| properties: { |
| /** |
| * Read only property for the scroll target. |
| @@ -22,12 +22,39 @@ cr.define('settings', function() { |
| type: Object, |
| readOnly: true, |
| }, |
| + |
| + /** |
| + * Property that is populated only when the |activeRoute| is navigated to. |
| + * @type {HTMLElement} |
| + */ |
| + activeTarget: { |
|
michaelpg
2016/12/02 20:37:26
nit: can you use something other than "active" for
hcarmona
2016/12/05 15:57:35
Updated names to make it more apparent that these
|
| + type: Object, |
| + computed: 'getActiveTarget_(scrollTarget, active_)', |
| + }, |
| + |
| + /** |
| + * The route that controls the active state. |
| + * @type {settings.Route} |
| + * @private |
| + */ |
| + activeRoute: Object, |
| + |
| + /** Whether the |activeRoute| is active or not. */ |
| + active_: Boolean, |
| }, |
| /** @override */ |
| attached: function() { |
| scrollTargetResolver.promise.then(this._setScrollTarget.bind(this)); |
| }, |
| + |
| + currentRouteChanged: function(route) { |
| + this.active_ = route == this.activeRoute; |
| + }, |
| + |
| + getActiveTarget_: function(target, active) { |
| + return active ? target : null; |
| + }, |
| }; |
| /** |
| @@ -39,7 +66,14 @@ cr.define('settings', function() { |
| }; |
| return { |
| - GlobalScrollTargetBehavior: GlobalScrollTargetBehavior, |
| + GlobalScrollTargetBehaviorImpl: GlobalScrollTargetBehaviorImpl, |
| setGlobalScrollTarget: setGlobalScrollTarget, |
| + scrollTargetResolver: scrollTargetResolver, |
| }; |
| }); |
| + |
| +// This is done to make the closure compiler happy: it needs fully qualified |
| +// names when specifying an array of behaviors. |
| +/** @polymerBehavior */ |
| +settings.GlobalScrollTargetBehavior = |
| + [settings.RouteObserverBehavior, settings.GlobalScrollTargetBehaviorImpl]; |
|
michaelpg
2016/12/02 20:37:26
4-space indent
hcarmona
2016/12/05 15:57:35
Done.
|