Embedding Mozilla in Mac OS X Cocoa Apps
JimCricket writes "Art & Logic has published a new article: Embedding Mozilla in Mac OS X Cocoa Apps . The author presents a detailed step-by-step guide for Mac OS X developers that want to use Mozilla within their applications."
Why would you embed Mozilla, which is acknowledged to be bloated even by its supporters, instead of Apple's WebKit (based on KHTML, used in Safari)?
WebKit Docs
Could this be done with Web Core as well? I assume it could be. What advantages would Gecko/Moz have over it? I don't really understand much of the technical mumbo jumbo in the article so any enlightenment would be great.
It seems that the basic use for this would be to simply provide app support for all the basic web standards, but what other uses could it have?
I don't even wanna know why you'd want to embed the whole frickin' browser in anything, rather than just the renderer. And if you're going to embed the renderer, then just use the system one in WebCore, based on the KHTML renderer.
I read the article, but don't understand why it would be necessary to embed a whole browser. Why not just the rendering engine? Wouldn't embedding Mozilla create a lot of overhead?
the answer to your "question" is in the FIRST SENTANCE of the article.
i know reading sure is tough, but it prevents you from looking like a fricken moron.
come on, its just a click away... all of your "questions" were indeed what the article talks about. jesus.
Why embed all of Mozilla? I'm positive that for most of these apps, all that would be needed is Firebird...
most of the "kruft" that has "bloated" gecko is in fact the kind of support code that's slowly being added by apple to kthml to get it to support the *REAL* web.
Huh? No, Gecko is over 1 million lines of code, more than 10 times the size of KHTML. Most of that is stuff like their own string and basic container classes. (Why do people feel compelled to write THEIR OWN fundamental library classes? It boggles.)
but just around the corner there are *hundreds* of other sites, already workin in gecko mind you, that kthml is going to have to hack around
Hundreds? Doubtful.
its horribly naive to think that in 1 years time when khtml comes close to approaching where gecko is *now* (not to mention where gecko will be in 12 months) that khtml will still be as light and clean as it is now
Except that KHTML is already superior to Gecko NOW. You seem to have missed that little tidbit.
For most programmers, we are just looking for a way to embed a small HTML rendering system so that we can display documentation, help, or someother hyperlinked document. Quickly too, so that we can easily get back to making a quality application. Gecko is a huge project and if you want to use it as the basis for an application more power to ya.
However, Apple has the edge here with WebCore, you can now make a generic web browser without a single line of C/C++/ObjC code. Using only project builder, Interface Builder and WebCore, you can create a custom browser. It won't have many options, but it's quick and easy. Takes like 10 minutes to get working if you have all the tools installed.
"Except that KHTML is already superior to Gecko NOW. You seem to have missed that little tidbit." sorry pal, you need to do some more research.
You seem to be forgetting the VITAL point that Apple REFUSES to release a new version of Safari, and therefore the WebKit, if it is at ALL slower that the previous version. This is a definate fact that Apple hangs on to dearly and could be why there are still a few places that they need touching. As per WWDC, sometimes coders kind of cheat by optimising another part of the code so that their new code does not slow down the browser but as long as the end result is that the new build runs at least as fast as the previous build, Apple will release it. If it is at all slower than the previous build, Apple refuses to let it out of the closet.
Safari ain't the bee's knees as far as I'm concerned, although I'm using it right now. It's got lots of advantages, sure, but it's still not handling as many pages as Mozilla for OSX. Mozilla 1.4 is fast and stable, and runs on almost everything. Safari is fast and stable and you need to be running OSX to use it.
Explorer is the world-wide de facto standard right now; it's a bad browser with a lot of propritary drek in it, and much more coming down the line, including possibly a subscription service. Why not embed Mozilla in everything? Since it's cross-platform, open source, and pretty good?
How would you rather do your online banking five years from now?
A) With Windows, which charges you $1,000 a month just for the right to use Explorer?
B) With Safari, which comes with a $25,000 entry-level iMac?
C) With Mozilla, which is free, and which will run on almost anything?
Mozilla isn't the be all and end all of browsers, but it's cross-platform, open-source, and runs all right. Nothing to sneeze at.
I noticed recently that there's work going on to embed SDL in Cocoa Apps, here's a link to some sample code:
5 54 35.html
"Mac OS X Cocoa Integration Patch and Sample Code"
http://www.libsdl.org/pipermail/sdl/2003-July/0
In theory, with this in place I believe it should also be possible to embed SDL in Mac OS X wxWindows apps, once the 'GetHandle' functionality is implemented there.
You got any proof of this?
I mean yes, it could be a likely situation, considering how Apple boasts Safari's speed. But then again, it could also be just speculation...
That's kind of the whole point of the Camino Project. Why reinvent the wheel?
mbbac
they explicitly said this at WWDC. Of course, the parent poster ignores the fact that they said they also run compatibility tests on all of the builds, including tests that are more stringent than some of the publicly available tests. I doubt they would break things with their "optimizations" as a result... a broken browser is worse than a slow one.
I remember reading this too, it could have been from Dave Hyatt's 'blog but I can't be sure. As a source of info on Safari it's reliability is as good as anything direct from Apple him being one of the Safari code team et. al.
Don't blame me - this
Yes, the string and container classes are pretty goofy. "Oh no, OpenVMS doesn't have a .rot13 method on it's string class - guess we'll have to implement strings from scratch in Mozilla for every platform"
But - as to *hundreds* of sites with problems - I have ~60 bookmarks. 3 of them are rendered oddly in Safari compared with Moz/Camino. So hundreds doesn't seem that unreasonable.
Apple has made some nice contributions to KHTML - but there are still some problems when it comes to standards support that Gecko doesn't have.
The article isn't about reinventing the wheel. It's about using (dare I say leveraging) Chimera/Camino in other Cocoa apps.
After reading all the comments here I think it's safe to say that mozilla on OS X sux and safari is da shit.
Quite strange as mozilla is quite competent on every other platform.
i know its easy to get confused