Tùy chỉnh Firefox sử dụng AutoConfig

Tập tin AutoConfig có thể được sử dụng để thiết lập và khóa các tùy chọn không nằm trong chính sách của Firefox.

Để sử dụng AutoConfig, bạn đặt hai tập tin vào thư mục Firefox. Trên Windows, chúng đi vào cùng một thư mục nơi Firefox được cài đặt. Trên macOS, nó ở thư mục Contents/Resources của Firefox.app

Tập tin đầu tiên bạn cần tạo có tên là autoconfig.js và nó được đặt vào thư mục defaults/pref. Nó phải chứa hai dòng sau:

pref("general.config.filename", "firefox.cfg");
pref("general.config.obscure_value", 0);

Dòng đầu tiên chỉ định tên của tập tin AutoConfig. Bạn có thể chỉ định bất kỳ tên nào bạn thích, nhưng không thể thay đổi vị trí của tập tin.

The second line indicated that you do not want the AutoConfig to be obscured. By default, Firefox expects the file to be byte shifted by 13 bytes in order to obfuscate it.

Tập tin thứ hai bạn cần tạo được gọi là firefox.cfg và nó được đặt ở cấp cao nhất.

Nó phải luôn bắt đầu bằng một dòng comment:

// IMPORTANT: Start your code on the 2nd line

Mặc dù phần mở rộng của tập tin AutoConfig thường là cfg, nhưng bản thân tập tin AutoConfig là một tệp JavaScript. Điều này có nghĩa là bạn có thể viết JavaScript trong tập tin để có các logic khác nhau trong các tình huống khác nhau.

Các chức năng sau có sẵn trong tập tin AutoConfig:

  • pref(prefName, value) – đặt giá trị người dùng của một tùy chọn. Hàm này đặt tùy chọn một cách rõ ràng như tùy chọn của người dùng. Điều đó có nghĩa là nếu người dùng đã thay đổi giá trị, nó sẽ được đặt lại mỗi khi trình duyệt được khởi động.
  • defaultPref(prefName, value) – đặt giá trị mặc định của một tùy chọn. Đây là giá trị mà tùy chọn có khi người dùng chưa đặt bất kỳ giá trị nào.
  • lockPref(prefName, value) – đặt giá trị mặc định của một tùy chọn và khóa nó. Đây là chức năng quen thuộc nhất với mọi người khi nhắc đến tập tin AutoConfig. Việc khóa tùy chọn ngăn người dùng thay đổi nó và trong hầu hết các trường hợp, vô hiệu hóa giao diện người dùng trong tùy chọn để người dùng thấy rõ rằng tùy chọn đã bị vô hiệu hóa. Trong trường hợp bạn không thấy mọi thứ bị vô hiệu hóa trong tùy chọn, có một số tùy chỉnh “disable_button” như rằng đã bị khóa, vô hiệu hóa nút. Ví dụ: nếu bạn khóa tùy chỉnh này

pref.privacy.disable_button.view_passwords

nó sẽ vô hiệu hóa nút “Xem mật khẩu”. Các tùy chọn khác mà có thể khóa các nút là:

pref.general.disable_button.default_browser pref.browser.homepage.disable_button.current_page pref.browser.homepage.disable_button.bookmark_page pref.browser.homepage.disable_button.restore_default security.disable_button.openCertManager security.disable_button.openDeviceManager app.update.disable_button.showUpdateHistory pref.privacy.disable_button.cookie_exceptions pref.privacy.disable_button.view_cookies pref.privacy.disable_button.view_passwords pref.privacy.disable_button.view_passwords_exceptions pref.downloads.disable_button.edit_actions.

  • unlockPref(prefName) – mở khóa một tùy chỉnh. Ví dụ: có thể có trường hợp bạn khóa tùy chỉnh cho mọi người và sau đó mở khóa cho một người dùng cụ thể.
  • getPref(prefName) – truy xuất giá trị của một tùy chỉnh. Nếu tùy chỉnh không tồn tại, tùy chỉnh đó sẽ hiển thị lỗi. Bạn chỉ nên sử dụng tùy chỉnh này trên các tùy chỉnh mà bạn biết là có tồn tại.
  • clearPref(prefName) – xóa giá trị người dùng của một tùy chỉnh, đặt lại nó về giá trị mặc định.
  • displayError(funcname, message) – hiển thị lỗi ở một định dạng cụ thể.
   Netscape.cfg/AutoConfig failed. Please contact your system administrator.
   Error: [funcname] failed: [message]

Điều này rất hữu ích cho việc gỡ lỗi.

  • getenv(name) – cho phép bạn truy vấn các biến môi trường. Điều này có thể cho phép bạn thực hiện những việc như lấy những thứ như tên người dùng và thông tin hệ thống khác.

Nếu bạn muốn quản lý tập trung tập tin AutoConfig của mình, bạn có thể chỉ định vị trí của tập tin AutoConfig phụ trong tập tin AutoConfig chính:

pref("autoadmin.global_config_url","http://yourdomain.com/autoconfigfile.js");

URL có thể là bất kỳ giao thức nào được Firefox hỗ trợ. Điều này bao gồm việc chỉ định file: protocol để trỏ đến một tập tin trên ổ đĩa được nối mạng. Định dạng của tập tin autoconfig từ xa giống với tập tin autoconfig trên máy khách ngoại trừ dòng đầu tiên không bị bỏ qua.

Nếu bạn muốn có thông tin người dùng cụ thể trong cấu hình của mình, bạn có thể đặt tùy chỉnh khác:

pref("autoadmin.append_emailaddr", true);

Điều này sẽ thêm một dấu chấm hỏi (?) và một địa chỉ email cho yêu cầu.

Bạn có thể tự hỏi địa chỉ email đó đến từ đâu. Vì Firefox không sử dụng địa chỉ email, bạn sẽ cần đặt nó. If you don’t, Firefox sẽ hiển thị lời nhắc yêu cầu bạn cung cấp địa chỉ email. Tùy chỉnh này là called mail.identity.useremail và là một tùy chỉnh chuỗi. Vì tập tin autoconfig là tập tin JS, bạn có thể đặt tùy chỉnh này trước khi đặt autoadmin.global_config_url. Bạn có thể làm một cái gì đó như thế này:

var user = getenv("USER");
lockPref("mail.identity.useremail", user);
lockPref("autoadmin.global_config_url","http://yourdomain.com/autoconfigfile.js");

Có một số tùy chỉnh khác kiểm soát các khía cạnh của AutoConfig. autoadmin.refresh_interval có thể làm AutoConfig làm mới ở một khoảng thời gian nhất định được chỉ định trong vài phút. Ngoài ra còn có một số tùy chỉnh liên quan đến cách xử lý ngoại tuyến, including autoadmin.offline_failover và autoadmin.failover_to_cached. Đây là cách chúng hoạt động.

Mỗi khi tập tin AutoConfig được truy xuất từ xa, bản sao lưu của tập tin đó sẽ được tạo trong thư mục hồ sơ của người dùng được gọi là failover.jsc. Nếu tùy chỉnh autoadmin.failover_to_cached được đặt thành false, Firefox đọc tập tin đã lưu trong bộ nhớ đệm, sau đó đánh dấu trình duyệt là ngoại tuyến và khóa tùy chọn để người dùng không thể trực tuyến. Nếu tùy chỉnh được đặt thành true, nó chỉ đơn giản là sử dụng tập tin đã lưu trong bộ nhớ đệm và sau đó tiếp tục. Tùy chỉnh autoadmin.offline_failover kiểm soát xem tập tin đã lưu trong bộ nhớ đệm có được sử dụng hay không khi người dùng chỉ ngoại tuyến. Nếu nó được thiết lập thành true, tập tin được lưu trong bộ nhớ đệm sẽ được sử dụng.

Bài viết này có hữu ích không?

Vui lòng đợi...

Những người này đã giúp viết bài này:

Illustration of hands

Tình nguyện viên

Phát triển và chia sẻ chuyên môn của bạn với người khác. Trả lời câu hỏi và nâng cao kiến thức cơ bản của chúng tôi.

Tìm hiểu thêm