code: public void feedRequest(final CrawlRequest request, final boolean isCrawlSeed) {
          if (config.isOffsiteRequestFilteringEnabled()) {
              boolean inCrawlDomain = false;
  
              for (CrawlDomain allowedCrawlDomain : config.getAllowedCrawlDomains()) {
                  if (allowedCrawlDomain.contains(request.getDomain())) {
                      inCrawlDomain = true;
                      break;
                  }
              }
  
              if (!inCrawlDomain) {
                  return;
              }
          }
  
          if (config.isDuplicateRequestFilteringEnabled()) {
              String urlFingerprint = createFingerprintForUrl(request.getRequestUrl());
  
              if (urlFingerprints.contains(urlFingerprint)) {
                  return;
              }
  
              urlFingerprints.add(urlFingerprint);
          }
  
          CrawlCandidateBuilder builder = new CrawlCandidateBuilder(request);
  
          if (!isCrawlSeed) {
              int crawlDepthLimit = config.getMaximumCrawlDepth();
              int nextCrawlDepth = currentCandidate.getCrawlDepth() + 1;
  
              if (crawlDepthLimit != 0 && nextCrawlDepth > crawlDepthLimit) {
                  return;
              }
  
              builder = builder
                      .setRefererUrl(currentCandidate.getRequestUrl())
                      .setCrawlDepth(nextCrawlDepth);
          }
  
          candidates.add(builder.build());
      }
docs: Feeds a crawl request to the frontier.
  
  @param request     the crawl request
  @param isCrawlSeed indicates if the request is a crawl seed