Bug 1104400 - Get all message managers in Mulet setup. r=yzen

This commit is contained in:
Eitan Isaacson 2014-11-26 13:05:23 -08:00
parent 01b4aefdc8
commit 78648094ac
2 changed files with 11 additions and 4 deletions

View File

@ -160,14 +160,14 @@ this.Utils = { // jshint ignore:line
},
get AllMessageManagers() {
let messageManagers = [];
let messageManagers = new Set();
function collectLeafMessageManagers(mm) {
for (let i = 0; i < mm.childCount; i++) {
let childMM = mm.getChildAt(i);
if ('sendAsyncMessage' in childMM) {
messageManagers.push(childMM);
messageManagers.add(childMM);
} else {
collectLeafMessageManagers(childMM);
}
@ -179,12 +179,19 @@ this.Utils = { // jshint ignore:line
let document = this.CurrentContentDoc;
if (document) {
if (document.location.host === 'b2g') {
// The document is a b2g app chrome (ie. Mulet).
let contentBrowser = this.win.content.shell.contentBrowser;
messageManagers.add(this.getMessageManager(contentBrowser));
document = contentBrowser.contentDocument;
}
let remoteframes = document.querySelectorAll('iframe');
for (let i = 0; i < remoteframes.length; ++i) {
let mm = this.getMessageManager(remoteframes[i]);
if (mm) {
messageManagers.push(mm);
messageManagers.add(mm);
}
}

View File

@ -23,7 +23,7 @@ XPCOMUtils.defineLazyModuleGetter(this, 'Roles',
XPCOMUtils.defineLazyModuleGetter(this, 'States',
'resource://gre/modules/accessibility/Constants.jsm');
Logger.debug('content-script.js');
Logger.info('content-script.js', content.document.location);
let eventManager = null;
let contentControl = null;