ACTUALIZACIÓN: ahora me doy cuenta de que en el escenario descrito a continuación tendré que tener cuidado con los bucles infinitos, ya que la página a la que se redirige es la misma (menos el parámetro agregado) que la página inicial. ¿Alguien tiene alguna experiencia con Webextensions y puede ofrecer algún consejo sobre la mejor manera de evitar estos bucles?
He escrito algunas extensiones web para Firefox antes, pero han pasado algunos años (un poco fuera de práctica). Pero ha surgido un nuevo problema para el que no veo solución excepto escribir mi propia extensión Web.
¿Cómo modificaría la URL de una página y agregaría un parámetro de consulta? Específicamente, estoy tratando de modificar la URL de las páginas de Google Docs y agregar el parámetro de consulta ?mode=html
Entonces, por ejemplo, una URL de Google Docs podría verse así: https://docs.google.com/document/d/7Ujfjsd69To7lInXFOdn49nAxLLhfn43fj43JHDTp87/edit
Estoy buscando crear una extensión que modifique esa URL para que se convierta en: https://docs.google.com/document/d/7Ujfjsd69To7lInXFOdn49nAxLLhfn43fj43JHDTp87/edit?mode=html
(Obviamente, solo quiero que se agregue este parámetro cuando la URL que se carga coincide con https://docs.google.com/document/d/* )
¿Alguien puede darme un consejo sobre cómo empezar eso? ¿Qué funciones de extensionAPI necesitaría usar para hacer eso? ¿En qué punto de la vida útil de la solicitud debería suceder, etc.?
Nota: requiere el permiso "webRequest" y "webRequestBlocking" más el permiso de host
// add a listener for https://docs.google.com/document/* browser.webRequest.onBeforeRequest.addListener(process, { urls: ['https://docs.google.com/document/*'], types: ['main_frame'] }, ['blocking'] ); function process(details) { // check it doesn't have mode=html if (!details.url.includes('mode=html')) { // add &mode=html if URL already has search string, otherwsie ?mode=html return {redirectUrl: details.url + (details.url.includes('?') ? '&' : '?') + 'mode=html'}; } }