Changeset 214807 in webkit
- Timestamp:
- Apr 3, 2017 10:08:12 AM (7 years ago)
- Location:
- trunk
- Files:
-
- 9 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r214806 r214807 1 2017-04-03 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [SOUP] URI Fragment is lost after redirect 4 https://bugs.webkit.org/show_bug.cgi?id=170058 5 6 Reviewed by Michael Catanzaro. 7 8 Add tests to check we correctly handle fragment identifiers on server redirections. 9 10 * http/tests/navigation/redirect-preserves-fragment-expected.txt: Added. 11 * http/tests/navigation/redirect-preserves-fragment.html: Added. 12 * http/tests/navigation/redirect-to-fragment-expected.txt: Added. 13 * http/tests/navigation/redirect-to-fragment.html: Added. 14 * http/tests/navigation/redirect-to-fragment2-expected.txt: Added. 15 * http/tests/navigation/redirect-to-fragment2.html: Added. 16 * http/tests/navigation/resources/redirect-preserves-fragment.php: Added. 17 * http/tests/navigation/resources/redirect-to-fragment.php: Added. 18 * http/tests/navigation/resources/redirect-to-fragment2.php: Added. 19 * platform/ios/TestExpectations: 20 * platform/mac/TestExpectations: 21 1 22 2017-04-03 Youenn Fablet <youenn@apple.com> 2 23 -
trunk/LayoutTests/platform/ios/TestExpectations
r214728 r214807 2932 2932 fast/css-generated-content/initial-letter-pagination-raised-rl.html [ Skip ] 2933 2933 fast/css-generated-content/initial-letter-pagination-sunken-rl.html [ Skip ] 2934 2935 webkit.org/b/158420 http/tests/navigation/redirect-to-fragment2.html [ Failure ] -
trunk/LayoutTests/platform/mac/TestExpectations
r214706 r214807 1569 1569 1570 1570 webkit.org/b/169838 [ Release ] fast/workers/worker-close-more.html [ Pass Timeout ] 1571 1572 webkit.org/b/158420 http/tests/navigation/redirect-to-fragment2.html [ Failure ] -
trunk/Source/WebKit2/ChangeLog
r214786 r214807 1 2017-04-03 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [SOUP] URI Fragment is lost after redirect 4 https://bugs.webkit.org/show_bug.cgi?id=170058 5 6 Reviewed by Michael Catanzaro. 7 8 In case of redirection check if the current request has a fragment identifier and apply it to the redirection 9 only when it doesn't have a fragment identifier yet. 10 11 * NetworkProcess/soup/NetworkDataTaskSoup.cpp: 12 (WebKit::NetworkDataTaskSoup::NetworkDataTaskSoup): 13 (WebKit::NetworkDataTaskSoup::createRequest): 14 (WebKit::NetworkDataTaskSoup::continueHTTPRedirection): 15 * NetworkProcess/soup/NetworkDataTaskSoup.h: 16 1 17 2017-04-03 Antti Koivisto <antti@apple.com> 2 18 -
trunk/Source/WebKit2/NetworkProcess/soup/NetworkDataTaskSoup.cpp
r214246 r214807 76 76 applyAuthenticationToRequest(request); 77 77 } 78 createRequest( request);78 createRequest(WTFMove(request)); 79 79 } 80 80 … … 103 103 } 104 104 105 void NetworkDataTaskSoup::createRequest(const ResourceRequest& request) 106 { 107 GUniquePtr<SoupURI> soupURI = request.createSoupURI(); 105 void NetworkDataTaskSoup::createRequest(ResourceRequest&& request) 106 { 107 m_currentRequest = WTFMove(request); 108 109 GUniquePtr<SoupURI> soupURI = m_currentRequest.createSoupURI(); 108 110 if (!soupURI) { 109 111 scheduleFailure(InvalidURLFailure); … … 117 119 } 118 120 119 request.updateSoupRequest(soupRequest.get());120 121 if (! request.url().protocolIsInHTTPFamily()) {121 m_currentRequest.updateSoupRequest(soupRequest.get()); 122 123 if (!m_currentRequest.url().protocolIsInHTTPFamily()) { 122 124 m_soupRequest = WTFMove(soupRequest); 123 125 return; … … 133 135 unsigned messageFlags = SOUP_MESSAGE_NO_REDIRECT; 134 136 135 request.updateSoupMessage(soupMessage.get());137 m_currentRequest.updateSoupMessage(soupMessage.get()); 136 138 if (m_shouldContentSniff == DoNotSniffContent) 137 139 soup_message_disable_feature(soupMessage.get(), SOUP_TYPE_CONTENT_SNIFFER); … … 159 161 160 162 #if SOUP_CHECK_VERSION(2, 43, 1) 161 soup_message_set_priority(soupMessage.get(), toSoupMessagePriority( request.priority()));163 soup_message_set_priority(soupMessage.get(), toSoupMessagePriority(m_currentRequest.priority())); 162 164 #endif 163 165 … … 637 639 } 638 640 639 ResourceRequest request = m_firstRequest; 640 request.setURL(URL(m_response.url(), m_response.httpHeaderField(HTTPHeaderName::Location))); 641 ResourceRequest request = m_currentRequest; 642 URL redirectedURL = URL(m_response.url(), m_response.httpHeaderField(HTTPHeaderName::Location)); 643 if (!redirectedURL.hasFragmentIdentifier() && request.url().hasFragmentIdentifier()) 644 redirectedURL.setFragmentIdentifier(request.url().fragmentIdentifier()); 645 request.setURL(redirectedURL); 641 646 642 647 // Should not set Referer after a redirect from a secure resource to non-secure one. … … 644 649 request.clearHTTPReferrer(); 645 650 646 bool isCrossOrigin = !protocolHostAndPortAreEqual(m_ firstRequest.url(), request.url());651 bool isCrossOrigin = !protocolHostAndPortAreEqual(m_currentRequest.url(), request.url()); 647 652 if (!equalLettersIgnoringASCIICase(request.httpMethod(), "get")) { 648 653 // Change newRequest method to GET if change was made during a previous redirection or if current redirection says so. … … 690 695 applyAuthenticationToRequest(request); 691 696 } 692 createRequest( request);697 createRequest(WTFMove(request)); 693 698 if (m_soupRequest && m_state != State::Suspended) { 694 699 m_state = State::Suspended; -
trunk/Source/WebKit2/NetworkProcess/soup/NetworkDataTaskSoup.h
r212993 r214807 60 60 void stopTimeout(); 61 61 62 void createRequest( const WebCore::ResourceRequest&);62 void createRequest(WebCore::ResourceRequest&&); 63 63 void clearRequest(); 64 64 static void sendRequestCallback(SoupRequest*, GAsyncResult*, NetworkDataTaskSoup*); … … 130 130 WebCore::ProtectionSpace m_protectionSpaceForPersistentStorage; 131 131 WebCore::Credential m_credentialForPersistentStorage; 132 WebCore::ResourceRequest m_currentRequest; 132 133 WebCore::ResourceResponse m_response; 133 134 Vector<char> m_readBuffer;
Note: See TracChangeset
for help on using the changeset viewer.