diff --git a/frontend/src/components/CrackerPanel.tsx b/frontend/src/components/CrackerPanel.tsx index 58df592..86fb2a9 100644 --- a/frontend/src/components/CrackerPanel.tsx +++ b/frontend/src/components/CrackerPanel.tsx @@ -409,7 +409,10 @@ export function CrackerPanel({ const handleStart = () => { if (!gpuAvailable) { toast.error('WebGPU not available', { - description: 'Cracking requires Chrome 113+ or Edge 113+ with WebGPU support.', + description: + typeof window !== 'undefined' && !window.isSecureContext + ? 'WebGPU requires HTTPS when not on localhost. Set up a certificate or configure your browser to treat this origin as secure.' + : 'Cracking requires Chrome 113+ or Edge 113+ with WebGPU support.', }); return; } @@ -593,8 +596,26 @@ export function CrackerPanel({ {/* GPU status */} {gpuAvailable === false && ( -
- WebGPU not available. Cracking requires Chrome 113+ or Edge 113+. +
+

WebGPU not available.

+ {typeof window !== 'undefined' && !window.isSecureContext ? ( +
+

WebGPU requires HTTPS when not on localhost.

+

To enable it:

+
    +
  • + Set up a TLS certificate (see the HTTPS section of README_ADVANCED.md, or re-run + the Docker setup script which can generate one automatically) +
  • +
  • + Or configure your browser to treat this origin as secure (sometimes called + “insecure origins treated as secure” in browser flags) +
  • +
+
+ ) : ( +

Cracking requires Chrome 113+ or Edge 113+ with WebGPU support.

+ )}
)} {!wordlistLoaded && gpuAvailable !== false && (