Javascript Chrome扩展键盘快捷键按错误顺序显示

Javascript Chrome扩展键盘快捷键按错误顺序显示,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我正在开发一个Chrome扩展并在本地进行测试。我在扩展的清单中以标准方式建立了大约10个键盘快捷键,如下所示: "commands": { "mute-all": { "description": "1 - Toggle \"Mute All Tabs\"", "suggested_key": { "default": "Ctrl+Shift+A",

我正在开发一个Chrome扩展并在本地进行测试。我在扩展的清单中以标准方式建立了大约10个键盘快捷键,如下所示:

"commands":
    {
        "mute-all":
        {
            "description": "1 - Toggle \"Mute All Tabs\"",
            "suggested_key":
            {
                "default": "Ctrl+Shift+A",
                "mac": "Command+Shift+A"
            }
        },
        "unmute-all":
        {
            "description": "2 - Toggle \"Unmute All Tabs\"",
            "suggested_key":
            {
                "default": "Ctrl+Shift+Z",
                "mac": "Command+Shift+Z"
            }
        },
        "unmute-current":
        {
            "description": "3 - Toggle \"Always unmute current tab\"",
            "suggested_key":
            {
                "default": "Ctrl+Shift+S",
                "mac": "Command+Shift+S"
            }
        },
        "mute-others":
        {
            "description": "4 - Toggle \"Always mute all other tabs\"", 
            "suggested_key":
            {
                "default": "Ctrl+Shift+X",
                "mac": "Command+Shift+X"
            }
        },
        "use-black-list":
        {
            "description": "5 - Toggle \"Use Black/White List\""
        },
        "viewed-list":
        {
            "description": "6 - Aoggle viewed list"
        },
        "add-domain":
        {
            "description": "7 - Add domain to viewed list"
        },
        "remove-domain":
        {
            "description": "8 - Remove domain from viewed list"
        },
        "add-page":
        {
            "description": "9 - Add page to viewed list"
        },
        "remove-page":
        {
            "description": "10 - Remove page from viewed list"
        },
        "manual-override":
        {
            "description": "11 - Toggle manual override un/mute for current tab"
        }
    }
它们显示在Chrome的扩展键盘快捷菜单中(chrome://extensions/configureCommands),但顺序出乎意料:


我怎样才能让他们按照我想要的顺序来做呢?它们不应该按其描述的字母顺序排列吗?在我添加前面的数字以尝试强制执行所需的顺序之前,它们似乎仍然与几次构建之前的顺序相同(按描述大致按字母顺序排列)。

结果是,显示的快捷方式的顺序基于清单文件中指定的内部命令名,而不是描述。我花了一段时间才意识到这一点,但如果你看看我给命令的变量名,并按字母顺序对它们排序,它与屏幕截图中的顺序相匹配

为了解决这个问题,我只在命令名前面加上如下数字:

"01-mute-all":
{ ... },
"02-unmute-all":
{ ... },
"03-unmute-current":
{ ... },
"04-mute-others":
{ ... },
etc.
虽然我认为Chrome中的这种行为很愚蠢(它将后端变量名链接到前端外观),但至少它是可以预测的

我在这里提交了一个功能请求:

似乎
chrome://extensions-frame/extensions.js
,Chrome中实际扩展html页面背后的javascript,可能有一些答案。如果/当我发现任何问题时,将进行更新。如果您编辑问题和答案,使其具有显示问题和解决方案的代码,请ping我(在评论中包括
@Makyen
),因为我很乐意在问题和答案明确后进行投票。实际上,CWS确实有未列出和私有发布。@DanielHerr有,但据我所知,您要么必须将现有发布版本设置为未列出/私有,要么创建一个全新的应用程序条目来测试它。您不能私下测试商店中已存在的扩展的新草稿版本。如果您想查看Chrome内部代码从清单文件读取命令的顺序,请导航到
chrome://extensions/configureCommands
,打开控制台并运行
chrome.developerPrivate.getExtensionInfo('YOUR EXTENSION ID',function(result){console.log(result.commands)});