【问题标题】:Enable extension programmatically in incognito mode on ubuntu在 ubuntu 上以隐身模式以编程方式启用扩展
【发布时间】:2019-12-16 13:57:23
【问题描述】:

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

我们使用脚本进行了安装。基本上上传 bundles 和 manifest.json 到

/usr/share/chromium-browser/扩展

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

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

【问题讨论】:

  • “还有一种方法可以使用 UI 在隐身移动中启用它”您的意思是在非隐身模式中吗?
  • 不,如果已安装扩展程序 - 即使在隐身模式下,您也可以在 UI 中启用它
  • 因此,您试图找到一种以编程方式(通过脚本)自动安装和启用隐身模式的扩展程序的方法。对吗?
  • 没错。我们安装了它,但仍然手动激活
  • 您是否使用自己的 Chromium fork 并且可以修改其源代码?你可以修改 Chromium 的 C++ 源代码并这样做

标签: google-chrome redux chromium redux-devtools redux-devtools-extension


【解决方案1】:

没有直接的方法可以做到这一点。但我设法以不那么明显的方式做到了这一点。我通过直接修改首选项文件使其工作。要使其正常工作,应关闭所有 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 行,它应该也可以工作。

【讨论】:

    猜你喜欢
    • 2016-08-24
    • 1970-01-01
    • 1970-01-01
    • 2012-03-02
    • 1970-01-01
    • 1970-01-01
    • 2014-01-18
    • 2013-06-30
    • 1970-01-01
    相关资源
    最近更新 更多