Chrome nie obsługuje poprawnie niestandardowych protokołów

10

Na przykład, jeśli steam://connect/127.0.0.1wejdę w Omnibox, wyszuka adres URL zamiast uruchamiać program obsługujący ten protokół.

Jak Chrome można skonfigurować do prawidłowego traktowania niestandardowych protokołów?

Avery3R
źródło
Czy kiedykolwiek pojawiło się okno dialogowe z prośbą o pozwolenie na uruchomienie programu zewnętrznego?
Synetech,

Odpowiedzi:

11

Można to zmienić w Local Statepliku Chrome .

Dokładna lokalizacja zależy od systemu operacyjnego. Na przykład:

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

Kroki:

  1. Zamknij Google Chrome.

  2. Otwórz Local Stateplik i wyszukaj excluded_schemesw protocol_handler.

  3. Dodaj linię

    "steam": false,
    

    do excluded_schemes.

  4. Uruchom ponownie Google Chrome.

Dennis
źródło
Hmm, to dziwne. ed2k://i magnet:działa dobrze bez konieczności ręcznej zmiany czegokolwiek. Co jest specjalnego / nie tak steam://? Może program nie zarejestrował poprawnie protokołu? Zakładam, że Steam ma powiązaną funkcję…
Synetech,
Nie jestem pewien, ale przypuszczam, że Google ma te predefiniowane. Nie ma wejście do jednego z popularnych protokołów: http, ftp, itd. Po prostu wiem, musiałem dodać je do Skype.
Dennis,
Nie. Właśnie sprawdziłem, a Chrome domyślnie nie zawiera żadnych protokołów (utwórz nowy profil, a następnie sprawdź Local Stateplik; nie będzie nawet protocol_handlersekcji). Co więcej, ustawienie go truenie powoduje wyszukiwania, powoduje, że nic nie robi, więc nie może to stanowić problemu.
Synetech,
Przez domyślnie , miałem na myśli, że Chrome uznany protokół natywnie, więc nie ma potrzeby, aby utworzyć Local Statewpis. Ale to tylko przypuszczenie. Nie wiem, czy "steam": false,wpis jest właściwym sposobem na osiągnięcie tego, ale na pewno zadziałał skype://.
Dennis,
1
@ Behrang: Jak stwierdzono w mojej odpowiedzi, pełna ścieżka do pliku znajduje się ~/.config/google-chrome/Local Statew systemie Ubuntu 12.04. Nie wiedziałbym o innych dystrybucjach.
Dennis
1

Jako odniesienie wygląda na to, że niestandardowe identyfikatory URI nie są śledzone w omniboksie lub gdy przekazano je jako parametr wiersza polecenia, znany jest problem 560809 w Chromium .

W chwili pisania tego wydania nie opisuje żadnych obejść: /

rajsite
źródło
1
Wygląda na to, że ten problem został naprawiony 10 kwietnia 2018 r. Wersja 66.0.3359.170 działa. Zabiegać!
CrazyTim