如何以编程方式创建 Chrome 配置文件?

How to create a Chrome profile programmatically?

开发、测试、暂存环境是通过我设置中的不同代理服务器控制的。我想用脚本创建多个 Chrome 配置文件(有时称为 "user" 或 "person")并为每个配置文件连接到不同的代理服务器。最后,我想与同事分享此脚本,以便他们可以访问完全相同的设置。

后者可以通过脚本安装扩展来完成,例如 Falcon Proxy or Proxy Helper 到 Chrome 配置文件。我想知道如何编写脚本来创建不同的配置文件。

配置文件是 ~/.config/google-chrome (Linux, ~/Library/Application Support/Google/Chrome (Mac OS X) 和 %USERPROFILE%\AppData\Local\Google\Chrome\User Data (Windows)。但是如何创建和初始化一个?我在哪里注册新的配置文件?

创建用户

以下示例适用于Windows,但基本过程应该相同。

首先,更改到 Chrome 安装中的 UserData 文件夹:

cd "%APPDATA%\..\Local\Google\Chrome\User Data"

此方法会将当前用户复制为新用户的模板。如果新用户应为空白,则需要删除(CTRL + SHIFT + DEL当前浏览器数据)

现在创建一个新用户:

mkdir NewUser && copy Default NewUser

将您的目录更改为 chrome 安装:

cd "C:\Program Files (x86)\Google\Chrome\Application"

出厂-重置所有用户参数:

chrome.exe --user-data-dir="..\User Data\NewUser" -first-run

其中 --user-data-dir 是之前创建的 NewUser 目录的路径(完整或相对)。

运行 作为新用户

到 运行 chrome 再次使用此配置文件,只需 运行 chrome 而不使用 -first-run 标志。

从这个 documentation,我终于找到了创建 user/person 的方法,而不是单独的配置文件。这种差异在 Mac OS X 中尤为重要,因为可以使用相同的 Chrome 进程同时打开不同的配置文件。

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --args --profile-directory="StagingEnv" --first-run

唯一不幸的是这个新人并没有从配置文件目录中继承名字。相反,它总是被称为 Person X,其中 X 是一个增量数。

我需要去 Local State 文件更改它。

grep -o '"StagingEnv":{[^}]*}' ~/Library/Application\ Support/Google/Chrome/Local\ State

"StagingEnv":{"active_time":1437709453.172762,"avatar_icon":"chrome://theme/IDR_PROFILE_AVATAR_6","background_apps":false,"is_ephemeral":false,"is_omitted_from_profile_list":false,"is_using_default_avatar":true,"is_using_default_name":true,"managed_user_id":"","name":"<b>Person 3</b>","user_name":""}

此文件在 Chrome 退出时被覆盖,因此我需要终止 Chrome,更改文件并再次 运行 Chrome。

我认为创建多个 chrome 配置文件的最简单方法是

  • 在您的计算机上,打开 Chrome。
  • 点击右上角的Profile
  • 点击Manage people
  • 点击Add person
  • 选择一个名字和一个photo/picture。
  • SelectCreate a short cut on the desktop
  • 点击Save。一个新的 window 将打开并要求您打开同步 可选。

这样,将创建每个 chrome 个配置文件,您可以查看 C:\Users\youname\AppData\Local\Google\Chrome\User Data