Index: chrome/browser/resources/settings/site_settings/site_data.js |
diff --git a/chrome/browser/resources/settings/site_settings/site_data.js b/chrome/browser/resources/settings/site_settings/site_data.js |
index 14fe40045d2a9e4745573489f7982c3f32064f5d..116ad3dfcd074c2dbd02a82cee564c8adef9f595 100644 |
--- a/chrome/browser/resources/settings/site_settings/site_data.js |
+++ b/chrome/browser/resources/settings/site_settings/site_data.js |
@@ -30,6 +30,14 @@ Polymer({ |
* Keeps track of how many outstanding requests for more data there are. |
*/ |
requests_: Number, |
+ |
+ /** |
+ * The current filter applied to the cookie data list. |
+ */ |
+ filterString_: { |
+ type: String, |
+ value: '', |
+ } |
}, |
ready: function() { |
@@ -51,8 +59,26 @@ Polymer({ |
}, |
/** |
+ * A filter function for the list. |
+ * @param {!CookieDataSummaryItem} item The item to possibly filter out. |
+ * @return {!boolean} Whether to show the item. |
+ * @private |
+ */ |
+ showItem_: function(item) { |
+ if (this.filterString_.length == 0) |
+ return true; |
+ return item.site.indexOf(this.filterString_) > -1; |
+ }, |
+ |
+ /** @private */ |
+ onSearchChanged_: function(e) { |
+ this.filterString_ = e.detail; |
+ this.$.list.render(); |
+ }, |
+ |
+ /** |
* Returns whether remove all should be shown. |
- * @param {Array<CookieDataSummaryItem>} sites The sites list to use to |
+ * @param {!Array<!CookieDataSummaryItem>} sites The sites list to use to |
* determine whether the button should be visible. |
* @private |
*/ |
@@ -61,6 +87,17 @@ Polymer({ |
}, |
/** |
+ * Returns the string to use for the Remove label. |
+ * @return {!string} filterString The current filter string. |
+ * @private |
+ */ |
+ computeRemoveLabel_: function(filterString) { |
+ if (filterString.length == 0) |
+ return loadTimeData.getString('siteSettingsCookieRemoveAll'); |
+ return loadTimeData.getString('siteSettingsCookieRemoveAllShown'); |
+ }, |
+ |
+ /** |
* Called when the cookie list is ready to be shown. |
* @param {!CookieList} list The cookie list to show. |
* @private |
@@ -118,13 +155,21 @@ Polymer({ |
}, |
/** |
- * Deletes site data for all sites. |
+ * Deletes site data for multiple sites. |
* @private |
*/ |
- onDeleteAllSites_: function() { |
- this.browserProxy.removeAllCookies().then(function(list) { |
- this.loadChildren_(list); |
- }.bind(this)); |
+ onDeleteMultipleSites_: function() { |
+ if (this.filterString_.length == 0) { |
+ this.browserProxy.removeAllCookies().then(function(list) { |
+ this.loadChildren_(list); |
+ }.bind(this)); |
+ } else { |
+ var items = this.$.list.items; |
+ for (var i = 0; i < items.length; ++i) { |
+ if (this.showItem_(items[i])) |
+ this.browserProxy.removeCookie(items[i].id); |
+ } |
+ } |
}, |
/** |