| 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 * @typedef {{about: boolean, settings: boolean}} | 6 * @typedef {{about: boolean, settings: boolean}} |
| 7 */ | 7 */ |
| 8 var MainPageVisibility; | 8 var MainPageVisibility; |
| 9 | 9 |
| 10 /** | 10 /** |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 100 this.unlisten(this, 'freeze-scroll', 'onFreezeScroll_'); | 100 this.unlisten(this, 'freeze-scroll', 'onFreezeScroll_'); |
| 101 }, | 101 }, |
| 102 | 102 |
| 103 /** @private */ | 103 /** @private */ |
| 104 overscrollChanged_: function() { | 104 overscrollChanged_: function() { |
| 105 if (!this.overscroll_ && this.boundScroll_) { | 105 if (!this.overscroll_ && this.boundScroll_) { |
| 106 this.offsetParent.removeEventListener('scroll', this.boundScroll_); | 106 this.offsetParent.removeEventListener('scroll', this.boundScroll_); |
| 107 window.removeEventListener('resize', this.boundScroll_); | 107 window.removeEventListener('resize', this.boundScroll_); |
| 108 this.boundScroll_ = null; | 108 this.boundScroll_ = null; |
| 109 } else if (this.overscroll_ && !this.boundScroll_) { | 109 } else if (this.overscroll_ && !this.boundScroll_) { |
| 110 this.boundScroll_ = function() { | 110 this.boundScroll_ = () => { |
| 111 if (!this.ignoreScroll_) | 111 if (!this.ignoreScroll_) |
| 112 this.setOverscroll_(0); | 112 this.setOverscroll_(0); |
| 113 }.bind(this); | 113 }; |
| 114 this.offsetParent.addEventListener('scroll', this.boundScroll_); | 114 this.offsetParent.addEventListener('scroll', this.boundScroll_); |
| 115 window.addEventListener('resize', this.boundScroll_); | 115 window.addEventListener('resize', this.boundScroll_); |
| 116 } | 116 } |
| 117 }, | 117 }, |
| 118 | 118 |
| 119 /** | 119 /** |
| 120 * Sets the overscroll padding. Never forces a scroll, i.e., always leaves | 120 * Sets the overscroll padding. Never forces a scroll, i.e., always leaves |
| 121 * any currently visible overflow as-is. | 121 * any currently visible overflow as-is. |
| 122 * @param {number=} opt_minHeight The minimum overscroll height needed. | 122 * @param {number=} opt_minHeight The minimum overscroll height needed. |
| 123 * @private | 123 * @private |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 177 * @private | 177 * @private |
| 178 */ | 178 */ |
| 179 updatePagesShown_: function() { | 179 updatePagesShown_: function() { |
| 180 var inAbout = settings.routes.ABOUT.contains(settings.getCurrentRoute()); | 180 var inAbout = settings.routes.ABOUT.contains(settings.getCurrentRoute()); |
| 181 this.showPages_ = {about: inAbout, settings: !inAbout}; | 181 this.showPages_ = {about: inAbout, settings: !inAbout}; |
| 182 | 182 |
| 183 // Calculate and set the overflow padding. | 183 // Calculate and set the overflow padding. |
| 184 this.updateOverscrollForPage_(); | 184 this.updateOverscrollForPage_(); |
| 185 | 185 |
| 186 // Wait for any other changes, then calculate the overflow padding again. | 186 // Wait for any other changes, then calculate the overflow padding again. |
| 187 setTimeout(function() { | 187 setTimeout(() => { |
| 188 // Ensure any dom-if reflects the current properties. | 188 // Ensure any dom-if reflects the current properties. |
| 189 Polymer.dom.flush(); | 189 Polymer.dom.flush(); |
| 190 this.updateOverscrollForPage_(); | 190 this.updateOverscrollForPage_(); |
| 191 }.bind(this)); | 191 }); |
| 192 }, | 192 }, |
| 193 | 193 |
| 194 /** | 194 /** |
| 195 * Calculates the necessary overscroll and sets the overscroll to that value | 195 * Calculates the necessary overscroll and sets the overscroll to that value |
| 196 * (at minimum). For the About page, this just zeroes the overscroll. | 196 * (at minimum). For the About page, this just zeroes the overscroll. |
| 197 * @private | 197 * @private |
| 198 */ | 198 */ |
| 199 updateOverscrollForPage_: function() { | 199 updateOverscrollForPage_: function() { |
| 200 if (this.showPages_.about || this.inSearchMode_) { | 200 if (this.showPages_.about || this.inSearchMode_) { |
| 201 // Set overscroll directly to remove any existing overscroll that | 201 // Set overscroll directly to remove any existing overscroll that |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 252 | 252 |
| 253 /** | 253 /** |
| 254 * @param {string} query | 254 * @param {string} query |
| 255 * @return {!Promise} A promise indicating that searching finished. | 255 * @return {!Promise} A promise indicating that searching finished. |
| 256 */ | 256 */ |
| 257 searchContents: function(query) { | 257 searchContents: function(query) { |
| 258 // Trigger rendering of the basic and advanced pages and search once ready. | 258 // Trigger rendering of the basic and advanced pages and search once ready. |
| 259 this.inSearchMode_ = true; | 259 this.inSearchMode_ = true; |
| 260 this.toolbarSpinnerActive = true; | 260 this.toolbarSpinnerActive = true; |
| 261 | 261 |
| 262 return new Promise(function(resolve, reject) { | 262 return new Promise((resolve, reject) => { |
| 263 setTimeout(function() { | 263 setTimeout(() => { |
| 264 var whenSearchDone = | 264 var whenSearchDone = |
| 265 assert(this.getPage_(settings.routes.BASIC)).searchContents(query); | 265 assert(this.getPage_(settings.routes.BASIC)).searchContents(query); |
| 266 whenSearchDone.then(function(result) { | 266 whenSearchDone.then(result => { |
| 267 resolve(); | 267 resolve(); |
| 268 if (result.canceled) { | 268 if (result.canceled) { |
| 269 // Nothing to do here. A previous search request was canceled | 269 // Nothing to do here. A previous search request was canceled |
| 270 // because a new search request was issued with a different query | 270 // because a new search request was issued with a different query |
| 271 // before the previous completed. | 271 // before the previous completed. |
| 272 return; | 272 return; |
| 273 } | 273 } |
| 274 | 274 |
| 275 this.toolbarSpinnerActive = false; | 275 this.toolbarSpinnerActive = false; |
| 276 this.inSearchMode_ = !result.wasClearSearch; | 276 this.inSearchMode_ = !result.wasClearSearch; |
| 277 this.showNoResultsFound_ = | 277 this.showNoResultsFound_ = |
| 278 this.inSearchMode_ && !result.didFindMatches; | 278 this.inSearchMode_ && !result.didFindMatches; |
| 279 | 279 |
| 280 if (this.inSearchMode_) { | 280 if (this.inSearchMode_) { |
| 281 Polymer.IronA11yAnnouncer.requestAvailability(); | 281 Polymer.IronA11yAnnouncer.requestAvailability(); |
| 282 this.fire('iron-announce', { | 282 this.fire('iron-announce', { |
| 283 text: this.showNoResultsFound_ ? | 283 text: this.showNoResultsFound_ ? |
| 284 loadTimeData.getString('searchNoResults') : | 284 loadTimeData.getString('searchNoResults') : |
| 285 loadTimeData.getStringF('searchResults', query) | 285 loadTimeData.getStringF('searchResults', query) |
| 286 }); | 286 }); |
| 287 } | 287 } |
| 288 }.bind(this)); | 288 }); |
| 289 }.bind(this), 0); | 289 }, 0); |
| 290 }.bind(this)); | 290 }); |
| 291 }, | 291 }, |
| 292 }); | 292 }); |
| OLD | NEW |