[Mono-dev] Managed Web Browser

John Platts john_platts at hotmail.com
Sun Aug 26 21:05:49 EDT 2007

I would like to see an web browser implemented in managed code that would run on Microsoft .NET and Mono, rather than simply having wrappers around unmanaged web browser layout engines.
Here are the requirements for the managed web browser:
- Must run on the Microsoft .NET Framework version 2.0 or later
- Should run on the Microsoft Windows version of Mono (using Mono's Windows Forms implementation)
- Should run on the Linux version of Mono (using Mono's Windows Forms implementation)
- Browser code should not make any direct calls to managed code (but can make calls to any managed function available in Mono, the Microsoft .NET Framework, the Gtk# library, or the Mono.Cairo library)
- Must pass the Acid2 test
- Must support cascading style sheets
- Must support JavaScript
- Must support DOM Levels 1 & 2
- Must support HTML 4.0 and XHTML
- Must have a managed plugin API
- Should utilize Code Access Security
- Can have optional support for ActiveX controls (requires Microsoft Windows and the Microsoft .NET framework) or NPAPI-based plugins (will require some managed code to support this) - this support will probably require some unmanaged code and can include unmanaged code to provide the support required by ActiveX or NPAPI plugins
- There should be an option to build a browser without any unmanaged code included (except for the unmanaged code included in the GTK# library or Mono.Cairo library or their dependencies)
- Must be embeddable within Windows Forms applications if implemented using Windows Forms (and also Windows Presentation Foundation applications with the System.Windows.Forms.Integration.WindowsFormsHost class on Version 3.0 and 3.5 of the Microsoft .NET framework)
- Must be embeddable within GTK# applications if implemented using GTK#
What Mono needs to have in order to support a managed web browser:
- a System.Windows.Forms and System.Drawing implementation (or a Gtk# + Mono.Cairo implementation)
- Code Access Security - not an absolute requirement for a web browser, but can provide better security, especially for plugins - unmanaged plugins can exploit filesystem, etc. whereas an untrusted managed plugin can be restricted from accessing the filesystem or performing malicious actions if the managed plugin is running under partial trust and both the browser and the unmanaged plugin is running on a runtime with Code Access Security enabled
- a functional System.Net.Sockets implementation
- should have support for IPv6
See what you’re getting into…before you go there
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20070826/976fb9b1/attachment.html 

More information about the Mono-devel-list mailing list