|
Lobo: Java Web Browser
Lobo [download] is an open source web browser
that is written completely in Java.
Lobo is being
actively developed with the aim to fully support HTML 4, Javascript and CSS2.
Lobo also supports direct JavaFX rendering.
The general goal of the Lobo browser effort is to produce a browser
that is fast, complete, easy to extend, feature-rich and secure.
Download
Please visit our download page to obtain
the recommended version of Lobo installer, or the
SourceForge
download area
of this project to obtain other released versions of the browser, and ZIP-packaged
distributions.
Why a Pure Java Browser?
There are a number of advantages to be derived from a browser that is written in
Java as opposed to a language compiled into native code, namely:
- Security.- In principle, a Java program is less suceptible to
certain types of vulnerabilities such as a buffer overflow attack.
Java's security model can also allow web content to have access to a complex
set of APIs, except in a controlled sandbox.
- Extensibility.- A Java-based application can be extended
via powerful cross-platform plugins. Consider the difference this
has made for Java software such as jEdit and Eclipse. (Lobo already has a
plugin API).
- New paradigms.- With the help of Java we can implement new powerful
cross-platform and secure mechanisms to represent web content. As of version
0.98, JavaFX and
Java are first-class citizens
in Lobo, on par with HTML.
- Portability.- This is the obvious advantage of a pure Java
application.
Current Status
Version 0.98 of Lobo still has a number of gaps in the
rendering engine, but improvements are occurring all the time.
Browser features related to navigation,
cookies, HTTP authentication and so on are functioning well at this point.
We will continue to work on
incrementally improving the rendering capability primarily based on user feedback.
Some of the supported features and limitations are listed below:
- Plugins.- A extensions (plugin)
capability was released in version 0.97.
- Browser features.- Starting with Lobo 0.97 several
features you would expect to find in any browser are available, such
as HTTP authentication, SSL, caching, preferences, bookmarks, navigation menues,
a download GUI, etc. There are also some unique and advanced features we have started to introduce,
e.g. a different type of bookmarks
system based on tags, with search; a directory menu, separate to bookmarks;
a list of recent hosts visited; multiple startup pages; search engines;
page services such as Wayback Machine; etc.
- General rendering.- Incremental
rendering was implemented in 0.96.2. This also allows
Javascript-driven animations to occur.
- Javascript.- The Javascript engine
is functional, but not all APIs
are complete. The AJAX
class XMLHttpRequest was implemented in 0.96.2. Basic
element events are supported.
- HTML DOM.- A good portion of the
HTML DOM Level 2 interfaces are implemented. Some attributes
and methods may not be functional.
- CSS2.- Style tags, style attributes
and class attributes are functional, but not all
style properties are implemented at this point.
Property overriding (cascading) is functional.
Absolute positioning, overflow (scrolling) and other
such features have been implemented. Support for
different types of selectors is currently limited.
The only pseudo-element supported is
hover.
The CSS parser
we use is fairly strict, so some existing CSS
documents may not parse.
- Forms.- POST and GET are functional.
POST reloading is not supported (and we're not sure
we want to support it). All input types, including
file, are
currently implemented.
- Tables.- There is good support for
tables. Some features such as the table caption and
character-based alignment are still pending.
- Frames.- There is support for both
IFRAMEs and pages consisting only of framesets.
- Lists.- Lists are almost fully functional,
except for advanced configuration via CSS.
- Text formatting.- Style properties for
colors, backgrounds, fonts, and text decorations are functional.
Deprecated tags such as FONT, FONTBASE, etc. are implemented
as well.
Rendering Engine API
We provide a separate Java-based
programming library, named Cobra, which
implements the HTML parsing and rendering capabilities of Lobo.
Cobra is also open source.
Browser API
We document Lobo's Java code such that it can be used
as an embeddable browser API.
This API is released under the GPL license.
Plugin API
Lobo supports extensions (plugins) written in Java.
See the Plugin HOWTO page.
Licensing
The Lobo web browser is open source and is released under the terms of the GPL
license. We make the source
code available in CVS.
Contributing
Lobo is work in progress. If you would like to contribute,
please see the source code page
for information on how to set up an environment for development
of Lobo, and on how to submit code patches.
If you have any specific suggestions on improving Lobo,
please don't hesitate to contact us.
Help
If you need assistance using Lobo, please visit
our Help Forum.
Support The Project
|