log in | register | forums
Show:
Go:
Forums
Username:

Password:

User accounts
Register new account
Forgot password
Forum stats
List of members
Search the forums

Advanced search
Recent discussions
- How popular are RISC OS sites online? (News:2)
- AMCS free versions are live! (Gen:10)
- Treasure trove of RISC OS games at JASPP site (News:)
- How popular are RISC OS sites online? (News:12)
- New release of Cyborg from AMCOG games (News:1)
- What development tools do we need ported to RISC OS (News:7)
- Elesar brings back Font Directory Pro for modern machines (News:9)
- Elesar updates Font Directory Pro to 3.21 (News:)
- RISCOS software to download from !PackMan (News:)
- Disappearing websites (News:)
Latest postings RSS Feeds
RSS 2.0 | 1.0 | 0.9
Atom 0.3
Misc RDF | CDF
Site Search
 
Article archives
The Icon Bar: General: Web browsers
 
  Web browsers
  This is a long thread. Click here to view the threaded list.
 
james Message #4039, posted at 14:58, 15/6/2002, in reply to message #4038
Unregistered user
I would actually say that web browsers are a prime candidate for C++ rather than C.

Why? I'd prefer to use C smile.

Crack pthreads and crack STLport and you're there

These are important if you're trying to port a browser, but I think we're talking about writing one ourselves.

The thing I'd like to concentrate on first is actually rendering HTML with CSS, because the current browsers aren't very good at that. If we get it working, networking and a UI can be done next, and Javascript, plugins, frames, etc. later. Libxml (ported by Justin Fletcher) contains an HTML par-ser, so we can use that.

The main thing is that it should be fun grin, and we'll learn from each other and teamwork.

  ^[ Log in to reply ]
 
bluebottle Message #4043, posted at 14:58, 15/6/2002, in reply to message #4039
Unregistered user
I would actually say that web browsers are a prime candidate for C++ rather than C.

Why? I'd prefer to use C smile.

Best language for the job. There is nothing wrong writing it in C at all - or a mix of C and C++.

Crack pthreads and crack STLport and you're there

These are important if you're trying to port a browser, but I think we're talking about writing one ourselves.

That would be interesting to say the least. Threading is vitally important unless you want to go the Galeon (another linux browser based on Gecko) route in that you load everything into memory, lay it out in memory and blat it out in one go. Fine for a SA machine, okay for a RiscStation, but crap for everything else out there.

The thing I'd like to concentrate on first is actually rendering HTML with CSS, because the current browsers aren't very good at that.

Get the framework set out and a working HTML pa**er. Look how long it took Arcweb to get to the final state it was (unfortunately) left in - bloody ages and even then it could not handle tables.

Once you have a pa**er capable of (at least) frames and tables, then plan the next move. CSS and DHTML are not simple. JS is forever evolving and getting screwed by M$ - and would definately *not* be a candidate for a plug in, unless you could do it very quickly - or as a sep. process.

The main thing is that it should be fun grin, and we'll learn from each other and teamwork.

Definately.

  ^[ Log in to reply ]
 
Hertzsprung Message #4045, posted at 14:58, 15/6/2002, in reply to message #4044
Unregistered user Hi everyone

I'm afraid I'm not on the internet at weekends, but I've been catching up on the latest. Sourceforge project has been approved, so http://www.sf.net/projects/netsurf/ now exists smile

I propose C as our language: Is GCC okay for everyone?

Will post some more discussion on here tomorrow

Byeeeeeeeeee!

  ^[ Log in to reply ]
 
moss Message #4046, posted at 14:58, 15/6/2002, in reply to message #4045
Unregistered user
I'm afraid I'm not on the internet at weekends, but I've been catching up on the latest. Sourceforge project has been approved, so http://www.sf.net/projects/netsurf/ now exists smile
Nice one. smile
I propose C as our language: Is GCC okay for everyone?
I would guess GCC is the way to go. I believe we need some debate as to whether C++ has any role in this. (I don't know; I'm not a programmer on this (yet) but some people have brought the subject up.)
  ^[ Log in to reply ]
 
johnstlr Message #4049, posted at 14:58, 15/6/2002, in reply to message #4048
Unregistered user Hmm plenty of enthusiasm, seemingly little experience wink

Some comments:

As Chris says stop worrying about the name. The name will only represent it in sourceforge. You can change the name later and you can always redirect any sourceforge homepage to a proper domain name once the name has been decided.

There are a lot of comments about how to do things and potential structure for the software. I agree with Chris that it should be as modular as possible but I don't agree with anything that does "polling". There's no need for this and it simply wastes processor time. The whole thing should be event driven. This can be tricky in C because it doesn't mesh well with RISC OS' event notification mechanisms. In practise your only realistic option is probably to run everything off the application's message queue and design the architecture so that it can work effectively with one thread.

In order to achieve this you have to bear certain things in mind. Firstly you need to be able to register for network events in a manner so they will get passed into your message queue. Judging by what I've read here I wouldn't even bother trying this one yourselves. Instead track down the socket**tch module and save yourselves a heap of time. Note that you absolutely cannot use blocking network calls because they block the whole OS. What this means is that you'll have to structure your network code in such a way so that it can cope with the fact that it may take several network events to get an entire message. One obvious method for this is to have a state driven message reader which keeps track of how much of each message it has read. Given that HTTP opens a separate connection for each element of a web page you'll probably want to be able to instantiate multiple message readers. They could be C++ objects or abstract handles in C. BTW, having read this does anyone still think pre-emptive multitasking and multi-threading is a bad thing? wink

Potentially you could use a similar technique to make everything modular - write the core elements as modules and just use the application to coordinate them using the message queue. Then again if you're going to do this you either aren't going to use C or you're using Norcroft.

Rendering is tricky, but I don't agree that multi-threading is a must - in fact I think that a multi-threaded renderer would be a nightmare to implement. I rather suspect that Gecko places complete network messages (read using multi-threading) onto a queue, or page data structure, which is rendered by the renderer when it changes (note, no polling). I suspect you could do something similar providing you create a renderer that can cope with not all elements being present (actually you'll have to do this because the user should have the option to turn off things such as pictures). As each full message is read you shove it in a data structure and redraw the window. Obviously progressive rendering of GIFs and JPEGs will need a bit of thought - I wouldn't claim to know the best of way of dealing with that.

One suggestion has been porting Gecko. From a brief look at the general architecture docs for it you'll probably need some form of pre-emptive multitasking, multi-threading and an implementation of XPCOM which, although I've not 100% sure on this, may at least mean writing a dynamic linker as well.

That'll have to do as I've got to free up the phone line wink

  ^[ Log in to reply ]
 
diomus Message #4050, posted at 14:58, 15/6/2002, in reply to message #4049
Unregistered user

Hmm plenty of enthusiasm, seemingly little experience wink

Well, yes unfortunately.


There are a lot of comments about how to do things and potential structure for the software. I agree with Chris that it should be as modular as possible but I don't agree with anything that does "polling". There's no need for this and it simply wastes processor time.

Waste processor time? I don't think so, it's just an extension to Wimp_Poll'ing with the OS. Call Wimp_Poll, decode reason code, perform internal upkeep, call Wimp_Poll etc. I'd suggest using the wimp message system. Either that or write your own threading library, which in itself will be fun.


In order to achieve this you have to bear certain things in mind. Firstly you need to be able to register for network events in a manner so they will get passed into your message queue.

Yes. Network problems. A major headache. I've snipped your renderer comments, I agree with them. The renderer should be able to cope with converting chunks of any incoming html into binary format for the redraw subsystem to use at a later date when the browser window is idle and requiring redraw.


One suggestion has been porting Gecko.

I don't know what will take longer: writing a half decent browser from scratch or porting a feck off huge one from an alien platform.

Chris.

  ^[ Log in to reply ]
 
Hertzsprung Message #4051, posted at 14:58, 15/6/2002, in reply to message #4050
Unregistered user
Hmm plenty of enthusiasm, seemingly little experience

Well, yes unfortunately.

This might be true, but, like you said, it will be good fun and I know I'm going to learn a lot from it - even if we don't manage to make a rival to IE smile

I don't know what will take longer: writing a half decent browser from scratch or porting a feck off huge one from an alien platform.

Porting, I would have thought. At least if you're writing your own you really 'know' the code.

  ^[ Log in to reply ]
 
moss Message #4052, posted at 14:58, 15/6/2002, in reply to message #4051
Unregistered user And five members already... smile
  ^[ Log in to reply ]
 
mfrissen Message #4056, posted at 14:58, 15/6/2002, in reply to message #4055
Unregistered user i don't want to be an a**e, but maybe it is better to move the technical tidbits to the sf forum smile I don't think a lot of people are interested in reading discussions like this smile
And, the sf forum offers somewhat more possibilities..
  ^[ Log in to reply ]
 
ninj Message #4057, posted at 14:58, 15/6/2002, in reply to message #4056
Unregistered user Fair point (although at first inspection it looks almost as evil as this forum wink ) This is not really a subject for the general forum.
  ^[ Log in to reply ]
 
moss Message #4058, posted at 14:58, 15/6/2002, in reply to message #4057
Unregistered user Well, I managed to bugger up my first post in there by doing it on the wrong forum... tongue

[Edited by moss at 20:29, 22/4/2002]
  ^[ Log in to reply ]
 
Hertzsprung Message #4059, posted at 14:58, 15/6/2002, in reply to message #4058
Unregistered user If anyone wants to join, send me an email. smile
  ^[ Log in to reply ]
 
diomus Message #4060, posted at 14:58, 15/6/2002, in reply to message #4054
Unregistered user
Waste processor time? I don't think so, it's just an extension to Wimp_Poll'ing with the OS. Call Wimp_Poll, decode reason code, perform internal upkeep, call Wimp_Poll etc. I'd suggest using the wimp message system. Either that or write your own threading library, which in itself will be fun.

My apologies I misunderstood your original post. I thought you meant coming off a wimp poll and going round all your modules to see what (if anything) had changed. Obviously you meant that the modules should generate a message across the wimp when done.

smile No problem. Poll word would be useful here too. Anyway, I have other stuff to do. Good luck with the wbe browser. You'll need it.

Chris

  ^[ Log in to reply ]
 
moss Message #4062, posted at 14:58, 15/6/2002, in reply to message #4061
Unregistered user
Last night, rather than getting on with my final year project, I came up with a few NetSurf logos.
Wow! smile They're *excellent*!
  ^[ Log in to reply ]
 
arenaman Message #4064, posted at 14:58, 15/6/2002, in reply to message #4061
Unregistered user Oooh nice smile
  ^[ Log in to reply ]
 
arkick Message #4066, posted at 14:58, 15/6/2002, in reply to message #4065
Unregistered user If you need a good assembler coder, I volunteer my abilities grin

E-mail: richmackin@ntlworld.com
ICQ: 112431453

  ^[ Log in to reply ]
 
arenaman Message #4067, posted at 14:58, 15/6/2002, in reply to message #4065
Unregistered user
Wow - I'm catching up with Mr. Arenaman. How long have you been on TIB, Michael?

A year and a half/two years. I used to have one of the highest posting counts smile

  ^[ Log in to reply ]
 
Hertzsprung Message #4068, posted at 14:58, 15/6/2002, in reply to message #4067
Unregistered user
A year and a half/two years. I used to have one of the highest posting counts

Ooh heck. I've only been here a month! smile

  ^[ Log in to reply ]
 
Michael Drake Message #124014, posted by tlsa at 12:47, 6/2/2017, in reply to message #4047

Posts: 1093
This April will be NetSurf's 15th birthday. Balloons

And this is the thread that started it. smile
  ^[ Log in to reply ]
 
Ian Cook Message #124018, posted by ilcook at 20:06, 6/2/2017, in reply to message #124014
trainResident idiot
Posts: 1068
This April will be NetSurf's 15th birthday. Balloons

And this is the thread that started it. smile
It can't have been that long. Devil Seems like only yesterday.tongue
  ^[ Log in to reply ]
 
Bryan Hogan Message #124020, posted by helpful at 04:45, 7/2/2017, in reply to message #124014
Member
Posts: 184
This April will be NetSurf's 15th birthday. Balloons

And this is the thread that started it. smile
Wow! How many of the people in at the start of this thread are still, or were ever, part of the development team?
  ^[ Log in to reply ]
 
Chris Evans Message #124021, posted by CJE at 11:29, 7/2/2017, in reply to message #124014
CJE Micros chap
Posts: 193
Happy Birthday!
Well done and thanks to all those who have contributed over the years.
Looking back I note that the name Netsurf was suggested in posting 4027 which has since been deleted. I wonder who made the suggestion!
I also was surprised that most of the early posts say they are by "Unregistered user" including "Phlamethrower"

[Edited by CJE at 11:30, 7/2/2017]
  ^[ Log in to reply ]
 
Jeffrey Lee Message #124025, posted by Phlamethrower at 22:01, 7/2/2017, in reply to message #124021
PhlamethrowerHot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff

Posts: 15054
This thread was imported from an older forum system - I don't think the user accounts were brought over, hence everyone being listed as "unregistered". Also note that all the posts have the same timestamp (and I have a feeling the import scrambled the order of some posts).

However post 4027 definitely exists, and a search through the database suggests that it was Hertzsprung (James Shaw) who came up with the name in an earlier post.

In terms of how many people are/were part of the development team, I think my only claim to fame is that I fixed a bug once smile

[Edited by Phlamethrower at 22:02, 7/2/2017]
  ^[ Log in to reply ]
 
Andrew Duffell Message #124028, posted by ad at 21:16, 10/2/2017, in reply to message #124025
ad

Posts: 3229
John Duffell and I produced the initial logo from a sprite produced by 'moss'. The globe remains to this day, but the font has been changed.
  ^[ Log in to reply ]
 
Pages (5): |< < 5

The Icon Bar: General: Web browsers