Changeset 228150 in webkit
- Timestamp:
- Feb 5, 2018 7:57:32 PM (6 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r228147 r228150 1 2018-02-05 Youenn Fablet <youenn@apple.com> 2 3 Crash in imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub.html 4 https://bugs.webkit.org/show_bug.cgi?id=182422 5 <rdar://problem/37182665> 6 7 Reviewed by Alex Christensen. 8 9 * platform/mac/TestExpectations: 10 1 11 2018-02-05 Myles C. Maxfield <mmaxfield@apple.com> 2 12 -
trunk/LayoutTests/platform/mac/TestExpectations
r228104 r228150 1741 1741 1742 1742 webkit.org/b/182422 imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage.html [ Pass Failure ] 1743 webkit.org/b/182422 imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub.html [ Skip]1743 webkit.org/b/182422 imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub.html [ Pass Failure ] -
trunk/Source/WebCore/ChangeLog
r228149 r228150 1 2018-02-05 Youenn Fablet <youenn@apple.com> 2 3 Crash in imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub.html 4 https://bugs.webkit.org/show_bug.cgi?id=182422 5 <rdar://problem/37182665> 6 7 Reviewed by Alex Christensen. 8 9 Covered by test no longer crashing in Debug mode. 10 Make sure completionHandler is called on the main thread. 11 12 * platform/network/cocoa/WebCoreNSURLSession.mm: 13 (-[WebCoreNSURLSessionDataTask resource:receivedRedirect:request:completionHandler:]): 14 1 15 2018-02-05 Filip Pizlo <fpizlo@apple.com> 2 16 -
trunk/Source/WebCore/platform/network/cocoa/WebCoreNSURLSession.mm
r224960 r228150 390 390 void WebCoreNSURLSessionDataTaskClient::redirectReceived(PlatformMediaResource& resource, ResourceRequest&& request, const ResourceResponse& response, CompletionHandler<void(ResourceRequest&&)>&& completionHandler) 391 391 { 392 [m_task resource:resource receivedRedirect:response request:WTFMove(request) completionHandler:WTFMove(completionHandler)]; 392 [m_task resource:resource receivedRedirect:response request:WTFMove(request) completionHandler: [completionHandler = WTFMove(completionHandler)] (auto&& request) { 393 ASSERT(isMainThread()); 394 completionHandler(WTFMove(request)); 395 }]; 393 396 } 394 397 … … 619 622 { 620 623 ASSERT_UNUSED(resource, &resource == _resource); 621 [self.session addDelegateOperation:[strongSelf = retainPtr(self), response = retainPtr(response.nsURLResponse()), request = WTFMove(request), completionHandler = WTFMove(completionHandler)] () mutable {624 [self.session addDelegateOperation:[strongSelf = retainPtr(self), response = retainPtr(response.nsURLResponse()), request = request.isolatedCopy(), completionHandler = WTFMove(completionHandler)] () mutable { 622 625 if (![response isKindOfClass:[NSHTTPURLResponse class]]) { 623 626 ASSERT_NOT_REACHED(); 624 return completionHandler(WTFMove(request)); 627 callOnMainThread([request = WTFMove(request), completionHandler = WTFMove(completionHandler)] () mutable { 628 completionHandler(WTFMove(request)); 629 }); 630 return; 625 631 } 626 632 … … 628 634 if ([dataDelegate respondsToSelector:@selector(URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:)]) { 629 635 auto completionHandlerBlock = BlockPtr<void(NSURLRequest *)>::fromCallable([completionHandler = WTFMove(completionHandler)](NSURLRequest *newRequest) mutable { 636 if (!isMainThread()) { 637 callOnMainThread([request = ResourceRequest { newRequest }, completionHandler = WTFMove(completionHandler)] () mutable { 638 completionHandler(WTFMove(request)); 639 }); 640 return; 641 } 630 642 completionHandler(newRequest); 631 643 }); 632 644 [dataDelegate URLSession:(NSURLSession *)strongSelf.get().session task:(NSURLSessionTask *)strongSelf.get() willPerformHTTPRedirection:(NSHTTPURLResponse *)response.get() newRequest:request.nsURLRequest(DoNotUpdateHTTPBody) completionHandler:completionHandlerBlock.get()]; 633 } else 634 completionHandler(WTFMove(request)); 645 } else { 646 callOnMainThread([request = WTFMove(request), completionHandler = WTFMove(completionHandler)] () mutable { 647 completionHandler(WTFMove(request)); 648 }); 649 } 635 650 }]; 636 651 }
Note: See TracChangeset
for help on using the changeset viewer.