MozNET Features

This page is a non-exhaustive list of a few of the features you'll find in MozNET. There's simply too many things to list [tl;dw ;-)]. If you haven't yet checked out the MozNET example project then now is the time to do it!

Supports downloading files.
  • Proper downloads using the XulRunner provided dialogs. (default)
  • Download to a predefined folder, skipping the save dialog
  • Open downloaded files with the default handler application.
  • Implement your own download manager using notifications and information provided by MozNET

Supports printing and print preview

  • Easily implement your own print preview window with MozNET's ability to clone a page without reloading it
  • MozNET supports printing via user interacted dialog or silently
  • Page setup is also available and fully functional

MozNET also supports popup notification and blocking, full 'Find In Page' support via the native XulRunner Find dialog or your own in-app based UI using the FindText method in MozWebView. Staples such as 'View Source' and 'View Partial Source' as well as all the other commands you would expect can be found on the MozNET context menu. But, if the default menu isn't enough or to your liking you can always extend it with custom items or even fully replace it with your own menu.

MozNET also supports user-defined style sheets that can be applied in a similar manner to the Firefox extension 'Stylish'.

  • Set per-site style sheets of your own creation
  • Supports most site-specific style sheets provided by
Supports logging custom messages to the javascript console
  • Supports simple message logging
  • Supports complex message logging
  • Monitor messages sent to the console

Supports the XulRunner login manager
  • Access to the excluded sites list
  • Support for querying the login manager for saved logins
  • Add, remove and modify logins
  • Built-in 'Secure Login' feature - similar to the 'Secure Login' FireFox addon
  • Protect saved logins with a master password
  • Supports changing, resetting or even removing the master password
  • Full support for flying your own dialogs to change, set or clear the master password - with optional pass/fail messages
  • Supports using the native XulRunner dialogs for master passwords

Support spell checking
  • Open implementation so you can use the feature in any part of your application
  • Does not require a browser window to use
  • Easily extendable via user added dictionaries. Spell check in your native language
  • Includes 'Add Word To Dictionary' and 'Ignore Word'
  • Text elements are rechecked after any spell check fixes are made so that corrected words are no longer marked as incorrect
  • Dictionary switching is available from the context menu
  • Spell Check can be enabled or disabled to prevent its use from the context menu
Suggestions for misspelled words are automatically added to the MozNET context menu. The spell check feature works automatically for html <textarea/> and <input type='text' /> elements

MozNET will also retrieve the favicon for a website and notify you when it has it. The event args for the notification will return the favicon to you as a System.Drawing.Image so that you may convert it to whatever format you want it in. This is a non-blocking operation so your application won't hang out waiting for the image to be returned. For WPF fans, such as myself, there is also a FavIcon property that you can bind to. The value of this property is internally set by the same event that would otherwise notify you that an icon is available but, you don't even have to subscribe to it - just bind your desired control to the FavIcon property and you're work is done. If you have a peek at the Code Snippets page you'll find a WPF converter that you can use in your binding.

MozNET has extensive support for DOM elements. And can handle just about any element you throw at it. The image class, MozImageElement, even contains a custom property named 'ManagedImage' that returns the image as a System.Drawing.Image so you don't even have to do any work to get a copy! On top of the awesome DOM support, MozNET also lets you handle DOM events just like any other .NET event you've ever handled. If you need to alter DOM elements in any way, MozNET can do it easily and simply.

Here's just a few of the events that are available:
  • Double Click
  • Focus/Blur changes
  • Drag/Drop start, dragover, drop, exit and end
  • Copy operation notification
  • Paste operation notification
  • Cut operation notification
  • Key Press
  • DOM Load
  • DOM Unload
  • DOM element selection changes and mouse/cursor text selection notification
  • Change events
  • Scroll events
  • DOM element activation events
  • DOM element modification events - think AJAX page modification
  • Node Inserted/Removed
  • DOM Input element value changes
  • DOM element attribute modifications
  • Much, much more!
Need more info on event handling? Just have a look!

MozNET is the only XulRunner wrapper to sport the ability to inject Javascript and receive return values from them. Not only can you return strings or numbers but, you can also pass objects between your managed code and Javascript in a web page - no other XulRunner wrapper has this ability!

MozNET doesn't stop at the ability to interact with Javascript, you can even write your very own XPCom components to use with the library. XPCom components can be written in C/C++, Javascript or even C# and Visual Basic!With your own XPCom components the only limit is your imagination. Components can fully interact with the page loaded into the browser control.

Another MozNET-only feature is the ability to accept invalid or self-signed SSL certificates and enter a site anyway (at your own risk, of course). No other XulRunner wrapper has this ability. When using any other XulRunner wrapper, if a site sports a bad SSL certificate you simply cannot access the site. That's not the case with MozNET. If you want to accept a bad certificate and view the site anyway, you can.

Need to let your users access the 'About:Config' page to change values? MozNET is the only library which will let you do this AND provides a context menu which allows you to modify values just like Firefox does. You can also provide your own, custom-styled, context menu for 'About:Config' interaction!

Do you need to enumerate items in the browser cache? How about save them to disk? MozNET can do that. Not only can you read entries, entry data and meta data but you can also save any item you want. In addition to saving cache items you can also get them as a stream and do whatever you want with them. Along with cache access, and totally unrelated, is the ability to read and write to and from the post data stream during requests.