Stworzyłem Firefoksa na CentOS i mam problem z ustawieniem domyślnych preferencji. Zgodnie z oficjalne dokumenty :

  1. 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); 
  1. 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.

Komunikat o błędzie

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

  • Możesz spróbować podać bezwzględną nazwę pliku jako general.config.filename, tylko po to, żeby sprawdzić, czy czyta plik. Otocz kod tagiem try{ ... }catch(e){ displayError("myerror", e); }
  • Próbowałem, zgodnie z sugestią, ustawić ścieżkę bezwzględną na /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.
  • Być może w pliku .cfg znajduje się niedrukowalny fałszywy znak. Wypróbuj pusty plik, a następnie dodawaj kolejno każdą linię, aż się zepsuje. strace -e open program binarny, aby zobaczyć, które pliki otwiera.
  • @meuh Znaleziono dziwny ¨, 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.

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.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *