[Curl] Cookies are sometimes not set in download request.
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 30 Oct 2013 17:31:40 +0000 (17:31 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 30 Oct 2013 17:31:40 +0000 (17:31 +0000)
https://bugs.webkit.org/show_bug.cgi?id=123445

Patch by peavo@outlook.com <peavo@outlook.com> on 2013-10-30
Reviewed by Brent Fulgham.

Sometimes cookies are not set in the download request because the cookie file cannot be opened,
it's already been opened by the ResourceHandleManager for writing.
This can be fixed by getting the cookie list from the share handle in ResourceHandleManager instead.
This will also improve performance, as there is no need to read and parse the cookie file for each download.

* platform/network/curl/CurlDownload.cpp:
(WebCore::CurlDownload::init): Use share handle to get cookie list.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@158277 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/platform/network/curl/CurlDownload.cpp

index 87128ea..adcd3a5 100644 (file)
@@ -1,3 +1,18 @@
+2013-10-30  peavo@outlook.com  <peavo@outlook.com>
+
+        [Curl] Cookies are sometimes not set in download request.
+        https://bugs.webkit.org/show_bug.cgi?id=123445
+
+        Reviewed by Brent Fulgham.
+
+        Sometimes cookies are not set in the download request because the cookie file cannot be opened,
+        it's already been opened by the ResourceHandleManager for writing.
+        This can be fixed by getting the cookie list from the share handle in ResourceHandleManager instead.
+        This will also improve performance, as there is no need to read and parse the cookie file for each download.
+
+        * platform/network/curl/CurlDownload.cpp:
+        (WebCore::CurlDownload::init): Use share handle to get cookie list.
+
 2013-10-30  ChangSeok Oh  <changseok.oh@collabora.com>
 
         Unguard Element::childShouldCreateRenderer
index fb20922..2504608 100644 (file)
@@ -28,6 +28,7 @@
 
 #include "HTTPParsers.h"
 #include "MainThreadTask.h"
+#include "ResourceHandleManager.h"
 #include "ResourceRequest.h"
 #include <wtf/MainThread.h>
 #include <wtf/text/CString.h>
@@ -274,9 +275,9 @@ void CurlDownload::init(CurlDownloadListener* listener, const URL& url)
     if (certPath)
         curl_easy_setopt(m_curlHandle, CURLOPT_CAINFO, certPath);
 
-    const char* cookieJarPath = getenv("CURL_COOKIE_JAR_PATH");
-    if (cookieJarPath)
-        curl_easy_setopt(m_curlHandle, CURLOPT_COOKIEFILE, cookieJarPath);
+    CURLSH* curlsh = ResourceHandleManager::sharedInstance()->getCurlShareHandle();
+    if (curlsh)
+        curl_easy_setopt(m_curlHandle, CURLOPT_SHARE, curlsh);
 
     m_listener = listener;
 }