1
0
mirror of https://github.com/gorhill/uBlock.git synced 2024-07-05 11:37:01 +02:00

Bring back ability to log all calls to JSON.parse

Related feedback:
https://github.com/uBlockOrigin/uBlock-issues/discussions/3096
This commit is contained in:
Raymond Hill 2024-01-27 06:43:36 -05:00
parent 0df57e08d2
commit 8be8ac57a7
No known key found for this signature in database
GPG Key ID: 25E1490B761470C2

View File

@ -427,7 +427,7 @@ function abortCurrentScriptCore(
if ( debug === 'nomatch' || debug === 'all' ) { debugger; } // jshint ignore: line
return;
}
if ( safe.logLevel > 1 && e.src !== '' ) {
if ( safe.logLevel > 1 && context !== '' ) {
safe.uboLog(logPrefix, `Matched src\n${e.src}`);
}
const scriptText = getScriptText(e);
@ -1659,19 +1659,28 @@ function jsonPrune(
stackNeedle = ''
) {
const safe = safeSelf();
const logPrefix = safe.makeLogPrefix('json-prune', rawPrunePaths, rawNeedlePaths, stackNeedle);
const stackNeedleDetails = safe.initPattern(stackNeedle, { canNegate: true });
const extraArgs = safe.getExtraArgs(Array.from(arguments), 3);
JSON.parse = new Proxy(JSON.parse, {
apply: function(target, thisArg, args) {
const objBefore = Reflect.apply(target, thisArg, args);
if ( rawPrunePaths === '' ) {
safe.uboLog(logPrefix, JSON.stringify(objBefore, null, 1));
}
const objAfter = objectPruneFn(
objBefore,
rawPrunePaths,
rawNeedlePaths,
stackNeedleDetails,
extraArgs
);
return objAfter || objBefore;
);
if ( objAfter === undefined ) { return objBefore; }
safe.uboLog(logPrefix, 'Pruned');
if ( safe.logLevel > 1 ) {
safe.uboLog(logPrefix, JSON.stringify(objAfter, null, 1));
}
return objAfter;
},
});
}