@SmallTest
  public void testDoNotMakeRequestForFaviconAfter404() throws Throwable {
    mWebServer.setResponseWithNotFoundStatus(FAVICON1_URL);
    final String pageUrl =
        mWebServer.setResponse(
            FAVICON1_PAGE_URL, FAVICON1_PAGE_HTML, CommonResources.getTextHtmlHeaders(true));

    loadUrlSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), pageUrl);
    poll(
        new Callable<Boolean>() {
          @Override
          public Boolean call() throws Exception {
            return mWebServer.getRequestCount(FAVICON1_URL) == 1;
          }
        });

    // Make sure the request counter for favicon is not incremented, since we already got 404.
    loadUrlSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), pageUrl);
    // If a request hasn't been done within this time period, we assume it won't be done.
    Thread.sleep(MAX_REQUEST_WAITING_LIMIT_MS);
    assertEquals(1, mWebServer.getRequestCount(FAVICON1_URL));
  }