mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1091790 - Check active call via nsITelephonyService. r=fabrice
This commit is contained in:
parent
3663cf4c47
commit
2872982e1b
@ -35,9 +35,9 @@ var secMan = Cc["@mozilla.org/scriptsecuritymanager;1"].getService(Ci.nsIScriptS
|
|||||||
let permissionSpecificChecker = {};
|
let permissionSpecificChecker = {};
|
||||||
|
|
||||||
XPCOMUtils.defineLazyServiceGetter(this,
|
XPCOMUtils.defineLazyServiceGetter(this,
|
||||||
"AudioManager",
|
"TelephonyService",
|
||||||
"@mozilla.org/telephony/audiomanager;1",
|
"@mozilla.org/telephony/telephonyservice;1",
|
||||||
"nsIAudioManager");
|
"nsITelephonyService");
|
||||||
|
|
||||||
XPCOMUtils.defineLazyModuleGetter(this, "SystemAppProxy",
|
XPCOMUtils.defineLazyModuleGetter(this, "SystemAppProxy",
|
||||||
"resource://gre/modules/SystemAppProxy.jsm");
|
"resource://gre/modules/SystemAppProxy.jsm");
|
||||||
@ -455,12 +455,29 @@ ContentPermissionPrompt.prototype = {
|
|||||||
(function() {
|
(function() {
|
||||||
// Do not allow GetUserMedia while in call.
|
// Do not allow GetUserMedia while in call.
|
||||||
permissionSpecificChecker["audio-capture"] = function(request) {
|
permissionSpecificChecker["audio-capture"] = function(request) {
|
||||||
if (AudioManager.phoneState === Ci.nsIAudioManager.PHONE_STATE_IN_CALL) {
|
let forbid = false;
|
||||||
request.cancel();
|
|
||||||
return true;
|
try {
|
||||||
} else {
|
// nsITelephonyService.enumerateCalls is synchronous.
|
||||||
|
TelephonyService.enumerateCalls({
|
||||||
|
QueryInterface: XPCOMUtils.generateQI([Ci.nsITelephonyListener]),
|
||||||
|
enumerateCallStateComplete: function() {},
|
||||||
|
enumerateCallState: function(callInfo) {
|
||||||
|
if (callInfo.callState == Ci.nsITelephonyService.CALL_STATE_CONNECTED) {
|
||||||
|
forbid = true;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
|
} catch (e) {
|
||||||
|
// No restriction if Telephony service doesn't exist.
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (forbid) {
|
||||||
|
request.cancel();
|
||||||
|
}
|
||||||
|
|
||||||
|
return forbid;
|
||||||
};
|
};
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user