Inspect your browser
environment.
See the identity and capabilities your browser exposes, with automation disclosure kept separate from claims about physical hardware.
Results will appear together when this observation completes. Document load is held until the report is ready.
Preparing observation…Report
OBSERVATION COMPLETE- Time to full
- —
- Time to empty
- —
- Physical hardware
- Not verifiable
Reported charge over time
Samples across the observation. A flat trace is inconclusive.
Evidence & checks
Inspectable, not a black box| CHECK | OUTCOME | EVIDENCE |
|---|
Browser environment
Raw report JSON
A webpage cannot prove that a battery is physical or rule out sophisticated spoofing. A changing reading can be simulated. Unchanged readings, unsupported APIs and privacy defaults are inconclusive.
Methodology & sources
We inspect value ranges and charging/time relationships, repeated object identity, the exposed API surface, a fresh same-origin iframe, battery events, and passive time-series samples. We do not drain the battery with artificial CPU or GPU work. To gather stronger behavioral evidence, unplug your device, keep the tab visible and use a longer observation. Battery estimates are approximate and browsers may round or obfuscate values.
The default 100%, charging, 0 seconds to full and infinite discharge time can represent a full battery, absent hardware or unavailable information. Native-looking APIs and matching realms are weak evidence. Automation disclosure is reported separately.
Reports stay in memory and are replaced on reload. Cloudflare receives ordinary page requests and temporary network gates; browser readings are not uploaded. Without JavaScript, checks do not execute. A load-blocking finalizer holds DOMContentLoaded and load until the report is ready. Three pending fetches prevent networkidle0/networkidle2 from settling before load and report completion. For selector waits, use #probe-complete. Choose a navigation timeout longer than the observation plus 10 seconds.