Prism/Scripting: Difference between revisions
MarkFinkle (talk | contribs) (initial (incomplete) save) |
m (Made a note about startup and shutdown functions) |
||
| Line 27: | Line 27: | ||
void add(aTitle, aURI); | void add(aTitle, aURI); | ||
}; | }; | ||
</pre> | |||
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: | |||
<pre> | |||
function startup() { | |||
// called during startup | |||
} | |||
function shutdown() { | |||
// called during shutdown | |||
} | |||
</pre> | </pre> | ||
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. | 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. | ||
<div class="note">In the future, the webapp script may have lower privileges. We are looking into the security aspects of the higher privilege level.</div> | <div class="note">In the future, the webapp script may have lower privileges. We are looking into the security aspects of the higher privilege level.</div> | ||
Revision as of 04:35, 30 October 2007
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.