Hoy me encontré con una situación en la que necesito hacer una extensión para parchear algunos objetos en una página web.
Sin embargo, encontré poca o ninguna documentación sobre cómo se puede lograr realmente, intenté usar la API de userScripts (actualmente exclusiva de Firefox), pero el objeto de la window está contextualmente aislado de la window en el HTML DOM de la página.
Sé que esto es posible porque los administradores de secuencias de comandos de usuario como unsafeWindow implementan un objeto de ventana insegura que le da a la secuencia de comandos acceso directo a los objetos en el contexto no aislado de la página web, lo que facilita mucho la aplicación de parches.
Así que me gustaría saber cómo se logra esto realmente. Intenté estudiar el código fuente de un administrador de secuencias de comandos de usuario llamado ViolentMonkey , encontré que define unsafeWindow en src/injected/web/gm-api-wrapper.js:53 como una referencia al objeto global pero no pude Ubique donde este a su vez está definido en el código fuente.
Sé que esto no se implementa simplemente inyectando un elemento <script> en la página porque ninguno está visible en el DOM de la página en mi inspección.
Tengo mucha curiosidad acerca de la implementación de este genial mecanismo, estoy bastante seguro de que me perdí algo obvio, ¡así que necesito su ayuda para quitarme las vendas de los ojos!