Spec:Fast external splash - oosplash

From Apache OpenOffice Wiki
Jump to: navigation, search

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).

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

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).
Personal tools