AdguardTeam / AdguardTeam/Scriptlets

Improve 'trusted-replace-argument' — add new constant values

Abierto
#562 0 comentarios 0 reacciones 1 asignado Reclamado por @maximtop Ver en GitHub
Priority: P4
Lenguaje dominante
JavaScript
Estrellas
195
Forks
33
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

Related to https://github.com/AdguardTeam/AdguardFilters/issues/232621

Steps to reproduce:
1. Add to user rules:
```adblock
example.org#%#//scriptlet('trusted-replace-argument', 'Promise', '0', 'noopPromiseResolve', 'isDetected')
```
2. Navigate to https://example.org/
3. In browser console run:
```js
(async () => {
const checkAdblock = () => {
console.log('Checking for adblock...');
return new Promise((resolve) => {
// Set to true by default for demonstration purposes
const isDetected = true;
resolve(isDetected);
});
};

const init = async () => {
const [result] = await Promise.all([
checkAdblock(),
]);

if (result) {
console.log('Adblock detected');
return;
}

console.log('Load content');
}

await init();
console.log('Script loaded');
})();
```

With current solution only `Checking for adblock...` is printed in console (the same for`noopCallbackFunc`, `noopFunc`, `falseFunc`).
Expected is:
```
Checking for adblock...
Load content
Script loaded
```
So, I think we could add functions which return callback with `false`/`true`, something like:
```js
const falseCallbackFunc = (callback) => { callback(false); };
const trueCallbackFunc = (callback) => { callback(true); };
```


And/Or we could add support for `valueWrapper` similar like in https://github.com/AdguardTeam/Scriptlets/blob/master/wiki/about-scriptlets.md#set-constant

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.