Haiku Web Browser

Two points relating to the last few posts:

  1. Firefox is a bit shit
  2. I don’t think this community should hold any delusions of breaking the Windows monopoly over the next few years!

Since we’re not really here to take over the world or make money, I say we focus on building the best damn desktop OS around instead of pandering to a potential user base by relying on the familiar second or third best (if it was possible to port MS Office and IE, should we?). The way I see it, making that OS involves making an incredible web browser that feels well integrated and usable. Firefox isn’t and won’t ever be because it has to be cross platform and support plug ins, themes and what not. I find I end up using Net+ 95% of the time because it doesn’t feel like an app, it’s a natural extension of the rest of the interface (like StyledEdit, BeMail and People are). I can close the last Net+ window and then remember that I needed to do something else and five seconds later I’ll be back online looking at the page… but woe be unto him who closes the last Firefox tab! FF is a clunky beast of an app and far too hungry and complex for what a browser should do: display web pages.

Keep it elegant and keep it light is what I say.

-Paws

snes_rocks wrote:
Assuming that the Haiku browser will be implemented as a special BView, how will developers control it? I would assume that the basic BHtmlView would be created by passing a basic HTML page, in a really large string, to the constructor or similar. However, how would a developer pass externally linked files, like CSS stylesheets and Javascript snippets? For most things, it would probably be possible to just make a single file HTML, such as for help pages, but most Internet web pages aren't made like that. So how would this BHtmlView be passed external files? --Walter Huf--

Yay, a SANE POST.

I would have some sort of simple API, where the component is given a URL/Filename, or some sort of file handle. Then component then goes off and retrives/parses/rendered that file, and downloads all other required files into a cache - and similarly parsing/rendering them too when appropriately designated by the main file’s parser.

One of my biggest goals is to write a Web Browser, and a layout engine is a huge step in the right direction. I have been planning (As in thinking about, and sketching some designs) of making one for almost 6 months (Give or take a bit).

My two biggest problems are procrastination and a lack of a Be OS. I am unable to compile Haiku (Or BeOS applications) on Windows or FreeBSD, and i am unable to run BeOS R5 on my main computer (With or without BONE). BeOS does run on my laptop, but it has no means of communication from the outside world - It’s USB is busted, it has no supported ethernet (It has a PCMCIA Card, that i’ve never gotten to work), and it doesn’t have a CD Burner. Also, i can’t afford Zeta 1.1.

I am slowly trying to get Haiku to compile on FreeBSD (I’ve built the kernel, but the current problem is the kernel.so wont link).

But anyway, as soon as i can i will start to develop so sort of BWebView. (Not BHtmlView, which in my view is redundant since it’s outdated and should be shunned upon).

This is how KHTML Looks (It’s a bit complex IMHO):
http://developer.kde.org/documentation/library/3.4-api/khtml/html/classKHTMLPart.html

And KHTML’s site:
http://khtml.info/wiki/index.php?title=Main_Page

noisetonepause wrote:
Two points relating to the last few posts:
  1. Firefox is a bit crap
  2. I don’t think this community should hold any delusions of breaking the Windows monopoly over the next few years!

Since we’re not really here to take over the world or make money, I say we focus on building the best darn desktop OS around instead of pandering to a potential user base by relying on the familiar second or third best (if it was possible to port MS Office and IE, should we?). The way I see it, making that OS involves making an incredible web browser that feels well integrated and usable. Firefox isn’t and won’t ever be because it has to be cross platform and support plug ins, themes and what not. I find I end up using Net+ 95% of the time because it doesn’t feel like an app, it’s a natural extension of the rest of the interface (like StyledEdit, BeMail and People are). I can close the last Net+ window and then remember that I needed to do something else and five seconds later I’ll be back online looking at the page… but woe be unto him who closes the last Firefox tab! FF is a clunky beast of an app and far too hungry and complex for what a browser should do: display web pages.

Keep it elegant and keep it light is what I say.

-Paws

Keeping it elegant and light – Is what i agree with. KHTML or a native layout engine is the way to go. Gecko isn’t.

Oh and BTW: Haiku wont have that large a user base to start with, but it will grow many times faster then Linux or *BSD. People want an alternative to Windows they can trust – Let’s make one safe, elegant and easy to use desktop alternative.

Gecko can probably be light, it’s just that the Mozilla/Firefox/Thunderbird apps arn’t and the layout of the project makes it hard to see how to strip it down to the parts you want. I don’t think an embedded version will be bad, although it will not be perfect either.

Skoe - I’m really talking more about implementation, as in how it presents itself to the user and works with rest of the desktop.

The case for KHTML/Gecko against a new engine is that we’d perpetually be playing catch up, and the case against Gecko for KHTML is apparently it’s more insulated and thus easier to port. I wouldn’t know where to start if I were to do this myself but this is something I feel strongly about and I hope that my programming skills soon progress to a level where I can do something useful.

-Paws

Ah,

And from what i hear, Gecko would be alot harder to port due to it being Objective C. Qt is quite similar to the BeAPI…

skoe wrote:
Ah,

And from what i hear, Gecko would be alot harder to port due to it being Objective C. Qt is quite similar to the BeAPI…

Gecko isn’t written in ObjectiveC… and its already ported, more or less. What do you think Firefox is running on?

The question is how difficult it would be to rip gecko out of firefox? It’s not really ‘meant’ for that, is it? KHTML is apparently quite separate from Konqueror.

tqh wrote:
Gecko can probably be light, it's just that the Mozilla/Firefox/Thunderbird apps arn't and the layout of the project makes it hard to see how to strip it down to the parts you want. I don't think an embedded version will be bad, although it will not be perfect either.

Gecko by nature is heavier.

And in response to keep it light — KHTML is light but powerful, HkWebView could be powered by KHTML as easy as its own engine. I am ALL FOR INTEGRATION, but I think that KHTML as base is the lighest and most feature-complete wya to start (not in objective-c, as I think I may have introduced to to the topic in a tangent — I want to learn it for my own reasons).

I totally aggree that Haiku will grow faster than linux — it is not meant to be a poweruser os — it is a user os that, like firefox, will have good features and show a better alternative to windows on the x86 platform.

noisetonepause wrote:
The question is how difficult it would be to rip gecko out of firefox? It's not really 'meant' for that, is it? KHTML is apparently quite separate from Konqueror.

Keep in mind that Gecko has already been "ripped" out of Mozilla Suite in order to build FireFox…

This is admittedly off topic, but:

I’m a linux user, and was having a lot of problems with Firefox crashing on pages using flash. So, I started using Opera on linux-- I love open source but i’m not a fanatic, if a closed source app will get the job done better then i’ll use it, especially if its also totally free.

Eventually I found a website that described the problems I was having, and offered a fix (editing some X.org file…don’t really remember). Stability is much better now, but I still really like Opera and use it sometimes too (right now!). I know there was a BeOS version of Opera back in the day, and I also remember reading some statement by someone at Opera about how with BeOS dying, it was no longer worther keeping alive.

But, Opera seems to be fairly portable (supported on Windows, Linux, MacOS, Solaris, FreeBSD, and a host of mobile platforms), so how popular do you think Haiku has to get before we’ve got a chance of seeing Opera ported? Would the seemingly large number of Firefox haters out there use it over Firefox?

If Opera was availble, would it somewhat stifle the motivation for a native browser project (as in, is the motivation for such a project a genuine desire for a native browser, or just something that isn’t firefox)

red_devel wrote:
This is admittedly off topic, but:

I’m a linux user, and was having a lot of problems with Firefox crashing on pages using flash. So, I started using Opera on linux-- I love open source but i’m not a fanatic, if a closed source app will get the job done better then i’ll use it, especially if its also totally free.

Eventually I found a website that described the problems I was having, and offered a fix (editing some X.org file…don’t really remember). Stability is much better now, but I still really like Opera and use it sometimes too (right now!). I know there was a BeOS version of Opera back in the day, and I also remember reading some statement by someone at Opera about how with BeOS dying, it was no longer worther keeping alive.

But, Opera seems to be fairly portable (supported on Windows, Linux, MacOS, Solaris, FreeBSD, and a host of mobile platforms), so how popular do you think Haiku has to get before we’ve got a chance of seeing Opera ported? Would the seemingly large number of Firefox haters out there use it over Firefox?

If Opera was availble, would it somewhat stifle the motivation for a native browser project (as in, is the motivation for such a project a genuine desire for a native browser, or just something that isn’t firefox)

Interestingly enough, Opera pretty much started on BeOS… but it hasn’t been maintained since 3.x. Until Mozilla Suite/FireFox came along, Opera 3.62 (?) was pretty much the only viable browser option on BeOS besides Net+…

I’m not sure if they’d consider a new port of it to BeOS/Zeta/Haiku - but I guess it’s possible given their willingness to support just about any platform (embedded devices, etc).

Looks like they still have a forum for it:

http://my.opera.com/community/forums/forum.dml?id=7

Hmm, guess there was an Opera 2.1 for Windows before it ever existed for BeOS… oh well, BeOS was the first place I ever saw Opera :wink:

KHTML: no objective C. Qt dependencies.

WebCore: has objective C. Qt dependencies resolved in a C/Obj. C layer. I forget what Apple named this.

Gecko: refers to the HTML rendering engine. Even though FireFox and SeaMonkey work in BeOS, certain aspects need to be re-written so that Gecko can be embedded into native applications. Embedding basically consists of creating a libgecko.so that contains a proper interface that native applications can utilize.

2~3 years ago, when i naively attempted to continue even earlier attempts:

Gecko was more standards compliant, better error-handling but had a much larger code base(~50mb) and was primarily single threaded.

KHTML/WebCore have a much smaller code base (~5mb) and is multi-threaded at the cost of less standards compliancy, a smaller developer base, and WebCore is written in Obj C, which most BeOS/Haiku/Zeta devs don’t do.

If these discussions materialize into coding attempts,
I’ll gladly help out, especially if there’s relatively easy-enough-to-learn stuff that can be done.

MYOB wrote:
skoe wrote:
Ah,

And from what i hear, Gecko would be alot harder to port due to it being Objective C. Qt is quite similar to the BeAPI…

Gecko isn’t written in ObjectiveC… and its already ported, more or less. What do you think Firefox is running on?

I think i was thinking about WebCore :P.

KHTML Seems to be the more viable option…

Gecko’s heaviness isn’t that big, although probably heavier than KHTML.

There is an embedded project in Mozilla, but no one so far has finished of the BeOS-code to work with the embedding. I more or less know what needs to get it working. In fact I have had it running with a fast hack just to prove that it isn’t that far of. It didn’t render anything but it starts and initializes correctly.

The problem with the attempts so far has been that the messaging backbone was never started with the code-paths done in embedding, so with a hack to force it started embedding does run. I have an old screenshot of this.

I would be working on it if I had any time, but work and Real Life is keeping me busy. My priority has also been on Firefox before embedding, but I think that priority might change.

Here’s a link on Gecko embedding: http://developer.mozilla.org/en/docs/Embedding_Mozilla

If I had to choose the easiest way to get somewhere, and probably easier to maintain due to the close relationship with other Gecko-based products and Bezilla-teams work on those project: Gecko

If I had to choose what would be most ‘Be’-isch and in style: KHTML

I won’t be working on setting up the autoconf/make structure of KHTML to do the port though. That’s one thing that’s sure. Autoconf/make is so ugly. Someone started working on setting up a Webcore-project for BeOS, if that code could be rescued we would at least be of the ground…

Whilst looking at berlios.de it appears that a project has been setup (by the team of lemon and fyysik) to port KHTML to BeOS/Haiku.

http://developer.berlios.de/projects/nirvana/

Regards
Simon Kennedy

stonewolf wrote:
Whilst looking at berlios.de it appears that a project has been setup (by the team of lemon and fyysik) to port KHTML to BeOS/Haiku.

http://developer.berlios.de/projects/nirvana/

It’s lemon’s project, but he wanted more devs. I mentioned it earlier in this thread. Fyysik doesn’t know much more than I do, unfortunatly. Check the google-group for more info: http://groups.google.com/group/nirvana-browser

Edit: Fixed quote

wow flames!! ;D

youre all wrong…if you dont go with the flow you wont have any friends…

i disliked some people’s posts because it is full of that DO IT MY WAY OR DIE! ideology ;p

my post will probably annoy some people. but look closely. the WORST way to make friends is to ask them to play with you and you make the rules. you wont have any friends.

i do not want PERFECT SOFTWARE, i want MY SOFTWARE!!! stupidness is good. stupidness means youre learning. i want the freedom to choose my own crappy software…

beos attitude is very xenophobical by the way (or osophobical). like why nameing everyting be? beMail, beThis, beThat. dogmas are very dangerous. thats like puttign SS in front of everything…

AND I STILL LIKE FIREFOX, despite the burning posts agaisnts it…i can feel the heat right now…;DDDD

hehe…and if you contradict me you will all go to hell;DDDDD (thats another ideology)

fanton wrote:
AND I STILL LIKE FIREFOX, despite the burning posts agaisnts it..i can feel the heat right now......;DDDD

I love firefox too :slight_smile: - but I’m mostly a windows user ATM.