2015-04-26

Fix FaviconHandler when it has multiple icon URLs and one of them is invalid

This CL prevents FaviconHandler from stopping iteration over a page's icon URLs
if a download for one of the icon URLs previously returned a 404. In particular,
this CL makes FaviconHandler::ScheduleDownload() call the download callback
when FaviconDriver::StartDownload() does not start a download. This is important
because the download callback is responsible for initiating the fetch for the
data for the next favicon candidate.

Sample scenario:
Page HTML snippet:
<link rel="icon" href="www.google.com/nothingtoseehere.png" />
<link rel="icon" href="www.google.com/favicon.ico" />

A previous download for "www.google.com/nothingtoseehere.png" returned a 404
(e.g. the user previously visited a different page which also makes use of
www.google.com/nothingtoseehere.png)

This CL makes FaviconHandler fetch data for "www.google.com/favicon.ico"
despite the download for the first favicon candidate
("www.google.com/nothingtoseehere.png") having previously failed.

BUG=474429
TEST=FaviconHandlerTest.MultipleFavicons404,
FaviconHandlerTest.MultipleFaviconsAll404

Show more