Yes, they are System app things. But that is only way I know to make sure app is ready(app is rendered and show on screen) to be controlled by Marionette.

`frameClass.indexOf('render') !== -1` means the app is render.
`el.parentNode.getAttribute('transition-state') === 'opened'` means the app is showed on the screen.

The Python version is also based on the System app logic, please refer to https://github.com/mozilla-b2g/gaia/blob/master/tests/atoms/gaia_apps.js#L232-L269.

So I think we should do this.
James, how do you think?