Index: third_party/WebKit/Source/devtools/front_end/resources/CookieItemsView.js |
diff --git a/third_party/WebKit/Source/devtools/front_end/resources/CookieItemsView.js b/third_party/WebKit/Source/devtools/front_end/resources/CookieItemsView.js |
index 42c424c9b6fe536cbc47372708efb6e8cc9e841f..83441316f432eb19b7883c53f78aecb9a5bb2a4b 100644 |
--- a/third_party/WebKit/Source/devtools/front_end/resources/CookieItemsView.js |
+++ b/third_party/WebKit/Source/devtools/front_end/resources/CookieItemsView.js |
@@ -36,17 +36,23 @@ Resources.CookieItemsView = class extends UI.SimpleView { |
this.element.classList.add('storage-view'); |
- this._deleteButton = new UI.ToolbarButton(Common.UIString('Delete'), 'largeicon-delete'); |
- this._deleteButton.setVisible(false); |
+ this._deleteButton = new UI.ToolbarButton(Common.UIString('Delete Selected'), 'largeicon-delete'); |
this._deleteButton.addEventListener(UI.ToolbarButton.Events.Click, this._deleteButtonClicked, this); |
- this._clearButton = new UI.ToolbarButton(Common.UIString('Clear'), 'largeicon-clear'); |
- this._clearButton.setVisible(false); |
+ this._clearButton = new UI.ToolbarButton(Common.UIString('Clear All'), 'largeicon-clear'); |
this._clearButton.addEventListener(UI.ToolbarButton.Events.Click, this._clearButtonClicked, this); |
this._refreshButton = new UI.ToolbarButton(Common.UIString('Refresh'), 'largeicon-refresh'); |
this._refreshButton.addEventListener(UI.ToolbarButton.Events.Click, this._refreshButtonClicked, this); |
+ this._filterBar = new UI.FilterBar('cookiesPanel', true); |
+ this._textFilterUI = new UI.TextFilterUI(true); |
+ this._textFilterUI.addEventListener(UI.FilterUI.Events.FilterChanged, this._filterChanged, this); |
+ this._filterBar.addFilter(this._textFilterUI); |
+ |
+ this._filterSeparator = new UI.ToolbarSeparator(); |
+ this._filterButton = this._filterBar.filterButton(); |
+ |
this._treeElement = treeElement; |
this._cookieDomain = cookieDomain; |
@@ -65,7 +71,10 @@ Resources.CookieItemsView = class extends UI.SimpleView { |
* @return {!Array.<!UI.ToolbarItem>} |
*/ |
syncToolbarItems() { |
- return [this._refreshButton, this._clearButton, this._deleteButton]; |
+ return [ |
+ this._refreshButton, this._clearButton, this._deleteButton, |
+ this._filterSeparator, this._filterButton |
+ ]; |
} |
/** |
@@ -79,7 +88,16 @@ Resources.CookieItemsView = class extends UI.SimpleView { |
* @override |
*/ |
willHide() { |
- this._deleteButton.setVisible(false); |
+ this._deleteButton.setEnabled(false); |
+ } |
+ |
+ /** |
+ * @param {!Common.Event} event |
+ */ |
+ _filterChanged(event) { |
+ var text = this._textFilterUI.value(); |
+ this._filterRegex = text && new RegExp(text.escapeForRegExp(), 'i'); |
+ this._update(); |
} |
_update() { |
@@ -95,8 +113,9 @@ Resources.CookieItemsView = class extends UI.SimpleView { |
if (!this._cookies.length) { |
// Nothing to show. |
this._emptyWidget.show(this.element); |
- this._clearButton.setVisible(false); |
- this._deleteButton.setVisible(false); |
+ this._filterButton.setEnabled(false); |
+ this._clearButton.setEnabled(false); |
+ this._deleteButton.setEnabled(false); |
if (this._cookiesTable) |
this._cookiesTable.detach(); |
return; |
@@ -104,19 +123,35 @@ Resources.CookieItemsView = class extends UI.SimpleView { |
if (!this._cookiesTable) { |
this._cookiesTable = |
- new Components.CookiesTable(false, this._update.bind(this), this._showDeleteButton.bind(this)); |
+ new Components.CookiesTable(false, this._update.bind(this), this._enableDeleteButton.bind(this)); |
} |
- this._cookiesTable.setCookies(this._cookies); |
+ var shownCookies = this._filterCookiesForFilters(this._cookies); |
+ this._cookiesTable.setCookies(shownCookies); |
this._emptyWidget.detach(); |
this._cookiesTable.show(this.element); |
+ this._filterBar.show(this.element); |
this._treeElement.subtitle = |
String.sprintf(Common.UIString('%d cookies (%s)'), this._cookies.length, Number.bytesToString(this._totalSize)); |
- this._clearButton.setVisible(true); |
- this._deleteButton.setVisible(!!this._cookiesTable.selectedCookie()); |
+ this._filterButton.setEnabled(true); |
+ this._clearButton.setEnabled(true); |
+ this._deleteButton.setEnabled(!!this._cookiesTable.selectedCookie()); |
} |
/** |
+ * @param {!Array.<!SDK.Cookie>} cookies |
+ */ |
+ _filterCookiesForFilters(cookies) { |
+ if (!this._filterRegex) |
+ return cookies; |
+ |
+ return cookies.filter(cookie => { |
+ const candidate = `${cookie.name()} ${cookie.value()} ${cookie.domain()}`; |
+ return this._filterRegex.test(candidate); |
+ }); |
+ } |
+ |
+ /** |
* @param {!Array.<!SDK.Cookie>} allCookies |
*/ |
_filterCookiesForDomain(allCookies) { |
@@ -163,8 +198,8 @@ Resources.CookieItemsView = class extends UI.SimpleView { |
this.clear(); |
} |
- _showDeleteButton() { |
- this._deleteButton.setVisible(true); |
+ _enableDeleteButton() { |
+ this._deleteButton.setEnabled(true); |
} |
/** |