Stufen
Anforderungen
|
Konzepte
|
Entwurf
|
Entwicklung
|
Qualitätssicherung
|
Lebenszyklus
|
Steuerung
Ziele
Untersuchung
mit Columbo
Integrität von
Datenbanken
Interaktion und
Portierbarkeit
Ergonomie der
Schnittstellen
Angebot
Produkte
Projekt
Beratung
Mittel
Analytik
Modellierung
Sprachen
Algebra
Logik
Hardware
Denken
Kreativität
Zusammenhänge
Gesellschaft
Wirtschaft
Branche
Firma
products
/
Sources
/
formale Sprachen
/
C
/
Firefox
/
security
/
nss
/
coreconf
/ (
Browser von der Mozilla Stiftung
Version 136.0.1
©
) Datei vom 10.2.2025 mit Größe 9 kB
Bilddatei
permissions.js
products/Sources/formale Sprachen/C/Firefox/browser/fxr/content/permissions.js
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- * 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/. */ /* import-globals-from fxrui.js */ /** * Code to manage Permissions UI * * FxR on Desktop only supports granting permission for * - Location * - Camera * - Microphone * Any other permissions are automatically denied. * */ // Base class for managing permissions in FxR on PC class FxrPermissionPromptPrototype { constructor(aRequest, aBrowser, aCallback) { this.request = aRequest; this.targetBrowser = aBrowser; this.responseCallback = aCallback; } showPrompt() { // For now, all permissions default to denied. Testing for allow must be // done manually until UI is finished: // Bug 1594840 - Add UI for Web Permissions in FxR for Desktop this.defaultDeny(); } defaultDeny() { this.handleResponse(false); } handleResponse(allowed) { if (allowed) { this.allow(); } else { this.deny(); } this.responseCallback(); } } // WebRTC-specific class implementation class FxrWebRTCPrompt extends FxrPermissionPromptPrototype { showPrompt() { for (let typeName of this.request.requestTypes) { if (typeName !== "Microphone" && typeName !== "Camera") { // Only Microphone and Camera requests are allowed. Automatically deny // any other request. this.defaultDeny(); return; } } super.showPrompt(); } allow() { let { audioDevices, videoDevices } = this.request; let principal = Services.scriptSecurityManager.createContentPrincipalFromOrigin( this.request.origin ); // For now, collect the first audio and video device by default. User // selection will be enabled later: // Bug 1594841 - Add UI to select device for WebRTC in FxR for Desktop let allowedDevices = []; if (audioDevices.length) { allowedDevices.push(audioDevices[0].deviceIndex); } if (videoDevices.length) { Services.perms.addFromPrincipal( principal, "MediaManagerVideo", Services.perms.ALLOW_ACTION, Services.perms.EXPIRE_SESSION ); allowedDevices.push(videoDevices[0].deviceIndex); } // WebRTCChild doesn't currently care which actor // this is sent to and just uses the windowID. this.targetBrowser.sendMessageToActor( "webrtc:Allow", { callID: this.request.callID, windowID: this.request.windowID, devices: allowedDevices, }, "WebRTC" ); } deny() { this.targetBrowser.sendMessageToActor( "webrtc:Deny", { callID: this.request.callID, windowID: this.request.windowID, }, "WebRTC" ); } } // Implementation for other, non-WebRTC web permission prompts class FxrContentPrompt extends FxrPermissionPromptPrototype { showPrompt() { // Only allow exactly one permission request here. let types = this.request.types.QueryInterface(Ci.nsIArray); if (types.length != 1) { this.defaultDeny(); return; } // Only Location is supported from this type of request let type = types.queryElementAt(0, Ci.nsIContentPermissionType).type; if (type !== "geolocation") { this.defaultDeny(); return; } // Override type so that it can be more easily interpreted by the code // for the prompt. type = "Location"; super.showPrompt(); } allow() { this.request.allow(); } deny() { this.request.cancel(); } }
2026-05-26
Neuigkeiten
Aktuelles
Motto des Tages
Software
Produkte
Quellcodebibliothek
Aktivitäten
Artikel über Sicherheit
Anleitung zur Aktivierung von SSL
Muße
Gedichte
Musik
Bilder
Jenseits des Üblichen ....
Besucherstatistik
Monitoring
Impressum
|
Ethik und Gesetz
|
Haftungsausschluß
|
Kontakt
|
Seitenstruktur
|
©
2026 JDD
|