The nsIControllerCommandTable already assumes it's an
nsControllerCommandTable as it has infallible casts. Similarly,
nsIControllerCommand doesn't need to be scriptable.
This is in preparation to expose a global list of always-enabled
commands for the IPC code to use and avoid sending back and forth.
Differential Revision: https://phabricator.services.mozilla.com/D263807
Most changes are automated. Relevant bit is dom/.clang-format. I had to
manually disable clang-format in a few places where importing external
files and so on that aren't self-contained, and fix a couple includes /
forward declarations.
Differential Revision: https://phabricator.services.mozilla.com/D256800
`nsIControllerContext` isn't implemented with JS even in comm-central nor
BlueGriffon. Therefore, it can be a builtinclass.
Additionally, it's `init()` returns always `NS_OK`, and always called with
`null` from JS, and always called with an instance from C++. So that its the
only implementation, `nsBaseCommandController` can have 2 constructors which
does what `Init()` currently does.
Differential Revision: https://phabricator.services.mozilla.com/D25728
`nsIControllerCommandTable` isn't implemented with JS even in comm-central nor
BlueGriffon. Therefore, we can make it a builtinclass.
Additionally, it's inherited only by nsControllerCommandTable. So, all users
in C++ can treat the concrete class directly.
Differential Revision: https://phabricator.services.mozilla.com/D25727