Mozilla's getting a new look. What do you think? https://mzl.la/brandsurvey

Customization

Mozcmd 形式

mozcmd 形式は、GCLI を簡単に使用できるように保存する手段です。これは Firefox ユーザが、拡張子 mozcmd のファイルをいくつか置いたディレクトリを指し示す devtools.commands.dir を設定することで利用可能になります。

例えば devtools.commands.dirC:\mozcmd (Windows の場合。Mac/Unix では /Users/me/mozcmd) を指し示すと、Firefox を起動したときや cmd refresh コマンドを実行してリロードしたときに、そのディレクトリから mozcmd ファイルを読み込みます。

構文

mozcmd ファイルの書式は JSON に基づいていますが、要所に関数を入れることができます。例えば exec 関数です。

ドキュメントのルートは配列であり、この配列は gcli.addCommand() へ渡すのに適切なコマンドオブジェクトをいくつか含みます。

mozcmd ファイルの例

以下のサンプルは、demo repository から引用したものです。

[
  {
    name: 'hello',
    description: 'Show a message',
    params: [
      {
        name: 'name',
        type: 'string',
        description: 'Who to say hello to',
      }
    ],
    exec: function(args, context) {
      return 'Good evening, ' + args.name;
    }
  }
]

ひとつのファイルに複数のコマンドを記述することができ、またコマンドは常に自身の名前をファイル名ではなく `name` プロパティから取得します。

関数内を除き、コメントを置くことはできません。

コマンドが実行されるとき、this は親オブジェクトのコマンドに設定されますので、this.name はコマンドの名前になります。セットアップ処理が必要である場合、それは最初の実行時に行われるべきであり、またその結果は this にキャッシュされます。

セキュリティ

セキュリティの危険性がない状態で Firefox が mozcmd ファイルを使用できるようにするセキュリティ機能をユーザに提供するという考え方から、なんらかの JavaScript が実行される前にコマンドへアクセスすることが必要です。

('アクセス' は、コマンドを実行しなければならないという意味ではないことに注意してください。コマンドは、パラメータをカスタマイズする関数を提供できます。'アクセス' は、コマンドラインにコマンド名を入力すること (RETURN が押されるかにかかわらず) と定義されます)

現在の mozcmd の実装では、単純にスクリプトをサンドボックス内で評価します。これは期待されたレベルの保護を提供しませんが、Bug 767912 でパーサーの改良を求めています。

詳細文書

コマンドの記述に関するドキュメントをご覧ください。

mozcmd 形式を拡張する

mozcmd 形式は、Type や Field の登録をサポートするよう拡張可能に設計されています。この機能はまだ有効ではありませんが、どのように動作するよう設計されているかを参照できます

ドキュメントのタグと貢献者

 このページの貢献者: yyss
 最終更新者: yyss,