Devtools 无法工作并给出奇怪的错误
我正在尝试使用 Devtools,但控制台打印出以下错误:
DevTools debugger is disabled because it is attached to a process that hosts multiple top-level frames, where DevTools debugger doesn't work properly. Please relaunch the browser with --disable-features=ProcessPerSiteUpToMainFrameThreshold to enable debugger.
我使用的是 Chrome Beta 115.0.5790.56,这种情况最近才开始发生。这是 Chrome 中的错误吗?
根据 https://niek.github.io/chrome-features/ :
ProcessPerSiteUpToMainFrameThreshold
Reuses RenderProcessHost up to a certain threshold. This mode ignores the soft process limit and behaves just like a process-per-site policy for all sites, with an additional restriction that a process may only be reused while the number of main frames in that process stays below a threshold.
目前,该功能在正常的 Chrome 版本中默认处于禁用状态,但在 Chrome Beta 分支中似乎已默认设置为启用。
我使用的是 Chrome beta 版本 116.0.5845.42,该版本在 chrome://flags/#enable-process-per-site-up-to-main-frame-threshold
中具有此功能的切换开关。
那里的描述是
Enable ProcessPerSite up to main frame threshold Proactively reuses same-site renderer processes to host multiple main frames, up to a certain threshold. – Mac, Windows, Linux, ChromeOS, Android, Fuchsia, Lacros
禁用该功能并重新启动浏览器将消除该错误消息。
这是一个不需要下载 Beta 分支的解决方案。
我每天都在使用 Chrome 版本 115.0.5790.110(最新)进行调试,昨天或前天第一次开始看到这个问题。
此版本不支持通过 chrome://flags 更改设置。
而是通过在开始菜单中键入“cmd”打开 Windows 命令行并运行:
start chrome --disable-features=ProcessPerSiteUpToMainFrameThreshold
请注意,即使没有像这样运行 chrome,我注意到重新启动浏览器几次后,最终我能够正常调试。
我在 MacOS 上运行版本 115.0.5790.114(官方版本)(x86_64),并在控制台中看到相同的消息。
如果我在以下位置查找标志:
chrome://flags/#enable-process-per-site-up-to-main-frame-threshold
它不在那里。
我可以通过从终端启动 Chrome 来消除错误:
$ /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --disable-features=ProcessPerSiteUpToMainFrameThreshold
希望谷歌能解决这个问题。
ProcessPerSiteUpToMainFrameThreshold 也出现同样的问题,从 7 月中旬开始。我有一个带有多个嵌入式 iFrame 的 JavaScript 应用程序。调试器抱怨 iframe 太多,并且我的源 JavaScript 文件未加载到调试器中。全部适用于 Firefox 和 Chrome
现已将 chrome 更新至 115.0.5790.171
错误消失了,但我的调试器中仍然没有源 JavaScript。其他网站可以工作,只是我的应用程序不行。
我试过:
启动 chrome --disable-features=ProcessPerSiteUpToMainFrameThreshold
调试器中仍然没有源代码。
在 chrome://flags 中看不到标志
[1
我在 Ubuntu 20.04 上运行版本 115.0.5790.114(官方版本)(x86_64),我没有在 chrome://flags 上找到标志,而是尝试通过命令行运行 chrome:
google-chrome --disable-features=ProcessPerSiteUpToMainFrameThreshold
效果很好,几天后 chrome 就开始正常工作了