Bug 1361480 - Improve logic for size related filters; r=gasolin draft
authorJan Odvarko <odvarko@gmail.com>
Wed, 03 May 2017 08:27:35 +0200
changeset 572479 a3bf39bf29390782ea1d088a1855c23b562b24df
parent 572425 4a6a71f4aa22e4dc3961884ce505ce34bdd799a2
child 627034 7d171a190ea05678355a57fa49b678a07dbb4619
push id57087
push userjodvarko@mozilla.com
push dateThu, 04 May 2017 07:32:34 +0000
reviewersgasolin
bugs1361480
milestone55.0a1
Bug 1361480 - Improve logic for size related filters; r=gasolin MozReview-Commit-ID: 5hA6kpG9OhA
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
@@ -111,20 +111,16 @@ function processFlagFilter(type, value) 
         return null;
       }
       return quantity * multiplier;
     default:
       return value.toLowerCase();
   }
 }
 
-function getSizeOrder(size) {
-  return Math.round(Math.log10(size));
-}
-
 function isFlagFilterMatch(item, { type, value, negative }) {
   let match = true;
   let { responseCookies = { cookies: [] } } = item;
   responseCookies = responseCookies.cookies || responseCookies;
   switch (type) {
     case "status-code":
       match = item.status === value;
       break;
@@ -155,21 +151,21 @@ function isFlagFilterMatch(item, { type,
       let causeType = item.cause.type;
       match = typeof causeType === "string" ?
                 causeType.toLowerCase().includes(value) : false;
       break;
     case "transferred":
       if (item.fromCache) {
         match = false;
       } else {
-        match = getSizeOrder(value) === getSizeOrder(item.transferredSize);
+        match = isSizeMatch(value, item.transferredSize);
       }
       break;
     case "size":
-      match = getSizeOrder(value) === getSizeOrder(item.contentSize);
+      match = isSizeMatch(value, item.contentSize);
       break;
     case "larger-than":
       match = item.contentSize > value;
       break;
     case "mime-type":
       match = item.mimeType.includes(value);
       break;
     case "is":
@@ -211,16 +207,20 @@ function isFlagFilterMatch(item, { type,
       break;
   }
   if (negative) {
     return !match;
   }
   return match;
 }
 
+function isSizeMatch(value, size) {
+  return value >= (size - size / 10) && value < (size + size / 10);
+}
+
 function isTextFilterMatch({ url }, text) {
   let lowerCaseUrl = url.toLowerCase();
   let lowerCaseText = text.toLowerCase();
   let textLength = text.length;
   // Support negative filtering
   if (text.startsWith("-") && textLength > 1) {
     lowerCaseText = lowerCaseText.substring(1, textLength);
     return !lowerCaseUrl.includes(lowerCaseText);