Các tệp AutoConfig có thể được sử dụng để đặt và khóa các tùy chọn không được đề cập bởi chính sách nhóm trên Windows hoặc policies.json cho Mac và Linux. Phương pháp này có thể được sử dụng để tự động thay đổi tùy chọn của người dùng hoặc ngăn người dùng cuối sửa đổi các tùy chọn cụ thể bằng cách khóa chúng.
Mục lục…
Thiết lập AutoConfig
Để sử dụng AutoConfig, bạn cần tạo hai tệp, một ở cấp cao nhất và một trong thư mục con. Trên Windows, các đường dẫn dựa trên thư mục nơi Firefox được cài đặt. Trên macOS, các đường dẫn dựa trên thư mục Contents/Resources của Firefox.app.
Tệp đầu tiên cần tạo có tên là autoconfig.js, và nó phải được đặt vào thư mục defaults/pref. Nó nên 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 AutoConfig. Tên của tệp có thể được tùy chỉnh, nhưng vị trí của tệp không thể thay đổi.
Dòng thứ hai chỉ ra rằng AutoConfig không nên bị làm rối. Theo mặc định, Firefox mong đợi tệp sẽ được dịch chuyển byte đi 13 byte để làm rối nó.
Tệp thứ hai cần tạo được gọi là firefox.cfg và nó được đặt ở cấp cao nhất của thư mục Firefox. Nó phải luôn bắt đầu bằng một dòng chú thích, chẳng hạn như:
// IMPORTANT: Start your code on the 2nd line
Mặc dù phần mở rộng của tệp AutoConfig thường là .cfg, tệp AutoConfig là một tệp JavaScript. Điều này cho phép viết thêm JavaScript trong tệp để thêm logic khác nhau trong các tình huống khác nhau.
Các hàm của AutoConfig
Các hàm sau có sẵn trong một tệp 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ư một 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à một tùy chọn có khi người dùng chưa đặt bất kỳ giá trị nào hoặc người dùng đặt lại tùy chọn. Nó có thể được thay đổi vĩnh viễn bởi người dùng.
lockPref(prefName, value) – đặt giá trị mặc định của một tùy chọn và khóa nó. Đây là hàm được sử dụng phổ biến nhất. Việc khóa một tùy chọn sẽ ngăn người dùng thay đổi nó, và trong hầu hết các trường hợp, sẽ vô hiệu hóa giao diện người dùng trong các tùy chọn để người dùng thấy rõ rằng tùy chọn đã bị vô hiệu hóa.
unlockPref(prefName) – mở khóa một tùy chọn. Ví dụ, hàm này sẽ được sử dụng trong trường hợp một tùy chọn nên được khóa cho tất cả người dùng, nhưng được mở khóa cho những người dùng cụ thể.
getPref(prefName) – truy xuất giá trị của một tùy chọn. Nếu tùy chọn không tồn tại, nó sẽ hiển thị lỗi. Hàm này chỉ nên được sử dụng trên các tùy chọn luôn tồn tại.
clearPref(prefName) – xóa giá trị người dùng của một tùy chọn, đặ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ể, đây là một công cụ hữu ích để gỡ lỗi.
Netscape.cfg/AutoConfig failed. Please contact your system administrator. Error: [funcname] failed: [message]
getenv(name) – truy vấn các biến môi trường. Điều này có thể cho phép truy cập vào những thứ như tên người dùng và thông tin hệ thống khác.
Vô hiệu hóa các thành phần giao diện người dùng
Trong trường hợp các thành phần giao diện người dùng không tự động bị vô hiệu hóa trong các tùy chọn, có một số tùy chọn “disable_button” mà khi bị khóa, sẽ vô hiệu hóa các nút. Ví dụ, bao gồm
lockPref("pref.privacy.disable_button.view_passwords",true);
trong tệp AutoConfig của bạn sẽ vô hiệu hóa nút . Các tùy chọn khác khóa các nút bao gồm:
- 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
Quản lý tập trung
Tệp AutoConfig có thể được quản lý tập trung. Để làm như vậy, hãy chỉ định vị trí của tệp AutoConfig thứ cấp trong tệp AutoConfig chính:
pref("autoadmin.global_config_url","https://yourdomain.com/autoconfigfile.js");
URL có thể là bất kỳ giao thức nào được Firefox hỗ trợ, bao gồm giao thức file: để trỏ đến một tệp trên ổ đĩa mạng. Định dạng của tệp AutoConfig từ xa giống như tệp AutoConfig trên máy khách, ngoại trừ dòng đầu tiên không bị bỏ qua.
Có các tùy chọn khác kiểm soát các khía cạnh của AutoConfig. Tùy chọn autoadmin.refresh_interval khiến AutoConfig làm mới theo một khoảng thời gian nhất định được chỉ định bằng phút. Cũng có các tùy chọn liên quan đến cách xử lý chế độ ngoại tuyến, bao gồm autoadmin.offline_failover và autoadmin.failover_to_cached.
Mỗi khi một tệp AutoConfig được truy xuất từ xa, một bản sao lưu của tệp đó sẽ được tạo trong thư mục hồ sơ của người dùng có tên là failover.jsc. Nếu tùy chọn autoadmin.failover_to_cached được đặt thành false, Firefox sẽ đọc tệp đã lưu trong bộ nhớ đệm, đánh dấu trình duyệt là ngoại tuyến và khóa tùy chọn, do đó người dùng không thể trực tuyến. Nếu tùy chọn được đặt thành true, nó chỉ đơn giản là sử dụng tệp đã lưu trong bộ nhớ đệm và tiếp tục. Tùy chọn autoadmin.offline_failover kiểm soát việc tệp đã lưu trong bộ nhớ đệm có được sử dụng hay không khi người dùng ngoại tuyến. Nếu nó được đặt thành true, tệp đã lưu trong bộ nhớ đệm sẽ được sử dụng.
Tùy chọn dành riêng cho người dùng
Nếu thông tin dành riêng cho người dùng cần được bao gồm trong tệp AutoConfig, tùy chọn sau đây nên được đặt:
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.
Vì Firefox không sử dụng địa chỉ email, tùy chọn mail.identity.useremail phải được đặt. Nếu nó không được đặt, Firefox sẽ hiển thị một lời nhắc yêu cầu địa chỉ email. Vì tệp AutoConfig là một tệp JavaScript, tùy chọn này có thể được đặt trước khi đặt autoadmin.global_config_url. Ví dụ:
var user = getenv("USER");
lockPref("mail.identity.useremail", user);
lockPref("autoadmin.global_config_url","https://yourdomain.com/autoconfigfile.js");