Open main menu

CDOT Wiki β

Changes

Chrome

151 bytes added, 12:46, 6 October 2006
Chrome URLs
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 <b>browser window </b> and <b>dialog window</b>. The chrome obtains its UI description from four types of providers:
 
=Chrome in depth=
 
==Chrome Providers==
The chrome obtains its UI description from four types of providers:
* Content provider
::Provides the skeleton, i.e., the menus, command buttons
* 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 [http://www.mozilla.org/xpfe/ConfigChromeSpec.html 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#Chrome_Providers|chrome providers]].
To achieve this, chrome type URLs must be used to reference external sources; such as CSS files and JavaScript files. A Chrome URL points to a file registered within the Mozilla product (it could be e-mail, calendar, browser etc.)
*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. (Refer to [http://www.mozilla.org/projects/intl/iuc15/paper/iuc15xul.html XUL - Creating Localizable XML GUI] for illustrations).
Below: Chrome registry - mapping chrome providers to URLs
[[Image:Chrome.JPG]]
==Chrome Registry==
Acoording to WierdAl (#developers), Firefox uses the toolkit approach: [http://developer.mozilla.org/en/docs/chrome.manifest Chrome Registration - MDC] whereas SeaMonkey uses the old way (xpfe).
=Additional Info= ==Code Registry Example==
<pre>
1. content necko jar:comm.jar!/content/necko/ xpcnativewrappers=yes
**The purpose of this is to override a chrome file provided by the application or XULRunner with a new extension or embedder.
 
=Additional Info=
==Starting Out==
*[http://www.g4tv.com/screensavers/features/41046/Create_a_Mozilla_Extension_pg3.html Create a Mozilla Extension]
*[http://www.mozilla.org/unix/customizing.html Customizing Mozilla]
 
=Resources=
1
edit