Index: Source/devtools/front_end/network/NetworkPanel.js |
diff --git a/Source/devtools/front_end/network/NetworkPanel.js b/Source/devtools/front_end/network/NetworkPanel.js |
index 0f1b7cdf05ef739ea9d3aeb822133f5f57c60626..c67b5851860f654ae24091751810889405898cb6 100644 |
--- a/Source/devtools/front_end/network/NetworkPanel.js |
+++ b/Source/devtools/front_end/network/NetworkPanel.js |
@@ -1481,9 +1481,12 @@ WebInspector.NetworkLogView.prototype = { |
{ |
var parsedQuery = this._suggestionBuilder.parseQuery(query); |
this._filters = parsedQuery.text.map(this._createTextFilter); |
- for (var key in parsedQuery.filters) { |
- var filterType = /** @type {!WebInspector.NetworkLogView.FilterType} */ (key); |
- this._filters.push(this._createFilter(filterType, parsedQuery.filters[key])); |
+ var filters = parsedQuery.filters; |
+ var n = parsedQuery.filters.length; |
+ for (var i = 0; i < n; ++i) { |
+ var filter = parsedQuery.filters[i]; |
+ var filterType = /** @type {!WebInspector.NetworkLogView.FilterType} */ (filter.type); |
+ this._filters.push(this._createFilter(filterType, filter.data, filter.negative)); |
} |
}, |
@@ -1500,9 +1503,26 @@ WebInspector.NetworkLogView.prototype = { |
/** |
* @param {!WebInspector.NetworkLogView.FilterType} type |
* @param {string} value |
+ * @param {boolean} negative |
* @return {!WebInspector.NetworkLogView.Filter} |
*/ |
- _createFilter: function(type, value) { |
+ _createFilter: function(type, value, negative) |
+ { |
+ var filter = this._createSpecialFilter(type, value); |
+ if (!filter) |
+ return this._createTextFilter((negative ? "-" : "") + type + ":" + value); |
+ if (negative) |
+ return WebInspector.NetworkLogView._negativeFilter.bind(null, filter); |
+ return filter; |
+ }, |
+ |
+ /** |
+ * @param {!WebInspector.NetworkLogView.FilterType} type |
+ * @param {string} value |
+ * @return {?WebInspector.NetworkLogView.Filter} |
+ */ |
+ _createSpecialFilter: function(type, value) |
+ { |
switch (type) { |
case WebInspector.NetworkLogView.FilterType.Domain: |
return WebInspector.NetworkLogView._requestDomainFilter.bind(null, value); |
@@ -1536,7 +1556,7 @@ WebInspector.NetworkLogView.prototype = { |
case WebInspector.NetworkLogView.FilterType.StatusCode: |
return WebInspector.NetworkLogView._statusCodeFilter.bind(null, value); |
} |
- return this._createTextFilter(type + ":" + value); |
+ return null; |
}, |
_filterRequests: function() |
@@ -1705,6 +1725,16 @@ WebInspector.NetworkLogView.prototype = { |
WebInspector.NetworkLogView.Filter; |
/** |
+ * @param {!WebInspector.NetworkLogView.Filter} filter |
+ * @param {!WebInspector.NetworkRequest} request |
+ * @return {boolean} |
+ */ |
+WebInspector.NetworkLogView._negativeFilter = function(filter, request) |
+{ |
+ return !filter(request); |
+} |
+ |
+/** |
* @param {!RegExp} regex |
* @param {!WebInspector.NetworkRequest} request |
* @return {boolean} |