This diagram shows some of the components of the Grail browser. The diagram should be understood as follows. The HTML parser only exists for the duration of the parsing process. The application may also contain some extensions. The final layer represents the Operating System interface to the system's resources.
Untrusted extensions have access to a safe subset.
Because it is a true subset, promoting an untrusted extension to trusted status does not require any changes to its source code. Extensions have controlled access to the application, browsers, text view and other user elements, and the HTML parser. Extensions can provide an interface through which they can be accessed by other extensions. Concrete Examples The APIs provided to particular types of extensions are determined by the needs of such extensions. On the other hand, an extension that implements a new HTML element requires access to the HTML parser as well as to the formatted text view.