Sign in to follow this  
Followers 0
adik2dmax666

Web Browser from scratch..

15 posts in this topic

#1 ·  Posted (edited)

We're planning to make a web browser (using AutoIt) as our thesis and we have several questions about it.

I researched first the requirements on how to make one and i had these questions in mind.

1. How long would it take to develop an HTML, JS, CSS parser? Assume we are 3 Computer Science students in group and we have about 2 months to make it.

2. How long would it take to develop a rendering engine, or a layout engine just like trident(used by IE) or gecko(firefox)? Assume we are 3 Computer Science students in group and we have about 2 months to make it.

The panel already approved the our project proposal defens, and the approved title was a Web Browser. They didn't ask about the rendering engine, and all stuff on how the browser will interpret the html codes and the like. All they'd asked is about the features like the plugins and addons, and how our browser will be better than the existing IE and firefox.

They approved it in the first place not knowing that creating a web browser from scratch is an amazing feat, its hardly ever done by student programmers and a simple tutorial wouldn't cut it. It takes a whole team of programmers and programming years to make a stable web browser from scratc.

Inspite of these requirements, the group would still be able to develop a browser by using IE embed and calling IE's COM Objects (all done in AutoIT) which will make the job more simpler and accomplishable. xD

Edited by adik2dmax666

First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. -George Carrette[sub]GD Keylogger Creator (never released)[/sub][sub]Garena Autojoin v3.0[/sub]

Share this post


Link to post
Share on other sites



Spend the time on plugins and making a nice UI. Make sure there is a proper developers kit that is easy to use with lots of in-built tools for devs... Forget about parsing anything.

Oh... and use chromiums source rather than the IE com... Then do a few benchmarks against IE and tell them that the browser is faster than IE. Simple :blink:

Share this post


Link to post
Share on other sites

Chromium is written in C++ and assembly, you mean i'll use that instead of using IE com w/ autoit?

I suck at C++, and what's more, assembly is hard to debug.


First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. -George Carrette[sub]GD Keylogger Creator (never released)[/sub][sub]Garena Autojoin v3.0[/sub]

Share this post


Link to post
Share on other sites

Chromium is written in C++ and assembly, you mean i'll use that instead of using IE com w/ autoit?

I suck at C++, and what's more, assembly is hard to debug.

You don't need to touch any of the code that does the heavy work (WebKit). You can use one of the bindings for e.g. GTK/Qt and Python, and have a fast, cross-platform browser written on a high-level language.

Check out this article on ArsTechnica, it should get your started:

How to build a desktop WYSIWYG editor with WebKit and HTML 5

Share this post


Link to post
Share on other sites

We're planning to make a web browser (using AutoIt) as our thesis and we have several questions about it.

...

Inspite of these requirements, the group would still be able to develop a browser by using IE embed and calling IE's COM Objects (all done in AutoIT) which will make the job more simpler and accomplishable. xD

So you're actually building an Internet Explorer shell using AutoIT, rather than writing a new browser from scratch?

Make sure you let the panel know you are standing on the shoulders of those who came before you.

Will you post your source code, both here for our edification, and for the panel?

Share this post


Link to post
Share on other sites

#6 ·  Posted (edited)

Since I am a computer science student myself (or close), here's some unique advice.

The time spent to develop a decent web browser from scratch is long. You need to think about a lot of things and you won't find documentation for everything you need in order to get where the other browsers are now. The time spent on the project depends a lot on your level of skill and how proficient you three are in AutoIt, and how you exactly define your browser. I can imagine you chose AutoIt for the project because you are good at it, but how good are your friends? The term "Computer Science student" doesn't say a lot, some of my classmates freak out when they have to touch anything that is abstract (i.e. code, math). In this perspective, it is probably easier to use an existing framework (like Trident or WebKit) and extend on it.

About you choosing AutoIt for this project. AutoIt doesn't excel in parsing large documents, it doesn't excel in combining and rendering the output of those large documents, it doesn't excel if you want to create a plugin or add-on system, and to be honest; The only thing that's easier to do in AutoIt than in another language is probably creating the web shell with _IE lib. But Visual Studio drag and drop functionality might even still be easier. In this perspective, it's probably easier to learn another language first based on what your project requires. This will allow you more flexibility and you will have an opportunity to show your teachers that you are competent enough to pick the right tool for the job and explain why it is the right tool, and aren't afraid if that choice means spending little more time (and getting a little higher grade).

Your teachers obviously want you to engage in a project to make a browser that's better than other browsers now. Since the popular browsers that exist now differentiate more in personal taste than in overall quality, you're going to have to think of a user for which your project is ideal. The easiest there is probably to pick yourself as your ideal user, since you know best how you want a browser and how it is better than existing ones. Since you're not going to be able to make an Acid3 compliant browser anyway, it is better to let that rest and focus on what you can do well.

Lastly, don't share your project code online. I found myself sharing code on the web once and then submitting it to my teacher after which turned into a major failure when I had to explain in front of all my teachers how I hadn't committed fraud and why they shouldn't just kick me out of college straight away. If you want to share it anyway, then do so well after you have done your project and you are graded.

So, my advice:

- Define your projects boundaries closely, and let your teachers know that this is what you are making. Make a plan and submit it for approval in week 1 preferably, if you have received project management training then use it when building the plan. Teachers love documents like this.

- Don't build your own browser from scratch, use an existing rendering engine and focus on creating a browser that is different/better than other browsers now

- Choose the right tool for the job. This probably means you have to learn another language. Making project decisions means having to defend your choice if you have to, make sure you are able to give plenty of pros and cons for several languages

- Be safe from fraud accusations and do not share your project with anyone.

You have a lot to think about. Most of your problems aren't even technological, but are project planning related and making decisions.

Edited by Manadar

Share this post


Link to post
Share on other sites

#7 ·  Posted (edited)

I was about to post the whole code this morning but I had to go to school.

And the post above was a uniquely quality post. We're taking time and real effort to make a good browser.

What we are going to do is to add unique features not found on existing ones.

I've added Mouse Gestures to navigate instead of using back, and forward buttons. What other unique features can I incorporate?

Due to time constraints and because we didn't have a good grasp on learning programming in our **** school, I'll be using AutoIt with the help of Koda instead.

It has nothing to do with "(and getting a little higher grade)". Its either we pass or fail, no grade in between.

Edited by adik2dmax666

First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. -George Carrette[sub]GD Keylogger Creator (never released)[/sub][sub]Garena Autojoin v3.0[/sub]

Share this post


Link to post
Share on other sites

#9 ·  Posted (edited)

Though everything has already been done before, I don't need to make it a professional looking browser but I'll try to make it as professional as it can as long its doable in AutoIt.

;http://www.autoitscript.com/forum/index.php?showtopic=116290
#Include <Misc.au3> 

while 1
    _mouseGesture()
wend    
Func _mouseGesture() 
    If _IsPressed(02) Then ;If rightmouse button is pressed
             $coords  = MouseGetPos() ;get initial mouse coords
        While _IsPressed(02) ;while rightmouse is still down
            sleep(100) 
            $coords2 = MouseGetPos() ;get the new coords of the mouse 
            If $coords2[0] < ($coords[0]-50)  Then ;if the new coords is less than, which means it has lesser value of x, then it's located at the left
MsgBox(262144,"aw","left") ;+-50 so small movements wouldn't trigger
            ElseIf $coords2[0] > ($coords[0]+50) Then ;if the new coords is greater than, which means it has greater value of x, then it's located at the right
MsgBox(262144,"aw","right")
            EndIf
        WEnd
    EndIf
EndFunc
Edited by adik2dmax666

First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. -George Carrette[sub]GD Keylogger Creator (never released)[/sub][sub]Garena Autojoin v3.0[/sub]

Share this post


Link to post
Share on other sites

#10 ·  Posted (edited)

Our professor told us that its okay to use IE embed, but he said that we should show him our browser installed on a computer which doesn't have any browser installed which includes IE. I'm thinking of ways on how AutoIt can use _IE commands without IE installed in the first place. Are they any ways, methods to do this? If there's none, my last resort is to make a silent and custom install of IE or study and use webkit or customize any open source browser out therexD

http://www.helpfulsolutions.com/Silent_IE5_Install.htm

Edited by adik2dmax666

First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. -George Carrette[sub]GD Keylogger Creator (never released)[/sub][sub]Garena Autojoin v3.0[/sub]

Share this post


Link to post
Share on other sites

#11 ·  Posted (edited)

I may be wrong but I thought the IE COM object is still there even if you don't have the IE Browser.

Edit:Got some info to confirm what I thought (at least on Windows 7)

http://lifehacker.com/5164286/windows-7-lets-you-finally-uninstall-internet-explorer-kinda

Since Internet Explorer's rendering engine is also used throughout Windows and with third-party applications as an embeddable component, it won't completely uninstall—only the executable is actually removed. Still, being able to finally banish IE proper from your system is a pretty good start for folks who really don't like IE. Hit the link for the full screenshot walkthrough of the uninstallation process.

Edited by FuryCell

HKTunes:Softpedia | GoogleCodeLyricToy:Softpedia | GoogleCodeRCTunes:Softpedia | GoogleCodeMichtaToolsProgrammer n. - An ingenious device that turns caffeine into code.

Share this post


Link to post
Share on other sites

I tried uninstalling all IE entries found in appwiz.cpl (run command) and from

"Add/Remove Windows Components". I found out that it only removed the latest version of IE.

Completely uninstalling IE would make windows system unstable and now our professor wants us

to uninstall any other browser to make ours feasible. He/they had no idea on making a web browser

in the first place and so they approved it. WTF... :blink:


First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. -George Carrette[sub]GD Keylogger Creator (never released)[/sub][sub]Garena Autojoin v3.0[/sub]

Share this post


Link to post
Share on other sites

#13 ·  Posted (edited)

regarding my post here... http://www.autoitscript.com/forum/index.php?showtopic=117322

our professor told us that its OK to use IE embed, but he said that we should show him our browser installed on a computer which doesn't have any other browser installed such as IE. I'm thinking of ways on how AutoIt can use _IE commands without IE installed in the first place. Are they any ways, methods to do this? If there's none, my last resort is to make a silent and custom install of IE which installs in the background.

The Trident rendering engine that IE uses comes default in every Windows install ever. A large core of Windows functionality relies on Trident, so there's no real way to remove it. You can uninstall the Internet Explorer browser but that will not remove the rendering engine, the only way to do that is to hack remove some dll's, or create a custom windows install without the rendering engine. Since no one ever does that, since it's essentially breaking windows, you can safely assume you can use the _IE functions even when IE is not installed.

Edited by adik2dmax666

First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. -George Carrette[sub]GD Keylogger Creator (never released)[/sub][sub]Garena Autojoin v3.0[/sub]

Share this post


Link to post
Share on other sites

Good luck with that. I created a proxy in Java which was cool. Handled all of the traffic for a browser.

Here is an example of what not to do.


Post your code because code says more then your words can. SciTe Debug mode - it's magic: #AutoIt3Wrapper_run_debug_mode=Y. Use Opt("MustDeclareVars", 1)[topic="84960"]Brett F's Learning To Script with AutoIt V3[/topic][topic="21048"]Valuater's AutoIt 1-2-3, Class... is now in Session[/topic]Contribution: [topic="87994"]Get SVN Rev Number[/topic], [topic="93527"]Control Handle under mouse[/topic], [topic="91966"]A Presentation using AutoIt[/topic], [topic="112756"]Log ConsoleWrite output in Scite[/topic]

Share this post


Link to post
Share on other sites

Good link bo8ster. I remember that thread.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0