
Delphi LLMozLib Wrapper Jun 04, 2007 10:17
I've been hacking together a Delphi wrapper for LLMozLib. LLMozLib is a static C++ library that lets a developer embed the Mozilla browser in their application. It has been graciously released under the Mozilla Tri-License by the kind Second Life folks at Linden Lab.
So why would you want to use it? Imagine the fully capable Firefox browser in your application without the use of ActiveX/COM. There is a pretty hefty set of runtime files/folders (~15mb) that must be installed within the application directory, but we're talking about a full fledged browser, with javascript support, etc.
I'm developing an application that needs to be able to run off a USB drive and it needs to run in a controlled manner (i.e. cache and history stored on the usb drive and cleared when desired). This might be a bit of an unusual requirement, but its the one I'm imposing. ![]()
Anyway, it's starting to take shape. I'm using the excellent Graphics32 library to render the Browser display within a Delphi form. It's not perfect, but I've been able to support some nice things like the mouse wheel (sort of..lol). In typing this blog entry though, I've noticed I still have work to do with capturing some of the ctrl key combinations (at least ctrl-c and ctrl-v works!). ![]()
The main downside that I can see is that at this time LLMozLib is pretty CPU intensive since it relies on full view rendering. IOW, there is no optimization of sections for the display. There is talk on the uBrowser Google Group about reworking this.
Also, in order to display fancy Web 2.0 Javascript or Flash animations, there are no "Invalidate" type events, thus on pages that require that, I use a timer to constantly repaint the page. It's not bad visually, Graphics32 doesn't flicker one bit, but it does chew up CPU cycles. I'm hovering at about 7-15% for one of my CPU cores as I write this using 200ms refreshes. Hey what else are you going to use your additional cores and fancy graphics cards for? ![]()
If you're interested in a somewhat polished component and some simple documentation on how to use it in your Delphi apps, comment here or send me an email. If there's interest, I'll see if I can free up enough time to make it consumable for the greater Delphi community beyond what the MPL requires.
Write a comment
- Required fields are marked with *.
Posts: 7
Reply #4 on : Mon November 24, 2008, 02:28:32
Posts: 7
Reply #3 on : Sun June 15, 2008, 03:40:09
Posts: 7
Reply #2 on : Wed April 09, 2008, 02:56:59
Posts: 7
Reply #1 on : Tue March 25, 2008, 19:31:04








Posts: 7
Reply #5 on : Sun December 14, 2008, 00:31:08