blackcrystal
2023-06-12 21:45:48 +08:00
确实有这个问题,复现流程:
1 、使用 Microsoft Edge 安装 IDM 的浏览器扩展,然后将 IDMan.exe 挂起;
2 、在 Edge 的地址栏中打开一个可正常下载的直链,在 IDM 无法接管下载过程的情况下,Microsoft Edge 自带的下载程序也无法开始下载;此时在 Edge 中新建标签页,经尝试后任何网站包括内网服务均一直在加载,无法打开。
3 、将 IDMan.exe 恢复,此时 IDM 立即弹窗接管下载,Edge 上的网页也立即正常加载并打开。
=======================
原因:IDM 扩展程序的问题。
已知 IDM 在安装后会在 Windows 上创建一个名为"IDMWFP"( Internet Download Manager WFP Driver )的服务,这个服务由 C:\Windows\System32\drivers\idmwfp.sys 这个内核模块(或者说“驱动”)提供。启用 IDMWFP 服务后,System(ntoskrnl.exe)会打开一个监听 127.0.0.1:1001 的 HTTP 服务器
IDM 扩展程序就利用这个 HTTP 服务器发起 WebSocket 连接 或者 用 runtime.connectNative()对接 IDM 程序来新建下载任务。
然而 IDM 扩展程序在这里并没有用异步来处理,但是这个扩展程序又要处理整个浏览器的请求。
也就是说,IDM 卡住时这个 WebSocket 服务器会卡住,其扩展程序得等 WebSocket 服务器响应,然后浏览器又得等 IDM 扩展程序处理完新建下载的任务再浏览器里的其它请求。在此期间,浏览器看起来就像断网了一样。
你可以在浏览器设置的已安装扩展里找到"IDM Integration Module",点击"检查视图 background.html",然后用调试器把 background.js 断下来,你就会神奇地发现浏览器“断网了”。