IDL file: mozilla-central/source/dom/base/nsIMessageManager.idl

Inherits from: nsISyncMessageSender

This interface provides the environment for scripts that are loaded into content frames using the nsIFrameScriptLoader interface. It enables these scripts to receive messages from the chrome process and send messages back to the chrome process.

Frame scripts can send either synchronous or asynchronous messages to the chrome process: for details on these messaging APIs see the documentation for the nsIContentFrameMessageManager's parent classes nsISyncMessageSender and nsIMessageSender.

Methods

void dump(in DOMString aStr);
DOMString atob(in DOMString aAsciiString);
DOMString btoa(in DOMString aBase64Data);

dump()

Prints the specified string to standard output.

Parameters

Name Type Description
aStr String The message to log.

atob()

Convert ASCII base64 data to binary data.

Parameters

Name Type Description
aAsciiString String ASCII string to decode.

Returns

String: the decoded binary data.

btoa()

Convert binary data to ASCII base64 data .

Parameters

Name Type Description
aBase64Data String Binary data to encode as base64.

Returns

String: the base64-encoded ASCII string.

Attributes

content

nsIDOMWindow: the current top level window in the frame or null. Read only.

docShell

nsIDocShell: the top level docShell or null. Read only.

Examples

Once you obtain the conten frame messge manager, you can send messages to listeners who registered with Services.mm.addMessageListener

Get content message manager from browser

This could would run in a nsIDOMWindow scope.

var aCFMM = gBrowser.selectedBrowser._docShell.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIContentFrameMessageManager);

Get content message manager from content window

window here is a HTML window or any window inside a tab, this code would run from a framescript.

var aCFMM = window.QueryInterface(Ci.nsIInterfaceRequestor)
                              .getInterface(Ci.nsIDocShell)
                              .QueryInterface(Ci.nsIInterfaceRequestor)
                              .getInterface(Ci.nsIContentFrameMessageManager);