WebCore
Engine is a community driven implementation of GTK WebCore for maemo
platform.

All of these engines can be used with the same Browser UI via the EAL.

2.4 Engine Abstraction Layer

EAL is an abstract interface used by the Browser UI to communicate with Engine.
EAL is not dependent on any engine implementation. Different
browser engines can be used by the same the Browser UI once they provide an adaptation
library that implements the EAL interface. The EAL library is an open source component
developed by Nokia. It is available under MPL license at
maemo.org.
The library is written in C, using the GObject framework from GLib
to provide an object oriented interface.

2.5 Bookmark Manager

BM is a standalone application that provides support for storing,
previewing and retrieving bookmarks. BM uses C-based
D-BUS
interface to interact with the Browser UI.

BM is based on GTK and Hildon frameworks and stores bookmarks as an
XBEL file.

3. Browser Application

3.1 Application interface

The Browser provides D-BUS interfaces to enable 3rd party applications to communicate with it.

This interface is available as a part of MPL library developed by
Nokia and is
available at maemo.org.

3rd party developers can use this interface to control Browser and ask it to load URLs.

3.2 Application extensibility

Currently there are three ways for 3rd party developers to extend the Browser.

EAL – 3rd party developers may develop a new Engine adaptation
library and use it with the Browser UI binary.

NPAPI (Netscape Plug-in API) - rd party developers may create
browser plug-ins to support other media content. Currently WebCore engine does not
support this.

XPCOM (Cross Platform Component Object Model) - 3rd party developers may
modify and enhance web page layout and add support for new media formats by writing XPCOM
components. At the time of this writing, XPCOM components are only supported by the Mozilla engine.

4. Mozilla Browser Engine

4.1 Mozilla Engine Overview

The Mozilla based browser for maemo uses Mozilla Engine (aka the Gecko 1.9 layout engine)
being developed at mozilla.org for inclusion in Firefox 3.0.

Browser Engine makes use of most of the features of the underlying software platform,
including GTK+.

GtkMozEmbed
is used to simplify integration with the GTK based Browser UI.

4.2 Supported web standards

In today's web, where important WEB2.0 and social networking sites developed using
AJAX principles
appear daily, Mozilla Engine will provide
compatibility with the latest web standards. A strong open source community and support from
commercial vendors enable early implementationn of emerging web standards and quick adaptation to emerging
problems and trends.

Most of the latest desktop browser engines provide sufficient support for the
modern web services.
However, Mozilla often delivers support for emerging web standards sooner. For example, Mozilla
supports JavaScript 1.7 while most other engines only support
JavaScript 1.5.

At the same time the Mozilla build used by Mozilla based browser for maemo has some platform
specific limitations: currently
XUL
support is disabled for the sake of better performance.

4.3 Mozilla Engine extensibility

Mozilla Engine Framework is based on Cross Platform Component Object Model
(XPCOM)
concept. XPCOM components can be implemented in JavaScript or C++. There are components
belonging to such core parts of Mozilla Framework like
Gecko Layout Engine and
Necko Network Library, while some of the components are parts of Firefox UI or
introduced as the 3rd party extensions and add-ons. There are
many
components and add-ons developed by the Mozilla community, including commercial companies,
individuals, and open groups.
Most of these components can be used with Mozilla based Internet Tablet Browser though there
is one limitation currently on
XUL
usage. Some of the components which can be easily ported are, for example,
Greasemonkey (an extension for Firefox that allows arbitrary customization of web page look, feel, and behavior)
and odfReader
(Firefox extension that allows of viewing Open Document format files).

4.4 Future standards support

Upcoming versions of Mozilla framework and Gecko layout engine provide support
for new web technologies and standards.
Some of the features, planned to be available in releases of future mozilla.org products
are:

Please note that these are merely items planned for inclusion in the
Mozilla framework and Gecko, to which Nokia has no responsibility and they may not be
available for the Mozilla based browser for maemo. For planned maemo features, please see
the maemo roadmap.