从今天开始,Emacs里面可以运行任何你想要的程序 (Linux & Windows & Mac & BSD)

这个问题wiki里有写方法,简而言之是使用x86的版本转译,我之前装上了

这个之前也有尝试过,报下面的错误。

知道怎么处理不啊?

这个我也遇到过,我记得好像是因为我用的虚拟环境(conda)里的python,我deactive了用系统的python就好了。我之前装是两个月前了,记不太清了,你先试试看,我们讨论

我装好后用了一段时间,不清楚是m1还是mac的缘故,有时会出现浏览器的位置和emacs的窗口错位情况,经常需要手动调整。

Cookie登录一直没问题,但是不知道Github的Wiki页面编辑每次都返回HTTP 422错误。

今天研究了一下, github.com在登录时返回cookie的域名是 ‘.github.com’ 而不是 ‘github.com’, 这样会导致EAF把真实的cookie保存在 cookie/.github.com 文件中,而下次访问github.com的时候却是从 cookie/github.com 文件中加载错误的 cookie 信息导致页面出错。

这个补丁移除 cookie.domain 前的 “.” 字符, 统一都用域名名称去保存cookie信息就不会再出错了。

建议所有EAF用户都更新一下。

为了彻底解决这个问题,需要大家删除 ~/.emacs.d/eaf/browser/cookie 这个目录,彻底清空那些隐藏文件的影响。

1 个赞

使用最新的 master 分支,gentoo 下需要安装 dev-python/gssapi,否则会报下面的错误

Traceback (most recent call last):
  File "/home/xxx/.emacs.d/site-lisp/emacs-application-framework/eaf.py", line 25, in <module>
    from PyQt6 import QtWebEngineWidgets as NeverUsed # noqa
ImportError: libgssapi_krb5.so.2: cannot open shared object file: No such file or directory

Process *eaf* exited abnormally with code 1

已经修复了,谢谢反馈。

遇到一个小问题, 我打开 https://www.oschina.net/ 的时候 cookie 文件名为 oschina.net 。 但打开登录页面后又会创建一个名字为 www.oschina.net 的 cookie 文件,然后网站就用的 www 开头的 cookie 文件, 可是写入信息又是写到名字为 oschina.net 的文件。然后关闭再打开网页就会丢失登录状态,更新到最新的 qt5-legacy 还是这样。不知道为什么。

看来我对 prefix dot cookie 的理解还是不够的,等我研究一下,看看怎么彻底把这块逻辑弄对。

这个补丁应该修复了。

看了一下RFC文档定义, 服务器返回Cookie信息的 domain 是以点 “.” 开头的域名主要是为了兼容老版本的浏览器(比如IE),现代浏览器主要存储domain不以点"."开头的Cookie,但是我检查 Chrome 浏览器,leading domain, normal cookie, session cookie 都存储了。

新版的Cookie逻辑改进如下:

  1. 使用网站URL的hostname来存储,而不是 cookie domain, 这样就不会产生 oschina.net 这种域名冲突
  2. 使用子目录的形式来保存 Cookie, 老版本用 name/value 的JSON格式存储,在github这种校验比较严格的网站就会遇到HTTP 422错误
  3. 没有区分 leading dot domain 和 normal domain 这两种cookie, 都存下来了,并没有按照RFC定义去忽略 leading dot domain 的Cookie

大家更新后, 需要大家删除 ~/.emacs.d/eaf/browser/cookie 这个目录后再使用EAF浏览器。

3 个赞

原理可以看我的博客 https://manateelazycat.github.io/qt/linux/2022/03/30/webengine-cookie.html

@manateelazycat 我升级到最新版之后pdf-viewer报段错误。

Process eaf 段错误 (core dumped)

没有其他错误了。eaf-open-pdf-from-history可以正常打开。其他app都正常运行。

mupdf最近一直在破坏API兼容性,我一会去看看。

1 个赞

@Luhuaei 大佬帮忙看一下哈,我定位是 eaf-pdf-viewer/eaf_pdf_page.py at 4f889e4946f6d1deb471dfa3b74368878ade9f96 · emacs-eaf/eaf-pdf-viewer · GitHub 这一行 fromImage 有问题,还没有详细研究。

我测试了, PDF代码没问题,现在尴尬的问题是:

  1. PyQt6 6.2.0 修复了浏览器键入 return/backspace 崩溃的问题,但是PDF-Viewer绘制的时候会crash
  2. Arch系统的PyQt6包PDF Viewer没问题,但是浏览器会崩溃

浏览器按Return/Backspace的时候崩溃不是PyQt6版本的问题,是EAF事件伪造的错误,今天这个补丁彻底修复了这个问题, 所有平台都可以用任意PyQt6版本都不再会有崩溃的问题(这个补丁我也同步到 qt5 分支),同时EAF已经移除对PyQt6的版本限制,我测试了最新版 6.3.0 也没有问题。

@yqu212 升级到最新PyQt6 6.3.0 以后, PDF-Viewer打不开的问题也一并修复了。

4 个赞

我也测试了下 Return/Backspace 没有问题了,按 ESC 键的时候会

Process *eaf* trace/breakpoint trap (core dumped)

最新版已经修复了。

这次调试原理我记录了一下 从浏览器崩溃窥探Qt事件伪造原理 , 感兴趣的同学可以看一下。

3 个赞

@manateelazycat Emacs 29最新版kill-new的api变了,之前返回一个字符串,现在返回一串数字。目前暂时只看到eaf-get-path-or-url和eaf-edit-buffer-confirm功能被破坏了。

我还没用emacs29呢,大佬发个兼容补丁?