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

Unified Diff: chrome/browser/resources/md_downloads/crisper.js

Issue 1492273002: MD Downloads: limit the amount of downloads we send (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@new-dl-data
Patch Set: self-review Created 5 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/md_downloads/crisper.js
diff --git a/chrome/browser/resources/md_downloads/crisper.js b/chrome/browser/resources/md_downloads/crisper.js
index ee13e9ccc5999ff5cc0467850c70ed2c6112fb24..15a1848f29225c7d757b89e221ee6d5adb1949bd 100644
--- a/chrome/browser/resources/md_downloads/crisper.js
+++ b/chrome/browser/resources/md_downloads/crisper.js
@@ -1578,15 +1578,17 @@ cr.define('downloads', function() {
/** @param {string} id ID of the download that the user started dragging. */
drag: chromeSendWithId('drag'),
- /** @private {boolean} */
- isSearching_: false,
+ /** Loads more downloads with the current search terms. */
+ loadMore: function() {
+ chrome.send('getDownloads', this.searchTerms_);
+ },
/**
* @return {boolean} Whether the user is currently searching for downloads
* (i.e. has a non-empty search term).
*/
isSearching: function() {
- return this.isSearching_;
+ return this.searchTerms_.length > 0;
},
/** Opens the current local destination for downloads. */
@@ -1618,12 +1620,15 @@ cr.define('downloads', function() {
return;
this.searchText_ = searchText;
+ this.searchTerms_ = ActionService.splitTerms(this.searchText_);
+ this.loadMore();
+ },
- var terms = ActionService.splitTerms(searchText);
- this.isSearching_ = terms.length > 0;
+ /** @private {Array<string>} */
+ searchTerms_: [],
- chrome.send('getDownloads', terms);
- },
+ /** @private {string} */
+ searchText_: '',
/**
* Shows the local folder a finished download resides in.
@@ -16976,6 +16981,10 @@ cr.define('downloads', function() {
loading: true,
},
+ listeners: {
+ 'downloads-list.scroll': 'onListScroll_',
+ },
+
observers: [
'itemsChanged_(items_.*)',
],
@@ -17043,14 +17052,26 @@ cr.define('downloads', function() {
downloads.ActionService.getInstance().undo();
},
+ /**
+ * @param {Event} e
+ * @private
+ */
+ onListScroll_: function(e) {
+ var list = this.$['downloads-list'];
+ if (list.scrollHeight > list.offsetHeight &&
+ list.scrollTop + list.offsetHeight == list.scrollHeight) {
+ // Reached the end of the scrollback. Attempt to load more items.
+ downloads.ActionService.getInstance().loadMore();
+ }
+ },
+
/** @private */
onLoad_: function() {
cr.ui.decorate('command', cr.ui.Command);
document.addEventListener('canExecute', this.onCanExecute_.bind(this));
document.addEventListener('command', this.onCommand_.bind(this));
- // Shows all downloads.
- downloads.ActionService.getInstance().search('');
+ downloads.ActionService.getInstance().loadMore();
},
/**

Powered by Google App Engine
This is Rietveld 408576698