'use strict';function debug(s){}
const{classes:Cc,interfaces:Ci,utils:Cu,results:Cr}=Components;Cu.import('resource://gre/modules/DOMRequestHelper.jsm');Cu.import('resource://gre/modules/XPCOMUtils.jsm');XPCOMUtils.defineLazyServiceGetter(this,'cpmm','@mozilla.org/childprocessmessagemanager;1','nsIMessageSender');function RequestSyncScheduler(){debug('created');}
RequestSyncScheduler.prototype={__proto__:DOMRequestIpcHelper.prototype,classDescription:'RequestSyncScheduler XPCOM Component',classID:Components.ID('{8ee5ab74-15c4-478f-9d32-67627b9f0f1a}'),contractID:'@mozilla.org/dom/request-sync-scheduler;1',QueryInterface:XPCOMUtils.generateQI([Ci.nsISupportsWeakReference,Ci.nsIObserver,Ci.nsIDOMGlobalPropertyInitializer]),_messages:['RequestSync:Register:Return','RequestSync:Unregister:Return','RequestSync:Registrations:Return','RequestSync:Registration:Return'],init:function(aWindow){debug('init'); this.initDOMRequestHelper(aWindow,this._messages);},register:function(aTask,aParams){debug('register');return this.sendMessage('RequestSync:Register',{task:aTask,params:aParams});},unregister:function(aTask){debug('unregister');return this.sendMessage('RequestSync:Unregister',{task:aTask});},registrations:function(){debug('registrations');return this.sendMessage('RequestSync:Registrations',{});},registration:function(aTask){debug('registration');return this.sendMessage('RequestSync:Registration',{task:aTask});},sendMessage:function(aMsg,aObj){let self=this;return this.createPromise(function(aResolve,aReject){aObj.requestID=self.getPromiseResolverId({resolve:aResolve,reject:aReject});cpmm.sendAsyncMessage(aMsg,aObj,null,self._window.document.nodePrincipal);});},receiveMessage:function(aMessage){debug('receiveMessage');let req=this.getPromiseResolver(aMessage.data.requestID);if(!req){return;}
if('error'in aMessage.data){req.reject(Cu.cloneInto(aMessage.data.error,this._window));return;}
if('results'in aMessage.data){req.resolve(Cu.cloneInto(aMessage.data.results,this._window));return;}
req.resolve();}};this.NSGetFactory=XPCOMUtils.generateNSGetFactory([RequestSyncScheduler]);