AdguardTeam / AdguardTeam/Scriptlets

Add "prevent-console-hijack(ing)" scriptlet?

Aberta
#167 3 comentários 0 reações 0 responsáveis Ver no GitHub
Feature request Priority: P4
Linguagem predominante
JavaScript
Estrelas
195
Forks
33
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

#### Hello,
 
A lot of websites like [TF1.fr](https://github.com/AdguardTeam/AdguardFilters/pull/102134) hijack `window.console` — allowing them, if necessary, to send the results of `console.error`, etc. to their servers.

#### This forced me to create this userscript in Tampermonkey because of my many uses of `console.xxx` during my tests:

```javascript
// ==UserScript==
// @name Force keeping native window.console on different websites
// @namespace http://tampermonkey.net/
// @version 0.3
// @description Force keeping native window.console on different websites (currently: various catch-up TV websites).
// @author Contribucious
// @match http*://*.6play.fr/*
// @match http*://*.rtlplay.be/*
// @match http*://*.tf1.fr/*
// @run-at document-start
// ==/UserScript==

(function() {
'use strict';

// Based on: https://humanwhocodes.com/blog/2014/04/22/creating-defensive-objects-with-es6-proxies/

// Function(s)
function createDefensiveObject(target, wanted) {
return new Proxy(target, {
get(target, prop) {
if (prop in wanted) {
return wanted[prop];
}
}
});
}

// Main
unsafeWindow.console = createDefensiveObject(window.console, unsafeWindow.console);
})();

```
###### [`// @grant none`](https://www.tampermonkey.net/documentation.php#_grant) must not be present (i.e. sandbox required here for this to work).
 

:arrow_right: What about adding an equivalent in **AdGuard**, to be added [here](https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#debug-scriptlets) afterwards, as:
- `example.org#%#//scriptlet('prevent-console-hijack')` or
- `example.org#%#//scriptlet('prevent-console-hijacking')`,

… to keep a name similar to `prevent-window-open` and others? 🙂

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.