![防止 Firefox 窃取 FirefoxESR 事件?](https://linux22.com/image/1629562/%E9%98%B2%E6%AD%A2%20Firefox%20%E7%AA%83%E5%8F%96%20FirefoxESR%20%E4%BA%8B%E4%BB%B6%EF%BC%9F.png)
tl;dr:如何同时运行 Firefox(目前为 79)和 FirefoxESR(68),并将 FirefoxESR 设置为默认的操作系统浏览器,其中全部点击外部 URL 在哪里打开?
长期以来,在工作电脑上,我使用 Firefox 进行工作,并使用另一个浏览器来访问个人链接(以前是 Opera,最近是 Chrome)。
最近我决定使用 FirefoxESR 来处理工作,并使用 Firefox 来处理个人链接。
一切似乎都运行良好。我仍然需要二进制文件。两个图标(由于 ESR 使用旧图标,因此图标不同)。配置文件完全独立。等等。
唯一的问题是 Firefox(最新版)不断从 FirefoxESR 窃取操作系统事件,而我希望 ESR(即我的工作浏览器)成为默认浏览器。
我想将 FirefoxESR 保留为我的默认操作系统浏览器。在 OSX 首选项窗口中,我已将 ESR 设置为最新版本:
如果只打开了一个 Firefox,它将获取所有外部 URL 点击。如果两个都打开(不管哪个最后打开,或者哪个最后获得焦点),外部 URL 点击将在最新的 Firefox(非默认的 Firefox!)上打开一个新选项卡。
已在两个浏览器上禁用“将此浏览器设置为默认浏览器”,并希望操作系统设置能够生效。不行。仍然在错误的 Firefox 上获取链接。
这还有希望吗?
以下是我看到的正在运行的进程。它们很好地显示了不同的配置文件和进程以及原始二进制文件。
$ ps aux | grep Firefox
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
user 12406 0.0 1.1 8871828 382536 ?? S 3:50PM 0:11.91 /Applications/FirefoxESR.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container -childID 71 -isForBrowser -prefsLen 13552 -prefMapSize 185407 -sbStartup -sbAppPath /Applications/FirefoxESR.app -sbLevel 3 -sbAllowAudio -sbAllowWindowServer -parentBuildID 20200720181548 -greomni /Applications/FirefoxESR.app/Contents/Resources/omni.ja -appomni /Applications/FirefoxESR.app/Contents/Resources/browser/omni.ja -appdir /Applications/FirefoxESR.app/Contents/Resources/browser -profile /Users/user/Library/Application Support/Firefox/Profiles/b0s2tzpe.default-esr 1513 gecko-crash-server-pipe.1513 org.mozilla.machname.550427022 tab
user 12400 0.0 0.9 8765320 295044 ?? S 3:50PM 0:23.96 /Applications/FirefoxESR.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container -childID 70 -isForBrowser -prefsLen 13552 -prefMapSize 185407 -sbStartup -sbAppPath /Applications/FirefoxESR.app -sbLevel 3 -sbAllowAudio -sbAllowWindowServer -parentBuildID 20200720181548 -greomni /Applications/FirefoxESR.app/Contents/Resources/omni.ja -appomni /Applications/FirefoxESR.app/Contents/Resources/browser/omni.ja -appdir /Applications/FirefoxESR.app/Contents/Resources/browser -profile /Users/user/Library/Application Support/Firefox/Profiles/b0s2tzpe.default-esr 1513 gecko-crash-server-pipe.1513 org.mozilla.machname.478282958 tab
user 12320 0.0 0.2 8472860 57360 ?? S 3:42PM 0:00.38 /Applications/Firefox.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container -childID 15 -isForBrowser -prefsLen 8089 -prefMapSize 224843 -sbStartup -sbAppPath /Applications/Firefox.app -sbLevel 3 -sbAllowAudio -sbAllowWindowServer -parentBuildID 20200720193547 -appdir /Applications/Firefox.app/Contents/Resources/browser -profile /Users/user/Library/Application Support/Firefox/Profiles/027dcedw.default-release 11340 gecko-crash-server-pipe.11340 org.mozilla.machname.1180584643 tab
user 12309 0.0 0.3 8545064 105792 ?? S 3:41PM 0:01.16 /Applications/Firefox.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container -childID 14 -isForBrowser -prefsLen 8114 -prefMapSize 224843 -sbStartup -sbAppPath /Applications/Firefox.app -sbLevel 3 -sbAllowAudio -sbAllowWindowServer -parentBuildID 20200720193547 -appdir /Applications/Firefox.app/Contents/Resources/browser -profile /Users/user/Library/Application Support/Firefox/Profiles/027dcedw.default-release 11340 gecko-crash-server-pipe.11340 org.mozilla.machname.1651746662 tab
-- 编辑:尝试理解 OSX 启动服务
$ osascript -e 'id of app "Firefox"'
org.mozilla.firefox
$ osascript -e 'id of app "FirefoxESR"'
org.mozilla.firefox
猜测尽管操作系统在默认浏览器对话框中看到两个不同的应用程序,但它仍会将这两个应用程序视为相同的应用程序,因为它们共享相同的 ID。
我假设选择非ESR版本是因为启动服务通过选择列表中的第一个来决定?
答案1
这与 Firefox 无关。操作系统将事件发送到错误的实例。我提出了一个关于 OSX 的问题OSX:控制启动服务将选择两个具有相同 ID 的应用程序中哪一个?