code: function (urlStr) {
          /*
           * Similar to the UrlMatchPattern.test, however instead of testing
           * MATCH_ALL_URLS and Regex conditions serially with each of the pattern,
           * this method first searches for MATCH_ALL_URLS in all patterns
           * and then moves on to the slower Regex based searches.
           */
          var url,
              matchAllUrlsPattern,
              matchedSpecificPattern;
  
          matchAllUrlsPattern = this.find(function (urlMatchPattern) {
              return urlMatchPattern.pattern === MATCH_ALL_URLS;
          });
  
          if (_.isObject(matchAllUrlsPattern)) {
              return true;
          }
  
          try {
              url = new Url(urlStr);
          }
          catch (e) {
              return false;
          }
  
          matchedSpecificPattern = this.find(function (urlMatchPattern) {
              var matchRegexObject = urlMatchPattern._matchPatternObject;
              // Empty matchRegexObject represents the match is INVALID match
              if (_.isEmpty(matchRegexObject)) {
                  return false;
              }
  
              return (urlMatchPattern.testProtocol(url.protocol) &&
                  urlMatchPattern.testHost(url.getHost()) &&
                  urlMatchPattern.testPort(url.port, url.protocol) &&
                  urlMatchPattern.testPath(url.getPath()));
          });
  
          return Boolean(matchedSpecificPattern);
      }
docs: Tests the url string with the match pattern list provided to see if it matches any of it.
  Follows the https://developer.chrome.com/extensions/match_patterns pattern for pattern validation and matching
  
  @param {String=} [urlStr] The url string for which the proxy match needs to be done.
  @returns {Boolean=}