TestGorilla Full Screen Exit Bypass

Prevents TestGorilla from forcing users out of fullscreen mode by overriding exitFullscreen(), spoofing fullscreenElement, and blocking fullscreenchange event listeners. Useful for uninterrupted fullscreen experience during assessments.

  1. // ==UserScript==
  2. // @name TestGorilla Full Screen Exit Bypass
  3. // @namespace https://greatest.deepsurf.us/en/users/1461725-scriptninja
  4. // @version 1.0.6
  5. // @description Prevents TestGorilla from forcing users out of fullscreen mode by overriding exitFullscreen(), spoofing fullscreenElement, and blocking fullscreenchange event listeners. Useful for uninterrupted fullscreen experience during assessments.
  6. // @author ScriptNinja
  7. // @license MIT
  8. // @match https://*.testgorilla.com/*
  9. // @icon https://www.google.com/s2/favicons?domain=testgorilla.com
  10. // @grant none
  11. // @run-at document-start
  12. // ==/UserScript==
  13.  
  14. (function() {
  15. 'use strict';
  16.  
  17. // Override exitFullscreen to do nothing
  18. if (document.exitFullscreen) {
  19. document.exitFullscreen = function() {
  20. console.log("Blocked exitFullscreen");
  21. return Promise.resolve(); // Fake success
  22. };
  23. }
  24.  
  25. // Block fullscreenchange events
  26. const originalAddEventListener = EventTarget.prototype.addEventListener;
  27. EventTarget.prototype.addEventListener = function(type, listener, options) {
  28. if (type === 'fullscreenchange') {
  29. console.log("Blocked fullscreenchange listener");
  30. return; // Do not add the event listener
  31. }
  32. originalAddEventListener.call(this, type, listener, options);
  33. };
  34.  
  35. // Spoof fullscreen state
  36. Object.defineProperty(document, 'fullscreenElement', {
  37. get: () => document.documentElement, // Always return the root element as "fullscreen"
  38. configurable: true
  39. });
  40. })();