@@ -3026,6 +3026,9 @@ Wombat.prototype.overridePropExtract = function(proto, prop) {
3026
3026
var new_getter = function ( ) {
3027
3027
var obj = wombat . proxyToObj ( this ) ;
3028
3028
var res = orig_getter . call ( obj ) ;
3029
+ if ( obj . __WB_no_unrewrite ) {
3030
+ return res ;
3031
+ }
3029
3032
return wombat . extractOriginalURL ( res ) ;
3030
3033
} ;
3031
3034
this . defGetterProp ( proto , prop , new_getter ) ;
@@ -4612,25 +4615,15 @@ Wombat.prototype.initHTTPOverrides = function() {
4612
4615
4613
4616
if ( input instanceof Request ) {
4614
4617
var new_url = wombat . rewriteUrl ( input . url ) ;
4615
- var real_url = input . __WB_real_url ;
4616
- // if already a Request with rewritten url, just use that
4617
- if ( new_url === input . url || new_url === real_url || new_url === wombat . $wbwindow . location . origin + real_url ) {
4618
+ input . __WB_no_unrewrite = true ;
4619
+ if ( new_url === input . url ) {
4618
4620
request = input ;
4619
4621
} else {
4620
4622
request = new Request ( new_url , input ) ;
4621
4623
}
4624
+ delete input . __WB_no_unrewrite ;
4622
4625
} else {
4623
4626
input = wombat . rewriteUrl ( input . toString ( ) ) ;
4624
-
4625
- if ( ! init_opts ) {
4626
- init_opts = { } ;
4627
- }
4628
- if ( init_opts . credentials === undefined ) {
4629
- try {
4630
- init_opts . credentials = 'include' ;
4631
- } catch ( e ) { }
4632
- }
4633
-
4634
4627
request = new Request ( input , init_opts ) ;
4635
4628
}
4636
4629
@@ -4665,30 +4658,24 @@ Wombat.prototype.initHTTPOverrides = function() {
4665
4658
}
4666
4659
break ;
4667
4660
}
4668
- const props = [ 'cache' , 'headers' , 'integrity' ,
4669
- 'keepalive' , 'method' , 'mode' , 'redirect' ,
4670
- 'referrerPolicy' , 'signal'
4671
- ] ;
4672
-
4673
- const newOpts = { } ;
4674
-
4675
- for ( const prop of props ) {
4676
- newOpts [ prop ] = newInitOpts [ prop ] ;
4677
- }
4678
-
4679
- newOpts . credentials = 'include' ;
4680
-
4681
- if ( newInitOpts . referrer ) {
4682
- newOpts . referrer = wombat . rewriteUrl ( newInitOpts . referrer ) ;
4661
+ let unrwSet = false ;
4662
+ // make a duplicate object to override referrer
4663
+ if ( newInitOpts && newInitOpts . referrer ) {
4664
+ var newReferrer = wombat . rewriteUrl ( newInitOpts . referrer ) ;
4665
+ if ( newReferrer !== newInitOpts . referrer ) {
4666
+ if ( newInitOpts instanceof Request ) {
4667
+ newInitOpts . __WB_no_unrewrite = true ;
4668
+ unrwSet = true ;
4669
+ } else {
4670
+ newInitOpts . referrer = newReferrer ;
4671
+ }
4672
+ }
4683
4673
}
4684
4674
4685
- if ( newInitOpts . duplex && newInitOpts . body ) {
4686
- newOpts . body = newInitOpts . body ;
4687
- newOpts . duplex = newInitOpts . duplex ;
4675
+ var request = new Request_ ( newInput , newInitOpts ) ;
4676
+ if ( unrwSet ) {
4677
+ delete newInitOpts . __WB_no_unrewrite ;
4688
4678
}
4689
-
4690
- var request = new Request_ ( newInput , newOpts ) ;
4691
- request . __WB_real_url = newInput ;
4692
4679
return request ;
4693
4680
} ;
4694
4681
} ) ( this . $wbwindow . Request ) ;
0 commit comments