Cet article nécessite une relecture rédactionnelle. Voici comment vous pouvez aider.
Cette traduction est incomplète. Aidez à traduire cet article depuis l'anglais.
Les WebExtensions sont conçues pour être compatible avec les extensions Chrome et Opera : le plus souvent possible, les extensions créées pour ces navigateurs devraient fonctionner sur Firefox avec des changements mineurs.
Cependant, Firefox ne supporte pour le moment que certaines fonctions et API de Chrome et Opera. Nous travaillons sur le support de davantage d'entre elles, mais beaucoup ne sont pas encore supportées et certaines ne le seront jamais.
Cet article liste toutes les fonctions et APIs qui sont complètement ou partiellement supportés dans Firefox. Si une fonction n'est pas entièrement supportée, nous avons indiqué quels sont les problèmes.
Partez du principe que toute fonctionnalité ou API qui ne serait pas listée ici n'est pas encore supportée.
Les fonctions du manifest.json
Clés complètements supportées
applications
browser_action
default_locale
description
icons
manifest_version
name
page_action
version
web_accessible_resources
Clés partiellement supportées
background
Firefox ne supporte pas la propriété "persistent"
. Les scripts en arrière-plan restent chargés en permanence.
content_scripts
Actuellement, Firefox ne supporte pas:
include_globs
exclude_globs
match_about_blank
permissions
Firefox ne supporte pas encore ces permissions:
background
clipboardRead
clipboardWrite
geolocation
nativeMessaging
unlimitedStorage
Évidemment, les permissions des APIs qui ne sont elles mêmes pas supportées ne sont pas implémentées.
web_accessible_resources
Firefox ne supporte actuellement pas les astérisques : vous devez lister toutes les ressources web accessibles individuellement.
APIs JavaScript
APIs complètements supportées
- alarms
- browserAction
- Les URLs relatives passées à
setPopup()
sont résolues de manière relative au document qui appelle la fonction, plutôt que la racine de l'extension.
- Les URLs relatives passées à
- contextMenus
- pageAction
- Les URLs relatives passées à
setPopup()
sont résolues de manière relative au document qui appelle la fonction, plutôt que la racine de l'extension.
- Les URLs relatives passées à
APIs partiellement supportées
bookmarks
- Firefox ne supporte pas :
getRecent()
search()
removeTree()
(remove
supprime aussi tous les dossiers qui ne sont pas vides)onCreated
onRemoved
onChanged
onMoved
onChildrenReordered
onImportBegan
onImportEnded
- BookmarkTreeNodeUnmodifiable
- Firefox a un équivalent spécial à "Récemment ajouté" ou "Réceement visité"
cookies
- l'évènement onChanged sera légèrement différent
- Créer un cookie de session avec
set
devrait échouer bug 1238269 getAllCookieStores
retournera toujours un magasin par défaut et pas les onglets- accéder aux cookies depuis les onglets privés est impossible
- Des permissions hôte ne sont actuellement pas obligées bug 1210996
extension
- Firefox ne supporte pas :
isAllowedIncognitoAccess()
isAllowedFileSchemeAccess()
setUpdateUrlData()
onRequest
onRequestExternal
i18n
- Dans l'API JavaScript, Firefox supporte uniquement la méthode
getMessage()
pour l'instant.
notifications
- Les seules options de notifications supportées sont :
iconUrl
title
message
.
- Les seules méthodes supportées sont:
create()
clear()
getAll()
.
- Le seul évènement supporté est
onClosed
. - Firefox ne donne pas les données
byUser
.
runtime
- Firefox supporte seulement :
onStartup()
getManifest()
getURL()
id
sendMessage()
onMessage
onConnect
storage
- La seule zone d'enregistrement que Firefox supporte est
local
. - Firefox ne supporte pas
getBytesInUse()
. - L'API storage n'est pas supportée dans les scripts de contenu.
tabs
- Firefox ne supporte pas:
sendRequest()
getSelected()
duplicate()
highlight()
detectLanguage()
getZoom()
setZoom()
getZoomSettings()
setZoomSettings()
- Aussi :
- Firefox traite
highlighted
etactive
de la même manière, étant donné que Firefox n'a pas de concept permettant de sélectionner plusieurs onglets. - Dans Firefox, vous avez besoin de la permission
tabs
si vous voulez inclureurl
dans le paramètrequeryInfo
detabs.query()
. -
Dans Firefox, les URLs relatives passées dans les onglets via
tabs.executeScript()
ou tabs.insertCSS()
sont résolues relativement à l'URL de la page actuelle. dans Chrome, ces URL sont résolues relativement à l'URL de base de l'extension. Pour fonctionner sur plusieurs navigateurs, vous pouvez spécifer la chemin en tant qu'URL absolue, partant de la racine du module, de cette façon :/chemin/vers/le/script.js
- Firefox traite
webNavigation
- Firefox ne supporte pas :
getFrame()
getAllFrames()
onCreatedNavigationTarget
onHistoryStateUpdated
- transition types and qualifiers
- Filtering
onReferenceFragmentUpdated
est aussi déclenché pour pushState
.
webRequest
- Firefox ne supporte pas :
handlerBehaviorChanged()
onAuthRequired
onErrorOccurred
- Le requêtes peuvent être:
- annulées uniquement dans
onBeforeRequest
- modifiées/redirigées uniquement dans
onBeforeSendHeaders
- annulées uniquement dans
- Les réponses peuvent être modifiées uniquement dans
onHeadersReceived
. - Filtrer avecy
windowId
ettabId
n'est pas supporté. - L'instruction
"requestBody"
dansopt_extraInfoSpec
n'est pas supportée. - Les redirections ne sont pas autorisées dans
onBeforeRequest
ouonHeadersReceived
, mais le sont dansonBeforeSendHeaders
. requestId
n'est pas inclus dans l'argument passé au listener.
windows
onFocusChanged
sera déclenché plusieurs fois pour un changement de focus donné.create()
ne supporte pas les optionsfocused
,type
, oustate
.update()
supporte uniquement l'optionfocused
.
API prévues
Nous ne supportons pas encore les API suivantes, mais nous prévoyons de le faire bientôt :
- commands
- Devtools (mostly panels)
- debugger
- downloads
- history
- idle
- omnibox
- permissions
- Native messaging (runtime.connectNative)
Incompatibilités diverses
Arguments facultatifs
Chrome autorise n'importe quel argument facultatif à être oublié, même s'il est suivi par d'autres arguments. Firefox ne supporte ceci que dans certains cas spécifiques. Nous recommandons d'omettre des arguments facultatifs à la fin de la liste d'arguments, et d'utiliser null
pour tous les autres cas.
URL en CSS
Firefox résout les URL dans les fichiers CSS injectés relativement à ce fichier, plutôt qu'à la page dans dans laquelle il est injecté.