Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Firefox 3.6 note de version pour les développeurs

Firefox 3.6 prend en charge les nouvelles normes Web en cours d'élaboration, offre des performances améliorées et garantit une meilleure expérience globale aux internautes et aux développeur·euse·s. Cette page propose des liens vers des articles présentant les nouvelles fonctionnalités de Firefox 3.6.

Pour les développeur·euse·s de sites web et d'applications

CSS

Utilisation de dégradés

Firefox 3.6 ajoute le support de -moz-linear-gradient et -moz-radial-gradient pour la propriété background.

Fonds multiples

La propriété background (ainsi que background-color, background-image, background-position, background-repeat, et background-attachment) peuvent gérer des fonds multiples. Ceux-ci sont affichés par couches, les uns au-dessus des autres.

Fonctionnalités de médias spécifiques à Mozilla

Des fonctionnalités de médias ont été ajoutées pour des mesures spécifiques à Mozilla, afin de pouvoir utiliser des requêtes média pour vérifier plus aisément la disponibilité de fonctionnalités comme un écran tactile.

Redimensionnement d'images de fond

La propriété background-size du brouillon CSS 3 Backgrounds and Borders (angl.) est gérée sous le nom de -moz-background-size.

Support des polices WOFF

@font-face prend désormais en charge le format de polices Web téléchargeables WOFF.

Evènements pointeurs

La propriété pointer-events permet de définir si un élément peut être la cible des évènements de pointeur de la souris.

Autres changements CSS

HTML

Utilisation de fichiers à partir d'applications Web

Le support de la nouvelle API de fichier HTML5 a été ajouté à Gecko, ce qui permet à des applications Web d'accéder à des fichiers locaux sélectionnés par l'utilisateur·ice.

Support des affiches pour les vidéos HTML5

L'attribut poster est pris en charge pour l'élément <video>, ce qui permet au contenu de choisir une image à afficher tant que la vidéo n'a pas commencée.

Support de la propriété indeterminate pour les cases à cocher et boutons radio

Les éléments HTML <input> des types checkbox et radio supportent désormais la propriété indeterminate qui permet d'avoir un troisième état « indéterminé ».

Contrôle du lissage d'images dans canvas

La nouvelle propriété mozImageSmoothingEnabled peut être utilisée pour activer et désactiver le lissage lors d'un redimensionnement dans les éléments <canvas>.

Exécution d'un script asynchrone

En définissant l'attribut async sur un élément <script>, le script ne bloque pas le chargement ou l'affichage du reste de la page. En revanche, le script s'exécute dès qu'il est téléchargé.

JavaScript

Gecko 1.9.2 introduit JavaScript 1.8.2, qui ajoute un certain nombre de fonctionnalités issues de la norme ECMAScript 5 (angl.):

  • Date.parse() peut maintenant analyser des dates ISO 8601 au format YYYY-MM-DD.
  • La propriété prototype des instances de fonctions n'est plus énumérable.

DOM

Terminaison des web workers par eux-mêmes

Les web workers prennent désormais en charge la méthode nsIWorkerScope.close(), qui leur permet de se terminer d'eux-mêmes.

Glisser-déposer de fichiers

L'objet DataTransfer fournit à présent aux observateurs de glisser-déposer une liste des fichiers glissés.

Vérification pour voir si un élément correspond à un sélecteur CSS

La nouvelle méthode Node.mozMatchesSelector permet de déterminer si un élément correspond bien à un sélecteur CSS. Voir bogue Firefox 518003 (angl.).

Dispositif de détection de l'orientation

Le contenu peut à présent détecter l'orientation de l'appareil s'il dispose d'un accéléromètre, à l'aide de l'évènement MozOrientation. Firefox 3.6 gère notamment l'accéléromètre des ordinateurs portables Mac.

Détection des changements de largeur et hauteur d'un document

Le nouvel évènement MozScrollAreaChanged est déclenché lorsqu'une des propriétés scrollWidth ou scrollHeight d'un document change.

Autres changements DOM

  • La méthode getBoxObjectFor() a été supprimée, car elle n'était pas standard et exposait d'autres fonctionnalités non standard. Voir bogue Firefox 340571 (angl.). La bibliothèque MooTools (angl.) qui utilisait cet appel pour la détection de Gecko est affectée ; cela a été corrigé dans la dernière version de MooTools, assurez-vous donc d'être à jour.
  • Les nouvelles propriétés mozInnerScreenX et mozInnerScreenY sur les objets DOM window ont été ajoutées ; elles retournent les coordonnées à l'écran du coin supérieur gauche de la zone de visualisation de la fenêtre.
  • La nouvelle propriété mozScreenPixelsPerCSSPixel de nsIDOMWindowUtils uniquement accessible depuis le chrome, fournit un facteur de conversion entre les pixels CSS et les pixels à l'écran ; cette valeur peut varier selon le niveau de zoom du contenu.
  • Lorsque l'identifiant de fragment de document de l'URL de la page change (la partie après le caractère « # » (dièse)), un nouvel évènement hashchange est envoyé à la page. Consultez hashchange pour plus d'informations. bogue Firefox 385434 (angl.)
  • L'attribut Document.readyState est désormais supporté. bogue Firefox 347174 (angl.)
  • Gestion de l'attribut HTML5 Element.classList pour permettre une gestion plus aisée de l'attribut class. bogue Firefox 501257 (angl.)
  • localName et namespaceURI dans les documents HTML se comportent à présent comme dans les documents XHTML : localName est renvoyé en minuscules et la propriété namespaceURI pour les éléments HTML est "http://www.w3.org/1999/xhtml".
  • Element.getElementsByTagNameNS son argument n'est plus en minuscules, alors en lettres majuscules ASCII dans l'argument établit des chaînes de caractères contre des éléments HTML échouent. C'est vrai aussi pour document.getElementsByTagNameNS.
  • Ajout de la gestion des adresses dans la géolocalisation avec l'interface nsIDOMGeoPositionAddress et d'un nouveau champ dans nsIDOMGeoPosition.
  • La fonction Window.getComputedStyle retourne à présent les guillemets autour des valeurs url().

XPath

Gestion de la méthode XPath choose()

La méthode choose() est à présent gérée par notre implémentation de XPath.

Pour les développeur·euse·s XUL et d'extensions

Si vous êtes un développeur·euse d'extensions, vous devriez commencer par lire mise à jour des extensions pour Firefox 3.6, qui offre une vue d'ensemble sur les changements qui pourraient affecter vos extensions. Les développeur·euse·s de Plug-in devraient lire mise à jour des modules complémentaires pour Firefox 3.6.

Nouvelles fonctionnalités

Détection de l'orientation de l'appareil

Le contenu peut maintenant détecter l'orientation de l'appareil s'il possède un accéléromètre, en utilisant l'évènement MozOrientation. Firefox 3.6 supporte l'accéléromètre des ordinateurs portables Mac.

Surveillance de l'activité HTTP (angl.)

Vous pouvez maintenant surveiller en temps réel les données HTTP demandées et reçues.

Intégration à la Barre des tâches de Windows

Il est maintenant possible de personnaliser l'apparence des fenêtres dans la barre des tâches sous Windows 7 ou plus récent. C'est désactivé par défaut dans Firefox 3.6.

Places

  • Les requêtes peuvent maintenant utiliser l'attribut redirectsMode de l'interface nsINavHistoryQueryOptions pour définir s'il faut inclure ou non les pages redirigées dans les résultats.
  • Ajout de la nouvelle méthode nsIFaviconService.expireAllFavicons() à l'interface nsIFaviconService.

Stockage

Tri des données locales avec l'API Storage (angl.)

Gecko 1.9.2 ajoute plusieurs nouvelles méthodes pour offrir une collecte (tri) optimisée des résulats en utilisant les techniques de localisation.

Énumération des propriétés d'une requête (angl.)

Vous pouvez maintenant utiliser for...in pour énumérer toutes les propriétés d'une déclaration.

mozIStorageStatement's getParameterIndex a changé de comportement entre Firefox 3.5 et 3.6.

Voir bogue Firefox 528166 (angl.) pour plus de détails.

Liaison asynchrone de plusieurs ensembles de paramètres pour exécution d'une requête.

Voir bogue Firefox 490085 (angl.) pour plus de détails.

Préférences

  • L'interface nsIContentPrefService a deux nouvelles méthodes : nsIContentPrefService.getPrefsByName() et nsIContentPrefService.removePrefsByName().

Thèmes

Voir mise à jour des thèmes pour Firefox 3.6 pour la liste des changements liés aux thèmes.

Thèmes légers (angl.)

Firefox 3.6 supporte les thèmes légers ; ce sont des thèmes faciles à créer et qui sont simplement appliqué sur le fond de la fenêtre du navigateur, en haut (barre d'adresses et boutons) et en bas (barre d'état). Il s'agit d'une intégration de l'architecture de thèmes Personas dans Firefox.

Divers

  • Firefox n'a plus la charge des modules tiers installé dans son répertoire des modules internes. Cela contribue à assurer la stabilité en empêchant des composants tiers buggés d'être exécuté. Les développeur·euse·s qui installent des composants de cette façon doivent refaire leurs modules sous forme de paquets XPI (angl.) afin qu'ils puissent être installés normalement.
  • contents.rdf n'est plus pris en charge pour l'enregistrement chrome dans les extensions. Vous devez maintenant utiliser le fichier chrome.manifest (angl.). Voir bogue Firefox 492008 (angl.).
  • La barre de menu peut être cachée automatiquement. Voir bogue Firefox 477256 (angl.).
  • Ajout du support de l'attribut container-live-role aux objets. Voir bogue Firefox 391829 (angl.).
  • Suppression de la liaison tabs-closebutton. Voir bogue Firefox 500971 (angl.).
  • Ajout du support de nsISound pour jouer des sons en fonction des évènements qui ont eu lieu. Voir bogue Firefox 502799 (angl.).
  • La syntaxe pour les méthodes de nsITreeView : nsITreeView.canDrop() et nsITreeView.drop(), a changé pour supporter la nouvelle API glisser & déposer introduite dans Gecko 1.9. Voir bogue Firefox 455590 (angl.).
  • Ajout du support pour aligner le curseur de la souris sur le bouton par défaut de la boîte de dialogue ou l'assistant de Windows, voir bogue Firefox 76053 (angl.). C'est traité automatiquement par la boîte de dialogue et l'assistant. Mais si une application XUL crée une fenêtre en utilisant l'élément window et qu'il a un bouton par défaut, il doit appeler nsIDOMChromeWindow.notifyDefaultButtonLoaded() dans le gestionnaire d'évènements onload de la fenêtre.
  • Pour l'interface nsILocalFileMac, deux méthodes ont étés retirées : setFileTypeAndCreatorFromMIMEType() et setFileTypeAndCreatorFromExtension().
  • Le nouveau module de code NetUtils.jsm (angl.) apporte une méthode facile à utiliser pour copier les données de manière asynchrone à partir d'un flux d'entrée vers un flux de sortie.
  • Le nouveau module de code openLocationLastURL.jsm (angl.), facilite la lecture et la modification de la valeur de l'URL gardée en mémoire de la boîte de dialogue "Ouvrir le fichier", tout en prenant bien en compte le mode de navigation privée.
  • Dans Windows, l'interface nsIScreen reporte maintenant 24 bits par pixel pour la profondeur des couleurs lorsque le pilote graphique demande 32 bits, plus précisement 24 représente le nombre réel de pixels de couleurs en utilisation.
  • Les barres de menu peuvent maintenant être cachées sous Windows, en utilisant le nouvel attribut autohide (angl.) sur l'élément XUL <xul:toolbar> (angl.).
  • Les méthodes loadOneTab (angl.) et addTab (angl.) acceptent maintenant le nouveau paramètre relatedToCurrent et, en outre, permet à des paramètres d'être définis par un nom, puisque presque tous les paramètres sont optionnels.
  • La propriété « hidden (angl.) » n'est plus supportée dans les manisfestes d'installation ; il n'est plus possible d'empêcher l'utilisateur·ice de voir des modules complémentaires dans la fenêtre du gestionnaire de module.
  • Le composant @mozilla.org/webshell;1 n'existe plus ; vous devez utiliser @mozilla.org/docshell;1 à la place.
  • Vous pouvez désormais enregistrer avec la catégorie update-timer pour programmer la synchronisation des évènements sans avoir à instancier l'objet que le minuteur va éventuellement remettre, il est plutôt instancié lorsque c'est nécessaire. Voir nsIUpdateTimerManager.registerTimer() pour plus de détails.
  • La fonction NPN_GetValue (angl.) ne donne plus accès à travers XPCOM aux valeurs de variables NPNVserviceManager, NPNVDOMelement et NPNVDOMWindow. Cela fait partie des travaux pour que les plugins s'exécutent dans des processus séparés dans une future version de Gecko.
  • Les plugins ne sont plus scriptables à travers l'interface XPCOM (IDL), NPRuntime (angl.) est l'API à utiliser pour coder des plugins et NPP_GetValue() (angl.) n'est plus appelé avec la valeur NPPVpluginScriptableInstance ou NPPVpluginScriptableIID. Cela fait partie des travaux pour que les plugins s'exécutent dans des processus séparés dans une future version de Gecko.

Pour les développeur·euse·s de Firefox/Gecko

Certains changements sont vraiment intéressants si vous travaillez sur le fonctionnement interne de Firefox.

Interfaces fusionnées

Les interfaces suivantes ont été fusionnées :

  • nsIPluginTagInfo2 a été fusionnée avec nsIPluginTagInfo.
  • nsIPluginInstanceInternal, nsIPPluginInstancePeer, nsIPluginInstancePeer1, nsIPluginInstancePeer2 et nsIPluginInstancePeer3 ont toutes été fusionnées avec nsIPluginInstance.
  • nsIWindowlessPlugInstPeer a été fusionnée avec nsIPluginInstance.
  • nsIPluginManager et nsIPluginManager2 ont été fusionnées avec nsIPluginHost

Interfaces supprimées

Les interfaces suivantes ont été entièrement supprimées, car elles étaient inutilisées, non implémentées ou obsolètes :

  • nsIFullScreen
  • nsIDOMSVGListener
  • nsIDOMSVGZoomListener
  • nsIInternetConfigService
  • nsIDKey
  • nsIEventHandler
  • nsIJRILiveConnectPIPeer
  • nsIJRILiveConnectPlugin
  • nsIScriptablePlugin
  • nsIClassicPluginFactory
  • nsIFileUtilities

Interfaces déplacées

Les interfaces suivantes ont été déplacées de leurs précédents fichiers IDL vers leurs nouveaux :

  • nsIDOMNSCSS2Properties est maintenant située dans son propre fichier IDL (dom/interfaces/css/nsIDOMCSS2Properties.idl).
  • nsIUpdateTimerManager est maintenant située dans son propre fichier IDL.

Un grand nombre d'interfaces ont été déplacées. Voir Interfaces déplacées dans Firefox 3.6 pour la liste complète.

Autres changements dans les interfaces

Les modifications suivantes ont été faites :

  • L'interface nsIPlugin hérite maintenant de nsISupports à la place de nsIFactory.
  • L'interface nsIPluginHost hérite maintenant de nsISupports à la place de nsIFactory.
  • L'interface nsIFrame hérite maintenant de nsQueryFrame à la place de nsISupports.
  • La méthode getPaletteInfo() de nsIDeviceContext a été supprimée, car elle n'a jamais été appliquée.
  • La méthode reportPendingException() de nsIScriptContext a été supprimée, car elle n'était plus utilisée.

Changements dans l'accessibilitée du code

  • L'évènement d'accessibilité (angl.) EVENT_REORDER est maintenant envoyé quand les enfants des frames et des iframes changent, ainsi que lors de la modification du document principal des enfants. Voir bogue Firefox 420845 (angl.).
  • Désormais toute sélection en cours est correctement supprimée avant de sélectionner une ligne spécifique.