1
0
mirror of https://github.com/gorhill/uBlock.git synced 2024-07-08 04:49:12 +02:00

Fix json-prune-xhr-response as per feedback

Related commit:
abe41034f6
This commit is contained in:
Raymond Hill 2023-09-06 13:04:43 -04:00
parent 5c9c0a8023
commit 14d60ac5d3
No known key found for this signature in database
GPG Key ID: 25E1490B761470C2

View File

@ -1365,25 +1365,41 @@ function jsonPruneXhrResponse(
if ( xhrDetails === undefined ) { if ( xhrDetails === undefined ) {
return innerResponse; return innerResponse;
} }
if ( typeof innerResponse !== 'object' ) { if ( xhrDetails.response !== undefined ) {
xhrDetails.response = innerResponse; return xhrDetails.response;
} }
let outerResponse = xhrDetails.response; let objBefore;
if ( outerResponse !== undefined ) { if ( typeof innerResponse === 'object' ) {
return outerResponse; objBefore = innerResponse;
} else if ( typeof innerResponse === 'string' ) {
try { objBefore = safe.jsonParse(innerResponse); }
catch(ex) { }
} }
outerResponse = objectPrune( if ( typeof objBefore !== 'object' ) {
innerResponse, return (xhrDetails.response = innerResponse);
}
const objAfter = objectPrune(
objBefore,
rawPrunePaths, rawPrunePaths,
rawNeedlePaths, rawNeedlePaths,
{ matchAll: true }, { matchAll: true },
extraArgs extraArgs
); );
if ( typeof outerResponse !== 'object' ) { let outerResponse;
if ( typeof objAfter === 'object' ) {
outerResponse = typeof innerResponse === 'string'
? safe.jsonStringify(objAfter)
: objAfter;
} else {
outerResponse = innerResponse; outerResponse = innerResponse;
} }
xhrDetails.response = outerResponse; return (xhrDetails.response = outerResponse);
return outerResponse; }
get responseText() {
const response = this.response;
return typeof response !== 'string'
? super.responseText
: response;
} }
}; };
} }