control create mozbrowser iframe maintain app life cycle gen screenshots redirect mozbrowser events orientation control layout control error handling visibility control web activities management web app management manage homescreen manage ftu
• (Mostly) Standalone library to create a webapp instance. • Each appWindow instance maintains its own states and display proper UI according to these states.
are having some more complex rules; for instance, a chaining activities are all foreground. • Page visibility is particially impacting the process priority. • The timing of visibilitychange was bind to transition states.
orientation requested by screen. lockOrientation() ◦ System app does not being involed too much in this progress but is expected to. ◦ What if lock orientation during transitioning? • Query by screen.mozOrientation
specific request from the appWindow. Their only dependency is the appWindow who launches/instantiates them. M M M M M M HW M M M M M M At W M M M M M M submodule
related events to maintain the state and perform the transition. • States: opened/opening/closed/closing • Transition state should be standalone from other states.
Manage the interaction between window instances • Events happens inside an appWindow is delegated to the appWindow itself. • Interactions involved multiple appWindows needs the manager to decide what to do.
to deal with launch request from the gecko(system message) or the user. • Each AppWindow instances has a child window factory to deal with launch request from the app.
ParentWindow is killed ◦ The user kills it from task manager. • When an appWindow is killed inactively by gecko due to OOM or crash, it will enter suspend state.
ActivityWindow#A • ActivityWindow#A manages ActivityWindow#B • Only parentWindow/childWindow refers each other; the grandparentWindow(AppWindow#1) does not need to know the state of the grandchildWindow(ActivityWindow#B) • However, kill a parentWindow will kill the childWindow which causes a chaining kill.
admit the request or ignore This is not real now. screen. requestLockOrientation () is open to web content. System app should have the ability to manage orientation request from mozbrowser iframe.