@@ -51,7 +51,8 @@ it('should not allow to override unsafe HTTP headers', async ({ page, server, br
5151 const error = await route . continue ( {
5252 headers : {
5353 ...route . request ( ) . headers ( ) ,
54- host : 'bar'
54+ host : 'bar' ,
55+ trailer : 'baz' ,
5556 }
5657 } ) . catch ( e => e ) ;
5758 if ( isElectron ) {
@@ -67,7 +68,8 @@ it('should not allow to override unsafe HTTP headers', async ({ page, server, br
6768 // These lines just document current behavior in FF and WK,
6869 // we don't necessarily want to maintain this behavior.
6970 const serverRequest = await serverRequestPromise ;
70- expect ( serverRequest . headers [ 'host' ] ) . toBe ( 'bar' ) ;
71+ expect ( serverRequest . headers [ 'trailer' ] ) . toBe ( 'baz' ) ;
72+ expect ( serverRequest . headers [ 'host' ] ) . toBe ( new URL ( server . EMPTY_PAGE ) . host ) ;
7173 }
7274} ) ;
7375
@@ -902,29 +904,33 @@ it('should not forward Host header on cross-origin redirect', {
902904 description : 'https://github.com/microsoft/playwright/issues/36719'
903905 }
904906} , async ( { page, server, browserName } ) => {
905- it . fixme ( browserName === 'firefox' , 'https://github.com/microsoft/playwright/issues/36719' ) ;
906-
907907 const redirectTargetPath = '/final' ;
908908 const redirectSourcePath = '/redirect' ;
909909
910- let receivedHostHeader : string | undefined ;
910+ let redirectedHost : string | undefined ;
911911 server . setRoute ( redirectTargetPath , ( req , res ) => {
912- receivedHostHeader = req . headers [ 'host' ] ;
912+ redirectedHost = req . headers [ 'host' ] ;
913913 res . end ( 'OK' ) ;
914914 } ) ;
915915
916+ let firstHost : string | undefined ;
916917 server . setRoute ( redirectSourcePath , ( req , res ) => {
918+ firstHost = req . headers [ 'host' ] ;
917919 res . writeHead ( 302 , { location : `${ server . CROSS_PROCESS_PREFIX } ${ redirectTargetPath } ` } ) ;
918920 res . end ( ) ;
919921 } ) ;
920922
921923 await page . route ( '**/*' , async route => {
922924 const headers = route . request ( ) . headers ( ) ;
923- expect ( headers ) . not . toHaveProperty ( 'host' ) ;
925+ if ( browserName === 'firefox' )
926+ expect ( headers ) . toHaveProperty ( 'host' ) ;
927+ else
928+ expect ( headers ) . not . toHaveProperty ( 'host' ) ;
924929 await route . continue ( { headers } ) ;
925930 } ) ;
926931
927932 const response = await page . goto ( server . PREFIX + redirectSourcePath ) ;
928933 expect ( response . status ( ) ) . toBe ( 200 ) ;
929- expect ( receivedHostHeader ) . toBe ( new URL ( server . CROSS_PROCESS_PREFIX ) . host ) ;
934+ expect ( firstHost ) . toBe ( new URL ( server . PREFIX ) . host ) ;
935+ expect ( redirectedHost ) . toBe ( new URL ( server . CROSS_PROCESS_PREFIX ) . host ) ;
930936} ) ;
0 commit comments