@@ -1332,6 +1332,8 @@ function replaceFetchResponseFn(
13321332 if ( pattern === '*' ) { pattern = '.*' ; }
13331333 const rePattern = safe . patternToRegex ( pattern ) ;
13341334 const propNeedles = parsePropertiesToMatch ( propsToMatch , 'url' ) ;
1335+ const extraArgs = safe . getExtraArgs ( Array . from ( arguments ) , 4 ) ;
1336+ const reIncludes = extraArgs . includes ? safe . patternToRegex ( extraArgs . includes ) : null ;
13351337 self . fetch = new Proxy ( self . fetch , {
13361338 apply : function ( target , thisArg , args ) {
13371339 const fetchPromise = Reflect . apply ( target , thisArg , args ) ;
@@ -1361,6 +1363,9 @@ function replaceFetchResponseFn(
13611363 return fetchPromise . then ( responseBefore => {
13621364 const response = responseBefore . clone ( ) ;
13631365 return response . text ( ) . then ( textBefore => {
1366+ if ( reIncludes && reIncludes . test ( textBefore ) === false ) {
1367+ return responseBefore ;
1368+ }
13641369 const textAfter = textBefore . replace ( rePattern , replacement ) ;
13651370 const outcome = textAfter !== textBefore ? 'match' : 'nomatch' ;
13661371 if ( outcome === 'nomatch' ) { return responseBefore ; }
@@ -4365,6 +4370,8 @@ function trustedReplaceXhrResponse(
43654370 if ( pattern === '*' ) { pattern = '.*' ; }
43664371 const rePattern = safe . patternToRegex ( pattern ) ;
43674372 const propNeedles = parsePropertiesToMatch ( propsToMatch , 'url' ) ;
4373+ const extraArgs = safe . getExtraArgs ( Array . from ( arguments ) , 3 ) ;
4374+ const reIncludes = extraArgs . includes ? safe . patternToRegex ( extraArgs . includes ) : null ;
43684375 self . XMLHttpRequest = class extends self . XMLHttpRequest {
43694376 open ( method , url , ...args ) {
43704377 const outerXhr = this ;
@@ -4402,6 +4409,9 @@ function trustedReplaceXhrResponse(
44024409 if ( typeof innerResponse !== 'string' ) {
44034410 return ( xhrDetails . response = innerResponse ) ;
44044411 }
4412+ if ( reIncludes && reIncludes . test ( innerResponse ) === false ) {
4413+ return ( xhrDetails . response = innerResponse ) ;
4414+ }
44054415 const textBefore = innerResponse ;
44064416 const textAfter = textBefore . replace ( rePattern , replacement ) ;
44074417 if ( textAfter !== textBefore ) {
0 commit comments