diff --git a/extensions/firefox/components/PdfStreamConverter.js b/extensions/firefox/components/PdfStreamConverter.js index f0252575a..1cb9c7a6d 100644 --- a/extensions/firefox/components/PdfStreamConverter.js +++ b/extensions/firefox/components/PdfStreamConverter.js @@ -386,21 +386,19 @@ ChromeActions.prototype = { var message = getLocalizedString(strings, 'unsupported_feature'); var notificationBox = null; - // Multiple browser windows can be opened, finding one for notification box - var windowsEnum = Services.wm - .getZOrderDOMWindowEnumerator('navigator:browser', true); - while (windowsEnum.hasMoreElements()) { - var win = windowsEnum.getNext(); - if (win.closed) - continue; - var browser = win.gBrowser.getBrowserForDocument(domWindow.top.document); - if (browser) { - // right window/browser is found, getting the notification box - notificationBox = win.gBrowser.getNotificationBox(browser); - break; - } - } - if (!notificationBox) { + try { + // Based on MDN's "Working with windows in chrome code" + var mainWindow = domWindow + .QueryInterface(Components.interfaces.nsIInterfaceRequestor) + .getInterface(Components.interfaces.nsIWebNavigation) + .QueryInterface(Components.interfaces.nsIDocShellTreeItem) + .rootTreeItem + .QueryInterface(Components.interfaces.nsIInterfaceRequestor) + .getInterface(Components.interfaces.nsIDOMWindow); + var browser = mainWindow.gBrowser + .getBrowserForDocument(domWindow.top.document); + notificationBox = mainWindow.gBrowser.getNotificationBox(browser); + } catch (e) { log('Unable to get a notification box for the fallback message'); return; }