Prism/Scripting
WebRunner allows for some client-side web application customization. The web application bundle is allowed to hold a JavaScript file named webapp.js (called the webapp script). This file will be loaded into the WebRunner chrome window very much like a Firefox extension is loaded into the browser chrome window.
WebRunner exposes a simple HostUI object to the webapp script. The HostUI object exposes some utility functions that may be useful to the webapp script. The interface is shown below:
/**
* Simple host API exposed to the web application script files.
*/
var HostUI = {
// log a message to the error console
void log(aMsg);
// get a reference to the main content web browser
browser getBrowser();
// show a popup alert message
void showAlert(aImage, aTitle, aMsg);
// access the Sidebar object
object sidebar;
};
var Sidebar = {
// collapse or expand the sidebar
boolean visible;
// sets the web content of the sidebar
void add(aTitle, aURI);
};
There are also hooks that are called when WebRunner has loaded and when it is about to exit. You can declare these functions in the webapp script:
function startup() {
// called during startup
}
function shutdown() {
// called during shutdown
}
Currently, the webapp script also has access to full XPCOM functionality, just like a Firefox extension. This level of functionality is commonly called chrome-level privileges. It means that the script has a higher level of privilege than scripts in the web content and has access to the file system, clipboard and other parts of the native OS.