在 ubuntu 上以隐身模式以编程方式启用扩展



我们正在设置以隐身模式运行的chromium浏览器的自助服务终端类型的工作站。出于开发目的,需要 redux-devtools 扩展。

我们使用脚本管理安装它。基本上上传了捆绑包和清单.json到

/

usr/share/chromium-browser/extensions

在非隐身模式下,它可以工作。并且有一种方法可以使用UI(扩展程序的设置(在隐身移动中启用它。

但问题是我们无法访问这种交互,我们必须以某种方式以编程方式进行。看起来它不是某个浏览器设置,而是扩展程序。有没有办法使用 bash 或 smth 来做到这一点。类似?

没有直接的方法可以做到这一点。但是我已经设法以不那么明显的方式做到这一点。我通过直接修改首选项文件使其工作。要使其正常工作,应关闭所有 chrome 实例。此外,与其安装扩展程序,不如将其解压缩到您知道的地方。所以这是启动铬的方法

`chrome --incognito --load-extension=<path/to/unpacked/extension>`

这将在安装扩展程序的情况下启动 chrome,这意味着将创建一些首选项条目。现在我们需要修改负责在隐身模式下允许扩展的值。为此,我编写了一个小的python3脚本:

extension_incognito_enabled.py

import json
import os
import sys
google_chrome_preferences ="/home/j2ko/.config/google-chrome/Default/Preferences"
incognito_value = (False, True)[sys.argv[1] == "true"]
print("Closing all chrome instances")
os.system('killall chrome')
#As we load extension using --load-extension flag we can use path to it
field_to_compare="path"
field_value_to_compare_with="/home/j2ko/Downloads/isAllowedAccess"
jsonPreferences =""
with open(google_chrome_preferences, "r+") as jsonFile:
jsonPreferences = json.load(jsonFile)

settings = jsonPreferences["extensions"]["settings"]
for extension_name in settings:
extension_setting = settings[extension_name]
if extension_setting[field_to_compare] == field_value_to_compare_with:
extension_setting["incognito"] = incognito_value
print("Successfully modified file. Now incognito mode value is ", incognito_value)
break
with open(google_chrome_preferences, "w+") as jsonFile:
json.dump(jsonPreferences, jsonFile)

我已经使用isAllowAccess对其进行了测试。因此,为了满足您的需求,您需要修改脚本并为field_value_to_compare_with提供适当的值(实际上等于--load-extension值(并提供正确的google_chrome_preferences值。 您可以将脚本用作:

extension_incognito_enabled.py true  # to enable
extension_incognito_enabled.py false # to disable

如果您只有python2只需删除print行,它也应该可以工作。