18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 2635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * Copyright (C) 2006, 2007, 2008 Apple, Inc. All rights reserved. 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Redistribution and use in source and binary forms, with or without 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modification, are permitted provided that the following conditions 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * are met: 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1. Redistributions of source code must retain the above copyright 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer. 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer in the 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * documentation and/or other materials provided with the distribution. 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#import "config.h" 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#import "ResourceRequest.h" 28cad810f21b803229eb11403f9209855525a25d57Steve Block 29cad810f21b803229eb11403f9209855525a25d57Steve Block#if !USE(CFNETWORK) 30cad810f21b803229eb11403f9209855525a25d57Steve Block 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#import "WebCoreSystemInterface.h" 328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#import "FormDataStreamMac.h" 342fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#import "ResourceRequestCFNet.h" 352fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#import "WebCoreSystemInterface.h" 368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#import <Foundation/Foundation.h> 388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 39635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#ifdef BUILDING_ON_TIGER 40635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Projecttypedef unsigned NSUInteger; 41635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#endif 42635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 4381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch@interface NSURLRequest (WebNSURLRequestDetails) 44635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project- (NSArray *)contentDispositionEncodingFallbackArray; 4581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch+ (void)setDefaultTimeoutInterval:(NSTimeInterval)seconds; 46635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project@end 47635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 4881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch@interface NSMutableURLRequest (WebMutableNSURLRequestDetails) 49635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project- (void)setContentDispositionEncodingFallbackArray:(NSArray *)theEncodingFallbackArray; 50635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project@end 51635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore { 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectNSURLRequest* ResourceRequest::nsURLRequest() const 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project updatePlatformRequest(); 578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return [[m_nsRequest.get() retain] autorelease]; 598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid ResourceRequest::doUpdateResourceRequest() 628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project m_url = [m_nsRequest.get() URL]; 648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project m_cachePolicy = (ResourceRequestCachePolicy)[m_nsRequest.get() cachePolicy]; 658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project m_timeoutInterval = [m_nsRequest.get() timeoutInterval]; 665f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian m_firstPartyForCookies = [m_nsRequest.get() mainDocumentURL]; 678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (NSString* method = [m_nsRequest.get() HTTPMethod]) 698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project m_httpMethod = method; 70231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block m_allowCookies = [m_nsRequest.get() HTTPShouldHandleCookies]; 712fc2651226baac27029e38c9d6ef883fa32084dbSteve Block 722fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD) 732daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch if (ResourceRequest::httpPipeliningEnabled()) 742daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch m_priority = toResourceLoadPriority(wkGetHTTPPipeliningPriority(m_nsRequest.get())); 752fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#endif 762fc2651226baac27029e38c9d6ef883fa32084dbSteve Block 778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project NSDictionary *headers = [m_nsRequest.get() allHTTPHeaderFields]; 788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project NSEnumerator *e = [headers keyEnumerator]; 798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project NSString *name; 80cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block m_httpHeaderFields.clear(); 818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project while ((name = [e nextObject])) 828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project m_httpHeaderFields.set(name, [headers objectForKey:name]); 83635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 84635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project // The below check can be removed once we require a version of Foundation with -[NSURLRequest contentDispositionEncodingFallbackArray] method. 85635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project static bool supportsContentDispositionEncodingFallbackArray = [NSURLRequest instancesRespondToSelector:@selector(contentDispositionEncodingFallbackArray)]; 86635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project if (supportsContentDispositionEncodingFallbackArray) { 87635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project m_responseContentDispositionEncodingFallbackArray.clear(); 88635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project NSArray *encodingFallbacks = [m_nsRequest.get() contentDispositionEncodingFallbackArray]; 89635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project NSUInteger count = [encodingFallbacks count]; 90635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project for (NSUInteger i = 0; i < count; ++i) { 91635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project CFStringEncoding encoding = CFStringConvertNSStringEncodingToEncoding([(NSNumber *)[encodingFallbacks objectAtIndex:i] unsignedLongValue]); 92635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project if (encoding != kCFStringEncodingInvalidId) 935f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian m_responseContentDispositionEncodingFallbackArray.append(CFStringConvertEncodingToIANACharSetName(encoding)); 94635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project } 95635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project } 96635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (NSData* bodyData = [m_nsRequest.get() HTTPBody]) 988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project m_httpBody = FormData::create([bodyData bytes], [bodyData length]); 998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project else if (NSInputStream* bodyStream = [m_nsRequest.get() HTTPBodyStream]) 1008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (FormData* formData = httpBodyFromStream(bodyStream)) 101635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project m_httpBody = formData; 1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid ResourceRequest::doUpdatePlatformRequest() 1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 1068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (isNull()) { 1078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project m_nsRequest = nil; 1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return; 1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project NSMutableURLRequest* nsRequest = [m_nsRequest.get() mutableCopy]; 1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (nsRequest) 1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project [nsRequest setURL:url()]; 1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project else 1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project nsRequest = [[NSMutableURLRequest alloc] initWithURL:url()]; 1178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifdef BUILDING_ON_TIGER 1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project wkSupportsMultipartXMixedReplace(nsRequest); 1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1222fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD) 1232daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch if (ResourceRequest::httpPipeliningEnabled()) 1242daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch wkSetHTTPPipeliningPriority(nsRequest, toHTTPPipeliningPriority(m_priority)); 1252fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#endif 1262fc2651226baac27029e38c9d6ef883fa32084dbSteve Block 1278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project [nsRequest setCachePolicy:(NSURLRequestCachePolicy)cachePolicy()]; 12881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch 12981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch double timeoutInterval = ResourceRequestBase::timeoutInterval(); 13081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch if (timeoutInterval) 13181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch [nsRequest setTimeoutInterval:timeoutInterval]; 13281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch // Otherwise, respect NSURLRequest default timeout. 13381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch 1345f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian [nsRequest setMainDocumentURL:firstPartyForCookies()]; 1358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (!httpMethod().isEmpty()) 1368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project [nsRequest setHTTPMethod:httpMethod()]; 137231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block [nsRequest setHTTPShouldHandleCookies:allowCookies()]; 138cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block 139cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block // Cannot just use setAllHTTPHeaderFields here, because it does not remove headers. 140cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block NSArray *oldHeaderFieldNames = [[nsRequest allHTTPHeaderFields] allKeys]; 141cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block for (unsigned i = [oldHeaderFieldNames count]; i != 0; --i) 142cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block [nsRequest setValue:nil forHTTPHeaderField:[oldHeaderFieldNames objectAtIndex:i - 1]]; 1438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project HTTPHeaderMap::const_iterator end = httpHeaderFields().end(); 1448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project for (HTTPHeaderMap::const_iterator it = httpHeaderFields().begin(); it != end; ++it) 1458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project [nsRequest setValue:it->second forHTTPHeaderField:it->first]; 146635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 1478f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian // The below check can be removed once we require a version of Foundation with -[NSMutableURLRequest setContentDispositionEncodingFallbackArray:] method. 1488f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian static bool supportsContentDispositionEncodingFallbackArray = [NSMutableURLRequest instancesRespondToSelector:@selector(setContentDispositionEncodingFallbackArray:)]; 149635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project if (supportsContentDispositionEncodingFallbackArray) { 150635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project NSMutableArray *encodingFallbacks = [NSMutableArray array]; 151635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project unsigned count = m_responseContentDispositionEncodingFallbackArray.size(); 152635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project for (unsigned i = 0; i != count; ++i) { 153635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project CFStringRef encodingName = m_responseContentDispositionEncodingFallbackArray[i].createCFString(); 154635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project unsigned long nsEncoding = CFStringConvertEncodingToNSStringEncoding(CFStringConvertIANACharSetNameToEncoding(encodingName)); 155635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project CFRelease(encodingName); 156635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project if (nsEncoding != kCFStringEncodingInvalidId) 157635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project [encodingFallbacks addObject:[NSNumber numberWithUnsignedLong:nsEncoding]]; 158635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project } 159635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project [nsRequest setContentDispositionEncodingFallbackArray:encodingFallbacks]; 160635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project } 161635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 1628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RefPtr<FormData> formData = httpBody(); 1638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (formData && !formData->isEmpty()) 1648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project WebCore::setHTTPBody(nsRequest, formData); 1658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project m_nsRequest.adoptNS(nsRequest); 1678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 1688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid ResourceRequest::applyWebArchiveHackForMail() 1708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 1718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // Hack because Mail checks for this property to detect data / archive loads 1728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project [NSURLProtocol setProperty:@"" forKey:@"WebDataRequest" inRequest:(NSMutableURLRequest *)nsURLRequest()]; 1738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 1748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 17581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#if USE(CFURLSTORAGESESSIONS) 17681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch 17781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochvoid ResourceRequest::setStorageSession(CFURLStorageSessionRef storageSession) 17881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch{ 17981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch m_nsRequest = wkCopyRequestWithStorageSession(storageSession, m_nsRequest.get()); 18081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch} 18181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch 18281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#endif 18381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch 184cad810f21b803229eb11403f9209855525a25d57Steve Block} // namespace WebCore 185cad810f21b803229eb11403f9209855525a25d57Steve Block 186cad810f21b803229eb11403f9209855525a25d57Steve Block#endif // !USE(CFNETWORK) 187