Changeset 206355 in webkit
- Timestamp:
- Sep 24, 2016 6:00:02 PM (8 years ago)
- Location:
- trunk
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r206343 r206355 1 2016-09-24 Chris Dumez <cdumez@apple.com> 2 3 [WK2] anchor.download attribute value is ignored by NETWORK_SESSION code path 4 https://bugs.webkit.org/show_bug.cgi?id=162531 5 6 Reviewed by Darin Adler. 7 8 Unskip tests that are now passing. 9 10 * platform/mac/TestExpectations: 11 1 12 2016-09-23 Zalan Bujtas <zalan@apple.com> 2 13 -
trunk/LayoutTests/platform/mac/TestExpectations
r206341 r206355 1384 1384 [ Sierra+ ] fast/dom/HTMLAnchorElement/anchor-download.html [ Skip ] 1385 1385 [ Sierra+ ] fast/dom/HTMLAnchorElement/anchor-nodownload-set.html [ Skip ] 1386 [ Sierra+ ] http/tests/security/anchor-download-allow-data.html [ Skip ]1387 [ Sierra+ ] http/tests/security/anchor-download-allow-sameorigin.html [ Skip ]1388 1386 [ Sierra+ ] http/tests/security/anchor-download-allow-blob.html [ Skip ] 1389 1387 -
trunk/Source/WebKit2/ChangeLog
r206350 r206355 1 2016-09-24 Chris Dumez <cdumez@apple.com> 2 3 [WK2] anchor.download attribute value is ignored by NETWORK_SESSION code path 4 https://bugs.webkit.org/show_bug.cgi?id=162531 5 6 Reviewed by Darin Adler. 7 8 Pipe the suggested filename through in the NETWORK_SESSION code path so 9 that it is used when deciding the destination path. 10 11 * NetworkProcess/Downloads/DownloadManager.cpp: 12 (WebKit::DownloadManager::startDownload): 13 * NetworkProcess/Downloads/PendingDownload.cpp: 14 (WebKit::PendingDownload::PendingDownload): 15 * NetworkProcess/Downloads/PendingDownload.h: 16 * NetworkProcess/NetworkDataTask.h: 17 * NetworkProcess/NetworkLoad.cpp: 18 (WebKit::NetworkLoad::setSuggestedFilename): 19 * NetworkProcess/NetworkLoad.h: 20 * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: 21 (WebKit::NetworkDataTask::suggestedFilename): 22 (WebKit::NetworkDataTask::setSuggestedFilename): 23 * NetworkProcess/cocoa/NetworkSessionCocoa.mm: 24 (-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]): 25 1 26 2016-09-23 Wenson Hsieh <wenson_hsieh@apple.com> 2 27 -
trunk/Source/WebKit2/NetworkProcess/Downloads/DownloadManager.cpp
r203720 r206355 55 55 parameters.request = request; 56 56 parameters.clientCredentialPolicy = ClientCredentialPolicy::MayAskClientForCredentials; 57 m_pendingDownloads.add(downloadID, std::make_unique<PendingDownload>(WTFMove(parameters), downloadID, *networkSession ));57 m_pendingDownloads.add(downloadID, std::make_unique<PendingDownload>(WTFMove(parameters), downloadID, *networkSession, suggestedName)); 58 58 #else 59 59 auto download = std::make_unique<Download>(*this, downloadID, request, suggestedName); -
trunk/Source/WebKit2/NetworkProcess/Downloads/PendingDownload.cpp
r203133 r206355 39 39 namespace WebKit { 40 40 41 PendingDownload::PendingDownload(NetworkLoadParameters&& parameters, DownloadID downloadID, NetworkSession& networkSession )41 PendingDownload::PendingDownload(NetworkLoadParameters&& parameters, DownloadID downloadID, NetworkSession& networkSession, const String& suggestedName) 42 42 : m_networkLoad(std::make_unique<NetworkLoad>(*this, WTFMove(parameters), networkSession)) 43 43 { 44 44 m_networkLoad->setPendingDownloadID(downloadID); 45 45 m_networkLoad->setPendingDownload(*this); 46 m_networkLoad->setSuggestedFilename(suggestedName); 46 47 } 47 48 -
trunk/Source/WebKit2/NetworkProcess/Downloads/PendingDownload.h
r203133 r206355 46 46 WTF_MAKE_FAST_ALLOCATED; 47 47 public: 48 PendingDownload(NetworkLoadParameters&&, DownloadID, NetworkSession& );48 PendingDownload(NetworkLoadParameters&&, DownloadID, NetworkSession&, const String& suggestedName); 49 49 50 50 void continueWillSendRequest(WebCore::ResourceRequest&&); -
trunk/Source/WebKit2/NetworkProcess/NetworkDataTask.h
r202439 r206355 128 128 WebCore::ResourceRequest currentRequest(); 129 129 String suggestedFilename(); 130 void setSuggestedFilename(const String&); 130 131 void willPerformHTTPRedirection(WebCore::ResourceResponse&&, WebCore::ResourceRequest&&, RedirectCompletionHandler&&); 131 132 void transferSandboxExtensionToDownload(Download&); … … 165 166 RetainPtr<NSURLSessionDataTask> m_task; 166 167 #endif 168 String m_suggestedFilename; 167 169 }; 168 170 -
trunk/Source/WebKit2/NetworkProcess/NetworkLoad.cpp
r204008 r206355 202 202 } 203 203 204 void NetworkLoad::setSuggestedFilename(const String& suggestedName) 205 { 206 if (!m_task) 207 return; 208 209 m_task->setSuggestedFilename(suggestedName); 210 } 211 204 212 void NetworkLoad::setPendingDownload(PendingDownload& pendingDownload) 205 213 { -
trunk/Source/WebKit2/NetworkProcess/NetworkLoad.h
r204008 r206355 67 67 void convertTaskToDownload(DownloadID, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&); 68 68 void setPendingDownloadID(DownloadID); 69 void setSuggestedFilename(const String&); 69 70 void setPendingDownload(PendingDownload&); 70 71 DownloadID pendingDownloadID() { return m_task->pendingDownloadID(); } -
trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm
r202184 r206355 372 372 String NetworkDataTask::suggestedFilename() 373 373 { 374 if (!m_suggestedFilename.isEmpty()) 375 return m_suggestedFilename; 374 376 return m_task.get().response.suggestedFilename; 377 } 378 379 void NetworkDataTask::setSuggestedFilename(const String& suggestedName) 380 { 381 m_suggestedFilename = suggestedName; 375 382 } 376 383 -
trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkSessionCocoa.mm
r204429 r206355 298 298 auto downloadID = networkDataTask->pendingDownloadID(); 299 299 auto& downloadManager = WebKit::NetworkProcess::singleton().downloadManager(); 300 auto download = std::make_unique<WebKit::Download>(downloadManager, downloadID, downloadTask, _session->sessionID() );300 auto download = std::make_unique<WebKit::Download>(downloadManager, downloadID, downloadTask, _session->sessionID(), networkDataTask->suggestedFilename()); 301 301 networkDataTask->transferSandboxExtensionToDownload(*download); 302 302 ASSERT(WebCore::fileExists(networkDataTask->pendingDownloadLocation())); -
trunk/Tools/ChangeLog
r206335 r206355 1 2016-09-24 Chris Dumez <cdumez@apple.com> 2 3 [WK2] anchor.download attribute value is ignored by NETWORK_SESSION code path 4 https://bugs.webkit.org/show_bug.cgi?id=162531 5 6 Reviewed by Darin Adler. 7 8 Update decideDestinationWithSuggestedFilename() to return a actual file path 9 instead of nullptr. The NETWORK_SESSION code path cancels the download when 10 decideDestinationWithSuggestedFilename() returns an empty file path, unlike 11 the !NETWORK_SESSION code path that just continue downloading without 12 explicitely setting a destination path. This lead to different test results 13 for NETWORK_SESSION and !NETWORK_SESSION code paths. Returns a valid 14 destination path makes more sense and leads to consistent results. 15 16 * WebKitTestRunner/TestController.cpp: 17 (WTR::TestController::decideDestinationWithSuggestedFilename): 18 1 19 2016-09-23 Wenson Hsieh <wenson_hsieh@apple.com> 2 20 -
trunk/Tools/WebKitTestRunner/TestController.cpp
r206261 r206355 1674 1674 WKStringRef TestController::decideDestinationWithSuggestedFilename(WKContextRef, WKDownloadRef, WKStringRef filename, bool*& allowOverwrite) 1675 1675 { 1676 String suggestedFilename = toWTFString(filename); 1677 1676 1678 StringBuilder builder; 1677 1679 builder.append("Downloading URL with suggested filename \""); 1678 builder.append( toWTFString(filename));1680 builder.append(suggestedFilename); 1679 1681 builder.append("\"\n"); 1680 1682 1681 1683 m_currentInvocation->outputText(builder.toString()); 1682 1684 1683 return nullptr; 1685 const char* dumpRenderTreeTemp = libraryPathForTesting(); 1686 if (!dumpRenderTreeTemp) 1687 return nullptr; 1688 1689 *allowOverwrite = true; 1690 String temporaryFolder = String::fromUTF8(dumpRenderTreeTemp); 1691 if (suggestedFilename.isEmpty()) 1692 suggestedFilename = "Unknown"; 1693 1694 return toWK(temporaryFolder + "/" + suggestedFilename).leakRef(); 1684 1695 } 1685 1696
Note: See TracChangeset
for help on using the changeset viewer.