Stworzyłem Firefoksa na CentOS i mam problem z ustawieniem domyślnych preferencji. Zgodnie z oficjalne dokumenty :
- Utwórz plik JavaScript w defaults / pref (w systemie Linux) o nazwie autoconfig.js
Oto mój /tmp/ff-build/bin/defaults/pref/autoconfig.js
:
// First line must be a comment pref("general.config.filename", "mozconfig.cfg"); pref("general.config.obscure_value", 0);
- Utwórz plik .cfg (zgodnie z konwencją mozilla.cfg – może to być dowolny plik nazwa naprawdę; musi po prostu pasować do tego, co określono w ustawieniach general.config.filename, powyżej) w katalogu programu.
Tutaj to mój /tmp/ff-build/bin/mozconfig.cfg
, gdzie jedyny plik binarny Firefoksa to:
// Disable updater lockPref("app.update.enabled", false); // make absolutely sure it is really off lockPref("app.update.auto", false); lockPref("app.update.mode", 0); lockPref("app.update.service.enabled", false); // Disable updater lockPref("app.update.enabled¨, false);
Firefox będzie działał poprawnie bez elementu obecne, ale przy powyższej konfiguracji Firefox nie uruchamia się z wyskakującym okienkiem ying:
Nie udało się odczytać pliku konfiguracyjnego. Skontaktuj się z administratorem systemu.
Próbowałem skopiować mozconfig.cfg
do kilku katalogów, ale bez zmian. Jak sprawić, by Firefox akceptował mozconfig.cfg
? Czy źle rozumiem dokumenty?
(Profile są usuwane i odtwarzane, więc rozwiązanie nie będzie wymagało dodawania czegokolwiek do folderu ~ /). Powyższe ma na celu uzyskanie domyślnych preferencji działa. Dziękuję.)
Komentarze
Odpowiedź
Komunikat „Nie udało się odczytać pliku konfiguracyjnego. Skontaktuj się z administratorem systemu ”. to ogólny komunikat o błędzie. Problem może być w autoconfig.js lub mozconfig.js.
Uruchomienie strace -e ./firefox
zgodnie z sugestią @meuh pokazało, że Firefox ładuje plik konfiguracyjny:
open("/tmp/ff-build/bin/mozconfig.cfg", O_RDONLY) = 5
Wprowadzenie próby / złapania w mozconfig.cfg
w ten sposób nie „nie powoduje żadnych problemów, jednak:
// Disable default browser check try { lockPref("browser.defaultbrowser.notificationbar", false); lockPref("browser.shell.checkDefaultBrowser", false); lockPref("browser.shell.skipDefaultBrowserCheck¨, true); // Disable updater lockPref("app.update.enabled¨, false); } catch(e) { displayError("Error", e); }
Pusty mozconfig.cfg
działa, więc przeprowadzono usuwanie i test linia po linii i wykryto dziwny znak podwójnego cudzysłowu: ¨
. To jest błąd składniowy i słusznie nie wywołano try / catch.
Normalnie tego rodzaju błędy byłyby w panelu programisty, ale to jeszcze nie jest dostępne.
Uruchamianie powyższego skryptu za pomocą raportów jslint
Niezamknięty ciąg.
lockPref("app.update.enabled¨, false);
To są kroki, które podjąłem, aby debugować i rozwiązać ten ogólny komunikat o błędzie. Mam nadzieję, że te kroki są hel p kogoś innego.
general.config.filename
, tylko po to, żeby sprawdzić, czy czyta plik. Otocz kod tagiemtry{ ... }catch(e){ displayError("myerror", e); }
/tmp/ff-build/bin/mozconfig.cfg
, a ja opakowałem go w blok try / catch, zgodnie z sugestią. Ścieżka bezwzględna również nie ' nie działała, a próba / catch nie ' nie złapała błędu. Pojawia się ten sam ogólny alert.strace -e open
program binarny, aby zobaczyć, które pliki otwiera.¨
, który przypuszczalnie być"
. Spróbuj / catch won ' t złapać błędy składni i nie ma konsoli programisty. Trudno było zauważyć. Dzięki za pomoc.