Splash screen support in Java Plug-in Engineering Specification

RFE: 4506266

Author: Margarita Fisher
Date: March 22, 2002


1 Project Description

1.1 Overview

The gray box needs to be customizable. Java Plug-in started a while ago with a plain gray box for the applet. In later versions the gray box was updated to display debugging messages to provide some sort of feedback to the users that applet is loading and not hanging.

In the latest release of Java Plug-in we added progress bar to display applet download progress; tags to specify background/foreground and progress bar colors; tag to provide a custom message instead of usual debugging=confusing messages.

Every one of these changes has its own group of supporters. Latest updates to the gray box overwrite legacy behavior and this causes complaints from users that got used to the old gray box behavior and liked it.

We need to make gray box more customizable and give it some default behavior that would be acceptable to regular users and would not change from one release to the next.

1.2 Project Dependencies

N/A

1.3 OS and Browser Compatibility and Interoperability

This feature will be available on all platforms and browsers. Older versions of plug-in will not recognize these options.

1.4 Performance and Scalability

N/A

1.5 Security

N/A

1.6 Internationalization (I18N) / Localization (L10N)

N/A

1.7 Packaging

N/A

1.8 Usability

Plug-in documentation will have to be updated with explanations on new features and some examples on how to use them. Developers would have to use special html tags to enable non-default features for the gray box.

1.9 Quality

1.9.1 Unit or Functional Tests to be Delivered
Several test cases will have to be created to test default behavior of the gray box as well as special test cases to test new features.
1.9.2 Additional Testing Notes
Make test cases to test default behavior for situations when something goes wrong (i.e. image file not found, applet does not load, etc.)

2 Technical Description

2.1 Architecture

There are three states that the JPI's "Gray Box" can be in:
* downloading Java code
* running Java code
* failing to run Java code

1. Downloading Java code
By default, we want to provide a simple yet informative feedback to the consumer users that content is being retrieved for them. In all cases, JPI's Gray Box will not provide a border to delineate the area occupied by the Java content. (A border might clash with the content when it gets loaded and begins rendering.)

1.1 Default
A small animated graphic will be placed in the upper left corner. This graphic will be 24x24 and be 6 pixels from the top and left sides of the area. If the whole area occupied by JPI is less than 36x36, display nothing for feedback. The graphic will be provided later by UE.
The status bar will display "Loading Java content..." when mouse points at the gray box area.

1.2 Custom image
The developer also has the option of providing a custom graphic. Special tag for the image is:
IMAGE = "my_image.gif"
If a custom graphic is provided, it should be the same size as the area JPI occupies. If these sizes do not match, the graphic will be placed in the upper left corner of the area specified for JPI. If it's too big, part of it gets chopped off. If it's too small, there's some extra white space around it. If it fits perfectly, great.
The image file should be either GIF or JPG file format. It should reside in the same directory where other resources for the applet are residing, i.e. if there is a "CODEBASE" provided, this image file should be in the codebase directory. The image file for the splash screen should not be in a jar file with other resources for the plug-in, since we want to display it while downloading resources for the applet.
The status bar will display "Loading Java content..." when mouse points at the gray box area.

1.3 Progress bar
The developer can also request that a progress bar be provided instead of the default animated graphic. This progress bar will horizontally fill the area except for 6 pixels on the right and left. Place the text "Loading Java content..." above the progress bar and left aligned with it. Progress bar is purple by default.
Special tag to turn the progress bar ON:
PROGRESSBAR = "true"
Once again, the status bar displays "Loading Java content..." when mouse points at the gray box.

1.4 Applet text message.
The developer can also customize the text. If a new text string is provided, it is utilized for the progress bar, and status bar.
HTML tag to specify message string:
BOXMESSAGE = "Message string here."

1.5 Custom colors for gray box.
The developer can provide custom foreground, background and progress bar colors. By default, the foreground and background colors are obtained from the HTML page occupied by the JPI.
HTML tag to specify background color: BOXBGCOLOR = "153, 153, 204"
HTML tag to specify foreground color: BOXFGCOLOR = "red"
HTML tag to specify progress color: PROGRESSCOLOR = "33FF33"
Note: Three color tags above are shown using different available formats that are supported by plug-in. See usability document on color specifications.

The precedence order for these variables is:
1) If no parameters are provided, the default visualization is used.
2) If a custom graphic is provided, the "custom graphic" situation is used.
3) If a progress bar is asked for, the progress bar is displayed with the default text and color.
4) If custom text is provided, the progress bar is displayed with the custom text.
Custom colors can be provided for any situation. (For some situations, it is a bit unclear what these colors would affect.)

2. Failure
In the event that the code does not download or run cleanly, the JPI's Gray Box should display error information similar to other web content/media types.
The area occupied by the JPI will have a single pixel border (using the foreground color). A small "broken" graphic will occupy the upper left corner of the space (as it is defined above for the default case). Remove the current test string from the status bar and provide no new text string.
Right mouse button click on the applet's area will popup a menu with an option to open Java Console.

2.2 Exported Interfaces/API

N/A

2.3 Imported Interfaces/API

N/A

2.4 User Interface



3 Marketing

3.1 Justification

3.2 Customer Request

We have more then 100 votes for this feature from different customers.

3.3 Competitive Analysis

This feature will make Java Plug-in more user-friendly.

4 Management and Planning

4.1 Scope/Priority

Size of this effort? Small[] Medium[X] Large[]

What is the priority? 1[X] 2[] 3[]

4.2 Target Release

Hopper

4.3 Resources

4.3.1 Development

Margarita Fisher

4.3.2 Quality Assurance/Testing

To be determined.

4.3.3 Documentation

4.3.4 Technical Support

4.3.4 Special Hardware/Software

4.4 Schedule

Start Date End Date Activity Owner Status
         
         
Complete Started Not Started Difficulties Trouble


Appendices (as needed, suggestions below)

A. Background Information

B. Interface Specifications

C. Notes and Additional Details

D. Miscellaneous

E. Tracking

E.1 Final Webrev

E.2 Bugtraq
Bugid P S Subcategory Type Engineer Synopsis
4506266  misc  rfe  mfisher  RFE: Splash screen support in Java Plug-in 
4640438  other  rfe  mfisher  RFE: Make grey loading box for Applets customizable 



Revision History

Date Version Author Description
03/22/2002  1.0  Margarita Fisher  Initial draft