Firefox 1.5 for developers
==========================

Based on the Gecko 1.8 engine, Firefox 1.5 improved its already best in class standards support, and provided new capabilities to enable the next generation of web applications. Firefox 1.5 features improved support for CSS2 and CSS3, APIs for scriptable and programmable 2D graphics through SVG 1.1 and `<canvas>`, XForms and XML events, as well as many DHTML, JavaScript, and DOM enhancements.

Developer Tools
---------------

Several tools and browser extensions are available to help developers support Firefox 1.5.

* DOM Inspector, a tool that allows developers to inspect and modify documents without having to edit the document directly. DOM Inspector is available as part of the Custom install option in Firefox 1.5 under Developer Tools.
* JavaScript console, a tool to write and test JavaScript code as well as view JavaScript and CSS errors on a page.
* View page source, with syntax highlighting and find features.
* Browser extensions including the FireBug, Web Developer toolbar, Live HTTP Headers, HTML Validator and many more.

**Note:** Some extensions do not currently support Firefox 1.5, and will be automatically disabled.

Overview
--------

Some of the new features in Firefox 1.5:

### Website and application developers

SVG is supported in XHTML

SVG can be used in XHTML pages. JavaScript and CSS can be used to manipulate the picture in the same way you would script regular XHTML. See SVG in Firefox to learn about the status and known problems of SVG implementation in Firefox.

Drawing Graphics with Canvas

Learn about the new `<canvas>` tag and how to draw graphs and other objects in Firefox.

CSS3 Columns

Learn about the new support for automatic multi-column text layout as proposed for CSS3.

Using Firefox 1.5 caching

Learn about `bfcache` and how it speeds up back and forward navigation.

### XUL and Extension Developers

Building an Extension

This tutorial will take you through the steps required to build a very basic extension for Firefox. Also see another tutorial on MozillaZine knowledge base, which demonstrates the new features of the Extension Manager in 1.5 that make creating a new extension even easier.

XPCNativeWrapper

`XPCNativeWrapper` is a way to wrap up an object so that it's safe to access from privileged code. It can be used in all Firefox versions, though the behavior changed somewhat starting with Firefox 1.5 (Gecko 1.8).

Preferences System

Learn about the new widgets that allow you to create Options windows easier using less JavaScript code.

International characters in XUL JavaScript

XUL JavaScript files can now contain non-ASCII characters.

Tree API changes

The interfaces for accessing XUL `<tree>` elements have changed.

XUL Changes for Firefox 1.5

Summary of XUL changes. See also Adapting XUL Applications for Firefox 1.5.

#### Networking-related changes

* Certificate prompts can now be overridden on a per-channel basis. This works by setting an interface requester as an `nsIChannel`'s notificationCallbacks and giving out an interface for `nsIBadCertListener`.
* nsIWebBrowserPersist's listeners can now implement `nsIInterfaceRequestor::GetInterface` and will get an opportunity to provide all interfaces that channels might ask for, including `nsIProgressEventSink` (not too useful, redundant with `nsIWebProgressListener`). Useful interfaces here include `nsIChannelEventSink` and `nsIBadCertListener`.
* Extensions or other necko consumers, including XMLHttpRequest, can set a Cookie header explicitly, and necko will not replace it. Stored cookies will be merged with the explicitly set header, in a way that the explicit header will override the stored cookies.
New End user Features
---------------------

### User Experience

* **Faster browser navigation** with improvements to back and forward button performance.
* **Drag and drop reordering for browser tabs.**
* **Answers.com is added to the search engine list** for dictionary lookup.
* **Improvements to product usability** including descriptive error pages, redesigned options menu, RSS discovery, and "Safe Mode" experience.
* **Better accessibility support** including DHTML accessibility.
* **Report a broken website wizard** to report websites that are not working in Firefox.
* **Better support for Mac OS X** (10.2 and greater) including profile migration from Safari and Mac Internet Explorer.
### Security and Privacy

* **Automated update** to streamline product upgrades. Notification of an update is more prominent, and updates to Firefox may now be half a megabyte or smaller. Updating extensions has also improved.
* **Improvements to popup blocking.**
* **Clear Private Data** feature provides an easy way to quickly remove personal data through a menu item or keyboard shortcut.
### Support for open Web standards

Firefox support for Web standards continues to lead the industry with consistent cross-platform implementations for:

* Hypertext Markup Language (HTML) and Extensible Hypertext Markup Language (XHTML): HTML 4.01 and XHTML 1.0/1.1
* Cascading Style Sheets (CSS): CSS Level 1, CSS Level 2 and parts of CSS Level 3
* Document Object Model (DOM): DOM Level 1, DOM Level 2 and parts of DOM Level 3
* Mathematical Markup Language: MathML Version 2.0
* Extensible Markup Language (XML): XML 1.0, Namespaces in XML, Associating Style Sheets with XML Documents 1.0, Fragment Identifier for XML
* XSL Transformations (XSLT): XSLT 1.0
* XML Path Language (XPath): XPath 1.0
* Resource Description Framework (RDF): RDF
* Simple Object Access Protocol (SOAP): SOAP 1.1
* JavaScript 1.6, based on ECMA-262, revision 3

Firefox 1.5 supports the following data transport protocols (HTTP, FTP, SSL, TLS, and others), multilingual character data (Unicode), graphics (GIF, JPEG, PNG, SVG, and others) and the latest version of the world's most popular scripting language, JavaScript 1.6.

Changes since Firefox 1.0
-------------------------

Many changes have been introduced into Firefox since it was first released on November 9, 2004. Firefox has progressed with many new features and bug fixes. A detailed list of changes is available from squarefree.com.