Bug 1354508 - Add filter option for network requests checking for a specific response header. r?ntim draft
authorVangelis Katsikaros <vkatsikaros@gmail.com>
Thu, 13 Apr 2017 22:59:21 +0300
changeset 562808 22f0898aedca2c5e9bad65dcf54a0f68219a987a
parent 561911 819a666afddc804b6099ee1b3cff3a0fdf35ec15
child 624319 571365053b02627beef90e68fd2c46316e765cff
push id54121
push uservkatsikaros@gmail.com
push dateFri, 14 Apr 2017 09:43:30 +0000
reviewersntim
bugs1354508
milestone55.0a1
Bug 1354508 - Add filter option for network requests checking for a specific response header. r?ntim MozReview-Commit-ID: E5wm5BgDJNU
devtools/client/netmonitor/src/utils/filter-text-utils.js
--- a/devtools/client/netmonitor/src/utils/filter-text-utils.js
+++ b/devtools/client/netmonitor/src/utils/filter-text-utils.js
@@ -36,16 +36,17 @@ const HEADER_FILTERS = HEADERS
   .map(h => h.filterKey || h.name);
 
 const FILTER_FLAGS = [
   ...HEADER_FILTERS,
   "scheme",
   "mime-type",
   "larger-than",
   "is",
+  "has-response-header",
 ];
 
 /*
   The function `parseFilters` is from:
   https://github.com/ChromeDevTools/devtools-frontend/
 
   front_end/network/FilterSuggestionBuilder.js#L138-L163
   Commit f340aefd7ec9b702de9366a812288cfb12111fce
@@ -123,16 +124,24 @@ function isFlagFilterMatch(item, { type,
       match = item.method.toLowerCase() === value;
       break;
     case "domain":
       match = item.urlDetails.host.toLowerCase().includes(value);
       break;
     case "remote-ip":
       match = `${item.remoteAddress}:${item.remotePort}`.toLowerCase().includes(value);
       break;
+    case "has-response-header":
+      if (typeof item.responseHeaders === "object") {
+        let { headers } = item.responseHeaders;
+        match = headers.findIndex(h => h.name.toLowerCase() === value) > -1;
+      } else {
+        match = false;
+      }
+      break;
     case "cause":
       let causeType = item.cause.type;
       match = typeof causeType === "string" ?
                 causeType.toLowerCase().includes(value) : false;
       break;
     case "transferred":
       if (item.fromCache) {
         match = false;