diff --git a/Shared/Favicons/FaviconDownloader.swift b/Shared/Favicons/FaviconDownloader.swift index eee115711..447012cd6 100644 --- a/Shared/Favicons/FaviconDownloader.swift +++ b/Shared/Favicons/FaviconDownloader.swift @@ -24,6 +24,7 @@ final class FaviconDownloader { private let diskCache: BinaryDiskCache private var singleFaviconDownloaderCache = [String: SingleFaviconDownloader]() // faviconURL: SingleFaviconDownloader private var remainingFaviconURLs = [String: ArraySlice]() // homePageURL: array of faviconURLs that haven't been checked yet + private var currentHomePageHasOnlyFaviconICO = false private var homePageToFaviconURLCache = [String: String]() //homePageURL: faviconURL private var homePageToFaviconURLCachePath: String @@ -131,20 +132,14 @@ final class FaviconDownloader { } findFaviconURLs(with: url) { (faviconURLs) in - var hasIcons = false - if let faviconURLs = faviconURLs { + self.currentHomePageHasOnlyFaviconICO = faviconURLs.count == 1 + if let firstIconURL = faviconURLs.first { - hasIcons = true let _ = self.favicon(with: firstIconURL, homePageURL: url) self.remainingFaviconURLs[url] = faviconURLs.dropFirst() } } - - if (!hasIcons) { - self.homePageURLsWithNoFaviconURLCache.insert(url) - self.homePageURLsWithNoFaviconURLCacheDirty = true - } } return nil @@ -167,6 +162,11 @@ final class FaviconDownloader { remainingFaviconURLs[homePageURL] = faviconURLs.dropFirst(); } else { remainingFaviconURLs[homePageURL] = nil + + if currentHomePageHasOnlyFaviconICO { + self.homePageURLsWithNoFaviconURLCache.insert(homePageURL) + self.homePageURLsWithNoFaviconURLCacheDirty = true + } } } return