Spec:Fast external splash - oosplash
Fast external splash - oosplash
|Last Change||See the page history|
Starting OpenOffice.org takes a considerable time. Splash screen was created to show the progress, but unfortunately, quite an amount of the time is spent on linking - at that time no splash can be shown, and the user is not sure if the application started or not.
To solve it, we create a small external binary with nearly no dependencies, that shows the splash screen immediately, and then forks (starts) the OOo binary itself. Additionally, if there is an already running OOo instance, the splash will directly pass the parameters through the OSL pipe making the 2nd start extremely fast (because the OOo binary does not have to be started at all).
|Reference Document||Check||Location (URL)|
|Specification Process Entry Check||passed||n/a|
|Product Requirement, RFE, Issue ID (required)||available||http://qa.openoffice.org/issues/show_bug.cgi?id=60696|
|Product Concept Document||not available||n/a|
|Test case specification (required)||[available/not available]||<PLEASE ENTER LOCATION HERE>|
|IDL Specification||not available||n/a|
|Software Specification Rules||n/a||n/a|
|Other, e.g. references to related specs||<PLEASE ENTER LOCATION HERE>|
|Quality Assurance||Eric Ward||<firstname.lastname@example.org>|
|Documentation||Nothing to document.|
|User Experience||Does no affect UI.|
Acronyms and Abbreviations
|Acronym / Abbreviation||Definition|
|splash||The small window with logo and progress bar you see when starting the application.|
|oosplash||The small external application that is the target of this specification (which implements splash and execution of OOo).|
See the abstract.
The oosplash implementation uses the same configuration files as the OOo itself, meaning the sofficerc, intro.bmp, etc.
For communication with the OOo binary, oosplash uses 2 methods:
- If the OOo is not started yet, it communicates with it using a file descriptor. The number of the file descriptor is passed to OOo using -splash-pipe=<the_number>. OOo then feeds this file descriptor with the progress as '<number>%' (without the apostrophes, like 60%), or 'end' (without apostrophes). oosplash draws the progress bar according to this number, or exits.
- If there is an OOo instance running, oosplash will pass the arguments it got on the command line through the standard OSL pipe (/tmp/OSL_PIPE_<user_id>_SingleOfficeIPC_<nearly_md5> using the standard OOo way (parameters delimited by '|').
At the moment, this is Linux-only. The code is written so that other unx-like systems should be OK.
The 'soffice' script is modified so that it uses oosplash if exists in the program/ subdirectory.
Nothing to configure.
No changes to the file format.
- Windows implementation is not available.
- The bitmaps must be 24bpp BMP's without compression. If necessary, the future enhancement should be to provide PNG splash images (and do the appropriate changes in both oosplash as well as the OOo itself).