Greasemonkey: xmlHttpRequest.open ya no acepta rutas sin protocolo y host

Creado en 14 dic. 2017  ·  9Comentarios  ·  Fuente: greasemonkey/greasemonkey

He notado en jesus2099 / konami-command # 372 que Firefox v57 + Greasemonkey v4 solo funcionaría con la URL completa https?://host.tld/pathname y ya no funciona con solo /pathname .
Firefox v57 + otro motor de GM no se ve afectado por esta regresión, es por eso que abro un ticket aquí.

Todos 9 comentarios

En mi solución temporal , tuve que agregar self.location.protocol + "//" + self.location.host + delante de mi URL.

Las solicitudes en ejecución desde un contexto de script de contenido (en el que se ejecutan los scripts de usuario) deben utilizar URL completas.

https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Chrome_incompatibilidades#Content_script_requests_happen_in_the_context_of_extension_not_content_page

Si no desea utilizar URL completas, puede utilizar los métodos en window.wrappedJSObject y exportar las funciones necesarias para ejecutar (onreadystatechange, etc.) utilizando exportFunction() . Mi sugerencia es usar URL completas.

Muchas gracias por su ayuda.
Bien, entonces quiere decir que es según las especificaciones del sistema WebExtensions, ¿verdad?
No conozco estas cosas de WebExtensions, pero parece ser un estándar…?
No recuerdo haber leído nada sobre esta regresión en particular en GM v4 para publicaciones de blog de
¿Seguro que esta regresión es permanente?

¿Seguro que esta regresión es permanente?

Quizás. Realmente no lo sé. Quizás en el futuro <strong i="7">@grant</strong> none no tendrá estos problemas, si se puede crear una caja de arena adecuada. Pero si se requieren algunas API privilegiadas, estos pasos pueden ser necesarios. La pelota está realmente en la cancha de Mozilla.

FTR mi secuencia de comandos es una secuencia de comandos <strong i="5">@grant</strong> none .
Dejo que los líderes del proyecto cierren o no cierren este ticket.
Me adaptaré.

Esto no es una intención, por lo que no se debe esperar que sea permanente. Podríamos resolver totalmente las rutas no absolutas basándonos en el documento como raíz.

Tenga en cuenta que la URL base correcta es: document.baseURI (relacionada con <base href="..."> )

Puedo confirmar, jQuery AJAX no funciona solo con la URL de ruta.
Firefox 57, último Greasemonkey.

$.ajax({
  url: '/some/path',
  success: () => {}
});

Mi AJAX funciona con el antiguo Firefox (pre-WebExtensions)

La solución anterior se ha empaquetado en una nueva versión beta:
https://addons.mozilla.org/firefox/downloads/file/830369/greasemonkey-4.2beta1-an+fx.xpi?src=devhub

¡Se agradecerían las pruebas y la confirmación!

¿Fue útil esta página
0 / 5 - 0 calificaciones