Changeset 147952 in webkit
- Timestamp:
- Apr 8, 2013 2:24:33 PM (11 years ago)
- Location:
- trunk/Source
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r147949 r147952 1 2013-04-08 Anders Carlsson <andersca@apple.com> 2 3 Add an async version of ResourceHandle::didReceiveResponse 4 https://bugs.webkit.org/show_bug.cgi?id=114215 5 6 Reviewed by Sam Weinig. 7 8 In order to support converting NSURLConnections to NSURLDownloads when using the network process 9 we need an async version of didReceiveResponse. 10 11 * WebCore.exp.in: 12 * platform/network/ResourceHandleClient.cpp: 13 (WebCore::ResourceHandleClient::didReceiveResponseAsync): 14 Just call continueDidReceiveResponse(). 15 16 * platform/network/mac/ResourceHandleMac.mm: 17 (WebCore::ResourceHandle::continueWillSendRequest): 18 Split up a single condition in two, making it easier to see which assertion fails. 19 20 (WebCore::ResourceHandle::continueDidReceiveResponse): 21 Call -[WebCoreResourceHandleAsOperationQueueDelegate continueDidReceiveResponse]. 22 23 (WebCore::ResourceHandle::continueShouldUseCredentialStorage): 24 (WebCore::ResourceHandle::continueCanAuthenticateAgainstProtectionSpace): 25 (WebCore::ResourceHandle::continueWillCacheResponse): 26 Split up a single condition in two, making it easier to see which assertion fails. 27 28 * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.h: 29 * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm: 30 (-[WebCoreResourceHandleAsOperationQueueDelegate continueDidReceiveResponse]): 31 Signal the semaphore. 32 33 (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]): 34 Call didReceiveResponseAsync on the main thread and wait on the semaphore. 35 1 36 2013-04-08 Beth Dakin <bdakin@apple.com> 2 37 -
trunk/Source/WebCore/WebCore.exp.in
r147919 r147952 342 342 __ZN7WebCore14ResourceHandle25continueWillCacheResponseEP19NSCachedURLResponse 343 343 __ZN7WebCore14ResourceHandle25loadResourceSynchronouslyEPNS_17NetworkingContextERKNS_15ResourceRequestENS_17StoredCredentialsERNS_13ResourceErrorERNS_16ResourceResponseERN3WTF6VectorIcLm0ENSB_15CrashOnOverflowEEE 344 __ZN7WebCore14ResourceHandle26continueDidReceiveResponseEv 344 345 __ZN7WebCore14ResourceHandle26synchronousLoadRunLoopModeEv 345 346 __ZN7WebCore14ResourceHandle34continueShouldUseCredentialStorageEb … … 637 638 __ZN7WebCore20ResourceHandleClient20willSendRequestAsyncEPNS_14ResourceHandleERKNS_15ResourceRequestERKNS_16ResourceResponseE 638 639 __ZN7WebCore20ResourceHandleClient22willCacheResponseAsyncEPNS_14ResourceHandleEP19NSCachedURLResponse 640 __ZN7WebCore20ResourceHandleClient23didReceiveResponseAsyncEPNS_14ResourceHandleERKNS_16ResourceResponseE 639 641 __ZN7WebCore20ResourceHandleClient31shouldUseCredentialStorageAsyncEPNS_14ResourceHandleE 640 642 __ZN7WebCore20ResourceHandleClient42canAuthenticateAgainstProtectionSpaceAsyncEPNS_14ResourceHandleERKNS_15ProtectionSpaceE -
trunk/Source/WebCore/platform/network/ResourceHandle.h
r147839 r147952 188 188 // Called in response to ResourceHandleClient::willSendRequestAsync(). 189 189 void continueWillSendRequest(const ResourceRequest&); 190 191 // Called in response to ResourceHandleClient::didReceiveResponseAsync(). 192 void continueDidReceiveResponse(); 193 190 194 // Called in response to ResourceHandleClient::shouldUseCredentialStorageAsync(). 191 195 void continueShouldUseCredentialStorage(bool); 196 192 197 #if USE(PROTECTION_SPACE_AUTH_CALLBACK) 193 198 // Called in response to ResourceHandleClient::canAuthenticateAgainstProtectionSpaceAsync(). 194 199 void continueCanAuthenticateAgainstProtectionSpace(bool); 195 200 #endif 201 196 202 #if PLATFORM(MAC) 197 203 // Called in response to ResourceHandleClient::willCacheResponseAsync(). -
trunk/Source/WebCore/platform/network/ResourceHandleClient.cpp
r146929 r147952 58 58 } 59 59 60 void ResourceHandleClient::didReceiveResponseAsync(ResourceHandle* handle, const ResourceResponse&) 61 { 62 handle->continueDidReceiveResponse(); 63 } 64 60 65 void ResourceHandleClient::shouldUseCredentialStorageAsync(ResourceHandle* handle) 61 66 { -
trunk/Source/WebCore/platform/network/ResourceHandleClient.h
r147888 r147952 76 76 77 77 virtual bool usesAsyncCallbacks() { return false; } 78 78 79 // Client will pass an updated request using ResourceHandle::continueWillSendRequest() when ready. 79 80 virtual void willSendRequestAsync(ResourceHandle*, const ResourceRequest&, const ResourceResponse& redirectResponse); 81 82 // Client will call ResourceHandle::continueDidReceiveResponse() when ready. 83 virtual void didReceiveResponseAsync(ResourceHandle*, const ResourceResponse&); 84 80 85 // Client will pass an updated request using ResourceHandle::continueShouldUseCredentialStorage() when ready. 81 86 virtual void shouldUseCredentialStorageAsync(ResourceHandle*); -
trunk/Source/WebCore/platform/network/mac/ResourceHandleMac.mm
r147476 r147952 398 398 void ResourceHandle::continueWillSendRequest(const ResourceRequest& request) 399 399 { 400 ASSERT(client() && client()->usesAsyncCallbacks()); 400 ASSERT(client()); 401 ASSERT(client()->usesAsyncCallbacks()); 401 402 402 403 // Client call may not preserve the session, especially if the request is sent over IPC. … … 405 406 newRequest.setStorageSession(d->m_storageSession.get()); 406 407 [(id)delegate() continueWillSendRequest:newRequest.nsURLRequest(UpdateHTTPBody)]; 408 } 409 410 void ResourceHandle::continueDidReceiveResponse() 411 { 412 ASSERT(client()); 413 ASSERT(client()->usesAsyncCallbacks()); 414 415 [delegate() continueDidReceiveResponse]; 407 416 } 408 417 … … 421 430 void ResourceHandle::continueShouldUseCredentialStorage(bool useCredentialStorage) 422 431 { 423 ASSERT(client() && client()->usesAsyncCallbacks()); 432 ASSERT(client()); 433 ASSERT(client()->usesAsyncCallbacks()); 424 434 425 435 [(id)delegate() continueShouldUseCredentialStorage:useCredentialStorage]; … … 515 525 void ResourceHandle::continueCanAuthenticateAgainstProtectionSpace(bool result) 516 526 { 517 ASSERT(client() && client()->usesAsyncCallbacks()); 527 ASSERT(client()); 528 ASSERT(client()->usesAsyncCallbacks()); 518 529 519 530 [(id)delegate() continueCanAuthenticateAgainstProtectionSpace:result]; … … 577 588 void ResourceHandle::continueWillCacheResponse(NSCachedURLResponse *response) 578 589 { 579 ASSERT(client() && client()->usesAsyncCallbacks()); 590 ASSERT(client()); 591 ASSERT(client()->usesAsyncCallbacks()); 580 592 581 593 [(id)delegate() continueWillCacheResponse:response]; -
trunk/Source/WebCore/platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.h
r146929 r147952 45 45 BOOL m_boolResult; 46 46 } 47 47 48 - (id)initWithHandle:(WebCore::ResourceHandle*)handle; 48 49 - (void)detachHandle; 49 50 - (void)continueWillSendRequest:(NSURLRequest *)newRequest; 51 - (void)continueDidReceiveResponse; 50 52 - (void)continueShouldUseCredentialStorage:(BOOL)useCredentialStorage; 51 53 #if USE(PROTECTION_SPACE_AUTH_CALLBACK) -
trunk/Source/WebCore/platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm
r147287 r147952 82 82 } 83 83 84 - (void)continueDidReceiveResponse 85 { 86 dispatch_semaphore_signal(m_semaphore); 87 } 88 84 89 - (void)continueShouldUseCredentialStorage:(BOOL)useCredentialStorage 85 90 { … … 219 224 LOG(Network, "Handle %p delegate connection:%p didReceiveResponse:%p (HTTP status %d, reported MIMEType '%s')", m_handle, connection, r, [r respondsToSelector:@selector(statusCode)] ? [(id)r statusCode] : 0, [[r MIMEType] UTF8String]); 220 225 221 dispatch_async(dispatch_get_main_queue(), ^{ 222 if (!m_handle || !m_handle->client()) 223 return; 226 RetainPtr<id> protector(self); 227 228 dispatch_async(dispatch_get_main_queue(), ^{ 229 if (!m_handle) { 230 dispatch_semaphore_signal(m_semaphore); 231 return; 232 } 224 233 225 234 // Avoid MIME type sniffing if the response comes back as 304 Not Modified. … … 231 240 [r _setMIMEType:@"text/html"]; 232 241 233 m_handle->client()->didReceiveResponse(m_handle, r); 234 }); 242 m_handle->client()->didReceiveResponseAsync(m_handle, r); 243 }); 244 245 dispatch_semaphore_wait(m_semaphore, DISPATCH_TIME_FOREVER); 235 246 } 236 247 -
trunk/Source/WebKit2/ChangeLog
r147927 r147952 1 2013-04-08 Anders Carlsson <andersca@apple.com> 2 3 Add an async version of ResourceHandle::didReceiveResponse 4 https://bugs.webkit.org/show_bug.cgi?id=114215 5 6 Reviewed by Sam Weinig. 7 8 * NetworkProcess/NetworkResourceLoader.cpp: 9 (WebKit::NetworkResourceLoader::didReceiveResponseAsync): 10 Send the message and then call continueDidReceiveResponse. 11 1 12 2013-04-08 Carlos Garcia Campos <cgarcia@igalia.com> 2 13 -
trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp
r147848 r147952 198 198 } 199 199 200 void NetworkResourceLoader::didReceiveResponse (ResourceHandle*, const ResourceResponse& response)200 void NetworkResourceLoader::didReceiveResponseAsync(ResourceHandle*, const ResourceResponse& response) 201 201 { 202 202 // FIXME (NetworkProcess): Cache the response. … … 205 205 206 206 sendAbortingOnFailure(Messages::WebResourceLoader::DidReceiveResponseWithCertificateInfo(response, PlatformCertificateInfo(response))); 207 208 m_handle->continueDidReceiveResponse(); 207 209 } 208 210 -
trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.h
r147848 r147952 68 68 virtual void willSendRequestAsync(WebCore::ResourceHandle*, const WebCore::ResourceRequest&, const WebCore::ResourceResponse& redirectResponse) OVERRIDE; 69 69 virtual void didSendData(WebCore::ResourceHandle*, unsigned long long bytesSent, unsigned long long totalBytesToBeSent) OVERRIDE; 70 virtual void didReceiveResponse (WebCore::ResourceHandle*, const WebCore::ResourceResponse&) OVERRIDE;70 virtual void didReceiveResponseAsync(WebCore::ResourceHandle*, const WebCore::ResourceResponse&) OVERRIDE; 71 71 virtual void didReceiveData(WebCore::ResourceHandle*, const char*, int, int encodedDataLength) OVERRIDE; 72 72 virtual void didReceiveBuffer(WebCore::ResourceHandle*, PassRefPtr<WebCore::SharedBuffer>, int encodedDataLength) OVERRIDE;
Note: See TracChangeset
for help on using the changeset viewer.