6 Bids

Bid Avg $1,292 USD

Budget $500 - 1,250 USD

Time expired

Project Description


Employer - 6 Reviews
Build a web web browser engine in Java using JavaFX. It should render binary xhtml using the EXI and XHTML standards combined. It should not render any other from of html document.

Minor changes to this may occur and new milestones may be negotiated.

To do this project you can make use of xhtmlrenderer code https://github.com/flyingsaucerproject/flyingsaucer. Note that his project supports pdf and swing but not JavaFX. There may also be other open source project that you can use but the license has to be compatible with LGPL.

This is not about creating a full browser so make a very simple UI for testing purposes. It need to be a fully functional browser but UI elements outside of the xhtml renderer do on need to look good.

Milestone 1:
Create a OpenEXI-based tool that translates text-baxed xhtml to EXI xhtml and vise versa. You can use a tool like jTidy to support a wider range of html/xhtml syntax and then OpenEXI to create a binary document. when used to convert from binary to text it should output standard xml which may differ from the original document.

The OpenEXI project probably has documentation on how to do this using a combination of OpenEXI and another XML library.

Milestone 2:
Build a xhtml DOM tree builder and inspector that use OpenEXI to display binary xhtml documents. Use a JavaFX Tree View for this. Simple editing of objects and their attributes should possible. Use the JavaFX library for UI creation. This must work in both windowed and headless JavaFX. Such as Raspberry Pi where running headless JavaFX has no access to X11, AWT or Swing.

It should be able to download from Internet as well as using file://

Milestone 3:
Add support for CSS for the tree builder and inspector/editor.

Milestone 4:
Build a html renderer out that renders DOM trees from Milestone 2+3 as web pages. It should have all the features of xhtmlrenderer except for only supporting EXI xhtml and JavaFX UI. Like Milestone 2 this must also work on headless Java. You should have various xhtml-compliant web pages to test this with. The inspector should at this point be a tool that open in a separate window
On Headless Java separate windows should of course be rendered inside the same frame buffer. And on windowed Java it should be possible to configure either in-window windows or independent windows. This configuration can at this point be a constant in the main application that cannot be changed after compilation.

Do not pre-render any content but if the download take more than a few seconds, percent a percent bar. Download all images and other content before rendering as you will need to know their size. I don’t want things jumping around as they do in other browsers. Under the percent bar display the number of files to download, the number of files downloaded and the filename of the currently downloading file. The HTTP download code in Java supports proxies so do make sure that it works with that. Proxy should also be a constant in the browser but passed to the engine as a setting during initialization.

The engine should be in a component (xhtmlrenderer) And settings should be passed to it during initialization using getters and setters.

State should be saved in a serializable data type and data in another. It should be possible to save both to disk and restore to it’s current state. This include details like selected components such as if the user is typing into a textbox it it should be restore with readiness to type in the exact same location. Also scrollbars etc should be restored at their current position. Using this to persist for example during an update should only make the browser disappear for a while and return with the exact same state. You do not need to do this for the navigation UI as that will be rewritten to be prettier in another project. I write this in this milestone because it requires you to design the component right in order to achieve this.

At this milestones completion it should handle everything that flying saucier is able to handle.

Milestone 5:
Add support for HTML Video and Audio tags using the media API provided by JavaFX. As xhtmlrenderer is quite old I suspect it does not support this. This built in media player should have a bar with stop/start etc and also be able to play in full screen. Using the latter option it should exit full screen on pressing the esc button. In addition to full screen it should also have a full window mode where it is rezised to a proportional subset of the window. In both full screen and window mode it should not be stretched but if the video and screen/windows resolution doesn’t match the extra space should be black-padded. If possible with media should be streamable rather than fully downloaded before rendering.


Web Developers

  United States


Freelancer - 1 Review


"We can do this job very well. Pm us for more details"

$1,250 USD


  United States


Freelancer - 9 Reviews


"I can get this job done for you perfectly. Please chat more"

$1,000 USD




Freelancer - 0 Reviews

"Thank you for giving me a chance to bid on your project. i am a serious bidder here and i have already worked on a similar project before and can deliver as u have mentioned
I have checked your requirements.i have right skills to work on this assignment
my award = superb result = happy client. In a good partnership, good results happen. Good cooking makes good eating!BWe consider our client as our partner."

$1,250 USD




Freelancer - 0 Reviews

""Hi, Hope you are doing well! Thanks for sharing your project requirement with us. It will be our great pleasure to work on your project. I have checked your requirement, yes we can do it, because we already work on similar requirement in past. We have right skills to work on this assignment. . We will complete the work as per requirement Also my team working on same project"We have read out every thing about your project . my skype is techsolutions3"

$1,250 USD


  United States


Freelancer - 0 Reviews

"Not so many people can do these job, but for the few of us that knows what these job entails knows that it wouldn't be easy to do..

if you need a perfect work don't look at my price because it is worth it, PM lets chat

$1,500 USD


  United Kingdom


Freelancer - 0 Reviews

"i can do this job for u


$1,500 USD

Type of Work

Websites and software


Raspberry Pi