1

我们正在设置信息亭类型的工作站,铬浏览器在隐身模式下运行。出于开发目的,需要有 redux-devtools 扩展。

我们使用脚本管理安装它。基本上上传 bundles 和 manifest.json 到

/usr/share/chromium-browser/extensions

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

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

4

1 回答 1

2

没有直接的方法可以做到这一点。但我设法以不那么明显的方式做到了这一点。我通过直接修改首选项文件使其工作。要使其正常工作,应关闭所有 chrome 实例。另外,无需安装扩展程序,只需将其解压缩到您知道的地方即可。所以这里是如何启动 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)

我已经使用isAllowedAccess对其进行了测试。因此,为了满足您的需求,您需要修改脚本并提供正确的值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行,它也应该可以工作。

于 2019-09-05T14:38:39.297 回答