AdguardTeam / AdguardTeam/Scriptlets

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

Aperta
#562 0 commenti 0 reazioni 1 assegnatario Rivendicata da @maximtop Vedi su GitHub
Priority: P4
Lingua principale
JavaScript
Stelle
195
Fork
33
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

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

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.