Firefox 3.6 pour les développeurs
-
Notes de versions pour développeurs
-
Modules complémentaires
-
Fonctionnement interne de Firefox
-
Développer et contribuer
Firefox 3.6 (nom de code Namoroka) est sorti le 21 janvier 2010 et est basé sur Gecko 1.9.2. Cette page fournit des liens vers des articles qui décrivent les nouvelles fonctionnalités de Firefox 3.6.
Pour les développeurs de sites et d'applications Web
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 quebackground-attachment
background-color
,background-image
,background-position
etbackground-repeat
) peuvent gérer des fonds multiples. Ceux-ci seront 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 media queries 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 est gérée sous le nom de-moz-background-size
. - Support des polices WOFF
-
@font-face
supporte désormais le format de polices Web téléchargeables WOFF - Evènements pointeurs
-
La propriété
pointer-events
si le contenu d'un élément peut être ou non la cible d'évènements pointeur avec la souris.
Autres changements CSS
- L'unité de longueur
rem
de CSS3 Values and Units est maintenant supportée. Voir bug 472195. image-rendering
est gérée pour les images, images de fond, vidéos et canvas. Voir bug 423756.text-align
:end est maintenant supportée. Voir bug 299837.- Les changements DOM sur des éléments utilisant les types de
display
table 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). Voir bug 478416. - Ajout de la pseudo-classe
:indeterminate
correspondant aux éléments<input>
checkbox
dont l'attributindeterminate
esttrue
. - Les plugins fenêtrés ne sont plus affichés par la propriété CSS tranforms, car ils ne peuvent pas être correctement tranformé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.
- 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 typescheckbox
etradio
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>
, lescript
ne bloquera pas le chargement ou l'affichage du reste de la page. En revanche, lescript
s'exécutera dès qu'il sera téléchargé.
JavaScript
Gecko 1.9.2 introduit JavaScript 1.8.2, qui ajoute un certain nombre de fonctionnalités de langage de la norme ECMAScript 5 :
Date.parse()
peut analyser des dates ISO 8601 au format YYYY-MM-DD (année-mois-jour).- La propriété
prototype
d'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
element.mozMatchesSelector
permet de déterminer si un élément correspond bien à un sélecteur CSS. Voir bug 518003. - Dispositf 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ésscrollWidth
ouscrollHeight
d'un document change.
- La méthode
getBoxObjectFor()
a été supprimée, car elle n'était pas standard et exposait d'autres fonctionnalités non standard. Voir bug 340571. La bibliothèque MooTools 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
etmozInnerScreenY
sur les objets DOM window on été ajoutés ; ils renvoient les coordonnées à l'écran du coin supérieur gauche de la zone de visualisation de la fenêtre. - La nouvelle propriété
mozScreenPixelsPerCSSPixel
densIDOMWindowUtils
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 window.onhashchange pour plus d'informations. bug 385434 - L'attribut
document.readyState
est désormais supporté. bug 347174 - Gestion de l'attribut HTML5
element.classList
pour permettre une gestion plus aisée de l'attribut class. bug 501257 localName
etnamespaceURI
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 contre des éléments HTML échouent. Cela est vrai aussi pourdocument.getElementsByTagNameNS
.- Ajout de la gestion des adresses dans la géolocalisation via l'interface
nsIDOMGeoPositionAddress
et d'un nouveau champ dansnsIDOMGeoPosition
. - La fonction
window.getComputedStyle
renvoie à 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éveloppeurs XUL et les développeurs d'extensions
Si vous êtes un développeur d'extensions, vous devriez commencer par lire Updating extensions for Firefox 3.6, qui offre une vue d'ensemble sur les changements qui pourraient affecter vos extensions. Les développeurs de Plug-in devraient lire Updating plug-ins for 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 si 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
-
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'interfacensINavHistoryQueryOptions
pour spécifier si il faut inclure ou non les pages redirigées dans les résultats. - Ajout de la nouvelle méthode
nsIFaviconService.expireAllFavicons()
à l'interfacensIFaviconService
.
Storage
- Tri des données locales avec l'API Storage
-
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
-
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 bug 528166 pour plus de détails.
- Liaison asynchrone de plusieurs ensembles de paramètres pour exécution d'une requête.
-
Voir bug 490085 pour plus de détails.
Préférences
- L'interface
nsIContentPrefService
a deux nouvelles méthodes :nsIContentPrefService.getPrefsByName()
etnsIContentPrefService.removePrefsByName()
.
Thèmes
Voir Updating themes for Firefox 3.6 pour la liste des changements liés aux thèmes.
- Thèmes légers
-
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éveloppeurs qui installent des composants de cette façon doivent refaire leurs modules sous forme de paquets XPI 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 fichierchrome.manifest
. Voir bug 492008.- La barre de menu peut être cachée automatiquement. Voir bug 477256.
- Ajout du support de l'attribut
container-live-role
aux objets. Voir bug 391829. - Suppression de la liaison
tabs-closebutton
. Voir bug 500971. - Ajout du support de
nsISound
pour jouer des sons en fonction des évènements qui ont eu lieu. Voir bug 502799. - 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 bug 455590. - 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 bug 76053. Cela est traitée 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 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()
andsetFileTypeAndCreatorFromExtension()
. - Le nouveau module de code
NetUtils.jsm
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
, 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
sur l'élément XULtoolbar
. - Les méthodes
loadOneTab
etaddTab
acceptent maintenant le nouveau paramètrerelatedToCurrent
et, en outre, permet à des paramètres d'être définit par un nom, puisque presque tous les paramètres sont optionnels. - La propriété "hidden" n'est plus supportée dans les manisfestes d'installation ; il n'est plus possible d'empêcher l'utilisateur 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 utilisez@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 sera plutôt instancié lorsque c'est nécessaire. Voir
nsIUpdateTimerManager.registerTimer()
pour plus de détails. - La fonction
NPN_GetValue
ne donne plus accès à travers XPCOM aux valeurs de variablesNPNVserviceManager
,NPNVDOMelement
, etNPNVDOMWindow
. 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 est l'API à utiliser pour coder des plugins et
NPP_GetValue()
n'est plus appelé avec la valeurNPPVpluginScriptableInstance
ouNPPVpluginScriptableIID
. Cela fait partie des travaux pour que les plugins s'exécutent dans des processus séparés dans une future version de Gecko.
Pours les développeurs de Firefox/Gecko
Certains changements sont vraiment intéressant si vous travaillez sur le fonctionnement interne de Firefox.
Interfaces fusionnées
Les interfaces suivantes ont été fusionnées :
nsIPluginTagInfo2
a été fusionnée avecnsIPluginTagInfo
.nsIPluginInstanceInternal
,nsIPPluginInstancePeer
,nsIPluginInstancePeer1
,nsIPluginInstancePeer2
etnsIPluginInstancePeer3
ont toutes été fusionnées avecnsIPluginInstance
.nsIWindowlessPlugInstPeer
a été fusionnée avecnsIPluginInstance
.nsIPluginManager
etnsIPluginManager2
ont é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 :
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 moved in 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 densISupports
à la place densIFactory
. - L'interface
nsIPluginHost
hérite maintenant densISupports
à la place densIFactory
. - L'interface
nsIFrame
hérite maintenant densQueryFrame
à la place densISupports
. - La méthode
getPaletteInfo()
densIDeviceContext
a été supprimée, car elle n'a jamais été appliquée. - La méthode
reportPendingException()
densIScriptContext
a été supprimée, car elle n'été plus utilisée.
Changements dans l'accessibilitée du code
- L'évènement d'accessibilité
EVENT_REORDER
est maintenant envoyé quand les enfants deframes
et d'iframes
changent, ainsi que lors de la modification du document principal des enfants. Voir bug 420845. - Désormais toute sélection en cours est correctement supprimée avant de sélectionner une ligne spécifique.