49
EPOC Web Browser Architecture
8.4.6.2 The Web Technology Libraries
The WebTL layer obtains document data, either over the network connection or from a local file,
and converts it into tokens suitable for rendering by the Web engine. It also manages the storage
of data tokens in the Web Cache, which can also be directly accessed by the browser when
displaying pages to the user.
8.4.6.3 Web Plug-In components
Plug-Ins are used for extending the basic functionality of the application in areas such as:
• displaying specific MIME types (such as video images)
• additional URL schemes (such as
ftp: or telnet:)
• additional mark-up languages (such as XML)
• active content (Java applets)
EPOC Plug-Ins are thus rather broader in concept than (say) the Netscape version, which can only
be used for MIME implementations.
Symbian can provide facilities for producing and adding third-party EPOC Plug-In components,
which may need to be implemented at all levels of the Web design.
8.4.6.3.1 WebTL Plug-Ins
WebTL Plug-Ins provide support at the lowest level for new protocols or formats (such as
streaming audio). There is no direct communication between engine Plug-Ins and WebTL Plug-
Ins, and all interaction is handled by the main browser-WebTL API.
8.4.6.3.2 Web engine Plug-Ins
Within the Web engine, Plug-Ins provide additional rendering services and need not necessarily
have a UI component. They are small modules which control a rectangular area of the browser
window, into which they can either render themselves directly or embed other ‘child’ Plug-Ins.
All Plug-Ins are accessed via a registry, which maintains a list of those available and will
dynamically load and unload them as required. Engine Plug-Ins are essentially handlers for either
HTML tags or specific MIME file types. They all support the same generic API to the browser
engine, which supports loading, drawing, printing, event handling and streaming.
8.4.6.3.3 UI Plug-Ins
These augment the user interface, providing suitable control mechanisms for a corresponding
Web engine Plug-in. They are typically responsible for obtaining settings, preferences and other
inputs from the user, with the results being passed back to the engine.