@@ -51,7 +51,8 @@ it('should not allow to override unsafe HTTP headers', async ({ page, server, br
51
51
const error = await route . continue ( {
52
52
headers : {
53
53
...route . request ( ) . headers ( ) ,
54
- host : 'bar'
54
+ host : 'bar' ,
55
+ trailer : 'baz' ,
55
56
}
56
57
} ) . catch ( e => e ) ;
57
58
if ( isElectron ) {
@@ -67,7 +68,8 @@ it('should not allow to override unsafe HTTP headers', async ({ page, server, br
67
68
// These lines just document current behavior in FF and WK,
68
69
// we don't necessarily want to maintain this behavior.
69
70
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 ) ;
71
73
}
72
74
} ) ;
73
75
@@ -902,29 +904,33 @@ it('should not forward Host header on cross-origin redirect', {
902
904
description : 'https://github.com/microsoft/playwright/issues/36719'
903
905
}
904
906
} , async ( { page, server, browserName } ) => {
905
- it . fixme ( browserName === 'firefox' , 'https://github.com/microsoft/playwright/issues/36719' ) ;
906
-
907
907
const redirectTargetPath = '/final' ;
908
908
const redirectSourcePath = '/redirect' ;
909
909
910
- let receivedHostHeader : string | undefined ;
910
+ let redirectedHost : string | undefined ;
911
911
server . setRoute ( redirectTargetPath , ( req , res ) => {
912
- receivedHostHeader = req . headers [ 'host' ] ;
912
+ redirectedHost = req . headers [ 'host' ] ;
913
913
res . end ( 'OK' ) ;
914
914
} ) ;
915
915
916
+ let firstHost : string | undefined ;
916
917
server . setRoute ( redirectSourcePath , ( req , res ) => {
918
+ firstHost = req . headers [ 'host' ] ;
917
919
res . writeHead ( 302 , { ___location : `${ server . CROSS_PROCESS_PREFIX } ${ redirectTargetPath } ` } ) ;
918
920
res . end ( ) ;
919
921
} ) ;
920
922
921
923
await page . route ( '**/*' , async route => {
922
924
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' ) ;
924
929
await route . continue ( { headers } ) ;
925
930
} ) ;
926
931
927
932
const response = await page . goto ( server . PREFIX + redirectSourcePath ) ;
928
933
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 ) ;
930
936
} ) ;
0 commit comments