AutoConfig を使用して Firefox をカスタマイズする
リビジョン情報
- リビジョン ID: 292501
- 作成日:
- 作成者: TopGun
- コメント: 新規翻訳.
- 査読日: はい
- 査読日:
- 査読者: trsn4649
- 承認済み はい
- 現在のリビジョン? はい
- 翻訳準備中: いいえ
リビジョンのソース
リビジョンの内容
AutoConfig ファイルを使用すると、Firefox ポリシーでカバーされていないプリファレンスを設定およびロックできます。
AutoConfig を使用するには、Firefox のディレクトリーに 2 つのファイルを配置します。Windows では、Firefox がインストールされているのと同じディレクトリーに配置されます。macOS では、Firefox.app の Contents/Resources ディレクトリーに配置されます。
最初に作成する必要があるファイルは autoconfig.js と呼ばれ、defaults/pref ディレクトリーに配置されます。このファイルには次の 2 行が含まれている必要があります:
pref("general.config.filename", "firefox.cfg"); pref("general.config.obscure_value", 0);
最初の行は、AutoConfig ファイルの名前を指定します。任意の名前を指定できますが、ファイルの場所は変更できません。
2 行目は、AutoConfig を隠さないようにすることを示しています。既定では、Firefox はファイルを難読化するために 13 バイトシフトされることを想定しています。
2 番目に作成する必要があるファイルは firefox.cfg と呼ばれ、最上位レベルに配置されます。
必ずコメント行で始めてください:
// IMPORTANT: Start your code on the 2nd line
AutoConfig ファイルの拡張子は通常 cfg ですが、AutoConfig ファイル自体は JavaScript ファイルです。つまり、ファイル内に JavaScript を記述して、異なる状況で異なるロジックを持つことができます。
AutoConfig ファイル内では、次の関数を使用できます:
pref(prefName, value) – プリファレンスのユーザー値を設定します。この関数は、プリファレンスをユーザープリファレンスとして明示的に設定します。つまり、ユーザーが値を変更した場合、ブラウザーが起動するたびに値がリセットされます。
defaultPref(prefName, value) – プリファレンスの既定値を設定します。これは、ユーザーが値を設定していない場合にプリファレンスが持つ値です。
lockPref(prefName, value) – プリファレンスの既定値を設定してロックします。これは、AutoConfig ファイルに関して最もよく知られている機能です。プリファレンスをロックすると、ユーザーがプリファレンスを変更できなくなります。また、ほとんどの場合プリファレンスの UI が無効になるため、プリファレンスが無効になっていることがユーザーにわかります。プリファレンスで無効になっているものが表示されない場合、ロックされるとボタンが無効になる “disable_button” プリファレンスがあります。 たとえば、 pref.privacy.disable_button.view_passwords プリファレンスをロックすると “View Passwords” ボタンが無効になります。ボタンをロックするその他の設定は次のとおりです:
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) – プリファレンスのロックを解除します。たとえば、すべてのユーザーのプリファレンスをロックしてから特定のユーザーのみロック解除する場合など。
getPref(prefName) – プリファレンスの値を取得します。プリファレンスが存在しない場合、エラーが表示されます。存在することがわかっているプリファレンスに対してのみ使用してください。
clearPref(prefName) – プリファレンスのユーザー値を削除し、既定値にリセットします。
displayError(funcname, message) – 特定の形式でエラーを表示します。
Netscape.cfg/AutoConfig failed. Please contact your system administrator. Error: [funcname] failed: [message]
これはデバッグに便利です。
getenv(name) – 環境変数を照会することができます。これにより、ユーザー名やその他のシステム情報などを取得できます。
AutoConfig ファイルを集中管理する場合、プライマリー AutoConfig ファイル内のセカンダリー AutoConfig ファイルの場所を指定できます:
pref("autoadmin.global_config_url","http://yourdomain.com/autoconfigfile.js");
URL には、Firefox でサポートされている任意のプロトコルを指定できます。これには、ネットワークドライブ上のファイルを指す file: プロトコルの指定も含まれます。リモート autoconfig ファイルの形式は、最初の行が無視されないこと以外クライアント上の autoconfig ファイルと同じです。
設定にユーザー固有の情報を含める場合は、別のプリファレンスを設定できます:
pref("autoadmin.append_emailaddr", true);
これにより、疑問符 (?) とメールアドレスがリクエストに追加されます。
メールアドレスがどこから来たのか疑問に思うかもしれません。Firefox はメールアドレスを使用しないため、設定する必要があります。設定していないと、メールアドレスの入力を求めるプロンプトが表示されます。このプリファレンスは mail.identity.useremail と呼ばれ、文字列プリファレンスです。autoconfig ファイルは JS ファイルなので、autoadmin.global_config_url を設定する前にこのプリファレンスを設定できます。次のようにします:
var user = getenv("USER"); lockPref("mail.identity.useremail", user); lockPref("autoadmin.global_config_url","http://yourdomain.com/autoconfigfile.js");
AutoConfig を制御するプリファレンスは他にもいくつかあります。autoadmin.refresh_interval を指定すると、AutoConfig は分単位で指定された間隔でリフレッシュされます。また、autoadmin.offline_failover や autoadmin.failover_to_cached など、オフラインの処理方法に関連するプリファレンスもいくつかあります。その仕組みは以下のとおりです:
AutoConfig ファイルがリモートで取得されるたびに、そのファイルのバックアップコピーが failover.jsc というユーザーのプロファイルディレクトリーに作成されます。プリファレンス autoadmin.failover_to_cached が false に設定されている場合、Firefox はキャッシュされたファイルを読み取り、ブラウザーをオフラインとしてマークし、ユーザーがオンラインにならないようにプリファレンスをロックします。プリファレンスが true に設定されている場合、キャッシュされたファイルを使用して続行します。プリファレンス autoadmin.offline_failover は、ユーザーが単にオフラインの場合にキャッシュされたファイルを使用するかどうかを制御します。プリファレンスが true に設定されている場合、キャッシュされたファイルが使用されます。