Changeset 159432 in webkit
- Timestamp:
- Nov 18, 2013 10:35:10 AM (10 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 4 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r159430 r159432 1 2013-11-18 Mátyás Mustoha <mmatyas@inf.u-szeged.hu> 2 3 [curl] Add file cache 4 https://bugs.webkit.org/show_bug.cgi?id=123333 5 6 Reviewed by Brent Fulgham. 7 8 Implementation of on disc file cache 9 for the curl network backend. 10 11 * WebCore.vcxproj/WebCore.vcxproj: 12 * WebCore.vcxproj/WebCore.vcxproj.filters: 13 * platform/network/curl/CurlCacheEntry.cpp: Added. 14 (WebCore::CurlCacheEntry::CurlCacheEntry): 15 (WebCore::CurlCacheEntry::~CurlCacheEntry): 16 (WebCore::CurlCacheEntry::isCached): 17 (WebCore::CurlCacheEntry::requestHeaders): 18 (WebCore::CurlCacheEntry::saveCachedData): 19 (WebCore::CurlCacheEntry::loadCachedData): 20 (WebCore::CurlCacheEntry::saveResponseHeaders): 21 (WebCore::CurlCacheEntry::loadResponseHeaders): 22 (WebCore::CurlCacheEntry::setResponseFromCachedHeaders): 23 (WebCore::CurlCacheEntry::didFail): 24 (WebCore::CurlCacheEntry::didFinishLoading): 25 (WebCore::CurlCacheEntry::generateBaseFilename): 26 (WebCore::CurlCacheEntry::loadFileToBuffer): 27 (WebCore::CurlCacheEntry::invalidate): 28 (WebCore::CurlCacheEntry::parseResponseHeaders): 29 * platform/network/curl/CurlCacheEntry.h: Added. 30 (WebCore::CurlCacheEntry::isInMemory): 31 * platform/network/curl/CurlCacheManager.cpp: Added. 32 (WebCore::CurlCacheManager::getInstance): 33 (WebCore::CurlCacheManager::CurlCacheManager): 34 (WebCore::CurlCacheManager::~CurlCacheManager): 35 (WebCore::CurlCacheManager::setCacheDirectory): 36 (WebCore::CurlCacheManager::loadIndex): 37 (WebCore::CurlCacheManager::saveIndex): 38 (WebCore::CurlCacheManager::didReceiveResponse): 39 (WebCore::CurlCacheManager::didFinishLoading): 40 (WebCore::CurlCacheManager::isCached): 41 (WebCore::CurlCacheManager::requestHeaders): 42 (WebCore::CurlCacheManager::didReceiveData): 43 (WebCore::CurlCacheManager::saveResponseHeaders): 44 (WebCore::CurlCacheManager::invalidateCacheEntry): 45 (WebCore::CurlCacheManager::didFail): 46 (WebCore::CurlCacheManager::loadCachedData): 47 * platform/network/curl/CurlCacheManager.h: Added. 48 (WebCore::CurlCacheManager::getCacheDirectory): 49 * platform/network/curl/ResourceHandleManager.cpp: 50 (WebCore::writeCallback): 51 (WebCore::headerCallback): 52 (WebCore::ResourceHandleManager::downloadTimerCallback): 53 (WebCore::ResourceHandleManager::initializeHandle): 54 1 55 2013-11-18 peavo@outlook.com <peavo@outlook.com> 2 56 -
trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj
r159386 r159432 8316 8316 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild> 8317 8317 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild> 8318 </ClCompile> 8319 <ClCompile Include="..\platform\network\curl\CurlCacheEntry.cpp"> 8320 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> 8321 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|Win32'">true</ExcludedFromBuild> 8322 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> 8323 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild> 8324 </ClCompile> 8325 <ClCompile Include="..\platform\network\curl\CurlCacheManager.cpp"> 8326 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> 8327 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|Win32'">true</ExcludedFromBuild> 8328 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> 8329 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild> 8318 8330 </ClCompile> 8319 8331 <ClCompile Include="..\platform\network\curl\CurlDownload.cpp"> … … 19474 19486 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild> 19475 19487 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild> 19488 </CustomBuildStep> 19489 <CustomBuildStep Include="..\platform\network\curl\CurlCacheManager.h"> 19490 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> 19491 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|Win32'">true</ExcludedFromBuild> 19492 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> 19493 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild> 19494 </CustomBuildStep> 19495 <CustomBuildStep Include="..\platform\network\curl\CurlCacheEntry.h"> 19496 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> 19497 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|Win32'">true</ExcludedFromBuild> 19498 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> 19499 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild> 19476 19500 </CustomBuildStep> 19477 19501 <CustomBuildStep Include="..\platform\network\curl\FormDataStreamCurl.h"> -
trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters
r159357 r159432 1897 1897 <Filter>platform\network\curl</Filter> 1898 1898 </ClCompile> 1899 <ClCompile Include="..\platform\network\curl\CurlCacheEntry.cpp"> 1900 <Filter>platform\network\curl</Filter> 1901 </ClCompile> 1902 <ClCompile Include="..\platform\network\curl\CurlCacheManager.cpp"> 1903 <Filter>platform\network\curl</Filter> 1904 </ClCompile> 1899 1905 <ClCompile Include="..\platform\network\curl\CurlDownload.cpp"> 1900 1906 <Filter>platform\network\curl</Filter> … … 15057 15063 <Filter>platform\network\curl</Filter> 15058 15064 </CustomBuildStep> 15065 <CustomBuildStep Include="..\platform\network\curl\CurlCacheEntry.h"> 15066 <Filter>platform\network\curl</Filter> 15067 </CustomBuildStep> 15068 <CustomBuildStep Include="..\platform\network\curl\CurlCacheManager.h"> 15069 <Filter>platform\network\curl</Filter> 15070 </CustomBuildStep> 15059 15071 <CustomBuildStep Include="..\platform\network\curl\FormDataStreamCurl.h"> 15060 15072 <Filter>platform\network\curl</Filter> -
trunk/Source/WebCore/platform/network/curl/ResourceHandleManager.cpp
r159053 r159432 10 10 * Copyright (C) 2013 Peter Gal <galpeter@inf.u-szeged.hu>, University of Szeged 11 11 * Copyright (C) 2013 Alex Christensen <achristensen@webkit.org> 12 * Copyright (C) 2013 University of Szeged 12 13 * All rights reserved. 13 14 * … … 38 39 39 40 #include "CredentialStorage.h" 41 #include "CurlCacheManager.h" 40 42 #include "DataURL.h" 41 43 #include "HTTPParsers.h" … … 269 271 if (d->m_multipartHandle) 270 272 d->m_multipartHandle->contentReceived(static_cast<const char*>(ptr), totalSize); 271 else if (d->client()) 273 else if (d->client()) { 272 274 d->client()->didReceiveData(job, static_cast<char*>(ptr), totalSize, 0); 275 CurlCacheManager::getInstance().didReceiveData(job->firstRequest().url().string(), static_cast<char*>(ptr), totalSize); 276 } 273 277 274 278 return totalSize; … … 460 464 } 461 465 462 if (client) 466 if (client) { 463 467 client->didReceiveResponse(job, d->m_response); 468 CurlCacheManager::getInstance().didReceiveResponse(job, d->m_response); 469 } 464 470 d->m_response.setResponseFired(true); 465 471 … … 606 612 d->m_multipartHandle->contentEnded(); 607 613 608 if (d->client()) 614 if (d->client()) { 609 615 d->client()->didFinishLoading(job, 0); 616 CurlCacheManager::getInstance().didFinishLoading(job->firstRequest().url().string()); 617 } 610 618 } else { 611 619 char* url = 0; … … 614 622 fprintf(stderr, "Curl ERROR for url='%s', error: '%s'\n", url, curl_easy_strerror(msg->data.result)); 615 623 #endif 616 if (d->client()) 624 if (d->client()) { 617 625 d->client()->didFail(job, ResourceError(String(), msg->data.result, String(url), String(curl_easy_strerror(msg->data.result)))); 626 CurlCacheManager::getInstance().didFail(job->firstRequest().url().string()); 627 } 618 628 } 619 629 … … 970 980 if (job->firstRequest().httpHeaderFields().size() > 0) { 971 981 HTTPHeaderMap customHeaders = job->firstRequest().httpHeaderFields(); 982 983 if (CurlCacheManager::getInstance().isCached(url)) { 984 HTTPHeaderMap& requestHeaders = CurlCacheManager::getInstance().requestHeaders(url); 985 986 // append additional cache information 987 HTTPHeaderMap::const_iterator it = requestHeaders.begin(); 988 HTTPHeaderMap::const_iterator end = requestHeaders.end(); 989 while (it != end) { 990 customHeaders.set(it->key, it->value); 991 ++it; 992 } 993 } 994 972 995 HTTPHeaderMap::const_iterator end = customHeaders.end(); 973 996 for (HTTPHeaderMap::const_iterator it = customHeaders.begin(); it != end; ++it) {
Note: See TracChangeset
for help on using the changeset viewer.