Disable WebGL API

Disables WebGL support, keeping only basic 2D canvas. That reduces potential exploits via OpenGL and broken drivers but can break many websites requiring OpenGL. Some most common ones are excluded.

  1. // ==UserScript==
  2. // @name Disable WebGL API
  3. // @description Disables WebGL support, keeping only basic 2D canvas. That reduces potential exploits via OpenGL and broken drivers but can break many websites requiring OpenGL. Some most common ones are excluded.
  4. // @namespace disablewebglapi
  5. // @author k3abird
  6. // @include *
  7. // @exclude https://*.google.com/*
  8. // @exclude https://github.com/*
  9. // @exclude https://www.shadertoy.com/*
  10. // @exclude https://www.youtube.com/*
  11. // @version 1.0
  12. // @run-at document-start
  13. // ==/UserScript==
  14. (function() {
  15. console.log("disable-webgl-api: will remove canvas and webGL support");
  16.  
  17. const kb_canvas_getContext = HTMLCanvasElement.prototype.getContext;
  18. HTMLCanvasElement.prototype.getContext = function(name) {
  19. if (name == "webgl" || name == "experimental-webgl" || name == "webgl2") {
  20. console.log("disable-webgl-api: disabled "+name)
  21. return null;
  22. }
  23. console.log("disable-webgl-api: allowing context of type "+name)
  24. return kb_canvas_getContext.apply(this, arguments);
  25. }
  26. })();