Changeset 183407 in webkit
- Timestamp:
- Apr 27, 2015 11:57:13 AM (9 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r183405 r183407 1 2015-04-27 Per Arne Vollan <peavo@outlook.com> 2 3 [Curl] Favicons loaded from disc cache are ignored. 4 https://bugs.webkit.org/show_bug.cgi?id=143953 5 6 Reviewed by Alex Christensen. 7 8 When a favicon is loaded from the Curl disc cache, the icon data is thrown away. 9 This happens because we give a 304 response, which makes the icon loader ignore 10 the response. We can solve this by responding with 200 OK. 11 12 * platform/network/ResourceHandleInternal.h: 13 (WebCore::ResourceHandleInternal::ResourceHandleInternal): 14 * platform/network/curl/CurlCacheManager.cpp: 15 (WebCore::CurlCacheManager::didReceiveResponse): 16 * platform/network/curl/ResourceHandleManager.cpp: 17 (WebCore::headerCallback): 18 (WebCore::ResourceHandleManager::initializeHandle): 19 1 20 2015-04-27 Brady Eidson <beidson@apple.com> 2 21 -
trunk/Source/WebCore/platform/network/ResourceHandleInternal.h
r183265 r183407 88 88 #endif 89 89 #if USE(CURL) 90 , m_handle(0)91 , m_url(0)92 , m_customHeaders(0)93 , m_cancelled(false)94 , m_authFailureCount(0)95 90 , m_formDataStream(loader) 96 , m_sslErrors(0)97 91 #endif 98 92 #if USE(SOUP) … … 152 146 #endif 153 147 #if USE(CURL) 154 CURL* m_handle ;155 char* m_url ;156 struct curl_slist* m_customHeaders ;148 CURL* m_handle { nullptr }; 149 char* m_url { nullptr }; 150 struct curl_slist* m_customHeaders { nullptr }; 157 151 ResourceResponse m_response; 158 bool m_cancelled ;159 unsigned short m_authFailureCount ;152 bool m_cancelled { false }; 153 unsigned short m_authFailureCount { 0 }; 160 154 161 155 FormDataStream m_formDataStream; 162 unsigned m_sslErrors ;156 unsigned m_sslErrors { 0 }; 163 157 Vector<char> m_postBytes; 164 158 165 159 std::unique_ptr<MultipartHandle> m_multipartHandle; 160 bool m_addedCacheValidationHeaders { false }; 166 161 #endif 167 162 #if USE(SOUP) -
trunk/Source/WebCore/platform/network/curl/CurlCacheManager.cpp
r177080 r183407 207 207 removeCacheEntryClient(url, &job); 208 208 209 if (response. httpStatusCode() == 304) {209 if (response.source() == ResourceResponseBase::Source::DiskCache) { 210 210 readCachedData(url, &job, response); 211 211 m_LRUEntryList.prependOrMoveToFirst(url); -
trunk/Source/WebCore/platform/network/curl/ResourceHandleManager.cpp
r183265 r183407 554 554 if (isHttpNotModified(httpCode)) { 555 555 const String& url = job->firstRequest().url().string(); 556 CurlCacheManager::getInstance().getCachedResponse(url, d->m_response); 556 if (CurlCacheManager::getInstance().getCachedResponse(url, d->m_response)) { 557 if (d->m_addedCacheValidationHeaders) { 558 d->m_response.setHTTPStatusCode(200); 559 d->m_response.setHTTPStatusText("OK"); 560 } 561 } 557 562 } 558 563 client->didReceiveResponse(job, d->m_response); … … 1086 1091 HTTPHeaderMap customHeaders = job->firstRequest().httpHeaderFields(); 1087 1092 1088 if (CurlCacheManager::getInstance().isCached(url)) { 1093 bool hasCacheHeaders = customHeaders.contains(HTTPHeaderName::IfModifiedSince) || customHeaders.contains(HTTPHeaderName::IfNoneMatch); 1094 if (!hasCacheHeaders && CurlCacheManager::getInstance().isCached(url)) { 1089 1095 CurlCacheManager::getInstance().addCacheEntryClient(url, job); 1090 1096 HTTPHeaderMap& requestHeaders = CurlCacheManager::getInstance().requestHeaders(url); … … 1097 1103 ++it; 1098 1104 } 1099 } else { 1100 // Make sure we don't send any cache headers when url is not cached. 1101 customHeaders.remove(HTTPHeaderName::IfModifiedSince); 1102 customHeaders.remove(HTTPHeaderName::IfNoneMatch); 1105 d->m_addedCacheValidationHeaders = true; 1103 1106 } 1104 1107
Note: See TracChangeset
for help on using the changeset viewer.