Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2420)

Unified Diff: chrome/browser/resources/settings/global_scroll_target_behavior.js

Issue 2538183008: Fix issue caused by updating list that references global scroll target. (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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.

Powered by Google App Engine
This is Rietveld 408576698