[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

mrobinson at webkit.org mrobinson at webkit.org
Wed Dec 22 15:01:41 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 5d45b2240310b511b20b1eeabdedda523c7ed854
Author: mrobinson at webkit.org <mrobinson at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Oct 27 15:58:20 2010 +0000

    2010-10-27  Sergio Villar Senin  <svillar at igalia.com>
    
            Reviewed by Martin Robinson.
    
            [Gtk] http/tests/xmlhttprequest/basic-auth-default.html fails
            https://bugs.webkit.org/show_bug.cgi?id=38956
    
            * platform/gtk/Skipped: removed test from skipped list
    2010-10-27  Sergio Villar Senin  <svillar at igalia.com>
    
            Reviewed by Martin Robinson.
    
            [Gtk] http/tests/xmlhttprequest/basic-auth-default.html fails
            https://bugs.webkit.org/show_bug.cgi?id=38956
    
            Added a new utility function that turns SoupURIs into
            KURLs. That addresses some issues with SoupURIs like for example
            soup_uri_to_string ignoring the URI password. Basic authentication
            using URL credentials should work now.
    
            * GNUmakefile.am:
            * platform/network/soup/ResourceHandleSoup.cpp:
            (WebCore::ResourceHandle::start):
            (WebCore::ResourceHandle::loadResourceSynchronously):
            * platform/network/soup/ResourceRequestSoup.cpp:
            (WebCore::ResourceRequest::updateFromSoupMessage):
            * platform/network/soup/ResourceResponseSoup.cpp:
            (WebCore::ResourceResponse::updateFromSoupMessage):
            * platform/network/soup/SoupURIUtils.cpp: Added.
            (WebCore::soupURIToKURL):
            * platform/network/soup/SoupURIUtils.h: Added.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@70651 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 8bccc09..a3a92f4 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,12 @@
+2010-10-27  Sergio Villar Senin  <svillar at igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        [Gtk] http/tests/xmlhttprequest/basic-auth-default.html fails
+        https://bugs.webkit.org/show_bug.cgi?id=38956
+
+        * platform/gtk/Skipped: removed test from skipped list
+
 2010-10-27  Martin Robinson  <mrobinson at igalia.com>
 
         Rebaseline a couple tests after r70569.
diff --git a/LayoutTests/platform/gtk/Skipped b/LayoutTests/platform/gtk/Skipped
index 0ff18b0..62c295c 100644
--- a/LayoutTests/platform/gtk/Skipped
+++ b/LayoutTests/platform/gtk/Skipped
@@ -5229,9 +5229,6 @@ http/tests/workers/text-encoding.html
 # https://bugs.webkit.org/show_bug.cgi?id=31302
 fast/css/font-face-woff.html 
 
-# https://bugs.webkit.org/show_bug.cgi?id=38956
-http/tests/xmlhttprequest/basic-auth-default.html
-
 # https://bugs.webkit.org/show_bug.cgi?id=40049
 http/tests/inspector/resource-har-conversion.html
 http/tests/inspector/resource-parameters.html
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 6689559..eaf0261 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,27 @@
+2010-10-27  Sergio Villar Senin  <svillar at igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        [Gtk] http/tests/xmlhttprequest/basic-auth-default.html fails
+        https://bugs.webkit.org/show_bug.cgi?id=38956
+
+        Added a new utility function that turns SoupURIs into
+        KURLs. That addresses some issues with SoupURIs like for example
+        soup_uri_to_string ignoring the URI password. Basic authentication
+        using URL credentials should work now.
+
+        * GNUmakefile.am:
+        * platform/network/soup/ResourceHandleSoup.cpp:
+        (WebCore::ResourceHandle::start):
+        (WebCore::ResourceHandle::loadResourceSynchronously):
+        * platform/network/soup/ResourceRequestSoup.cpp:
+        (WebCore::ResourceRequest::updateFromSoupMessage):
+        * platform/network/soup/ResourceResponseSoup.cpp:
+        (WebCore::ResourceResponse::updateFromSoupMessage):
+        * platform/network/soup/SoupURIUtils.cpp: Added.
+        (WebCore::soupURIToKURL):
+        * platform/network/soup/SoupURIUtils.h: Added.
+
 2010-10-27  Ademar de Souza Reis Jr  <ademar.reis at openbossa.org>
 
         Reviewed by Andreas Kling.
diff --git a/WebCore/GNUmakefile.am b/WebCore/GNUmakefile.am
index 6f16a0f..e3fdf94 100644
--- a/WebCore/GNUmakefile.am
+++ b/WebCore/GNUmakefile.am
@@ -3616,6 +3616,8 @@ webcoregtk_sources += \
 	WebCore/platform/network/soup/SocketStreamError.h \
 	WebCore/platform/network/soup/SocketStreamHandle.h \
 	WebCore/platform/network/soup/SocketStreamHandleSoup.cpp \
+	WebCore/platform/network/soup/SoupURIUtils.cpp \
+	WebCore/platform/network/soup/SoupURIUtils.h \
 	WebCore/platform/network/soup/cache/soup-directory-input-stream.c \
 	WebCore/platform/network/soup/cache/soup-directory-input-stream.h \
 	WebCore/platform/network/soup/cache/soup-http-input-stream.c \
diff --git a/WebCore/platform/network/soup/ResourceHandleSoup.cpp b/WebCore/platform/network/soup/ResourceHandleSoup.cpp
index 05c659f..0f97867 100644
--- a/WebCore/platform/network/soup/ResourceHandleSoup.cpp
+++ b/WebCore/platform/network/soup/ResourceHandleSoup.cpp
@@ -672,6 +672,15 @@ bool ResourceHandle::start(NetworkingContext* context)
     if (context && !context->isValid())
         return false;
 
+    if (!(d->m_user.isEmpty() || d->m_pass.isEmpty())) {
+        // If credentials were specified for this request, add them to the url,
+        // so that they will be passed to NetworkRequest.
+        KURL urlWithCredentials(firstRequest().url());
+        urlWithCredentials.setUser(d->m_user);
+        urlWithCredentials.setPass(d->m_pass);
+        d->m_firstRequest.setURL(urlWithCredentials);
+    }
+
     KURL url = firstRequest().url();
     String urlString = url.string();
     String protocol = url.protocol();
diff --git a/WebCore/platform/network/soup/ResourceRequestSoup.cpp b/WebCore/platform/network/soup/ResourceRequestSoup.cpp
index 380fc84..d46e47b 100644
--- a/WebCore/platform/network/soup/ResourceRequestSoup.cpp
+++ b/WebCore/platform/network/soup/ResourceRequestSoup.cpp
@@ -25,6 +25,7 @@
 #include "HTTPParsers.h"
 #include "MIMETypeRegistry.h"
 #include "PlatformString.h"
+#include "SoupURIUtils.h"
 #include <wtf/text/CString.h>
 
 #include <libsoup/soup.h>
@@ -88,9 +89,7 @@ SoupMessage* ResourceRequest::toSoupMessage() const
 
 void ResourceRequest::updateFromSoupMessage(SoupMessage* soupMessage)
 {
-    SoupURI* soupURI = soup_message_get_uri(soupMessage);
-    GOwnPtr<gchar> uri(soup_uri_to_string(soupURI, FALSE));
-    m_url = KURL(KURL(), String::fromUTF8(uri.get()));
+    m_url = soupURIToKURL(soup_message_get_uri(soupMessage));
 
     m_httpMethod = String::fromUTF8(soupMessage->method);
 
@@ -107,10 +106,8 @@ void ResourceRequest::updateFromSoupMessage(SoupMessage* soupMessage)
 
 #ifdef HAVE_LIBSOUP_2_29_90
     SoupURI* firstParty = soup_message_get_first_party(soupMessage);
-    if (firstParty) {
-        GOwnPtr<gchar> firstPartyURI(soup_uri_to_string(firstParty, FALSE));
-        m_firstPartyForCookies = KURL(KURL(), String::fromUTF8(firstPartyURI.get()));
-    }
+    if (firstParty)
+        m_firstPartyForCookies = soupURIToKURL(firstParty);
 #endif
 
     m_soupFlags = soup_message_get_flags(soupMessage);
diff --git a/WebCore/platform/network/soup/ResourceResponseSoup.cpp b/WebCore/platform/network/soup/ResourceResponseSoup.cpp
index cdbdc67..3bcdcc4 100644
--- a/WebCore/platform/network/soup/ResourceResponseSoup.cpp
+++ b/WebCore/platform/network/soup/ResourceResponseSoup.cpp
@@ -25,6 +25,7 @@
 #include "HTTPParsers.h"
 #include "MIMETypeRegistry.h"
 #include "PlatformString.h"
+#include "SoupURIUtils.h"
 #include <wtf/text/CString.h>
 
 using namespace std;
@@ -56,9 +57,7 @@ SoupMessage* ResourceResponse::toSoupMessage() const
 
 void ResourceResponse::updateFromSoupMessage(SoupMessage* soupMessage)
 {
-    SoupURI* soupURI = soup_message_get_uri(soupMessage);
-    GOwnPtr<gchar> uri(soup_uri_to_string(soupURI, FALSE));
-    m_url = KURL(KURL(), String::fromUTF8(uri.get()));
+    m_url = soupURIToKURL(soup_message_get_uri(soupMessage));
 
     m_httpStatusCode = soupMessage->status_code;
 
diff --git a/WebCore/platform/network/soup/SoupURIUtils.cpp b/WebCore/platform/network/soup/SoupURIUtils.cpp
new file mode 100644
index 0000000..1f65615
--- /dev/null
+++ b/WebCore/platform/network/soup/SoupURIUtils.cpp
@@ -0,0 +1,44 @@
+/*
+ *  Copyright (C) 20010 Igalia S.L.
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2 of the License, or (at your option) any later version.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with this library; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#include "config.h"
+#include "SoupURIUtils.h"
+
+#include "GOwnPtr.h"
+#include <libsoup/soup.h>
+
+namespace WebCore {
+
+// Motivated by https://bugs.webkit.org/show_bug.cgi?id=38956. libsoup
+// does not add the password to the URL when calling
+// soup_uri_to_string, and thus the requests are not properly
+// built. Fixing soup_uri_to_string is a no-no as the maintainer does
+// not want to break compatibility with previous implementations
+KURL soupURIToKURL(SoupURI* soupURI)
+{
+    GOwnPtr<gchar> urlString(soup_uri_to_string(soupURI, FALSE));
+    KURL url(KURL(), String::fromUTF8(urlString.get()));
+
+    if (!soupURI->password)
+        return url;
+
+    url.setPass(String::fromUTF8(soupURI->password));
+    return url;
+}
+
+}
diff --git a/WebCore/platform/network/soup/SoupURIUtils.h b/WebCore/platform/network/soup/SoupURIUtils.h
new file mode 100644
index 0000000..69772e7
--- /dev/null
+++ b/WebCore/platform/network/soup/SoupURIUtils.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2010 Igalia S.L.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SoupURIUtils_h
+#define SoupURIUtils_h
+
+#include "KURL.h"
+
+typedef struct _SoupURI SoupURI;
+
+namespace WebCore {
+KURL soupURIToKURL(SoupURI* soupURI);
+}
+
+#endif

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list