Greasemonkey: настройка privacy.firstparty.isolate нарушает хранение скриптов

Созданный на 9 июл. 2019  ·  23Комментарии  ·  Источник: greasemonkey/greasemonkey

Всем привет,

если кто прочитает перед обновлением до FF 68: сделайте бэкап своих скриптов.

После автоматического обновления все мои скрипты пропали. Исключения все еще включены (поэтому GM, похоже, вытащил некоторые из моих прошлых настроек), но все сценарии отсутствуют.

Где GM хранит данные в настоящее время? В папке browser-extension-data файл GM не изменился. Все еще исследую, но это кажется совершенно странным.

Самый полезный комментарий

Хорошо, я нашел это.

Проблема заключается в настройке «privacy.firstparty.isolate; true». Обычно GM хранит свои настройки в этих двух папках:

  • профиль\хранилище\по умолчанию\moz-extension+++MYGMID
  • профиль\хранилище\по умолчанию\moz-extension+++MYGMID^userContextId=MYCONTID

Если включена изоляция 1-й стороны и вы выполняете обновление до FF 68, создается папка 3-го лица:

  • профиль\хранилище\по умолчанию\moz-extension+++MYGMID^firstPartyDomain=MYGMID

Если вы отключите изоляцию от 1-й стороны ("privacy.firstparty.isolate;false"), а затем удалите созданную 3-ю папку, упомянутую выше, ваши скрипты снова станут видимыми.

Все 23 Комментарий

Итак, я увидел это и проверил свою версию сейчас: 67. Но у нее было обновление, которое нужно было применить, что я и сделал. Сейчас у меня 68 и все мои скрипты на месте просто отлично.

Скрипты хранятся в IndexedDB. На этот вопрос нет простого ответа, здесь задействованы случайные идентификаторы (находящиеся вне нашего контроля).

Хорошо, похоже, это не общая проблема.

Единственное, что я изменил после обновления, это обновить настройки> безопасность> пользовательские> блокировать идентификационные трекеры (не знаю точного английского перевода). Но изменение его обратно не вернуло мои скрипты :/

Будет искать местоположение IndexedDB (я знаю идентификатор из about:support, но не каталог) и некоторые из моих резервных копий.

«профиль > хранилище > по умолчанию > about+newtab^firstPartyDomain=about.MYGMID > idb > 3312185054sbndi_pspte.sqlite» --> файл не менялся с месяца в соответствии с меткой времени файла

«профиль > хранилище > постоянный > moz-safe-about+home^firstPartyDomain=about.MYGMID > idb > 818200132aebmoouht.sqlite» --> файл не менялся с месяца в соответствии с меткой времени файла

Но также ни один из этих файлов больше не содержит моих скриптов.

Это случилось и со мной тоже. Firefox 68.0 на macOS. Подтвержденная проблема с разными профилями.

Это случилось и со мной тоже. Firefox 68.0 на macOS. Подтвержденная проблема с разными профилями.

Выяснил, что простое копирование старого профиля на ФФ 68 не восстановит ваши скрипты. Мне пришлось скачать FF 67 Portable, скопировать туда мою старую резервную копию профиля и экспортировать скрипты из FF 67 (не пробовал повторно импортировать в FF68). Таким образом, кажется, что FF хранит скрипты где-то внутри папки профиля, но FF68 не может их прочитать или неправильно мигрирует из FF67.

Обновление: GM сохраняет скрипты в "profile\storage\default\moz-extension+++MYGMID\idb\XXX.sqlite". Это другой идентификатор, чем указанный в about:support. Кажется, все скрипты все еще там, теперь просто было бы интересно, почему FF68 больше не может их читать для некоторых конфигураций ;)

Обновление 2: я также могу регулярно воспроизводиться с моим резервным профилем. К сожалению, я не могу поделиться этим профилем, и мне не удалось воспроизвести его с помощью чистой портативной установки FF.

@daleeidd У вас есть более подробное описание или «пустой» профиль, которым вы можете поделиться, чтобы сделать это воспроизводимым и для арантиуса?

Я думаю, мы должны провести расследование. Это наихудший случай, и этого не должно происходить, даже если это касается только 1% пользователей.

Похоже, что идентификатор надстройки мог измениться между обновлениями.

Проверено, что в about:debugging : отображается тот же идентификатор аддона и внутренний UUID.

Хорошо, я нашел это.

Проблема заключается в настройке «privacy.firstparty.isolate; true». Обычно GM хранит свои настройки в этих двух папках:

  • профиль\хранилище\по умолчанию\moz-extension+++MYGMID
  • профиль\хранилище\по умолчанию\moz-extension+++MYGMID^userContextId=MYCONTID

Если включена изоляция 1-й стороны и вы выполняете обновление до FF 68, создается папка 3-го лица:

  • профиль\хранилище\по умолчанию\moz-extension+++MYGMID^firstPartyDomain=MYGMID

Если вы отключите изоляцию от 1-й стороны ("privacy.firstparty.isolate;false"), а затем удалите созданную 3-ю папку, упомянутую выше, ваши скрипты снова станут видимыми.

@kekkc Спасибо. Просто следовал вашим инструкциям, чтобы восстановить скрипты для экспорта. Молодец!

Отличная диагностика. Однако я не уверен, что с этим делать изнутри Greasemonkey?

Почему-то была надежда, что в GM есть обходной путь. Все мои другие расширения, использующие то же хранилище (например, https://addons.mozilla.org/de/firefox/addon/textnotes/?src=search), не заставляли FF создавать новую папку во время обновления, даже с 1-м включена изоляция вечеринки.

Это расширение не использует IndexedDB.

Могу подтвердить, что отключение изоляции от сторонних разработчиков (я включил ее с помощью этого надстройки , простой переключатель) и перезапуск FF заставили мои сценарии снова появиться. Мне не нужно было удалять папки.

После того, как я безопасно экспортировал сценарии, повторно включив изоляцию первой стороны, а затем повторно импортировав сценарии, проблема была решена, поэтому FPI, похоже, не нарушает работу Greasemonkey на постоянной или постоянной основе. Возможно, стоит отметить, что (если я правильно помню) это то же самое, что происходит со всеми (не расширенными) данными просмотра, когда пользователь изначально включает стороннюю изоляцию, поэтому возможно, что FF68 только что расширил нормальное поведение FPI для применения к расширениям также.

Немного поковырявшись, эта ошибка упоминает поломку надстройки с FPI в качестве отступления - не удалось найти другую подтвержденную ошибку специально для этой проблемы с первого взгляда.

Спасибо, упомянул ошибку на bugzilla. Возможно, https://bugzilla.mozilla.org/show_bug.cgi?id=1564593 также должен ссылаться на FPI (FPI был представлен как часть TorBrowser Uplift и был таким же важным для Mozilla, как и UserScript API)

Просто отметим, что мы (Mozilla) видели это. Я думаю, что самая актуальная ошибка Bugzilla 1554805.

К сожалению, в данный момент у нас нет никого, кто бы активно работал над этим, но, возможно, мы сможем найти несколько циклов, чтобы это исправить. К сожалению, «исправление», скорее всего, снова удалит все; но, по крайней мере, включение/отключение FPI не отключит хранилище для расширения...

Мне не место ныть, так как у меня не установлен GM, но со мной случилось то же самое, и ничего не работает. У меня был установлен FPI, но отключен. При обновлении до FF 68 и onetab, и стилус потеряли данные.

Я продолжал об этом здесь: https://github.com/openstyles/stylus/issues/747

@kekkc какое портативное решение FF 67 вы использовали? Я пробовал портативные приложения FF и FF ESR, оба говорят, что я не должен использовать старый профиль FF... и я понятия не имею, как переопределить это диалоговое окно. Каким-то образом обновление до FF 68 что-то сделало с моим профилем, а FF 66.0.4 и старше продолжают говорить об использовании нового профиля.

@b16r05 был в отпуске, вы, наверное, уже догадались. Я просто скопировал папку профиля и раньше не запускал FF 67 Portable. Я помню то же сообщение об ошибке, но я думаю, что этот метод сработал в конце.

Я НЕ могу подтвердить это поведение. У меня он (FF68) отключен.
Я не могу ни увидеть свои скрипты, ни создать новые, ни установить что-либо.
Он просто ничего не делает.

Когда я устанавливаю новые скрипты, в последнем диалоговом окне говорится «не определено».
Когда я нажимаю «добавить новый скрипт», в консоли появляются следующие сообщения об ошибках:

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

Я попытался удалить его, удалив папки storage\default\moz* , переименовав папку gm_scripts , переустановив ее: все равно не работает.

Кажется, это было исправлено в FF71 https://bugzilla.mozilla.org/show_bug.cgi?id=1554805 .

При обновлении с FF70 до FF71 я потерял все свои скрипты и стилус-стили во второй раз в 2019 году. Privacy.firstparty.isolate включен. Но на этот раз я сделал резервную копию своего профиля перед обновлением.

Я мог бы временно понизить свою установку до 70, распаковать свою резервную копию и экспортировать сценарии и стили, которые я переделал после другой потери данных ранее.

Это учит меня хранить внешнюю копию всей моей работы. Затем я могу проверить их в системе контроля версий и работать с ними в соответствующем редакторе. Можете ли вы порекомендовать какой-нибудь простой способ автоматического развертывания моих внешне измененных файлов в GM+Firefox, кроме копирования и вставки?

Была ли эта страница полезной?
0 / 5 - 0 рейтинги