Chrome неправильно обрабатывает пользовательские протоколы

10

Например, если я войду steam://connect/127.0.0.1в омнибокс, он будет искать URL вместо запуска программы, которая обрабатывает этот протокол.

Как можно настроить Chrome для правильной обработки пользовательских протоколов?

Avery3R
источник
Вы когда-нибудь получали диалоговое окно с запросом разрешения на запуск внешней программы?
Synetech

Ответы:

11

Это можно настроить в Local Stateфайле Chrome .

Точное местоположение зависит от вашей ОС. Например:

  • %LOCALAPPDATA%\Google\Chrome\User Data\Local State на Windows 7.
  • ~/Library/Application Support/Google/Chrome/Local State в Mac OS X 10.8.
  • ~/.config/google-chrome/Local State на Ubuntu 12.04.

шаги:

  1. Закройте Google Chrome.

  2. Откройте Local Stateфайл и найдите excluded_schemesв protocol_handler.

  3. Добавьте строку

    "steam": false,
    

    к excluded_schemes.

  4. Перезапустите Google Chrome.

Деннис
источник
Хм, это странно. ed2k://и magnet:работает нормально, без необходимости что-либо менять вручную. Что особенного / не так с steam://? Может быть программа не правильно зарегистрировала протокол? Я предполагаю, что Steam имеет ассоциированную функцию ...
Synetech
Я не уверен, но я предполагаю, что у Google есть те предопределенные. Там нет входа для любого из распространенных протоколов: http, ftpи т.д. Я просто знаю , что я должен был добавить его для Skype.
Деннис
Нет. Я только что проверил, и Chrome не включает никаких протоколов по умолчанию (создайте новый профиль и затем проверьте Local Stateфайл; у него даже не будет protocol_handlerраздела). Кроме того, установка этого параметра trueне делает его поиск, он заставляет его ничего не делать, так что это не может быть проблемой.
Synetech
По умолчанию я имел в виду, что Chrome распознает протокол изначально, поэтому нет необходимости создавать Local Stateзапись. Но это только предположение. Я не знаю, является ли "steam": false,запись правильным способом для достижения этой цели, но это определенно сработало skype://.
Деннис
1
@Behrang: Как указано в моем ответе, полный путь к файлу указан в ~/.config/google-chrome/Local StateUbuntu 12.04. Я бы не знал о других дистрибутивах.
Деннис
1

Для справки это выглядит так: пользовательские URI, не соблюдаемые в омнибоксе или передаваемые в качестве параметра командной строки, - известная проблема 560809 в Chromium .

На момент написания вопроса не описаны какие-либо обходные пути: /

rajsite
источник
1
Похоже, эта проблема была исправлена ​​10 апреля 2018 года. Версия 66.0.3359.170 работает. Woo!
CrazyTim