如何通过控制台启用/禁用Google Chrome扩展程序

Jon*_*Jon 7 google-chrome-extension google-chrome-devtools

今天,在打开谷歌浏览器时,我意识到没有简单的方法来启用或禁用扩展,而无需访问以下位置之一:

  1. 铬://扩展
  2. 单击工具>扩展>启用/禁用

之所以如此重要,是因为它占用了资源.

例如:我将启动计算机,我立即想要快速打开Goog​​le Chrome.比方说,我打开Chrome之前运行100个进程.但是,一旦我打开Chrome,该数字会跳转到160,因为它启动时会加载所有扩展名.

以下是我要实现的目标和当前的局限性:

期望的结果: 使用控制台轻松启用/禁用/卸载扩展

限制: 无法对多个扩展进行分组,因此可以轻松启用/禁用它们

如果这部分问题不允许/不允许,请告诉我

Fre*_*urk 10

Chrome将扩展程序设置存储在您的个人资料目录中名为"首选项"的JSON文件中(此处为〜/ .config/google-chrome/Default/Preferences).启用/禁用标志是每个扩展的"状态"键,其中1表示启用,0表示禁用.您可以在启动Chrome之前编写修改此文件的脚本.您可以将此脚本设置为在登录时运行,如果您想自动启动Chrome,甚至可以在最后启动Chrome.存储要明确禁用预启动的扩展列表,以仅选择其中一些.

我会确保您在Chrome运行时不更新偏好设置.

这适用于我,并且可能适用于任何类似*nix的系统.移植到Windows应该相当简单:chrome_dir和检查Chrome是否正在运行可能是唯一需要的更改.

#!/usr/bin/env python2.6

import datetime
import json
import os
import sys
from os import path

chrome_dir = path.expanduser("~/.config/google-chrome")
if path.lexists(chrome_dir + "/SingletonLock"):
  # there may be a better and portable way to determine if chrome is running
  sys.exit("chrome already running")

prefs_file = chrome_dir + "/Default/Preferences"
now = datetime.datetime.now()
prefs_backup_file = prefs_file + now.strftime("-%Y%m%d-%H%M%S")

enable_keys = [
  # list hash keys, you can find from URL given on chrome://extensions
  "aeoigbhkilbllfomkmmilbfochhlgdmh",
  ]
disable_keys = [
  "hash-like key here",
  ]

default_state = 0
# 1 to enable, 0 to disable, None to leave alone

with open(prefs_file) as f:
  prefs = json.load(f)
os.rename(prefs_file, prefs_backup_file)

for key, ext in prefs["extensions"]["settings"].iteritems():
  if not ext.has_key("state"):
    # may be blacklisted
    continue

  if key in enable_keys:
    ext["state"] = 1
  elif key in disable_keys:
    ext["state"] = 0
  elif default_state is not None:
    ext["state"] = default_state

with open(prefs_file, "w") as f:
  json.dump(prefs, f)
Run Code Online (Sandbox Code Playgroud)

  • @Jon:我不知道VB和Powershell.这是一个Python脚本,Python在Windows上运行.我列出了我认为是Windows所需的唯一更改,但我没有在这里查看. (2认同)
  • @Jon:将default_state设置为None,如果你不喜欢禁用所有这些扩展名,那么在disable_keys中列出有问题的(资源饥饿的)扩展名可能是你最好的选择.FWIW我已经享受了很长一段时间的Chrome,但我已经回到了Opera,因为你遇到了这个问题:对于我想要的功能,Opera运行得更好.YMMV一如既往. (2认同)