Как включить / отключить расширения google chrome через консоль

сегодня, открывая Google Chrome, я понял, что нет простого способа включить или отключить расширение, не перейдя в одно из следующих мест:

  1. chrome: / / расширения
  2. щелчок по инструментам>расширения>включить / отключить

причина, почему это так важно, из-за ресурсов, которые он занимает.

например: я буду запускать свой компьютер, и я сразу хочу быстро открыть Google Chrome. Предположим, например, что я запускаю 100 процессов, прежде чем открыть Chrome. Однако, как только я открываю Chrome, это число переходит к 160 из-за всех расширений, которые загружаются при запуске.

вот чего я хочу достичь и текущие ограничения:

Ожидаемый Результат: Легко включить/отключить/удалить расширение с помощью консоли

ограничения: Невозможно сгруппировать много расширений, чтобы они могли легко быть включен/отключен

пожалуйста, дайте мне знать, если эта часть вопроса не допускается/не по теме

1 ответов


Chrome хранит настройки расширения в файле JSON с именем Preferences в каталоге вашего профиля (здесь это~/.config / google-chrome / по умолчанию / настройки). Флаг enabled/disabled является ключом "state" для каждого расширения, с 1 для enabled и 0 для disabled. Вы можете написать сценарий, который изменил этот файл перед запуском Chrome. Вы можете установить этот скрипт для запуска при входе в систему и даже для запуска Chrome в конце, если вы хотите автоматически запустить Chrome. Сохранить список расширений, которые вы хотите явно отключите pre-launch, чтобы выбрать только некоторые из них.

Я бы убедился, что вы не обновляете настройки во время работы 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)