Chromium Code Reviews| Index: chrome/browser/resources/settings/settings_ui/settings_ui.js | 
| diff --git a/chrome/browser/resources/settings/settings_ui/settings_ui.js b/chrome/browser/resources/settings/settings_ui/settings_ui.js | 
| index e3c3ca1aba5b7eb729056b7ef8dd578cb04cf17b..9e0123fc86a99e8b4a2d77e49c6c9034ba782ec4 100644 | 
| --- a/chrome/browser/resources/settings/settings_ui/settings_ui.js | 
| +++ b/chrome/browser/resources/settings/settings_ui/settings_ui.js | 
| @@ -160,6 +160,8 @@ Polymer({ | 
| loadTimeData.getBoolean('androidAppsAllowed'); | 
| }, | 
| + intersectionObserver_: null, | 
| 
 
scottchen
2017/03/28 22:06:55
Do you need @private here?
 
dpapad
2017/03/28 22:10:57
This needs "@private {?IntersectionObserver}", but
 
dpapad
2017/03/29 22:17:10
Done.
 
 | 
| + | 
| /** @override */ | 
| attached: function() { | 
| setTimeout(function() { | 
| @@ -169,12 +171,32 @@ Polymer({ | 
| }); | 
| // Preload bold Roboto so it doesn't load and flicker the first time used. | 
| document.fonts.load('bold 12px Roboto'); | 
| - settings.setGlobalScrollTarget(this.$.headerPanel.scroller); | 
| + settings.setGlobalScrollTarget(this.$.container); | 
| + | 
| + this.setupDropShadow_(); | 
| 
 
Dan Beam
2017/03/29 13:19:55
just make this part of attached rather than a sepa
 
dpapad
2017/03/29 22:17:10
Done.
 
 | 
| + }, | 
| + | 
| + /** @private */ | 
| + setupDropShadow_: function() { | 
| + var callback = function(entries) { | 
| + assert(entries.length == 1); | 
| + entries[0].intersectionRatio == 0 ? | 
| + this.$.dropShadow.classList.add('has-shadow') : | 
| + this.$.dropShadow.classList.remove('has-shadow'); | 
| 
 
Dan Beam
2017/03/29 13:19:55
this.$.dropShadow.classList.toggle('has-shadow', e
 
dpapad
2017/03/29 22:17:10
Done.
 
 | 
| + }.bind(this); | 
| + | 
| + this.intersectionObserver_ = new IntersectionObserver(callback, { | 
| + root: this.$.container, | 
| + threshold: 0, | 
| + }); | 
| + this.intersectionObserver_.observe(this.$.intersectionProbe); | 
| }, | 
| /** @override */ | 
| detached: function() { | 
| settings.resetRouteForTesting(); | 
| + this.intersectionObserver_.disconnect(); | 
| + this.intersectionObserver_ = null; | 
| }, | 
| /** @param {!settings.Route} route */ |