@@ -46,8 +46,6 @@ public class WinHttpHandler : HttpMessageHandler
4646        internal  static bool  CertificateCachingAppContextSwitchEnabled  {  get ;  }  =  AppContext . TryGetSwitch ( "System.Net.Http.UseWinHttpCertificateCaching" ,  out  bool  enabled )  &&  enabled ; 
4747        private  static readonly  TimeSpan  s_maxTimeout  =  TimeSpan . FromMilliseconds ( int . MaxValue ) ; 
4848
49-         private  static readonly  StringWithQualityHeaderValue  s_gzipHeaderValue  =  new  StringWithQualityHeaderValue ( "gzip" ) ; 
50-         private  static readonly  StringWithQualityHeaderValue  s_deflateHeaderValue  =  new  StringWithQualityHeaderValue ( "deflate" ) ; 
5149        private  static readonly  Lazy < bool >  s_supportsTls13  =  new  Lazy < bool > ( CheckTls13Support ) ; 
5250        private  static readonly  TimeSpan  s_cleanCachedCertificateTimeout  =  TimeSpan . FromMilliseconds ( ( int ? ) AppDomain . CurrentDomain . GetData ( "System.Net.Http.WinHttpCertificateCachingCleanupTimerInterval" )  ??  60_000 ) ; 
5351        private  static readonly  long  s_staleTimeout  =  ( long ) ( s_cleanCachedCertificateTimeout . TotalSeconds  *  Stopwatch . Frequency  /  1000 ) ; 
@@ -56,7 +54,6 @@ public class WinHttpHandler : HttpMessageHandler
5654        private  static StringBuilder ?  t_requestHeadersBuilder ; 
5755
5856        private  readonly  object  _lockObject  =  new  object ( ) ; 
59-         private  bool  _doManualDecompressionCheck ; 
6057        private  bool  _automaticRedirection  =  HttpHandlerDefaults . DefaultAutomaticRedirection ; 
6158        private  int  _maxAutomaticRedirections  =  HttpHandlerDefaults . DefaultMaxAutomaticRedirections ; 
6259        private  DecompressionMethods  _automaticDecompression  =  HttpHandlerDefaults . DefaultAutomaticDecompression ; 
@@ -715,8 +712,7 @@ private static WinHttpChunkMode GetChunkedModeForSend(HttpRequestMessage request
715712        private  static void  AddRequestHeaders ( 
716713            SafeWinHttpHandle  requestHandle , 
717714            HttpRequestMessage  requestMessage , 
718-             CookieContainer ?  cookies , 
719-             DecompressionMethods  manuallyProcessedDecompressionMethods ) 
715+             CookieContainer ?  cookies ) 
720716        { 
721717            Debug . Assert ( requestMessage . RequestUri  !=  null ) ; 
722718
@@ -732,26 +728,6 @@ private static void AddRequestHeaders(
732728                t_requestHeadersBuilder  =  requestHeadersBuffer  =  new  StringBuilder ( ) ; 
733729            } 
734730
735-             // Normally WinHttpHandler will let native WinHTTP add 'Accept-Encoding' request headers 
736-             // for gzip and/or default as needed based on whether the handler should do automatic 
737-             // decompression of response content. But on Windows 7, WinHTTP doesn't support this feature. 
738-             // So, we need to manually add these headers since WinHttpHandler still supports automatic 
739-             // decompression (by doing it within the handler). 
740-             if  ( manuallyProcessedDecompressionMethods  !=  DecompressionMethods . None ) 
741-             { 
742-                 if  ( ( manuallyProcessedDecompressionMethods  &  DecompressionMethods . GZip )  ==  DecompressionMethods . GZip  && 
743-                     ! requestMessage . Headers . AcceptEncoding . Contains ( s_gzipHeaderValue ) ) 
744-                 { 
745-                     requestMessage . Headers . AcceptEncoding . Add ( s_gzipHeaderValue ) ; 
746-                 } 
747- 
748-                 if  ( ( manuallyProcessedDecompressionMethods  &  DecompressionMethods . Deflate )  ==  DecompressionMethods . Deflate  && 
749-                     ! requestMessage . Headers . AcceptEncoding . Contains ( s_deflateHeaderValue ) ) 
750-                 { 
751-                     requestMessage . Headers . AcceptEncoding . Add ( s_deflateHeaderValue ) ; 
752-                 } 
753-             } 
754- 
755731            // Manually add cookies. 
756732            if  ( cookies  !=  null  &&  cookies . Count  >  0 ) 
757733            { 
@@ -941,8 +917,7 @@ private async Task StartRequestAsync(WinHttpRequestState state)
941917                AddRequestHeaders ( 
942918                    state . RequestHandle , 
943919                    state . RequestMessage , 
944-                     _cookieUsePolicy  ==  CookieUsePolicy . UseSpecifiedCookieContainer  ?  _cookieContainer  :  null , 
945-                     _doManualDecompressionCheck  ?  _automaticDecompression  :  DecompressionMethods . None ) ; 
920+                     _cookieUsePolicy  ==  CookieUsePolicy . UseSpecifiedCookieContainer  ?  _cookieContainer  :  null ) ; 
946921
947922                uint  proxyAuthScheme  =  0 ; 
948923                uint  serverAuthScheme  =  0 ; 
@@ -1027,8 +1002,7 @@ private async Task StartRequestAsync(WinHttpRequestState state)
10271002                uint  optionData  =  ( uint ) ( int ) _receiveDataTimeout . TotalMilliseconds ; 
10281003                SetWinHttpOption ( state . RequestHandle ,  Interop . WinHttp . WINHTTP_OPTION_RECEIVE_TIMEOUT ,  ref  optionData ) ; 
10291004
1030-                 HttpResponseMessage  responseMessage  = 
1031-                     WinHttpResponseParser . CreateResponseMessage ( state ,  _doManualDecompressionCheck  ?  _automaticDecompression  :  DecompressionMethods . None ) ; 
1005+                 HttpResponseMessage  responseMessage  =  WinHttpResponseParser . CreateResponseMessage ( state ) ; 
10321006                state . Tcs . TrySetResult ( responseMessage ) ; 
10331007
10341008                // HttpStatusCode cast is needed for 308 Moved Permenantly, which we support but is not included in NetStandard status codes. 
@@ -1372,22 +1346,7 @@ private void SetRequestHandleDecompressionOptions(SafeWinHttpHandle requestHandl
13721346                    optionData  |=  Interop . WinHttp . WINHTTP_DECOMPRESSION_FLAG_DEFLATE ; 
13731347                } 
13741348
1375-                 try 
1376-                 { 
1377-                     SetWinHttpOption ( requestHandle ,  Interop . WinHttp . WINHTTP_OPTION_DECOMPRESSION ,  ref  optionData ) ; 
1378-                 } 
1379-                 catch  ( WinHttpException  ex ) 
1380-                 { 
1381-                     if  ( ex . NativeErrorCode  !=  ( int ) Interop . WinHttp . ERROR_WINHTTP_INVALID_OPTION ) 
1382-                     { 
1383-                         throw ; 
1384-                     } 
1385- 
1386-                     // We are running on a platform earlier than Win8.1 for which WINHTTP.DLL 
1387-                     // doesn't support this option.  So, we'll have to do the decompression 
1388-                     // manually. 
1389-                     _doManualDecompressionCheck  =  true ; 
1390-                 } 
1349+                 SetWinHttpOption ( requestHandle ,  Interop . WinHttp . WINHTTP_OPTION_DECOMPRESSION ,  ref  optionData ) ; 
13911350            } 
13921351        } 
13931352
0 commit comments