61

В Chrome 20 и более старых версиях вы можете просто открыть любой файл .user.js в Chrome, и он предложит вам установить скрипт пользователя.

Однако в Chrome 21 и более поздних версиях он загружает файл и отображает в верхней части предупреждение: «Расширения, приложения и пользовательские сценарии могут быть добавлены только из Интернет-магазина Chrome».

Скриншот

Ссылка «Подробнее» указывает на http://support.google.com/chrome_webstore/bin/answer.py?hl=ru&answer=2664769, но эта страница ничего не говорит о пользовательских скриптах, а только о расширениях в .crx формат, приложения и темы.

Эта часть звучит интересно:

Администраторы предприятия. Вы можете указать URL-адреса, которым разрешено устанавливать расширения, приложения и темы непосредственно через политику ExtensionInstallSources.

Итак, я выполнил следующие команды, затем перезапустил Chrome и Chrome Canary:

defaults write com.google.Chrome ExtensionInstallSources -array "https://gist.github.com/*"
defaults write com.google.Chrome.canary ExtensionInstallSources -array "https://gist.github.com/*"

К сожалению, эти настройки влияют только на расширения, приложения и темы (как говорится в тексте), а не на пользовательские сценарии. (Я отправил сообщение об ошибке с просьбой, чтобы этот параметр также влиял на пользовательские сценарии.)

Любые идеи о том, как установить частный пользовательский скрипт (который я не хочу добавлять в Интернет-магазин Chrome) в Chrome 21+?

3 ответа3

37

Проблема заключалась в том, что необработанные URL-адреса gist.github.com перенаправляли на другой домен. Итак, мы должны использовать эти команды вместо:

# Allow installing user scripts via GitHub or Userscripts.org
defaults write com.google.Chrome ExtensionInstallSources -array "https://*.github.com/*" "http://userscripts.org/*"
defaults write com.google.Chrome.canary ExtensionInstallSources -array "https://*.github.com/*" "http://userscripts.org/*"

Это работает!


В любом случае, кажется, что это обходной путь (спасибо Полу Хорну за подсказку):

  1. Загрузите пользовательский скрипт.
  2. Откройте chrome://chrome/extensions/ .
  3. Перетащите файл пользовательского скрипта на страницу, открытую на шаге 2.
36

Запустите Chrome с --enable-easy-off-store-extension-install.

Чтобы использовать переключатель командной строки (с Chromium.org):

В Windows:

  • Щелкните правой кнопкой мыши на значке Chrome.
  • Выберите недвижимость
  • В конце вашей целевой строки поместите эти параметры: --enable-easy-off-store-extension-install
  • Это должно выглядеть так: chrome.exe --enable-easy-off-store-extension-install

На OS X:

  • /Applications/Chromium.app/Contents/MacOS/Chromium --enable-easy-off-store-extension-install

  • Для Google Chrome вам нужно избегать пробелов, например: /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --enable-easy-off-store-extension-install

В Linux:

  • chromium-browser --enable-easy-off-store-extension-install
10

Ну, это заняло пару часов моей жизни, чтобы понять. Я предполагаю, что инженеры Google считают, что мы заслуживаем установки ненадежных расширений, только если мы можем понять, как делать трюки и прыгать через их обручи.

Инструкции в ответе Матиаса выглядят точными для Mac OS X, но я использую Linux. Вот что я сделал в Linux для упрощения установки (в стиле до Chrome-21) всех сторонних расширений, приложений и пользовательских скриптов с любого веб-сайта:

  1. Создайте каталог политик (если он еще не существует):

    sudo mkdir -p /etc/opt/chrome/policies/recommended/
    
  2. Создайте файл политики:

    cd /etc/opt/chrome/policies/recommended/
    
    sudo tee easy_install_extensions.json <<EOF
    {
        "ExtensionInstallSources": ["<all_urls>"]
    }
    EOF
    
  3. Перезапустите Chrome. Полностью выйти из программы через menu -> Exit ; не просто закройте текущее окно.


Источники:

Заметки:

  • <all_urls> (используется выше) - это специальный шаблон в соответствии с документами соответствия URL. Полезно знать.
  • Согласно документации по политике Linux, каталоги /etc/opt/chrome/policies/{managed,recommended}/ содержат файлы политики JSON. Если записи конфликтуют, managed переопределение recommended .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .