Prism/Scripting: Difference between revisions
MarkFinkle (talk | contribs) m (WebRunner:Scripting moved to Prism/Scripting) |
MarkFinkle (talk | contribs) No edit summary |
||
| Line 1: | Line 1: | ||
Prism allows for some client-side web application customization. The web application [[Prism/Bundle|bundle]] is allowed to hold a JavaScript file named '''webapp.js''' (called the webapp script). This file will be loaded into the Prism chrome window very much like a Firefox extension is loaded into the browser chrome window. | |||
Prism 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: | |||
<pre> | <pre> | ||
/** | /** | ||
| Line 29: | Line 29: | ||
</pre> | </pre> | ||
There are also hooks that are called when | There are also hooks that are called when Prism has loaded and when it is about to exit. You can declare these functions in the webapp script: | ||
<pre> | <pre> | ||
function startup() { | function startup() { | ||
Revision as of 20:41, 30 October 2007
Prism 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 Prism chrome window very much like a Firefox extension is loaded into the browser chrome window.
Prism 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 Prism 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.