Shell tracking and provision of splash & last frames for Apps

Registered by kevin gunn

This blueprint is to track the efforts to do 2 things. First, to provide a splash screen common to all application launches in order to provide a deterministic user experience for first frame result on screen. Second, to track the last frame for apps losing focus to show upon applications potentially returning from suspended state or being killed by oom manager.

Blueprint information

Status:
Not started
Approver:
kevin gunn
Priority:
Undefined
Drafter:
Unity Team
Direction:
Needs approval
Assignee:
Unity Team
Definition:
Approved
Series goal:
Accepted for utopic
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

assumes to built on Qt comp plugin to mir

for reference
https://blueprints.launchpad.net/ubuntu/+spec/appdev-1311-sdk-appstartupsplash

Saviq, May 9th:
We already have an image provider for the app, I think it would be best to build all this into it.
Responsibilities:
- construct (and cache?) splash screens for apps where no screenshot available
- save screenshots to disk when app unfocused
- load screenshots from disk when requested (or will we keep them in memory across a unity8 session anyway? for the spread? - probably wasteful if app is running)
- clear the stored screenshots on app exit

We'll need the ApplicationItem (or whatever the component is named) to wrap the screenshot and the actual app surface and alternate between them as required.

(?)

Work Items

Work items:
alter as needed for Qt comp/scenegraph, app tracking list within shell for recent apps : TODO
create splash screen to show & show it upon app launch, if no "last frame" available in app list : TODO
alter screen shot tracking of "last frame" for apps loosing focus using Qt comp/scenegraph : TODO
show "last frame" upon app regain of focus, where app 1st render will take over : TODO

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.