ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

ReactOS Community > ReactOS Wiki

ROSIE

From ReactOS

(Redirected from Internet Explorer)
Jump to: navigation, search

Mshtml.dll

  • ReactOS uses mshtml.dll from Wine, which uses firefox (Souce)

Please note that Internet Explorer consists of two parts: MSHTML.DLL, which provides the rendering engine, and Internet Explorer, which provides the interface. MSHTML is used by programs to embed a browser in their program and display web content, and is therefore critical. Internet Explorer is a shell, of which there are several for MSHTML, so an open source one could be found to use as a base.

This page is probably outdated

The information on this page might not be valid for the current state of ReactOS.
A Wiki Administrator should look at this page and decide or discuss what to do with it.


Contents

ReactOS Internet Explorer (ROSIE)

Right now ReactOS doesn't have its own browser so users need to download another web browser (such as Firefox) if they want to navigate through the Internet. Actually, the only way to download is via the "Download!" application, but having a small, faster, reliable ReactOS Web browser would be a nice and more flexible enhancement. The objective is creating a small, but convenient browser, so we should try to have just the main features:

  • It should be small and reliable.
  • It should have a look and feel similar to Internet Explorer, so it is easy to use for end-users.

Don't forget this is going to be a temporary browser until Users download Firefox, Opera or any other browser, so it would be a waste of coding time and HDD space having a bloated browser ;)

  • It is also important to note that this will be an important tool in testing mshtml, shdocvw and friends.
  • ReactOS Internet Explorer must be compilable with RosBE.

And in a future also with MSVC.

Project Managers

Vicmarcal/Sedwards

Skills needed

C++ or WinAPI or Design.

Documentation

In our source code we have Wine DLLs which provide most of the needed functionality (engine) for this project, but Wine didn't implement the Dialogs. So really this project is pretty straightforward, which begins with a ReactOS Internet Explorer GUI mockup. To make easy Wine syncs, the GUI won't be coded in the Wine DLLs. So we will make the Dialogs live in IExplore. Source code of the iexplore can be found at: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/iexplore/ Or in your local repository(same path).

Ideas by Jorl17:

I've been tinkering with many questions related to the browser. Reading through MSDN, I realized that BrowseUI.dll is where everything UI related is kept. If we are not to implement it there on a first approach, that's fine, though I think that we should later - It'll be more compatible and compliant, won't it?

Also, I realized this is not a task as simple as it may look, event handling will probably be a pain, so I think we should plan everything before we do anything. Doing something with a URL bar that has to be fully rewritten might start off as incredible motivation and end in complete failure.

As I previously mentioned in IRC, I think I have a basic idea on how to *start* (really, *start*) designing the project. So here it goes: We could start by defining an Engine structure (or ENGINE, or engine, whatever your CAMeLCasE disorder is) that contained every renderer (WebBrowser Control) related stuff. We would have functions to manipulate this data.

Then, we could have a UI structure, which encapsulates the ENGINE structure along with other things, such as the address bar, status bar, toolbar, window title, etc. It could use specific information contained in the ENGINE structure, such as the address we're at, etc.

This way, we could store all UI's in a Linked-List, enabling tabbed browsing, that is, every tab is a UI (which doesn't precisely mean we need to do it google-chrome-and-Opera-style. We can have the address bar on top, only switching either its contents, or using different windows for it (which I highly doubt is efficient).

I must say I have never worked with COM, and am learning it right now, since we'll heavily depend on that and be limited to using C. (excuse me, but I really do not like to be imprisoned to C). Why would you be limited to C? Some parts of ROS use C++ -- Lone Rifle 09:19, 23 April 2009 (UTC)

  • This Documentation will be updated during the development of the project.

Status

(Jorl17) Following information on CodeProject ([1]), I downloaded the source code and split it across multiple files. I fixed multiple coding errors to make it compilable in RosBE and sucessfully built the first working RIE simplest app. The problem is that it is a complete rip-off of that code with changes for compatibility and small pieces of code removed. My ideas are far from being fixed as this is really harder than I'd predicted.

Wine (and, possibly, ReactOS), seems to have a bug somewhere in its engine that prevents us from doing certain things, such as do a google search. This bug is a full show-stopper, as well as is the fact that ReactOS' gecko engine rendering has been disabled for quite a while.

Nevertheless, this is a complex project and we will all need to be working on the code, not just me.

To make the code easier to understand, I'm writing a documentation that will hopefully help everyone. When the documentation is ready, I'll post it alongside with the code.

ADD yourself here

Add yourself here if you want to join this team, dont forget to add your skills, and which area do you want to work in.

Nick Skills Interested
Vicmarcal C C++ WinAPI Coding
João Ricardo Lourenço (AKA Jorl17) C C++ WinAPI Coding
jansssens C C++ WinAPI HTML and other Webstandards Coding Design Review Testing

The roadmap

Everyone wants to see a roadmap, here's a small one:

Version Milestones needed
0.1 Address Bar, Home and STOP buttons.
0.2 Forward, Back and Refresh buttons.
0.3 Support for Cache and Cookies.
0.4 Support for Fast Search.
0.5 Support for History and Favourites.
0.6 Compilable with MSVC too.
0.7 Support for Tabs.

Communication

A Team needs at least basic communication. You can find me at #reactos and #reactos-testers, and also now in #reactos-rie (reactos internet explorer)

  • Please join to share comments, to talk about the different approaches, to change the roadmap and to begin creating the Team.

Thanks in advance :)