admin管理员组

文章数量:1567029

Chrome浏览器崩溃后,通过桌面图标添加“-no-sandbox”可以解决浏览器的日常使用,但是在自动化测试打开浏览器时仍会页面崩溃

问题描述:
Chrome浏览器所有页面崩溃,包括设置页面,“喔唷,崩溃啦!”
显示错误码:STATUS_INVALID_IMAGE_HASH
Chrome所有插件报错,右下角一串弹框

问题所在:
Google在79版本(2019年12月20号左右)的更新中又重新启用了Renderer Code Integrity Protection(渲染器代码完整性保护),会阻止签名不是谷歌和微软的模块加载。该功能已经在之前一个版本中导致同样的问题,并由Google自己禁用了。

解决方法:
禁用谷歌chrome的这项功能

Win+R打开运行对话框,输入regedit打开注册表编辑器

导航到HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Google \ Chrome
(如果在HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ 下没有Google,按那个目录,新建Google\Chrome,一样可以对浏览器进行管理。)

在右边窗口中,右键单击新建>DWORD(32位)值以创建新密钥

双击它,然后将值名称改为RendererCodeIntegrityEnabled,并将值数据输入为0
重新启动chrome

相关小技巧
这是在找chrome的冲突dll的时候学到的技巧,平时没什么用,至少现在是,但以后谁说得准呢

chrome临时禁用sandbox启动

在启动时用命令覆盖
Win+R打开运行窗口
输入chrome.exe --no-sandbox,回车

chrome禁用某个功能

在启动时用命令覆盖
Win+R打开运行窗口
以禁用RendererCodeIntegrity为例,输入chrome.exe --disable-features = RendererCodeIntegrity,回车

显示chrome客户端加载的模块列表

在导航栏输入chrome://conflicts/#R

检查事件日志

Windows事件日志将包含有关拒绝加载模块的信息,排查上面这个chrome崩溃错误时的方法:
右键开始图标,打开事件查看器
展开应用程序和服务日志>Microsoft>Windows>CodeIntegrity>可操作
查找ID为3033的事件
详细信息将指示导致崩溃的dll的名称和位置

本文标签: 浏览器解决方案原因测试chrome