From 70dc2d8dfb779b3d9b56557b8bc5b753fca29e0a Mon Sep 17 00:00:00 2001 From: Mounir Lamouri Date: Wed, 16 May 2012 12:39:27 +0200 Subject: [PATCH] Bug 754141 (1/4) - Get the mozapp attribute value from the parent instead of its presence. r=jlebar --- dom/base/BrowserElementChild.js | 7 ++++--- dom/base/BrowserElementParent.js | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/dom/base/BrowserElementChild.js b/dom/base/BrowserElementChild.js index d445100477d..707768b2dd7 100644 --- a/dom/base/BrowserElementChild.js +++ b/dom/base/BrowserElementChild.js @@ -54,11 +54,12 @@ BrowserElementChild.prototype = { // This is because mozapp iframes have some privileges which we don't want // to extend to untrusted mozbrowser content. // - // Set the window's isApp state by asking our parent if our iframe has the - // 'mozapp' attribute. + // Get the app manifest from the parent, if our frame has one. + let appManifestURL = sendSyncMsg('get-mozapp-manifest-url')[0]; + content.QueryInterface(Ci.nsIInterfaceRequestor) .getInterface(Components.interfaces.nsIDOMWindowUtils) - .setIsApp(sendSyncMsg('get-mozapp')[0]); + .setIsApp(!!appManifestURL); addEventListener('DOMTitleChanged', this._titleChangedHandler.bind(this), diff --git a/dom/base/BrowserElementParent.js b/dom/base/BrowserElementParent.js index 96d67f089f4..65fb33b7b91 100644 --- a/dom/base/BrowserElementParent.js +++ b/dom/base/BrowserElementParent.js @@ -100,7 +100,7 @@ BrowserElementParent.prototype = { addMessageListener("loadend", this._fireEventFromMsg); addMessageListener("titlechange", this._fireEventFromMsg); addMessageListener("iconchange", this._fireEventFromMsg); - addMessageListener("get-mozapp", this._sendAppState); + addMessageListener("get-mozapp-manifest-url", this._sendMozAppManifestURL); mm.loadFrameScript("chrome://global/content/BrowserElementChild.js", /* allowDelayedLoad = */ true); @@ -135,8 +135,8 @@ BrowserElementParent.prototype = { frameElement.dispatchEvent(evt); }, - _sendAppState: function(frameElement, data) { - return frameElement.hasAttribute('mozapp'); + _sendMozAppManifestURL: function(frameElement, data) { + return frameElement.getAttribute('mozapp'); }, observe: function(subject, topic, data) {