brave / brave/adblock-rust

Proposal: Browser-level element hiding

Open
#318 4 comments 19 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
2.8k
Forks
250
Avg merge
1d 16h
Merged PRs (30d)
6

Description

Currently sites can easily detect if elements (e.g. ads) are hidden (`display: none`, `clip-path: circle(0)`, etc) using "getComputedStyle".

I did spoof the result of "getComputedStyle" using a Proxy and `object.defineProperty` but sites can still detect object tampering.

So my proposal is browser-level element hiding:
Instead of "hiding" the element, add an option to prevent an element from rendering to the user's screen and GPU.

This way, sites can't detect hidden elements using Javascript.

Contributor guide

No contributing guide indexed for this repository

Research direction

No files, tests, or entry points are named. Start by reviewing the adblock engine's existing element-hiding design and determine whether a browser-level rendering option is in scope; done would mean a defined, implementable approach that prevents hidden elements from reaching the screen and GPU without exposing the hiding to JavaScript.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.