CentOS에서 Firefox를 빌드했는데 기본 환경 설정을 설정하는 데 문제가 있습니다. 공식 문서 :

  1. defaults / pref (Linux)에서 JavaScript 파일 만들기 autoconfig.js

다음은 내 /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. .cfg 파일 만들기 (일반적으로 mozilla.cfg — 모든 파일이 될 수 있음) 이름은 실제로 프로그램 디렉토리에서 위의 general.config.filename 기본 설정에 지정된 것과 일치해야합니다.

여기 내 /tmp/ff-build/bin/mozconfig.cfg에서 유일한 파이어 폭스 바이너리는 다음과 같습니다 :

// 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는 autoconfig.js가 있지만 위의 구성을 사용하면 Firefox가 팝업 표시로 시작되지 않습니다. ying :

구성 파일을 읽지 못했습니다. 시스템 관리자에게 문의하십시오.

오류 메시지

mozconfig.cfg를 여러 디렉토리에 복사 해 보았지만 변경하지 않았습니다. Firefox에서 파일입니까? 문서를 오해하고 있습니까?

(프로필이 삭제되고 다시 만들어 지므로 솔루션은 ~ / 기반 폴더에 아무것도 추가하지 않습니다. 위는 기본 환경 설정을 가져 오는 것입니다. 작동합니다. 감사합니다.)

댓글

  • 절대 파일 이름을 general.config.filename로 지정할 수 있습니다. 파일을 읽고 있는지 확인합니다. 그리고 코드를 try{ ... }catch(e){ displayError("myerror", e); }
  • 로 묶습니다.

  • /tmp/ff-build/bin/mozconfig.cfg에 절대 경로를 설정하도록 제안한대로 시도했는데 제안 된대로 try / catch 블록으로 래핑했습니다. 절대 경로도 ' 작동하지 않았고 try / catch가 오류를 포착하지 못했습니다 '. 동일한 일반 경고가 나타납니다.
  • 아마도 .cfg 파일에 인쇄되지 않는 가짜 문자가있을 수 있습니다. 빈 파일을 시도한 다음 끊어 질 때까지 각 줄을 하나씩 추가하십시오. strace -e open 바이너리 프로그램이 열려있는 파일을 확인합니다.
  • @meuh 예상되는 이상한 ¨를 찾았습니다. "이어야합니다. Try / catch가 ' 구문 오류를 포착하지 못했으며 개발자 콘솔이 없습니다. 발견하기 힘든 사람이었습니다. 도움을 주셔서 감사합니다.

답변

“구성 파일을 읽지 못했습니다. 시스템 관리자에게 문의하십시오. . ” 일반 실패 메시지입니다. 문제는 autoconfig.js 또는 mozconfig.js에있을 수 있습니다.

@meuh가 제안한대로 strace -e ./firefox를 실행하면 Firefox가 구성 파일을로드하는 것으로 나타났습니다.

open("/tmp/ff-build/bin/mozconfig.cfg", O_RDONLY) = 5 

다음과 같이 mozconfig.cfg에 try / catch를 입력해도 문제가 발생하지 않습니다.

// 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); } 

mozconfig.cfg는 작동하지만 한 줄씩 제거 및 테스트를 수행 한 결과 이상한 큰 따옴표 문자 : ¨. 이것은 구문 오류이며 당연히 try / catch가 호출되지 않았습니다.

일반적으로 이러한 종류의 오류는 개발자 패널에 표시되었지만 아직 사용할 수 없습니다.

jslint 보고서를 통해 위 스크립트 실행

닫히지 않은 문자열입니다.

lockPref("app.update.enabled¨, false); 

다음은 일반적인 오류 메시지를 디버깅하고 해결하기 위해 취한 단계입니다. 다른 사람도 마찬가지입니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다