Open Bug 578172 Opened 14 years ago Updated 2 years ago

receiveMessage callback targets lack messageManagers in non-Fennec Firefox

Categories

(Firefox :: General, defect)

defect

Tracking

()

People

(Reporter: azakai, Unassigned)

Details

In Fennec, this would work:

receiveMessage: function(aMessage) {
  aMessage.target.messageManager.doSomething...
}

But in Firefox itself, messageManager is undefined.

mfinkle states that we need

      <property name="messageManager"
                onget="return this.QueryInterface(Components.interfaces.nsIFrameLoaderOwner).frameLoader.messageManager;"
                readonly="true"/>

in Firefox's browser.xml, which is already present in Fennec's browser.xml. However, this does not completely fix the problem - the target XULElement given in the receiveMessage callback is not the same object as browser.xml describes (in other words, adding the above would help if you do .messageManager on the proper object, but not on aMessage.target, which is something else).

As a workaround until this is fixed, we can do

var returnMessageManager = aMessage.target.QueryInterface(
                Components.interfaces.nsIFrameLoaderOwner).frameLoader.
                messageManager;
This is not an ipc bug, but toolkit or something
Component: IPC → General
Product: Core → Firefox
QA Contact: ipc → general
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.