Changeset 182943 in webkit
- Timestamp:
- Apr 17, 2015, 3:13:40 AM (11 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp (modified) (6 diffs)
-
Tools/ChangeLog (modified) (1 diff)
-
Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestLoaderClient.cpp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r182935 r182943 1 2015-04-17 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [SOUP] Redirect to non HTTP destination is broken 4 https://bugs.webkit.org/show_bug.cgi?id=143866 5 6 Reviewed by Sergio Villar Senin. 7 8 This is because we are passing true unconditionally as 9 isHTTPFamilyRequest parameter of 10 createSoupRequestAndMessageForHandle in continueAfterWillSendRequest. 11 We don't actually need to pass isHTTPFamilyRequest parameter to 12 createSoupRequestAndMessageForHandle, since it can simply check 13 that from the given request. 14 15 Covered by unit tets and also cache/disk-cache/disk-cache-redirect-to-data.html. 16 17 * platform/network/soup/ResourceHandleSoup.cpp: 18 (WebCore::continueAfterWillSendRequest): 19 (WebCore::createSoupRequestAndMessageForHandle): 20 (WebCore::ResourceHandle::start): 21 1 22 2015-04-16 Alex Christensen <achristensen@webkit.org> 2 23 -
trunk/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp
r181074 r182943 228 228 }; 229 229 230 static bool createSoupRequestAndMessageForHandle(ResourceHandle*, const ResourceRequest& , bool isHTTPFamilyRequest);230 static bool createSoupRequestAndMessageForHandle(ResourceHandle*, const ResourceRequest&); 231 231 static void cleanupSoupRequestOperation(ResourceHandle*, bool isDestroying = false); 232 232 static void sendRequestCallback(GObject*, GAsyncResult*, gpointer); … … 469 469 applyAuthenticationToRequest(handle, newRequest, true); 470 470 471 if (!createSoupRequestAndMessageForHandle(handle, newRequest , true)) {471 if (!createSoupRequestAndMessageForHandle(handle, newRequest)) { 472 472 d->client()->cannotShowURL(handle); 473 473 return; … … 968 968 } 969 969 970 static bool createSoupRequestAndMessageForHandle(ResourceHandle* handle, const ResourceRequest& request , bool isHTTPFamilyRequest)970 static bool createSoupRequestAndMessageForHandle(ResourceHandle* handle, const ResourceRequest& request) 971 971 { 972 972 ResourceHandleInternal* d = handle->getInternal(); … … 984 984 985 985 // SoupMessages are only applicable to HTTP-family requests. 986 if ( isHTTPFamilyRequest&& !createSoupMessageForHandleAndRequest(handle, request)) {986 if (request.url().protocolIsInHTTPFamily() && !createSoupMessageForHandleAndRequest(handle, request)) { 987 987 d->m_soupRequest.clear(); 988 988 return false; … … 1008 1008 // Only allow the POST and GET methods for non-HTTP requests. 1009 1009 const ResourceRequest& request = firstRequest(); 1010 bool isHTTPFamilyRequest = request.url().protocolIsInHTTPFamily(); 1011 if (!isHTTPFamilyRequest && request.httpMethod() != "GET" && request.httpMethod() != "POST") { 1010 if (!request.url().protocolIsInHTTPFamily() && request.httpMethod() != "GET" && request.httpMethod() != "POST") { 1012 1011 this->scheduleFailure(InvalidURLFailure); // Error must not be reported immediately 1013 1012 return true; … … 1016 1015 applyAuthenticationToRequest(this, firstRequest(), false); 1017 1016 1018 if (!createSoupRequestAndMessageForHandle(this, request , isHTTPFamilyRequest)) {1017 if (!createSoupRequestAndMessageForHandle(this, request)) { 1019 1018 this->scheduleFailure(InvalidURLFailure); // Error must not be reported immediately 1020 1019 return true; -
trunk/Tools/ChangeLog
r182937 r182943 1 2015-04-17 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [SOUP] Redirect to non HTTP destination is broken 4 https://bugs.webkit.org/show_bug.cgi?id=143866 5 6 Reviewed by Sergio Villar Senin. 7 8 Add a unit test to check that redirect to a data URI works. 9 10 * TestWebKitAPI/Tests/WebKit2Gtk/TestLoaderClient.cpp: 11 (testRedirectToDataURI): 12 (serverCallback): 13 (beforeAll): 14 1 15 2015-04-16 Jake Nielsen <jacob_nielsen@apple.com> 2 16 -
trunk/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestLoaderClient.cpp
r180565 r182943 424 424 g_assert(headers); 425 425 g_assert_cmpstr(soup_message_headers_get_one(headers, "Foo"), ==, "bar"); 426 } 427 428 static void testRedirectToDataURI(WebViewTest* test, gconstpointer) 429 { 430 test->loadURI(kServer->getURIForPath("/redirect-to-data").data()); 431 test->waitUntilLoadFinished(); 432 433 static const char* expectedData = "data-uri"; 434 size_t mainResourceDataSize = 0; 435 const char* mainResourceData = test->mainResourceData(mainResourceDataSize); 436 g_assert_cmpint(mainResourceDataSize, ==, strlen(expectedData)); 437 g_assert(!strncmp(mainResourceData, expectedData, mainResourceDataSize)); 426 438 } 427 439 … … 466 478 soup_message_headers_append(message->response_headers, "Foo", "bar"); 467 479 soup_message_body_append(message->response_body, SOUP_MEMORY_STATIC, responseString, strlen(responseString)); 480 } else if (g_str_equal(path, "/redirect-to-data")) { 481 soup_message_set_status(message, SOUP_STATUS_MOVED_PERMANENTLY); 482 soup_message_headers_append(message->response_headers, "Location", "data:text/plain;charset=utf-8,data-uri"); 468 483 } else 469 484 soup_message_set_status(message, SOUP_STATUS_NOT_FOUND); … … 503 518 WebViewTest::add("WebKitURIRequest", "http-headers", testURIRequestHTTPHeaders); 504 519 WebViewTest::add("WebKitURIResponse", "http-headers", testURIResponseHTTPHeaders); 520 WebViewTest::add("WebKitWebPage", "redirect-to-data-uri", testRedirectToDataURI); 505 521 } 506 522
Note:
See TracChangeset
for help on using the changeset viewer.