WebApp represents a [http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#browsing-context browsing context]. Browsing context is an environment in which Document objects are presented to the user. Instance of this object is associated with top level page window (it's on the same level as the context object).

+

+

This object doesn't implement any logic it's there only to demonstrate the concept.

The server side implements Actor, which is responsible for communication with specific proxy

The actor is finally consuming back-end Module (service) API

Connection

Connection object is responsible for sending properly setup packets to the server and handling all response packets. This object is also responsible for handling any errors (or error packets) that can occur during the communication.

Remote proxies should always use the connection object to send JSON packets

The connection is singleton it'll be probably attached to the global Firebug object

BTI

This section describes the current BTI (Browser Tools Interface) concepts. These concepts should be reviewed and refactored as necessary.

Browser

Proxy to a debuggable web browser. A browser may be remote and contain one or more JavaScript execution contexts. Each JavaScript execution context may contain one or more compilation units. A browser provides notification to registered listeners describing events that occur in the browser.

WebApp

WebApp represents a browsing context. Browsing context is an environment in which Document objects are presented to the user. Instance of this object is associated with top level page window (it's on the same level as the context object).

This object doesn't implement any logic it's there only to demonstrate the concept.

JavaScriptTool

JavaScriptTool implements API related to script debugging. It serves similar purpose as a proxy object. It's currently placed between the Script panel and Firebug.Debugger module.

Compilation Unit

Describes a compilation unit in a browser context. A compilation unit may originate from a JavaScript source file or a script element in HTML. It's currently created when a new script is compiled (JSD).