Un browser WebGL™ è un programma progettato non solo per visualizzare documenti HyperText Markup Language (HTML), JavaScript® e CSS (Cascading Style Sheet) di base online, ma anche per interpretare il sottoinsieme speciale di queste specifiche noto come WebGL™. Tecnicamente, WebGL™ non è un linguaggio autonomo ma una libreria grafica che utilizza l’elemento canvas del motore di rendering del browser per creare un ponte tra il codice WebGL™, l’hardware grafico e il browser. Ciò offre a un browser WebGL™ la capacità di eseguire il rendering di grafica tridimensionale (3D) avanzata molto più velocemente di quanto sarebbe altrimenti possibile utilizzando altri tipi di plug-in e in modo più conveniente rispetto all’utilizzo di programmi compilati separatamente all’interno del browser. Quasi tutti i principali browser Web supportano WebGL™ in modo nativo, sebbene i browser che non implementano il supporto nativo dispongano generalmente di plug-in di terze parti che espongono i componenti HTML necessari. Sebbene un browser WebGL™ sia in grado di eseguire rapidamente il rendering della grafica 3D grazie all’accesso diretto fornito a una scheda grafica del computer, questa è anche la fonte di potenziali falle di sicurezza di grandi dimensioni che potrebbero consentire a un programma dannoso di eseguire codice dannoso su un computer remoto.
In sostanza, un browser WebGL™ contiene codice che collega in modo specifico le funzioni incluse in una libreria grafica in modo che siano accessibili tramite JavaScript®. Nella versione standard del linguaggio HTML 5 (HTML5), esiste un elemento speciale noto come canvas che può essere utilizzato per disegnare direttamente su un’area dello schermo senza dover utilizzare plug-in o per lavorare con tag HTML o CSS che potrebbe non essere preciso come richiesto. All’interno di un browser WebGL™ conforme, JavaScript® è associato a una libreria grafica di basso livello e attinge direttamente all’elemento canvas HTML5, fornendo una piattaforma per la grafica che può essere inviata direttamente da una scheda grafica a un dispositivo di visualizzazione.
Le librerie utilizzate sono le librerie di sistema integrate OpenGL® (OpenGL ES®), che sono un sottoinsieme delle funzioni della libreria OpenGL® standard progettate per funzionare con i dispositivi mobili. Uno dei motivi per cui è possibile un browser WebGL™ è la natura leggera delle librerie WebGL™, che non consumano grandi quantità di risorse e non contengono alcune delle funzioni più impegnative per il processore dell’implementazione completa di OpenGL®. Un problema ricorrente con un browser WebGL™, tuttavia, è che i driver e l’hardware su un computer o dispositivo devono essere in grado di eseguire un’applicazione OpenGL ES®. Alcuni sistemi operativi, dispositivi, hardware e persino driver non hanno le capacità per eseguire un programma WebGL™ e inoltre non hanno una soluzione semplice se non la sostituzione dell’hardware grafico installato.
Le principali preoccupazioni per la sicurezza e la protezione di un browser WebGL™ hanno impedito ad alcuni importanti sviluppatori di browser di implementare completamente il supporto per WebGL™. Ciò si riduce principalmente all’accesso diretto che il browser fornisce al codice WebGL™. Se utilizzata in modo dannoso, la scheda grafica può essere manipolata per causare danni tramite il sistema host o, nel peggiore dei casi, può essere utilizzata come gateway per eseguire o installare codice dannoso.