diff --git a/Account/Sources/Account/LocalAccount/LocalAccountRefresher.swift b/Account/Sources/Account/LocalAccount/LocalAccountRefresher.swift index fa37a5cdc..952a6cb01 100644 --- a/Account/Sources/Account/LocalAccount/LocalAccountRefresher.swift +++ b/Account/Sources/Account/LocalAccount/LocalAccountRefresher.swift @@ -36,7 +36,7 @@ final class LocalAccountRefresher { public func refreshFeeds(_ feeds: Set, completion: (() -> Void)? = nil) { - let filteredFeeds = feeds.filter { !Self.feedIsDisallowed($0) } + let filteredFeeds = feeds.filter { !feedShouldBeSkipped($0) } guard !filteredFeeds.isEmpty else { Task { @MainActor in @@ -177,6 +177,16 @@ private extension LocalAccountRefresher { return false } + + func feedShouldBeSkipped(_ feed: WebFeed) -> Bool { + + if let cacheControlInfo = feed.cacheControlInfo, !cacheControlInfo.isExpired { + os_log(.debug, "Dropping request for Cache-Control reasons: \(feed.url)") + return true + } + + return Self.feedIsDisallowed(feed) + } } // MARK: - Utility diff --git a/RSWeb/Sources/RSWeb/DownloadSession.swift b/RSWeb/Sources/RSWeb/DownloadSession.swift index 7224181c9..e2e654d2a 100755 --- a/RSWeb/Sources/RSWeb/DownloadSession.swift +++ b/RSWeb/Sources/RSWeb/DownloadSession.swift @@ -32,7 +32,6 @@ public protocol DownloadSessionDelegate { private let delegate: DownloadSessionDelegate private var redirectCache = [URL: URL]() private var queue = [URL]() - private var cacheControlResponses = [URL: CacheControlInfo]() // 429 Too Many Requests responses private var retryAfterMessages = [String: HTTPResponse429]() @@ -152,15 +151,6 @@ extension DownloadSession: URLSessionDataDelegate { return } - if let httpURLResponse = response as? HTTPURLResponse, let cacheControlInfo = CacheControlInfo(urlResponse: httpURLResponse) { - if let url = taskInfo?.url { - cacheControlResponses[url] = cacheControlInfo - if let actualURL = response.url, actualURL != url { - cacheControlResponses[actualURL] = cacheControlInfo - } - } - } - addDataTaskFromQueueIfNecessary() completionHandler(.allow) } @@ -201,10 +191,6 @@ private extension DownloadSession { os_log(.debug, "Dropping request for previous 400-499: \(urlToUse)") return } - if requestShouldBeDroppedDueToCacheControl(urlToUse) { - os_log(.debug, "Dropping request for Cache-Control reasons: \(urlToUse)") - return - } let urlRequest: URLRequest = { var request = URLRequest(url: urlToUse) @@ -398,17 +384,6 @@ private extension DownloadSession { return false } - - // MARK: - Cache-Control responses - - func requestShouldBeDroppedDueToCacheControl(_ url: URL) -> Bool { - - guard let cacheControlInfo = cacheControlResponses[url] else { - return false - } - - return cacheControlInfo.dateExpired > Date() - } } extension URLSessionTask {