Difference between revisions of "Chrome"
(→Resources) |
(→What is Chrome?) |
||
Line 1: | Line 1: | ||
=What is Chrome?= | =What is Chrome?= | ||
− | In a nutshell, Chrome is the user interface of Mozilla products. The user interface is composed mostly of XUL, XBL, CSS, and JS files. Extensions are (usually) chrome applets. 90% of an [http://developer.mozilla.org/en/docs/Extensions extension], typically is chrome. | + | In a nutshell, Chrome is the user interface of Mozilla products. The user interface is composed mostly of XUL, XBL, CSS, and JS files. (You can make changes to these files without needing to recompile the Mozilla project you're working on - which is an enormous timesaver, especially for people who are just starting out on Mozilla-based development). |
+ | |||
+ | If you look in the chrome subdirectory of your installation, you'll find .jar files - these contain the chrome files that make up the user interface. These jar files are actually just ZIP archives. Extensions are (usually) chrome applets. 90% of an [http://developer.mozilla.org/en/docs/Extensions extension], typically is chrome. | ||
In the XUL world, Chrome is the top level window which contains groups of UI elements of various types. Example of chrome are the browser window and dialog window. The chrome obtains its UI description from four types of providers: | In the XUL world, Chrome is the top level window which contains groups of UI elements of various types. Example of chrome are the browser window and dialog window. The chrome obtains its UI description from four types of providers: | ||
Line 12: | Line 14: | ||
* Locale provider | * Locale provider | ||
::Offers the language and culture sensitive resources | ::Offers the language and culture sensitive resources | ||
− | |||
=Chrome in depth= | =Chrome in depth= |
Revision as of 03:11, 6 October 2006
Contents
What is Chrome?
In a nutshell, Chrome is the user interface of Mozilla products. The user interface is composed mostly of XUL, XBL, CSS, and JS files. (You can make changes to these files without needing to recompile the Mozilla project you're working on - which is an enormous timesaver, especially for people who are just starting out on Mozilla-based development).
If you look in the chrome subdirectory of your installation, you'll find .jar files - these contain the chrome files that make up the user interface. These jar files are actually just ZIP archives. Extensions are (usually) chrome applets. 90% of an extension, typically is chrome.
In the XUL world, Chrome is the top level window which contains groups of UI elements of various types. Example of chrome are the browser window and dialog window. The chrome obtains its UI description from four types of providers:
- Content provider
- Provides the skeleton, i.e., the menus, command buttons
- Skin provider
- Supplies the look-and-feel of the chrome
- Platform provider
- Gives platform dependent UI description
- Locale provider
- Offers the language and culture sensitive resources
Chrome in depth
Chrome URLs
To maximize the flexibility, Mozilla introduces a new technology called "Configurable Chrome" (Refer to Configurable Chrome by Benjamin Smedberg <benjamin@smedbergs.us>). A XUL file can be written in such a fashion that its chrome description comes from a mixture of physical sources, either locally, remotely, or a combination of both. An end user may customize her/his configuration to pick up any of the source type from his favor chrome providers.
To achieve this, chrome type URLs must be used to reference external sources; such as CSS files and JavaScript files. The general form of chrome URLs look like this:
chrome://WindowType/ProviderType/[ProviderName/]
The "WindowType" is the window type of the chrome. Possible values are "navigator", "messenger", etc. The "ProviderType" is one of the four providers: content, skin, platform, or locale. Examples of the provider names, "ProviderName", are Mozilla, Mozillazine, xyzOrg, myISP, and etc. See Table 1 for illustrations.
What you can do with Chrome
Here are the following examples of what you can do with Chrome:
- Create a skin for Mozilla
- Working with windows in Chrome Code
- Create toolbar buttons
- Create a Firefox sidebar
Resources
XUL - Creating Localizable XML GUI
Configurable Chrome by Benjamin Smedberg <benjamin@smedbergs.us>
http://www.mozilla.org/support/firefox/tips
http://developer.mozilla.org/en/docs/Working_with_windows_in_chrome_code