1. 程式人生 > 其它 >多版本 Chrome 瀏覽器並存-Windows系統

多版本 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@{#1320}
    作業系統 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 可執行檔案,我們還需要一點操作,有以下選擇:
1.使用快捷方式,在任意可以建立快捷方式的位置(你可以右鍵拖動 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 這個資料夾即可。
我想現在要是不出意外,你可以愉快地開發了,但如出現問題,請往以下內容檢視。
2.另一種方式使用批處理,但實際這種方法與建立快捷方式無異,你可以完全忽視。在任一位置新建一個 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配置,如果你有其它需求,我想可以修改相關配置來達到需求。
另外,如有不當表達處,希望指正!

參閱: