Greasemonkey: 设置 privacy.firstparty.isolate 会破坏脚本存储

创建于 2019-07-09  ·  23评论  ·  资料来源: greasemonkey/greasemonkey

大家好,

如果有人在升级到 FF 68 之前阅读它:创建脚本的备份。

自动更新后,我所有的脚本都不见了。 例外情况仍然包括在内(因此 GM 似乎提取了我过去的一些设置),但所有脚本都丢失了。

通用汽车目前将数据存储在哪里? 在文件夹 browser-extension-data 中,GM 文件未更改。 仍在调查,但这似乎很奇怪。

最有用的评论

好的,我找到了。

问题是设置“privacy.firstparty.isolate;true”。 通常 GM 将其设置存储在以下 2 个文件夹中:

  • profile\storage\default\moz-extension+++MYGMID
  • profile\storage\default\moz-extension+++MYGMID^userContextId=MYCONTID

如果启用了第一方隔离并且您升级到 FF 68,则会创建第三个文件夹:

  • profile\storage\default\moz-extension+++MYGMID^firstPartyDomain=MYGMID

如果您禁用第一方隔离(“privacy.firstparty.isolate;false”),然后删除上面提到的第三个创建的文件夹,您的脚本将再次可见。

所有23条评论

所以我看到了这个并现在检查了我的版本:67。但它有一个更新要应用,所以我做到了。 现在我已经 68 岁了,我所有的剧本都已经到位了。

脚本存储在 IndexedDB 中。 对此没有简单的答案,其中涉及随机 ID(超出我们的控制范围)。

好的,所以这似乎不是一般问题。

升级后我唯一改变的是更新设置>安全>自定义>块识别跟踪器(不知道确切的英文翻译)。 但是改回来并没有带回我的脚本:/

将搜索 IndexedDB 位置(我知道来自 about:support 的 ID,但不知道目录)和我的一些备份。

"profile > storage > default > about+newtab^firstPartyDomain=about.MYGMID > idb > 3312185054sbndi_pspte.sqlite" --> 根据文件时间戳,文件自一个月以来未更改

“配置文件 > 存储 > 永久 > moz-safe-about+home^firstPartyDomain=about.MYGMID > idb > 818200132aebmoouht.sqlite” --> 根据文件时间戳,文件自一个月以来未更改

但这些文件也不再包含我的脚本。

这也发生在我身上。 macOS 上的 Firefox 68.0。 已确认不同配置文件的问题。

这也发生在我身上。 macOS 上的 Firefox 68.0。 已确认不同配置文件的问题。

发现简单地将旧配置文件复制到 FF 68 不会恢复您的脚本。 我必须下载 FF 67 Portable,在那里复制我的旧配置文件备份并从 FF 67 中导出脚本(没有尝试重新导入到 FF68)。 因此,FF 似乎将脚本存储在配置文件文件夹中的某个位置,但 FF68 无法读取此内容或无法从 FF67 正确迁移。

更新:GM 将脚本保存在“profile\storage\default\moz-extension+++MYGMID\idb\XXX.sqlite”中。 这是与 about:support 中显示的不同的 ID。 似乎所有脚本都还在,现在有趣的是,为什么 FF68 无法再读取它们的某些配置;)

更新 2:我也可以使用我的备份配置文件定期复制。 不幸的是,我无法共享此配置文件,并且无法使用干净的 FF 便携式安装进行复制。

@daleeidd您是否有更详细的描述或“空”配置文件可以共享以使此操作也可用于 arantius?

我认为我们应该调查一下。 这是最坏的情况,不应该发生,即使它只针对 1% 的用户。

这听起来像是插件 id 可能在更新之间发生了变化。

about:debugging中检查:显示仍然相同的插件 ID 和内部 UUID。

好的,我找到了。

问题是设置“privacy.firstparty.isolate;true”。 通常 GM 将其设置存储在以下 2 个文件夹中:

  • profile\storage\default\moz-extension+++MYGMID
  • profile\storage\default\moz-extension+++MYGMID^userContextId=MYCONTID

如果启用了第一方隔离并且您升级到 FF 68,则会创建第三个文件夹:

  • profile\storage\default\moz-extension+++MYGMID^firstPartyDomain=MYGMID

如果您禁用第一方隔离(“privacy.firstparty.isolate;false”),然后删除上面提到的第三个创建的文件夹,您的脚本将再次可见。

@kekkc谢谢。 只需按照您的说明恢复要导出的脚本即可。 好工作!

伟大的诊断。 不过,我不确定从 Greasemonkey 内部如何处理这个问题?

不知何故,希望通用汽车有一种解决方法。 我所有其他使用相同存储的扩展(例如 https://addons.mozilla.org/de/firefox/addon/textnotes/?src=search )并没有导致FF在升级期间创建一个新文件夹,即使是第一个派对隔离开启。

该扩展不使用 IndexedDB。

可以确认禁用第一方隔离(我通过这个插件启用了它,一个简单的切换)并重新启动 FF 导致我的脚本再次出现。 我不需要删除任何文件夹。

一旦我安全地导出脚本,重新启用第一方隔离,然后重新导入脚本即可解决问题,因此 FPI 似乎不会以持久或永久的方式破坏 Greasemonkey。 可能值得注意的是(如果我没记错的话)当用户最初启用第一方隔离时,所有(非扩展)浏览数据都会发生同样的事情,因此 FF68 可能刚刚扩展了正常的 FPI 行为以应用扩展名也是如此。

稍微摸索了一下,这个 bug提到了 FPI 的附加损坏——一目了然地找不到另一个专门针对这个问题的已确认 bug。

Thx,提到了 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 Portable 解决方案? 我尝试过便携式应用程序 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文件夹,重新安装它:它仍然不起作用。

从 FF70 升级到 FF71 时,我在 2019 年第二次丢失了所有脚本和手写笔样式。启用了 privacy.firstparty.isolate。 但是这次我在升级之前备份了我的个人资料。

我可以暂时将我的安装降级到 70,解压缩我的备份并导出脚本和样式,因为之前其他数据丢失,我重新做了。

这教会了我,保留我所有工作的外部副本。 然后我可以将它们签入一些版本控制并在适当的编辑器中处理它们。 你能推荐一些简单的方法来自动将我外部更改的文件部署到 GM+Firefox 中,而不是复制粘贴吗?

此页面是否有帮助?
0 / 5 - 0 等级