一千萬個為什麽

搜索

如何通過控制臺啟用/禁用Google Chrome擴展程序

今天,在打開谷歌瀏覽器時,我意識到沒有簡單的方法可以啟用或禁用擴展,而無需訪問以下位置之一:

  1. chrome://extensions
  2. clicking on Tools>Extensions>Enable/Disable

之所以如此重要,是因為它占用了資源。

例如:我將啟動計算機,我立即想要快速打開Goog​​le Chrome。比方說,我打開Chrome之前運行100個進程。但是,一旦我打開Chrome,該數字會跳轉到160,因為它啟動時會加載所有擴展名。

以下是我要實現的目標和當前的局限性:

Desired Outcome: Easily enable/disable/uninstall an extension using the console

Limitations: There is no way to group many extensions, so that they can easily be enabled/disabled

如果這部分問題不允許/不允許,請告訴我

最佳答案

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)

轉載註明原文: 如何通過控制臺啟用/禁用Google Chrome擴展程序