Customization

by 1 contributor:

Mozcmd 形式

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

例えば devtools.commands.dirC:\mozcmd (Windows の 場合。Mac/Unix では /Users/me/mozcmd) を指し示すと、Firefox はそのディレクトリから 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 の登録をサポートするよう拡張可能に設計されています。この機能はまだ有効ではありませんが、どのように動作するよう設計されているかを参照できます

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

Contributors to this page: yyss
最終更新者: yyss,