OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 /** | 5 /** |
6 * @fileoverview | 6 * @fileoverview |
7 * 'settings-ui' implements the UI for the Settings page. | 7 * 'settings-ui' implements the UI for the Settings page. |
8 * | 8 * |
9 * Example: | 9 * Example: |
10 * | 10 * |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
153 googleDrive: false, | 153 googleDrive: false, |
154 }, | 154 }, |
155 // </if> | 155 // </if> |
156 }; | 156 }; |
157 } | 157 } |
158 | 158 |
159 this.showAndroidApps_ = loadTimeData.valueExists('androidAppsAllowed') && | 159 this.showAndroidApps_ = loadTimeData.valueExists('androidAppsAllowed') && |
160 loadTimeData.getBoolean('androidAppsAllowed'); | 160 loadTimeData.getBoolean('androidAppsAllowed'); |
161 }, | 161 }, |
162 | 162 |
| 163 /** @private {?IntersectionObserver} */ |
| 164 intersectionObserver_: null, |
| 165 |
163 /** @override */ | 166 /** @override */ |
164 attached: function() { | 167 attached: function() { |
165 setTimeout(function() { | 168 setTimeout(function() { |
166 chrome.send( | 169 chrome.send( |
167 'metricsHandler:recordTime', | 170 'metricsHandler:recordTime', |
168 ['Settings.TimeUntilInteractive', window.performance.now()]); | 171 ['Settings.TimeUntilInteractive', window.performance.now()]); |
169 }); | 172 }); |
170 // Preload bold Roboto so it doesn't load and flicker the first time used. | 173 // Preload bold Roboto so it doesn't load and flicker the first time used. |
171 document.fonts.load('bold 12px Roboto'); | 174 document.fonts.load('bold 12px Roboto'); |
172 settings.setGlobalScrollTarget(this.$.headerPanel.scroller); | 175 settings.setGlobalScrollTarget(this.$.container); |
| 176 |
| 177 // Setup drop shadow logic. |
| 178 var callback = function(entries) { |
| 179 assert(entries.length == 1); |
| 180 this.$.dropShadow.classList.toggle( |
| 181 'has-shadow', entries[0].intersectionRatio == 0); |
| 182 }.bind(this); |
| 183 |
| 184 this.intersectionObserver_ = new IntersectionObserver( |
| 185 callback, |
| 186 /** @type {IntersectionObserverInit} */ ({ |
| 187 root: this.$.container, |
| 188 threshold: 0, |
| 189 })); |
| 190 this.intersectionObserver_.observe(this.$.intersectionProbe); |
173 }, | 191 }, |
174 | 192 |
175 /** @override */ | 193 /** @override */ |
176 detached: function() { | 194 detached: function() { |
177 settings.resetRouteForTesting(); | 195 settings.resetRouteForTesting(); |
| 196 this.intersectionObserver_.disconnect(); |
| 197 this.intersectionObserver_ = null; |
178 }, | 198 }, |
179 | 199 |
180 /** @param {!settings.Route} route */ | 200 /** @param {!settings.Route} route */ |
181 currentRouteChanged: function(route) { | 201 currentRouteChanged: function(route) { |
182 var urlSearchQuery = settings.getQueryParameters().get('search') || ''; | 202 var urlSearchQuery = settings.getQueryParameters().get('search') || ''; |
183 if (urlSearchQuery == this.lastSearchQuery_) | 203 if (urlSearchQuery == this.lastSearchQuery_) |
184 return; | 204 return; |
185 | 205 |
186 this.lastSearchQuery_ = urlSearchQuery; | 206 this.lastSearchQuery_ = urlSearchQuery; |
187 | 207 |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
242 onMenuButtonTap_: function() { | 262 onMenuButtonTap_: function() { |
243 this.$.drawer.toggle(); | 263 this.$.drawer.toggle(); |
244 }, | 264 }, |
245 | 265 |
246 /** @private */ | 266 /** @private */ |
247 directionDelegateChanged_: function() { | 267 directionDelegateChanged_: function() { |
248 this.$.drawer.align = this.directionDelegate.isRtl() ? | 268 this.$.drawer.align = this.directionDelegate.isRtl() ? |
249 'right' : 'left'; | 269 'right' : 'left'; |
250 }, | 270 }, |
251 }); | 271 }); |
OLD | NEW |