Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I've never attempted anything like this before but what I want to do is code a browser for Windows.

I know that I can use the web-browser control that Microsoft has released, but I'm interested in seeing how the problem is solved from a lower level. So I want to know what layout engine I should be looking at? Or is a layout engine the best way to go?

I've been looking at WebKit, but it seems rather Mac-centric, so I'm wondering if there are any more practical one's for windows?

Has Microsoft released the source code for their webbrowser winforms control in the .Net framework? That would be dependent on the CLR anyway, I suppose?

Any suggestions?

share|improve this question
1  
How low do you want to go? –  user1249 Apr 8 '12 at 10:11

1 Answer 1

up vote 1 down vote accepted

I would begin by studying the Gecko layout engine (used by Firefox) and of WebKit (which might seem to be Mac-centric due to its Apple roots). Both are designed to be cross-platform.

Trident (Microsoft's layout engine used by IE and, I assume, in the WebBrowser WinForms control) is closed-source.

But if you are just wanting to code a browser, then I consider writing a layout engine to be "reinventing the wheel", given the two engines that already exist.

share|improve this answer
3  
I love to reinvent the wheel, it's a great learning experience. Actually I intend to construct my own wheel one day by machining the rim and hub and spokes on a metal lathe. –  samual johnson Apr 8 '12 at 4:29
    
@samualjohnson I get your point. –  Renan Apr 8 '12 at 4:29
1  
@samualjohnson, very interesting comment. I like your determination and self confidence. –  Emmad Kareem Apr 8 '12 at 9:12

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.