Browser Feature & Cookie Checker

Test if JavaScript, cookies, storage & WebGL are enabled.

Run a live self-check of what your browser actually supports — cookies, localStorage/sessionStorage, IndexedDB, Canvas, WebGL/WebGL2, WebAssembly, WebP/AVIF image support, touch input, Do Not Track, dark-mode and reduced-motion preferences. Also detects an active ad/tracker blocker, reads live Network Information, and shows a read-only camera/mic/location/notification permission snapshot. Every probe runs against real Web APIs already in your browser — nothing is uploaded, and no test image is ever fetched over the network.

About Browser Feature & Cookie Checker

Browser Feature & Cookie Checker features

How to use Browser Feature & Cookie Checker

  1. Open the page

    Every check runs automatically as soon as the page loads — no button to press.

  2. Read the headline result

    The dark card at the top shows how many of the tested features are supported, plus whether an ad blocker is active.

  3. Check the advanced panel

    Ad blocker status, live network speed and your camera/mic/location permission states — read-only, no prompts triggered.

  4. Scan each group

    Core, Storage, Graphics & Media and Device & Privacy are grouped separately so you can quickly spot what's disabled.

  5. Filter or re-run

    Switch the dropdown to Supported-only or Unsupported-only, or hit Re-run after changing a browser setting to confirm it took effect.

Best practices

Why cookies get blocked

Cookies can be off for several different reasons: a browser-level privacy setting, a strict 'block all third-party cookies' policy, private/incognito mode in some browsers, or a content-blocking extension. This tool writes and reads back a real test cookie, so it reflects your actual current setting rather than just a static browser flag.

What ad blockers actually block

Most ad blockers work from crowd-sourced filter lists (like EasyList) that match element class names, ids and request URLs commonly used by ad networks — then hide or remove anything matching. The bait-element check above uses the same class-name pattern real ad slots use, so a blocker that would normally hide an ad also hides the bait.

This is a heuristic, not a guarantee — a very customised or minimal filter list could miss the generic bait names used here.

WebAssembly, explained simply

WebAssembly (Wasm) lets code written in languages like C++, Rust or Go run in the browser at near-native speed, alongside JavaScript. It powers everything from Figma and Photoshop's web version to in-browser video/photo editors and games — if it shows as unsupported, those kinds of heavy web apps won't run properly.

Understanding browser permissions

Camera, microphone, location and notifications each have a per-site permission state your browser remembers: granted, denied, or prompt (not yet decided). Reading that state via the Permissions API never shows a popup — only actually using the camera/mic/location would trigger one if the state is 'prompt'.

Popular use cases

'Site doesn't work' bugs

Confirm whether cookies, storage or a blocked API is the real cause.

Ad-blocker QA

Check ad-blocker impact on your own analytics or ad-slot rendering before shipping.

WebGL for games/design

Verify a visitor's browser can actually run a WebGL-based tool or game.

Network-aware loading

See the connection type & Data Saver state your adaptive-loading logic would read.

Privacy extension checks

Confirm a privacy extension is blocking storage or cookies as expected.

Permission debugging

See current camera/mic/location permission state without triggering a new prompt.

Frequently asked questions

Are cookies enabled in my browser?

Check the Cookies row under Core — it actually writes and reads back a tiny test cookie (not just checking navigator.cookieEnabled), so it reflects real cookie-blocking settings and extensions too.

How does the ad-blocker detection work?

It briefly adds an invisible element to the page using class names that ad/tracker filter lists commonly target (like 'adsbox' and 'ad-banner'), then checks whether it got hidden or removed. No network request is made — it purely tests whether a blocker's CSS/DOM rules ran on the page.

Does checking my permissions trigger a prompt?

No. It uses the read-only Permissions API (navigator.permissions.query), which reports the current state — granted, denied or prompt — without ever showing a popup. Only actually starting the camera/mic/location would trigger a real prompt if the state is 'prompt'.

Why is Network Information showing 'not available'?

The Network Information API is currently Chromium-only (Chrome, Edge, Opera, Samsung Internet). Firefox and Safari don't implement it, so the network card will show 'not available' there — that's expected, not a bug.

Why does it say localStorage is disabled?

localStorage is blocked in fully private/incognito mode in some browsers, when third-party storage is restricted in an embedded iframe, or when a strict privacy extension blocks site storage. It's a per-site permission, unrelated to cookies.

What is WebGL and why would it be unsupported?

WebGL renders hardware-accelerated 3D graphics (used by games, maps and some animations). It can be unsupported if your GPU driver is blocklisted, hardware acceleration is disabled in browser settings, or you're on a very locked-down or virtual-machine environment.

Does testing WebP/AVIF support download anything?

No. Both images are tiny data URIs embedded directly in this page's code — decoded locally by your browser to see if it understands the format. Nothing is fetched from the network.

Is any of this data sent to a server?

No. Every single check runs against your browser's own APIs and is displayed locally. Nothing about your browser, device or settings is uploaded, logged or stored.

Related tools — Site diagnostics