 		homePagesWithNoIconURLCache = Set(decoded)
 	}
 
+	func queueSaveFeedURLToIconURLCacheIfNeeded() {
+		WebFeedIconDownloader.saveQueue.add(self, #selector(saveFeedURLToIconURLCacheIfNeeded))
+	}
+
 	func queueSaveHomePageToIconURLCacheIfNeeded() {
 		WebFeedIconDownloader.saveQueue.add(self, #selector(saveHomePageToIconURLCacheIfNeeded))
 	}

		WebFeedIconDownloader.saveQueue.add(self, #selector(saveHomePagesWithNoIconURLCacheIfNeeded))
	}

	func saveHomePageToIconURLCache() {
		homePageToIconURLCacheDirty = false


				checkHomePageURL()
			}
		}
		
		if let feedProviderURL = feedURLToIconURLCache[feed.url] {
			self.icon(forURL: feedProviderURL, feed: feed) { (image) in
				if let image = image {
					self.postFeedIconDidBecomeAvailableNotification(feed)
					self.cache[feed] = IconImage(image)
				}
			}
			return nil
		}
		
		if let components = URLComponents(string: feed.url), let feedProvider = ExtensionPointManager.shared.bestFeedProvider(for: components, with: nil) {
			feedProvider.iconURL(components) { result in
				switch result {
				case .success(let feedProviderURL):
					self.feedURLToIconURLCache[feed.url] = feedProviderURL
					self.feedURLToIconURLCacheDirty = true
					self.icon(forURL: feedProviderURL, feed: feed) { (image) in
						if let image = image {
							self.postFeedIconDidBecomeAvailableNotification(feed)
							self.cache[feed] = IconImage(image)
						}
					}
				case .failure:
					checkFeedIconURL()
				}
			}
		} else {
