diff options
Diffstat (limited to 'b2g/components/PresentationRequestUIGlue.js')
-rw-r--r-- | b2g/components/PresentationRequestUIGlue.js | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/b2g/components/PresentationRequestUIGlue.js b/b2g/components/PresentationRequestUIGlue.js deleted file mode 100644 index 5c50401de..000000000 --- a/b2g/components/PresentationRequestUIGlue.js +++ /dev/null @@ -1,116 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set ts=8 sts=2 et sw=2 tw=80: */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -"use strict" - -function debug(aMsg) { - // dump("-*- PresentationRequestUIGlue: " + aMsg + "\n"); -} - -const { interfaces: Ci, utils: Cu, classes: Cc } = Components; - -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); -Cu.import("resource://gre/modules/Services.jsm"); - -XPCOMUtils.defineLazyModuleGetter(this, "SystemAppProxy", - "resource://gre/modules/SystemAppProxy.jsm"); - -function PresentationRequestUIGlue() { } - -PresentationRequestUIGlue.prototype = { - - sendRequest: function(aUrl, aSessionId, aDevice) { - let localDevice; - try { - localDevice = aDevice.QueryInterface(Ci.nsIPresentationLocalDevice); - } catch (e) {} - - if (localDevice) { - return this.sendTo1UA(aUrl, aSessionId, localDevice.windowId); - } else { - return this.sendTo2UA(aUrl, aSessionId); - } - }, - - // For 1-UA scenario - sendTo1UA: function(aUrl, aSessionId, aWindowId) { - return new Promise((aResolve, aReject) => { - let handler = (evt) => { - if (evt.type === "unload") { - SystemAppProxy.removeEventListenerWithId(aWindowId, - "unload", - handler); - SystemAppProxy.removeEventListenerWithId(aWindowId, - "mozPresentationContentEvent", - handler); - aReject(); - } - if (evt.type === "mozPresentationContentEvent" && - evt.detail.id == aSessionId) { - SystemAppProxy.removeEventListenerWithId(aWindowId, - "unload", - handler); - SystemAppProxy.removeEventListenerWithId(aWindowId, - "mozPresentationContentEvent", - handler); - this.appLaunchCallback(evt.detail, aResolve, aReject); - } - }; - // If system(-remote) app is closed. - SystemAppProxy.addEventListenerWithId(aWindowId, - "unload", - handler); - // Listen to the result for the opened iframe from front-end. - SystemAppProxy.addEventListenerWithId(aWindowId, - "mozPresentationContentEvent", - handler); - SystemAppProxy.sendCustomEventWithId(aWindowId, - "mozPresentationChromeEvent", - { type: "presentation-launch-receiver", - url: aUrl, - id: aSessionId }); - }); - }, - - // For 2-UA scenario - sendTo2UA: function(aUrl, aSessionId) { - return new Promise((aResolve, aReject) => { - let handler = (evt) => { - if (evt.type === "mozPresentationContentEvent" && - evt.detail.id == aSessionId) { - SystemAppProxy.removeEventListener("mozPresentationContentEvent", - handler); - this.appLaunchCallback(evt.detail, aResolve, aReject); - } - }; - - // Listen to the result for the opened iframe from front-end. - SystemAppProxy.addEventListener("mozPresentationContentEvent", - handler); - SystemAppProxy._sendCustomEvent("mozPresentationChromeEvent", - { type: "presentation-launch-receiver", - url: aUrl, - id: aSessionId }); - }); - }, - - appLaunchCallback: function(aDetail, aResolve, aReject) { - switch(aDetail.type) { - case "presentation-receiver-launched": - aResolve(aDetail.frame); - break; - case "presentation-receiver-permission-denied": - aReject(); - break; - } - }, - - classID: Components.ID("{ccc8a839-0b64-422b-8a60-fb2af0e376d0}"), - - QueryInterface: XPCOMUtils.generateQI([Ci.nsIPresentationRequestUIGlue]) -}; - -this.NSGetFactory = XPCOMUtils.generateNSGetFactory([PresentationRequestUIGlue]); |