7

今日、Google Chrome を開いているときに、次のいずれかの場所に移動せずに拡張機能を有効または無効にする簡単な方法がないことに気付きました。

  1. chrome://extensions
  2. [ツール] > [拡張機能] > [有効化/無効化] をクリックします。

これが非常に重要である理由は、それが必要とするリソースのためです。

例: パソコンを起動するので、すぐに Google Chrome を開きたいと思います。たとえば、Chrome を開く前に 100 のプロセスを実行しているとします。ただし、Chrome を開くと、起動時にすべての拡張機能が読み込まれるため、その数は 160 に跳ね上がります。

これが私が達成しようとしているものと現在の制限です:

望ましい結果: コンソールを使用して拡張機能を簡単に有効化/無効化/アンインストールする

制限事項: 多くの拡張機能をグループ化して、簡単に有効化/無効化できるようにする方法はありません。

質問のこの部分が許可されていない/トピックから外れている場合はお知らせください

4

1 に答える 1

10

Chrome は、プロファイル ディレクトリ (ここでは ~/.config/google-chrome/Default/Preferences) の Preferences という名前の JSON ファイルに拡張機能の設定を保存します。有効/無効フラグは、各拡張機能の「状態」キーであり、有効な場合は 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)
于 2011-06-09T02:25:43.470 に答える