From 08413889b806658fdd34ef41421d66ae202a7edb Mon Sep 17 00:00:00 2001 From: "commit-queue@webkit.org" Date: Wed, 4 Sep 2013 17:53:59 +0000 Subject: [PATCH] REGRESSION(r154977): Do not urlencode soup message on ResourceRequest::toSoupMessage() https://bugs.webkit.org/show_bug.cgi?id=120681 Patch by Andre Moreira Magalhaes on 2013-09-04 Reviewed by Martin Robinson. Do not call soup_message_set_uri with soupURI() (url encoded uri) on ResourceRequest::toSoupMessage(). * platform/network/soup/ResourceRequest.h: * platform/network/soup/ResourceRequestSoup.cpp: (WebCore::ResourceRequest::updateSoupMessageMembers): (WebCore::ResourceRequest::updateSoupMessage): (WebCore::ResourceRequest::toSoupMessage): Split common code from updateSoupMessage/toSoupMessage into updateSoupMessageMembers. git-svn-id: https://svn.webkit.org/repository/webkit/trunk@155049 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- Source/WebCore/ChangeLog | 17 ++++++++++ .../platform/network/soup/ResourceRequest.h | 1 + .../network/soup/ResourceRequestSoup.cpp | 31 +++++++++++-------- 3 files changed, 36 insertions(+), 13 deletions(-) diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog index eeded5c4322c..dafc47c27830 100644 --- a/Source/WebCore/ChangeLog +++ b/Source/WebCore/ChangeLog @@ -1,3 +1,20 @@ +2013-09-04 Andre Moreira Magalhaes + + REGRESSION(r154977): Do not urlencode soup message on ResourceRequest::toSoupMessage() + https://bugs.webkit.org/show_bug.cgi?id=120681 + + Reviewed by Martin Robinson. + + Do not call soup_message_set_uri with soupURI() (url encoded uri) on + ResourceRequest::toSoupMessage(). + + * platform/network/soup/ResourceRequest.h: + * platform/network/soup/ResourceRequestSoup.cpp: + (WebCore::ResourceRequest::updateSoupMessageMembers): + (WebCore::ResourceRequest::updateSoupMessage): + (WebCore::ResourceRequest::toSoupMessage): + Split common code from updateSoupMessage/toSoupMessage into updateSoupMessageMembers. + 2013-09-04 Danilo Cesar Lemes de Paula [GTK] add support for subtitles on webkit2GTK diff --git a/Source/WebCore/platform/network/soup/ResourceRequest.h b/Source/WebCore/platform/network/soup/ResourceRequest.h index 730a2870449f..a0d0b4c752a7 100644 --- a/Source/WebCore/platform/network/soup/ResourceRequest.h +++ b/Source/WebCore/platform/network/soup/ResourceRequest.h @@ -93,6 +93,7 @@ namespace WebCore { bool m_acceptEncoding : 1; SoupMessageFlags m_soupFlags; + void updateSoupMessageMembers(SoupMessage*) const; void doUpdatePlatformRequest() { } void doUpdateResourceRequest() { } void doUpdatePlatformHTTPBody() { } diff --git a/Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp b/Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp index 2e6b3a6406fb..b5a4a0dda702 100644 --- a/Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp +++ b/Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp @@ -32,6 +32,22 @@ using namespace std; namespace WebCore { +void ResourceRequest::updateSoupMessageMembers(SoupMessage* soupMessage) const +{ + updateSoupMessageHeaders(soupMessage->request_headers); + + String firstPartyString = firstPartyForCookies().string(); + if (!firstPartyString.isEmpty()) { + GOwnPtr firstParty(soup_uri_new(firstPartyString.utf8().data())); + soup_message_set_first_party(soupMessage, firstParty.get()); + } + + soup_message_set_flags(soupMessage, m_soupFlags); + + if (!acceptEncoding()) + soup_message_disable_feature(soupMessage, SOUP_TYPE_CONTENT_DECODER); +} + void ResourceRequest::updateSoupMessageHeaders(SoupMessageHeaders* soupHeaders) const { const HTTPHeaderMap& headers = httpHeaderFields(); @@ -60,18 +76,7 @@ void ResourceRequest::updateSoupMessage(SoupMessage* soupMessage) const GOwnPtr uri(soupURI()); soup_message_set_uri(soupMessage, uri.get()); - updateSoupMessageHeaders(soupMessage->request_headers); - - String firstPartyString = firstPartyForCookies().string(); - if (!firstPartyString.isEmpty()) { - GOwnPtr firstParty(soup_uri_new(firstPartyString.utf8().data())); - soup_message_set_first_party(soupMessage, firstParty.get()); - } - - soup_message_set_flags(soupMessage, m_soupFlags); - - if (!acceptEncoding()) - soup_message_disable_feature(soupMessage, SOUP_TYPE_CONTENT_DECODER); + updateSoupMessageMembers(soupMessage); } SoupMessage* ResourceRequest::toSoupMessage() const @@ -80,7 +85,7 @@ SoupMessage* ResourceRequest::toSoupMessage() const if (!soupMessage) return 0; - updateSoupMessage(soupMessage); + updateSoupMessageMembers(soupMessage); // Body data is only handled at ResourceHandleSoup::startHttp for // now; this is because this may not be a good place to go -- 2.36.0