Greasemonkey: la configuración de privacy.firstparty.isolate rompe el almacenamiento de secuencias de comandos

Creado en 9 jul. 2019  ·  23Comentarios  ·  Fuente: greasemonkey/greasemonkey

Hola a todos,

si alguien lo lee antes de actualizar a FF 68: cree una copia de seguridad de sus scripts.

Después de la actualización automática, todos mis scripts desaparecieron. Todavía se incluyen excepciones (por lo que GM parece extraer algunas de mis configuraciones anteriores), pero faltan todos los scripts.

¿Dónde almacena GM los datos actualmente? Dentro de la carpeta browser-extension-data, el archivo GM no se modificó. Sigo investigando, pero esto parece ser totalmente extraño.

Comentario más útil

Bien, lo encontré.

El problema es la configuración "privacy.firstparty.isolate;true". Por lo general, GM almacena sus configuraciones en estas 2 carpetas:

  • perfil\almacenamiento\predeterminado\moz-extension+++MYGMID
  • perfil\almacenamiento\predeterminado\moz-extension+++MYGMID^userContextId=MYCONTID

Si el aislamiento de primera parte está habilitado y actualiza a FF 68, se crea una carpeta de tercera:

  • perfil\almacenamiento\predeterminado\moz-extension+++MYGMID^firstPartyDomain=MYGMID

Si desactiva el aislamiento de primera parte ("privacy.firstparty.isolate;false") y luego elimina la carpeta creada por terceros mencionada anteriormente, sus secuencias de comandos volverán a ser visibles.

Todos 23 comentarios

Así que vi esto y verifiqué mi versión ahora: 67. Pero tenía que aplicar una actualización, así que lo hice. Ahora estoy en 68 y todos mis guiones están bien.

Los scripts se almacenan en IndexedDB. No hay una respuesta simple a esto, hay identificaciones aleatorias involucradas (más allá de nuestro control).

OK, entonces parece que no es un problema general.

Lo único que cambié después de la actualización fue actualizar la configuración> seguridad> personalizado> rastreadores de identificación de bloques (no sé la traducción exacta al inglés). Pero volver a cambiarlo no recuperó mis scripts:/

Buscará la ubicación de IndexedDB (conozco el ID de about:support, pero no el directorio) y algunas de mis copias de seguridad.

"perfil > almacenamiento > predeterminado > about+newtab^firstPartyDomain=about.MYGMID > idb > 3312185054sbndi_pspte.sqlite" --> el archivo no ha cambiado desde hace un mes según la marca de tiempo del archivo

"perfil > almacenamiento > permanente > moz-safe-about+home^firstPartyDomain=about.MYGMID > idb > 818200132aebmoouht.sqlite" --> el archivo no ha cambiado desde hace un mes según la marca de tiempo del archivo

Pero tampoco ninguno de esos archivos contiene mis scripts más.

Esto me acaba de pasar a mi también. Firefox 68.0 en macOS. Problema confirmado con diferentes perfiles.

Esto me acaba de pasar a mi también. Firefox 68.0 en macOS. Problema confirmado con diferentes perfiles.

Descubrí que simplemente copiar un perfil antiguo a FF 68 no restaurará sus scripts. Tuve que descargar FF 67 Portable, copiar mi copia de seguridad de perfil anterior allí y exportar los scripts de FF 67 (no intenté volver a importar a FF68). Entonces parece que FF almacena los scripts en algún lugar dentro de la carpeta del perfil, pero FF68 no puede leer esto o no migra correctamente desde FF67.

Actualización: GM guarda los scripts dentro de "profile\storage\default\moz-extension+++MYGMID\idb\XXX.sqlite". Esta es una ID diferente a la que se muestra en about:support. Parece que todos los scripts todavía están allí, ahora sería interesante por qué FF68 ya no puede leerlos para algunas configuraciones;)

Actualización 2: También puedo reproducirme regularmente con mi perfil de respaldo. Desafortunadamente, no puedo compartir este perfil y no pude reproducirlo con una instalación portátil limpia de FF.

@daleeidd ¿Tiene una descripción más detallada o un perfil "vacío" que pueda compartir para que también sea reproducible para arantius?

Creo que deberíamos investigar. Este es el peor de los casos y no debería ocurrir, aunque sea solo para el 1% de los usuarios.

Parece que la identificación del complemento puede haber cambiado entre actualizaciones.

Comprobado que dentro de: depuración : muestra aún el mismo ID de complemento y UUID interno.

Bien, lo encontré.

El problema es la configuración "privacy.firstparty.isolate;true". Por lo general, GM almacena sus configuraciones en estas 2 carpetas:

  • perfil\almacenamiento\predeterminado\moz-extension+++MYGMID
  • perfil\almacenamiento\predeterminado\moz-extension+++MYGMID^userContextId=MYCONTID

Si el aislamiento de primera parte está habilitado y actualiza a FF 68, se crea una carpeta de tercera:

  • perfil\almacenamiento\predeterminado\moz-extension+++MYGMID^firstPartyDomain=MYGMID

Si desactiva el aislamiento de primera parte ("privacy.firstparty.isolate;false") y luego elimina la carpeta creada por terceros mencionada anteriormente, sus secuencias de comandos volverán a ser visibles.

@kekkc Gracias. Simplemente siguió sus instrucciones para recuperar los scripts para exportar. ¡Buen trabajo!

Grandes diagnósticos. Sin embargo, no estoy seguro de qué hacer con esto desde dentro de Greasemonkey.

De alguna manera tenía la esperanza de que hubiera una solución posible en GM. Todas mis otras extensiones que usan el mismo almacenamiento (p. ej., https://addons.mozilla.org/de/firefox/addon/textnotes/?src=search) no hicieron que FF creara una nueva carpeta durante la actualización, incluso con la primera Aislamiento de fiesta activado.

Esa extensión no usa IndexedDB.

Puedo confirmar que deshabilitar el aislamiento de origen (lo tenía habilitado a través de este complemento , un simple cambio) y reiniciar FF hizo que mis scripts aparecieran nuevamente. No necesité eliminar ninguna carpeta.

Una vez que exporté las secuencias de comandos de manera segura, volví a habilitar el aislamiento de origen y luego volví a importar las secuencias de comandos resolvió el problema, por lo que FPI no parece romper Greasemonkey de manera persistente o permanente. Tal vez valga la pena señalar que (si no recuerdo mal) esto es lo mismo que sucede con todos los datos de navegación (sin extensión) cuando un usuario habilita inicialmente el aislamiento de origen, por lo que es posible que FF68 haya extendido el comportamiento normal de FPI para aplicar a las extensiones también.

Al hurgar un poco, este error menciona la rotura del complemento con FPI como un aparte: no se pudo encontrar otro error confirmado específicamente para este problema de un vistazo.

Gracias, mencioné el error en bugzilla. Tal vez https://bugzilla.mozilla.org/show_bug.cgi?id=1564593 también debería hacer referencia al FPI (FPI se introdujo como parte de TorBrowser Uplift y fue tan importante para Mozilla como la API de UserScript)

Solo una nota de que nosotros (Mozilla) hemos visto esto. Creo que el error más relevante de Bugzilla es el 1554805.

Desafortunadamente, no tenemos a nadie trabajando activamente en esto en este momento, pero tal vez podamos encontrar algunos ciclos para solucionarlo. Desafortunadamente, es probable que la 'corrección' elimine todo nuevamente; pero al menos habilitar/deshabilitar FPI no cambiará el almacenamiento para la extensión...

No es el lugar para quejarme ya que no tengo GM instalado, pero me pasó lo mismo y nada funciona. Tenía FPI instalado, pero deshabilitado. Al actualizar a FF 68, tanto onetab como stylus perdieron datos.

Continué con esto aquí: https://github.com/openstyles/stylus/issues/747

@kekkc, ¿qué solución portátil FF 67 usaste? Probé las aplicaciones portátiles FF y FF ESR, ambas dicen que no debo usar un perfil FF antiguo... y no tengo idea de cómo anular ese cuadro de diálogo. De alguna manera, la actualización a FF 68 hizo algo en mi perfil y FF 66.0.4 y anteriores siguen diciendo que use un nuevo perfil.

@b16r05 estaba de vacaciones, probablemente ya te diste cuenta. Acabo de copiar la carpeta de perfil y no inicié FF 67 Portable antes. Recuerdo el mismo mensaje de error, pero creo que este método funcionó al final.

NO puedo confirmar este comportamiento. Lo tengo (FF68) deshabilitado.
No puedo ver mis scripts, ni puedo crear nuevos o instalar nada.
Simplemente no hace nada.

Cuando instalo nuevos scripts, dice 'indefinido' en el cuadro de diálogo final.
Cuando hago clic en "agregar nuevo script", aparece el siguiente mensaje de error en la consola:

IndexedDB UnknownErr: ActorsParent.cpp:581
Error opening user-scripts DB! <unavailable> user-script-registry.js:57:15
undefined
Error: undefined

Intenté desinstalarlo, borrando las carpetas storage\default\moz* , renombré la carpeta gm_scripts , volviéndolo a instalar: Todavía no funciona.

Parece que esto se solucionó en FF71 https://bugzilla.mozilla.org/show_bug.cgi?id=1554805

Al actualizar de FF70 a FF71, perdí todos mis scripts y estilos de lápiz óptico por segunda vez en 2019. Privacy.firstparty.isolate está habilitado. Pero esta vez hice una copia de seguridad de mi perfil antes de actualizar.

Podría degradar mi instalación temporalmente a 70, desempaquetar mi copia de seguridad y exportar los scripts y estilos, que rehice desde la otra pérdida de datos anterior.

Esto me enseña, a guardar una copia externa de todo mi trabajo. Luego puedo verificarlos en algún control de versión y trabajar en ellos en un editor adecuado. ¿Me puede recomendar alguna forma sencilla de implementar automáticamente mis archivos modificados externamente en GM+Firefox que no sea copiar y pegar?

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