ユーザが使える機能を制限したい

一部のキーボードショートカットを無効化したい

キーワード 機能制限 / 導入時初期設定 / 集中管理

Firefoxはキーボードショートカットを管理する機能を含んでいませんが、アドオンを使うことによって、キーボードショートカットの割り当てを変更したりショートカットを無効化したりできます。

本項では、管理者が行った設定を全体に展開する用途を想定して、UI Text Overriderを使った設定の手順を解説します。

設定方法

大まかな手順は以下の通りです。

  1. DOM Inspector をインストールします。
  2. ツールWeb開発DOM InspectorでDOM Inspectorを起動します。
  3. FileInspect Chrome Documentを選択し、ブラウザのウィンドウのタイトルと同じ項目を選択します。
  4. <window> 直下の<keyset id="devtoolsKeyset"><keyset id="mainKeyset"> を選択し、サブツリーを展開します。
  5. <keyset> 直下に多数ある <key> から目的のショートカットを定義している物を見つけ出します。
  6. MCD(AutoConfig)を使用し、UI Text Overriderで当該ショートカットを無効化するための設定を行います。
  7. 管理者によるアドオンのインストール手順に従ってUI Text Overriderを導入します。

Ctrl-T(新しいタブを開く)に対応する <key> を例として、4および5の詳細な手順を説明します。以下はCtrl-Tのショートカットを定義している <key> です。

<key id="key_newNavigatorTab"
     key="t"
     modifiers="accel"
     command="cmd_newNavigatorTab"/>

<key> は、 key または keycode のいずれかの属性を持ちます。アルファベットや記号など通常の文字入力用のキーを使うショートカットでは key 属性の値にそのキーの文字が指定されており、F1などのファンクションキーやTab、BackSpaceなどの特殊なキーを使うショートカットでは keycode 属性の値にそのキーの仮想キーコード名( VK_TABVK_BACK など。一覧はKeyboardEvent - Web API interfacesを参照して下さい)が指定されています。

また、Ctrlキーなどの修飾キーを伴うショートカットでは、 modifiers 属性に修飾キーが指定されています。modifiers 属性の値は修飾キー名のカンマ区切りのリストで、 alt, control, meta(MacのCommandキーに対応), shift, および accel(Macでは meta と見なされ、それ以外の環境では control と見なされる)のうちの1つ以上の組み合わせとなります。

上記の情報を手がかりにして、挙動を変えたいキーボードショートカットに対応する <key> を探します。見つかったら、それを無効化するための設定をMCD(AutoConfig)の設定ファイルに記述します。凡例は以下の通りです。

lockPref("extensions.uitextoverrider@clear-code.com.<定義名>",
  "要素を特定するためのCSSセレクタ");
lockPref("extensions.uitextoverrider@clear-code.com.<定義名>.<属性名1>",
  "値");
lockPref("extensions.uitextoverrider@clear-code.com.<定義名>.<属性名2>",
  "値");
...

先のCtrl-Tを無効化する場合は、以下のようになります。

lockPref("extensions.uitextoverrider@clear-code.com.newNavigatorTab",
  "#key_newNavigatorTab"); // IDセレクタを使用
lockPref("extensions.uitextoverrider@clear-code.com.newNavigatorTab.disabled",
  "true"); // disabled属性をtrueに設定し、ショートカットを無効化する
lockPref("extensions.uitextoverrider@clear-code.com.newNavigatorTab.command",
  ""); // コマンドの割り当てを無くし、万が一にも動作しないようにする

注意事項

UI Text Overriderを使った方法では、挙動を変更できるのはFirefoxのUI上で <key> が定義されているキーボートショートカットのみとなります。例えば以下のようなショートカットは挙動を変更できません。

  • Ctrl-←, →, ↑, ↓
  • Ctrl-F4(ウィンドウまたはタブを閉じる)
  • F7(キャレットブラウズモードを切り替える)
  • Alt(メニューバーを表示する)
  • F10(メニューバーにフォーカスする)
  • Home(ページ先頭にスクロールする)
  • End(ページ末尾にスクロールする)

このようなショートカットを無効化するためには、 userChrome.jsスクリプトや独自開発のアドオンなどを使う必要があります。

一部のメニュー項目やツールバーボタンなどのUI要素を非表示にしたい

キーワード 機能制限 / 導入時初期設定 / 集中管理

アドオンを使うことで、Firefoxの特定のUI要素を画面上に表示しないようにしてユーザによる操作を禁止することができます。

設定方法

UI要素を隠すためには、globalChrome.cssなどのアドオンを使ってUI要素を隠すスタイル指定を適用する必要があります。globalChrome.css を使う場合の手順は以下の通りです。

  1. DOM Inspector をインストールします。
  2. ツールWeb開発DOM InspectorでDOM Inspectorを起動します。
  3. FileInspect Chrome Documentを選択し、ブラウザのウィンドウのタイトルと同じ項目を選択します。
  4. ツリーを展開していくか、もしくはツールバーの左端にある「Find a node to inspect by clicking on it」ボタンをクリックした後にブラウザウィンドウの非表示にしたいUI要素をクリックするかして、非表示にしたいUI要素の詳細を表示します。
  5. UI要素のIDもしくは他の要素と類似していない特徴を調べる。
  6. 「メモ帳」などのテキストエディタを開き、4で調べた情報を使って項目を非表示にするスタイル指定を記述します。

    以下は メニューバーを非表示にする場合の例。

    @-moz-document url-prefix(chrome://browser/content/browser.xul) {
      #toolbar-menubar,
      #toolbar-menubar * /* 子孫要素も同様に非表示および無効化する */ {
        /* display:none はDOMツリーに変化を与えて挙動を壊す恐れがあるため、
           単に非表示にするのみとする。 */
        visibility: collapse !important;
        -moz-user-focus: ignore !important;
      }
    }
    

    @-moz-document は、特定のウィンドウに対してのみスタイル指定を反映させるための記述です。詳細は@-moz-document について参考を参照して下さい。)

  7. 5で作成した内容を globalChrome.css という名前のプレーンテキストファイルに保存します。
  8. 6で作成したファイルをFirefox(Thunderbird)のインストール先の chrome フォルダに設置します。 (Windows Vista以降の場合のファイルの設置場所は C:\Program Files (x86)\Mozilla Firefox\chrome\globalChrome.css となる。)
  9. 管理者によるアドオンのインストール手順に従ってglobalChrome.cssを導入します。

プライベートブラウジング機能を使わせたくない

キーワード 機能制限 / 情報漏洩対策

プライベートブラウジング機能へのアクセス経路を無効化することで、ユーザのプライベートブラウジング機能の利用を禁止できます。

ウィザードでの実現

CCK2 Wizardを使用すると、プライベートブラウジング機能の利用を禁止する機能を含むアドオンを作成することができます。

MCD用設定ファイルでの実現

MCD(AutoConfig)を使い、プライベートブラウジングモードで起動する機能を無効化します。設定は以下の通りです。

lockPref("browser.privatebrowsing.autostart", false);

一部のメニュー項目やツールバーボタンなどのUI要素を非表示にしたいの手順に則り、プライベートブラウジングを開始するためのメニュー項目を非表示にします。globalChrome.cssを使う場合の設定は以下の通りです。

@-moz-document url-prefix(chrome://browser/content/browser.xul) {
  #menu_newPrivateWindow,
  #privatebrowsing-button,
  #wrapper-privatebrowsing-button,
  #key_privatebrowsing,
  #Tools\:PrivateBrowsing,
  #context-openlinkprivate {
    visibility: collapse !important;
    -moz-user-focus: ignore !important;
  }
}

一部のキーボードショートカットを無効化したいの手順に則り、プライベートブラウジングを開始するためのキーボードショートカットを無効化します。UI Text OverriderMCD(AutoConfig)を併用する場合の設定は以下の通りです。

lockPref("extensions.uitextoverrider@clear-code.com.privateBrowsing",
  "#key_privatebrowsing");
lockPref("extensions.uitextoverrider@clear-code.com.privateBrowsing.disabled",
  "true");
lockPref("extensions.uitextoverrider@clear-code.com.privateBrowsing.command",
  "");

また、CCK2 Wizardでも同様のカスタマイズが可能です。

Firefox Syncを使わせたくない

キーワード 機能制限 / 導入時初期設定 / 集中管理

無用なトラブルや情報の流出を避けるため、ユーザが任意にFirefox Syncをセットアップできないよう設定することができます。

ウィザードでの実現

CCK2 Wizardを使用すると、Firefox Syncの利用を禁止する機能を含むアドオンを作成することができます。

MCD用設定ファイルでの実現

CCK2 Wizard以外でFirefox Syncの利用を禁止する方法としては、アドオン Disable Syncを使う方法があります。 管理者によるアドオンのインストール手順に従ってDisable Syncを導入すると、以下の操作が完全に禁止されます。

  • ユーザがFirefox Syncの初期設定を行う。
  • ユーザがFirefox Syncのツールバーボタンを追加する。
  • ユーザが手動で情報を同期する。
  • Firefoxが自動的に情報を同期する。

CCK2 Wizardでも同様のカスタマイズが可能です。

また、単に通信を無効化するだけであれば、MCD(AutoConfig)などを使って以下の設定を反映することによっても実現可能です。

lockPref("services.sync.serverURL", "");
lockPref("services.sync.jpake.serverURL", "");
lockPref("services.sync.termsURL", "");
lockPref("services.sync.privacyURL", "");
lockPref("services.sync.statusURL", "");
lockPref("services.sync.syncKeyHelpURL", "");

注意事項

Disable Syncは、既に同期済みの設定を消去しません。 既にユーザがFirefox Syncを利用しており、サーバおよび他のクライアントに設定を同期している場合、それらは別途削除する必要があります。