We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

Mozcmd格式

mozcmd格式提供了一种简单的方法用来存储GCLI命令.对于Firefox用户来说,可以将 devtools.commands.dir 的字符串值设置为包含若干扩展名为mozcmd的文件的目录路径.

比如,如果 devtools.commands.dir 指向 C:\mozcmd (或者/Users/me/mozcmd [Mac/Unix]),则Firefox会从那个目录读取mozcmd文件.

语法

mozcmd文件的格式基于 JSON,不过添加了存储函数的能力 - 比如 exec 函数.

该文档的跟节点是一个数组,可以包含若干个命令对象,这些对象将自动的作为参数传递给 gcli.addCommand().

一个mozcmd文件示例

下面的例子来于 the 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"属性决定的,而不是由该mozcmd文件的文件名决定的.

只能在函数定义内部使用注释,其他位置不可以.

当一个命令被执行时, this 会指向包含这个方法的对象, 所以this.name就是当前命令的名字,如果需要进行一些设置,则应该首先执行这些设置,任何返回的结果应该缓存在this上.

安全性

The idea is to provide the user with the security that just having a mozcmd file available to Firefox is not a security risk, they need to access the command before any JavaScript is executed.

(Note 'access' does not imply that a command needs to be executed. Commands can provide functions to customize parameters. 'Access' is defined as typing the name of the command on the command line (regardless of whether RETURN is pressed)

The current implementation of mozcmd simply evals the script in a Sandbox. This does not provide the promised level of protection, however Bug 767912 calls for the parser to be upgraded.

进阶文档

查看 documentation about writing commands.

扩展mozcmd格式

mozcmd格式被设计为可扩展的支持注册类型和字段的格式,该特性目前还没有启用,不过你可以看看它是被如何设计的.

文档标签和贡献者

此页面的贡献者: ziyunfei
最后编辑者: ziyunfei,