Spec:Fast external splash - oosplash
Fast external splash - oosplash
Specification Status | |
Author | Jan Holesovsky |
Last Change | See the page history |
Status | Standard Help |
Abstract
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).
Contents
References
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> |
Contacts
Role | Name | E-Mail Address |
Developer | Jan Holesovsky | <kendy@openoffice.org> |
Quality Assurance | Eric Ward | <sled10guy@openoffice.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). |
Detailed Specification
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 '|').
Help | User Interface Element Templates | Example Spec
Migration
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.
Configuration
Nothing to configure.
Help | Configuration Table Template
File Format
No changes to the file format.
Help | File Format Table Template
Open Issues
- 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).