From 500fa7f314de52c4e36bc79cd5045d5b98889355 Mon Sep 17 00:00:00 2001 From: Alexandre Wilhelm Date: Mon, 28 Mar 2016 23:32:48 -0700 Subject: [PATCH] Fixed: cache control was not set properly in CPURLRequest --- Foundation/CPURLRequest.j | 56 ++++++++++++++++++++++----------------- 1 file changed, 32 insertions(+), 24 deletions(-) diff --git a/Foundation/CPURLRequest.j b/Foundation/CPURLRequest.j index 9c0ad1b46..36e02144f 100644 --- a/Foundation/CPURLRequest.j +++ b/Foundation/CPURLRequest.j @@ -97,6 +97,8 @@ CPURLRequestReturnCacheDataDontLoad = 3; { _cachePolicy = aCachePolicy; _timeoutInterval = aTimeoutInterval; + + [self _updateCacheControlHeader]; } return self; @@ -122,31 +124,8 @@ CPURLRequestReturnCacheDataDontLoad = 3; _cachePolicy = CPURLRequestUseProtocolCachePolicy; [self setValue:"Thu, 01 Jan 1970 00:00:00 GMT" forHTTPHeaderField:"If-Modified-Since"]; - - switch (_cachePolicy) - { - case CPURLRequestUseProtocolCachePolicy: - // TODO: implement everything about cache... - [self setValue:"no-cache" forHTTPHeaderField:"Cache-Control"]; - break; - - case CPURLRequestReturnCacheDataElseLoad: - [self setValue:"max-stale=31536000" forHTTPHeaderField:"Cache-Control"]; - break; - - case CPURLRequestReturnCacheDataDontLoad: - [self setValue:"only-if-cached" forHTTPHeaderField:"Cache-Control"]; - break; - - case CPURLRequestReloadIgnoringLocalCacheData: - [self setValue:"no-cache" forHTTPHeaderField:"Cache-Control"]; - break; - - default: - [self setValue:"no-cache" forHTTPHeaderField:"Cache-Control"]; - } - [self setValue:"XMLHttpRequest" forHTTPHeaderField:"X-Requested-With"]; + [self _updateCacheControlHeader]; } return self; @@ -181,6 +160,35 @@ CPURLRequestReturnCacheDataDontLoad = 3; [_HTTPHeaderFields setObject:aValue forKey:aField]; } +/* + @ignore +*/ +- (void)_updateCacheControlHeader +{ + switch (_cachePolicy) + { + case CPURLRequestUseProtocolCachePolicy: + // TODO: implement everything about cache... + [self setValue:"no-cache" forHTTPHeaderField:"Cache-Control"]; + break; + + case CPURLRequestReturnCacheDataElseLoad: + [self setValue:"max-stale=31536000" forHTTPHeaderField:"Cache-Control"]; + break; + + case CPURLRequestReturnCacheDataDontLoad: + [self setValue:"only-if-cached" forHTTPHeaderField:"Cache-Control"]; + break; + + case CPURLRequestReloadIgnoringLocalCacheData: + [self setValue:"no-cache" forHTTPHeaderField:"Cache-Control"]; + break; + + default: + [self setValue:"no-cache" forHTTPHeaderField:"Cache-Control"]; + } +} + @end /*