Loading

多版本 Chrome 浏览器并存-Windows系统

事由

一个月前的某天,我打开电脑跑公司的CMS项目,发现本地调试时一直重定向SSO登录页,这导致我不能进行本地调试;因为我司使用sso统一登录的Cookies信息验证,chrome://version 查看了下版本号为94,查阅了最新的 Chrome updates 时,发现了以下信息:

Latest update:

Mar 18, 2021: The flags #same-site-by-default-cookies and #cookies-without-same-site-must-be-secure have been removed from chrome://flags as of Chrome 91, as the behavior is now enabled by default. 
In Chrome 94, the command-line flag --disable-features=SameSiteByDefaultCookies,CookiesWithoutSameSiteMustBeSecure will be removed.

chrome://flges 移除 SameSite 设置,启动参数 command-line flag 也移除了相关配置,所以我在92版本 Chrome 浏览器上可以正常使用的启动参数及一系列配置都失效。
这将意味着我不能再跨域请求时携带Cookies信息去进行身份验证,而且我浏览了大量文章,并未有能满意的解决方案,大多指向回退版本这一方案;虽然说用 Firefox 浏览器不影响,但我还是更喜欢用 Chrome 浏览器多一点。
那么现在问题来了,我并不想回退版本,还想全新最新的 Chrome 浏览器,那就只能是保留多个版本的 Chrome 浏览器,以下是我查阅文章后调整的文章分享。

系统环境

  • Windows 规格

    版本  Windows 10 专业版
    版本号  1909
    操作系统版本  18363.592
    
  • 已安装 Chrome 浏览器版本

    Google Chrome 94.0.4606.81 (正式版本) (64 位) (cohort: Stable)
    修订版本 5a03c5f1033171d5ee1671d219a59e29cf75e054-refs/branch-heads/4606@
    操作系统 Windows 8 Version 1909 (Build 9200.592)
    JavaScript V8 9.4.146.21
    用户代理 Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36
    命令行 "C:\Program Files\Google\Chrome\Application\chrome.exe" --flag-switches-begin --flag-switches-end

下载 Chrome 浏览器离线包

首先,我们需要的是 Chrome 浏览器的 离线安装安装包,注意是离线安装包,大小约 60-80 MB;也可以看下载的安装包程序的图标分辨,离线安装包图标色彩不及在线安装包鲜艳。
你可以去 Chrome Downloads 这个链接地址去下载,或者你也可自寻安全的链接下载。
请注意检查下载文件的数字签名证书为 Google LLC,其它来源不排除恶意安装包的可能。

解压文件和创建文件夹

  • 新建一个 Chrome 文件夹及在其下新建一个 App 子文件夹用于存放Chrome相关文件,如 D:\Chrome\ 和 D:\Chrome\App
  • 用 7z 打开安装包,就是 .exe 后缀的安装包,可以看到一层 chrome.7z 的一个压缩包,再打开它将其中文件将 Chrome-bin 文件夹整个复制到刚新建的App目录下,现在我们的 Chrome 可执行文件在 D:\Chrome\App\Chrome-bin\ 下

创建快捷方式及设置SameSite相关参数

不用着急打开目录的 chrome.exe 可执行文件,我们还需要一点操作,有以下选择:

  • 使用快捷方式,在任意可以创建快捷方式的位置(你可以右键拖动 chrome.exe 快速新建快捷方式),新建快捷方式指向 D:\Chrome\App\Chrome-bin\chrome.exe , 再右键快捷方式选择属性,在快捷方式TAB栏下目标输入框中追加如下内容

      --user-data-dir="D:\Chrome\92\user-data" --disable-features=RendererCodelntegrity  --disable-features=SameSiteByDefaultCookies,CookiesWithoutSameSiteMustBeSecure
    

    现在,完整的目录输入框内容是:

      D:\Chrome\92\App\Chrome-bin\chrome.exe --user-data-dir="D:\Chrome\92\user-data" --disable-features=RendererCodelntegrity  --disable-features=SameSiteByDefaultCookies,CookiesWithoutSameSiteMustBeSecure
    

    D:\Chrome\92\user-data 目录为这个版本的 Chrome 浏览器用户数据,最好是自己指定一个目录,不要与现有版本的 Chrome 浏览器放置在一起,同时你需要重置,你可以直接删除 D:\Chrome\92\user-data 这个文件夹即可。
    我想现在要是不出意外,你可以愉快地开发了,但如出现问题,请往以下内容查看。

  • 另一种方式使用批处理,但实际这种方法与创建快捷方式无异,你可以完全忽视。在任一位置新建一个 start.bat 批处理文件,文件名自定义,打开编辑添加以下内容:

      start  D:\Chrome\92\App\Chrome-bin\chrome.exe --user-data-dir="D:\Chrome\92\user-data" --disable-features=RendererCodelntegrity  --disable-features=SameSiteByDefaultCookies,CookiesWithoutSameSiteMustBeSecure
    

    我想,你也看到了,这种与上述方法无异,只是换个姿势。你可以换个唯一的名称,如 start-92.bat ,放在系统环境变量 Path 下,这样你可以在命令行输入 start-92 来启动版本92的 Chrome 浏览器了。

出现的问题

但是,但是,如果你遇到了问题,不要慌。

  • 喔唷,崩溃啦! STATUS_INVALID_IMAGE_HASH
    如遇到了 STATUS_INVALID_IMAGE_HASH 错误,表现为不管打开什么网页和设置页都会弹出这个错误。
    这种错误在注册表中 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome 下新建一条名为 RendererCodeIntegrityEnabled 值为 0 的 DWORD 键值对。
    当然简单一点,编辑一个注册表文件导入;新建 STATUS_INVALID_IMAGE_HASH.reg 文件,添加以下内容
      Windows Registry Editor Version 5.00
    
      [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome]
      "RendererCodeIntegrityEnabled"=dword:00000000
    
    保存好,双击导入系统注册表,然后再重启92版本 Chrome 浏览器,我想应该没问题了。
  • 不能检查更新?
    哈哈,我想这不是一个问题吧,你既然选择了回退Chrome版本,或者说你已经拥有了两个版本的 Chrome 浏览器,这种错误无关重要。
  • 还有其它问题?
    抱歉,我想我只遇到了这一个问题,这番设置后,Chrome 浏览器可以正常使用、正常同步账号设置、正常安装扩展;
    如有其它问题,自行Google解决下,可向我反馈,我将解决方法同步补录本文内容。

结语

以上,配置主针对于 Chrome 浏览器的跨域请求携带Cookies、以及SameSite配置,如果你有其它需求,我想可以修改相关配置来达到需求。
这是本文用到的所有文件,阿里云盘分享
另外,如有不当表达处,希望指正!

参阅:

posted @ 2021-10-14 15:14  notfound945  阅读(1392)  评论(0编辑  收藏  举报