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-gradientet-moz-radial-gradientpour la propriétébackground. - Fonds multiples
-
La propriété
background(ainsi quebackground-color,background-image,background-position,background-repeat, etbackground-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-sizedu brouillon CSS 3 Backgrounds and Borders (angl.) est gérée sous le nom de-moz-background-size. - Support des polices WOFF
-
@font-faceprend désormais en charge le format de polices Web téléchargeables WOFF. - Evènements pointeurs
-
La propriété
pointer-eventspermet de définir si un élément peut être la cible des évènements de pointeur de la souris.
Autres changements CSS
- L'unité de longueur
remest maintenant prise en charge. bogue Firefox 472195 (angl.) image-renderingest prise en charge pour les images, images de fonds, vidéos et canevas. bogue Firefox 423756 (angl.)text-align:end est maintenant prise en charge. bogue Firefox 299837 (angl.)- Les changements DOM sur des éléments utilisant les types de
displaytable fonctionnent beaucoup mieux. - Ajout de
:-moz-locale-dir(ltr)et:-moz-locale-dir(rtl)pour faciliter la personnalisation de mise en page selon l'orientation de l'interface dépendant de la locale (gauche à droite ou droite à gauche). bogue Firefox 478416 (angl.) - Ajout de la pseudo-classe
:indeterminate, correspondant aux élémentscheckbox<input>dont l'attributindeterminateesttrue. - Les plugins fenêtrés ne sont plus affichés par les transformations CSS, car ils ne peuvent pas être correctement transformés par le compositeur.
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
posterest 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é
indeterminatepour les cases à cocher et boutons radio -
Les éléments HTML
<input>des typescheckboxetradiosupportent 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é
mozImageSmoothingEnabledpeut ê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
asyncsur un élément<script>, lescriptne bloque pas le chargement ou l'affichage du reste de la page. En revanche, lescripts'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é
prototypedes 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
DataTransferfournit à 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.mozMatchesSelectorpermet 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
MozScrollAreaChangedest déclenché lorsqu'une des propriétésscrollWidthouscrollHeightd'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
mozInnerScreenXetmozInnerScreenYsur 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é
mozScreenPixelsPerCSSPixeldensIDOMWindowUtilsuniquement 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
hashchangeest envoyé à la page. Consultezhashchangepour plus d'informations. bogue Firefox 385434 (angl.) - L'attribut
Document.readyStateest désormais supporté. bogue Firefox 347174 (angl.) - Gestion de l'attribut HTML5
Element.classListpour permettre une gestion plus aisée de l'attribut class. bogue Firefox 501257 (angl.) localNameetnamespaceURIdans les documents HTML se comportent à présent comme dans les documents XHTML :localNameest renvoyé en minuscules et la propriéténamespaceURIpour les éléments HTML est"http://www.w3.org/1999/xhtml".Element.getElementsByTagNameNSson 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 pourdocument.getElementsByTagNameNS.- Ajout de la gestion des adresses dans la géolocalisation avec l'interface
nsIDOMGeoPositionAddresset d'un nouveau champ dansnsIDOMGeoPosition. - La fonction
Window.getComputedStyleretourne à présent les guillemets autour des valeursurl().
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
redirectsModede l'interfacensINavHistoryQueryOptionspour 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'interfacensIFaviconService.
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...inpour é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
nsIContentPrefServicea deux nouvelles méthodes :nsIContentPrefService.getPrefsByName()etnsIContentPrefService.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.rdfn'est plus pris en charge pour l'enregistrement chrome dans les extensions. Vous devez maintenant utiliser le fichierchrome.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-roleaux objets. Voir bogue Firefox 391829 (angl.). - Suppression de la liaison
tabs-closebutton. Voir bogue Firefox 500971 (angl.). - Ajout du support de
nsISoundpour 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()etnsITreeView.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
windowet qu'il a un bouton par défaut, il doit appelernsIDOMChromeWindow.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()etsetFileTypeAndCreatorFromExtension(). - 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
nsIScreenreporte 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.) etaddTab(angl.) acceptent maintenant le nouveau paramètrerelatedToCurrentet, 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;1n'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 variablesNPNVserviceManager,NPNVDOMelementetNPNVDOMWindow. 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 valeurNPPVpluginScriptableInstanceouNPPVpluginScriptableIID. 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 :
nsIPluginTagInfo2a été fusionnée avecnsIPluginTagInfo.nsIPluginInstanceInternal,nsIPPluginInstancePeer,nsIPluginInstancePeer1,nsIPluginInstancePeer2etnsIPluginInstancePeer3ont toutes été fusionnées avecnsIPluginInstance.nsIWindowlessPlugInstPeera été fusionnée avecnsIPluginInstance.nsIPluginManageretnsIPluginManager2ont été fusionnées avecnsIPluginHost
Interfaces supprimées
Les interfaces suivantes ont été entièrement supprimées, car elles étaient inutilisées, non implémentées ou obsolètes :
nsIFullScreennsIDOMSVGListenernsIDOMSVGZoomListenernsIInternetConfigServicensIDKeynsIEventHandlernsIJRILiveConnectPIPeernsIJRILiveConnectPluginnsIScriptablePluginnsIClassicPluginFactorynsIFileUtilities
Interfaces déplacées
Les interfaces suivantes ont été déplacées de leurs précédents fichiers IDL vers leurs nouveaux :
nsIDOMNSCSS2Propertiesest maintenant située dans son propre fichier IDL (dom/interfaces/css/nsIDOMCSS2Properties.idl).nsIUpdateTimerManagerest 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
nsIPluginhérite maintenant densISupportsà la place densIFactory. - L'interface
nsIPluginHosthérite maintenant densISupportsà la place densIFactory. - L'interface
nsIFramehérite maintenant densQueryFrameà la place densISupports. - La méthode
getPaletteInfo()densIDeviceContexta été supprimée, car elle n'a jamais été appliquée. - La méthode
reportPendingException()densIScriptContexta été supprimée, car elle n'était plus utilisée.
Changements dans l'accessibilitée du code
- L'évènement d'accessibilité (angl.)
EVENT_REORDERest maintenant envoyé quand les enfants desframeset desiframeschangent, 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.