Incompatibilités Chrome

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

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.
  • 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.

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 et active 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 inclure url dans le paramètre queryInfo de tabs.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

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
  • Les réponses peuvent être modifiées uniquement dans onHeadersReceived.
  • Filtrer avecy windowId et tabId n'est pas supporté.
  • L'instruction "requestBody"  dans opt_extraInfoSpec n'est pas supportée.
  • Les redirections ne sont pas autorisées dans onBeforeRequest ou onHeadersReceived, mais le sont dans onBeforeSendHeaders.
  • 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 options focused, type, ou state.
  • update() supporte uniquement l'option focused.

API prévues

Nous ne supportons pas encore les API suivantes, mais nous prévoyons de le faire bientôt :

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é.

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : Goofy, Bat41
 Dernière mise à jour par : Goofy,