解释(未记录?)XUL 对话框属性 buttoniconaccept(和类似的)

Explanation of (undocumented?) XUL dialog attribute buttoniconaccept (and similar)

我直接从 Mozilla Firefox 的 about.xul 文件中提取此属性,该文件显示了附加组件的 关于 对话框。这是一个相对简单的 XUL 对话框,没有输入、从 DTD 实体中提取的区域设置数据、字符串包属性和 JavaScript.

<!-- omni.ja!/chrome/toolkit/content/mozapps/extensions/about.xul -->
<!-- chrome://mozapps/content/extensions/about.xul -->

<dialog id="genericAbout"
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
    onload="init();"
    buttons="accept"
    buttoniconaccept="close"
    onaccept="close();">

MDN: Dialogs and Prompts and MDN: dialog 都提到了一些关于通过连接(伪正则表达式)形成的属性:

"button" + "(label|accesskey|oncommand)" + "(accept|cancel|disclosure|help|extra[12])"

例如:buttonlabelaccept.

但是,我找不到任何关于使用 icon 的文档。 icon 这个词甚至没有出现在上述任何一个页面上!它有什么作用?正确的使用方法是什么?

我正在尝试使我的关于页面的附加组件更加模块化,而不是从 omni.ja(r) 加载内部文件,这会引入大量不必要的代码。我正在开发一个非常精简的版本,它将根据调用上下文适当地设置自己的样式。

我希望它看起来像 Firefox 的官方 关于 < addon.name > 对话框(如果从 about:addons 上下文菜单或我的附加组件调用)状态栏上下文菜单。如果从“选项”对话框中查看为 XUL 中的 iframe,我希望外观略有不同。我已经设置了该结构。只是调整小怪癖。

这不是关键的设计或功能明智的,事实上整个 API 将在几个月后消失,但我只是困扰我不真正理解这一点,所以我想先弄清楚我让它继续做更重要的事情。但如果我绝对找不到答案,我会的。但这是那些愚蠢的小事情之一,只会让我不成比例地烦恼。 =D

如果您能指出我可能遗漏的文档,甚至是特定的 Mozilla 源代码,以及一些示例,或者更完整的解释和典型用例,那就太好了。

如果勾选"blame" for about.xul, you'll see that the line was added to fix bug 422763。从错误中的屏幕截图来看,GNOME (Linux) 有(曾经?)将图标放在对话框按钮上的约定,并且此属性允许覆盖默认图标(从按钮类型推断)。

如果你 search for buttonicon, you'll find the code that handles this attributetoolkit/content/widgets/dialog.xml.