Changeset 149491 in webkit
- Timestamp:
- May 2, 2013 12:26:04 PM (11 years ago)
- Location:
- trunk/Source
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r149474 r149491 1 2013-05-02 Alexey Proskuryakov <ap@apple.com> 2 3 <rdar://problem/13740375> Non-ASCII downloaded file names are garbled when using NetworkProcess 4 https://bugs.webkit.org/show_bug.cgi?id=115520 5 6 Reviewed by Darin Adler. 7 8 Covered by existing tests when using NetworkProcess. 9 10 * WebCore.exp.in: 11 * platform/network/ResourceRequestBase.h: 12 (WebCore::ResourceRequestBase::responseContentDispositionEncodingFallbackArray): 13 Added a getter for encoding fallback array. 14 15 * platform/network/mac/ResourceRequestMac.mm: 16 (WebCore::ResourceRequest::doUpdateResourceRequest): 17 (WebCore::ResourceRequest::doUpdatePlatformRequest): 18 Removed obsolete checks for presence of fallback array methods, they were available 19 since 10.6.8. 20 1 21 2013-05-01 Enrica Casucci <enrica@apple.com> 2 22 -
trunk/Source/WebCore/WebCore.exp.in
r149464 r149491 644 644 __ZN7WebCore19ResourceRequestBase24s_defaultTimeoutIntervalE 645 645 __ZN7WebCore19ResourceRequestBase25setDefaultTimeoutIntervalEd 646 __ZN7WebCore19ResourceRequestBase50setResponseContentDispositionEncodingFallbackArrayERKN3WTF6StringES4_S4_ 646 647 __ZN7WebCore19ResourceRequestBase6setURLERKNS_4KURLE 647 648 __ZN7WebCore19TextResourceDecoder5flushEv -
trunk/Source/WebCore/platform/network/ResourceRequestBase.h
r148929 r149491 112 112 void clearHTTPAccept(); 113 113 114 const Vector<String>& responseContentDispositionEncodingFallbackArray() const { return m_responseContentDispositionEncodingFallbackArray; } 114 115 void setResponseContentDispositionEncodingFallbackArray(const String& encoding1, const String& encoding2 = String(), const String& encoding3 = String()); 115 116 -
trunk/Source/WebCore/platform/network/mac/ResourceRequestMac.mm
r149255 r149491 101 101 m_httpHeaderFields.set(name, [headers objectForKey:name]); 102 102 103 // The below check can be removed once we require a version of Foundation with -[NSURLRequest contentDispositionEncodingFallbackArray] method. 104 static bool supportsContentDispositionEncodingFallbackArray = [NSURLRequest instancesRespondToSelector:@selector(contentDispositionEncodingFallbackArray)]; 105 if (supportsContentDispositionEncodingFallbackArray) { 106 m_responseContentDispositionEncodingFallbackArray.clear(); 107 NSArray *encodingFallbacks = [m_nsRequest.get() contentDispositionEncodingFallbackArray]; 108 NSUInteger count = [encodingFallbacks count]; 109 for (NSUInteger i = 0; i < count; ++i) { 110 CFStringEncoding encoding = CFStringConvertNSStringEncodingToEncoding([(NSNumber *)[encodingFallbacks objectAtIndex:i] unsignedLongValue]); 111 if (encoding != kCFStringEncodingInvalidId) 112 m_responseContentDispositionEncodingFallbackArray.append(CFStringConvertEncodingToIANACharSetName(encoding)); 113 } 103 m_responseContentDispositionEncodingFallbackArray.clear(); 104 NSArray *encodingFallbacks = [m_nsRequest.get() contentDispositionEncodingFallbackArray]; 105 NSUInteger count = [encodingFallbacks count]; 106 for (NSUInteger i = 0; i < count; ++i) { 107 CFStringEncoding encoding = CFStringConvertNSStringEncodingToEncoding([(NSNumber *)[encodingFallbacks objectAtIndex:i] unsignedLongValue]); 108 if (encoding != kCFStringEncodingInvalidId) 109 m_responseContentDispositionEncodingFallbackArray.append(CFStringConvertEncodingToIANACharSetName(encoding)); 114 110 } 115 111 … … 178 174 [nsRequest setValue:it->value forHTTPHeaderField:it->key]; 179 175 180 // The below check can be removed once we require a version of Foundation with -[NSMutableURLRequest setContentDispositionEncodingFallbackArray:] method. 181 static bool supportsContentDispositionEncodingFallbackArray = [NSMutableURLRequest instancesRespondToSelector:@selector(setContentDispositionEncodingFallbackArray:)]; 182 if (supportsContentDispositionEncodingFallbackArray) { 183 NSMutableArray *encodingFallbacks = [NSMutableArray array]; 184 unsigned count = m_responseContentDispositionEncodingFallbackArray.size(); 185 for (unsigned i = 0; i != count; ++i) { 186 RetainPtr<CFStringRef> encodingName = m_responseContentDispositionEncodingFallbackArray[i].createCFString(); 187 unsigned long nsEncoding = CFStringConvertEncodingToNSStringEncoding(CFStringConvertIANACharSetNameToEncoding(encodingName.get())); 188 189 if (nsEncoding != kCFStringEncodingInvalidId) 190 [encodingFallbacks addObject:[NSNumber numberWithUnsignedLong:nsEncoding]]; 191 } 192 [nsRequest setContentDispositionEncodingFallbackArray:encodingFallbacks]; 193 } 176 NSMutableArray *encodingFallbacks = [NSMutableArray array]; 177 unsigned count = m_responseContentDispositionEncodingFallbackArray.size(); 178 for (unsigned i = 0; i != count; ++i) { 179 RetainPtr<CFStringRef> encodingName = m_responseContentDispositionEncodingFallbackArray[i].createCFString(); 180 unsigned long nsEncoding = CFStringConvertEncodingToNSStringEncoding(CFStringConvertIANACharSetNameToEncoding(encodingName.get())); 181 182 if (nsEncoding != kCFStringEncodingInvalidId) 183 [encodingFallbacks addObject:[NSNumber numberWithUnsignedLong:nsEncoding]]; 184 } 185 [nsRequest setContentDispositionEncodingFallbackArray:encodingFallbacks]; 194 186 195 187 #if ENABLE(CACHE_PARTITIONING) -
trunk/Source/WebKit2/ChangeLog
r149488 r149491 1 2013-05-02 Alexey Proskuryakov <ap@apple.com> 2 3 <rdar://problem/13740375> Non-ASCII downloaded file names are garbled when using NetworkProcess 4 https://bugs.webkit.org/show_bug.cgi?id=115520 5 6 Reviewed by Darin Adler. 7 8 * Shared/mac/WebCoreArgumentCodersMac.mm: 9 (CoreIPC::::encodePlatformData): 10 (CoreIPC::::decodePlatformData): 11 Send the encoding fallback array over IPC, so that it's present when NetworkProcess does its loading. 12 1 13 2013-05-01 Alexey Proskuryakov <ap@apple.com> 2 14 -
trunk/Source/WebKit2/Shared/mac/WebCoreArgumentCodersMac.mm
r149255 r149491 59 59 RetainPtr<CFDictionaryRef> dictionary = adoptCF(WKNSURLRequestCreateSerializableRepresentation(requestToSerialize.get(), CoreIPC::tokenNullTypeRef())); 60 60 CoreIPC::encode(encoder, dictionary.get()); 61 62 // The fallback array is part of NSURLRequest, but it is not encoded by WKNSURLRequestCreateSerializableRepresentation. 63 encoder << resourceRequest.responseContentDispositionEncodingFallbackArray(); 61 64 } 62 65 … … 81 84 82 85 resourceRequest = ResourceRequest(nsURLRequest); 86 87 Vector<String> responseContentDispositionEncodingFallbackArray; 88 if (!decoder.decode(responseContentDispositionEncodingFallbackArray)) 89 return false; 90 91 resourceRequest.setResponseContentDispositionEncodingFallbackArray( 92 responseContentDispositionEncodingFallbackArray.size() > 0 ? responseContentDispositionEncodingFallbackArray[0] : String(), 93 responseContentDispositionEncodingFallbackArray.size() > 1 ? responseContentDispositionEncodingFallbackArray[1] : String(), 94 responseContentDispositionEncodingFallbackArray.size() > 2 ? responseContentDispositionEncodingFallbackArray[2] : String() 95 ); 96 83 97 return true; 84 98 }
Note: See TracChangeset
for help on using the changeset viewer.