Firefox 3.5 pour les développeurs

Firefox 3.5 introduit un certain nombre de nouvelles fonctionnalités, ainsi qu'une gestion améliorée d'une grande variété de standards du Web. Cet article en fournit une longue liste, avec des liens vers des articles décrivant les améliorations majeures.

Nouvelles fonctionnalités pour les développeurs dans Firefox 3.5

Pour les développeurs de sites et d'applications web

HTML5

Utilisation d'audio et video dans Firefox
Firefox 3.5 ajoute la gestion des éléments HTML5 audio et video.
Ressources hors ligne dans Firefox
Firefox 3.5 gère entièrement la spécification de ressources hors ligne d'HTML5.
Glisser et déposer
L'API de glisser/déposer d'HTML5 permet de gérer le glisser/déposer d'éléments à l'intérieur et entre des sites web. Elle fournit également une API plus simple pour les extensions et applications basées sur Mozilla.

Nouvelles fonctionnalités CSS

Gestion des polices téléchargeables
La nouvelle règle-@ @font-face permet aux pages web de fournir des polices téléchargeables, afin qu'elles puissent être affichées exactement telles que l'auteur de la page les attend.
Media queries
Firefox 3.5 gère les requêtes de médias, qui améliorent le traitement des feuilles de style destinées à des médias particuliers.
Mise à jour de :before et :after pour CSS 2.1
Les pseudo-éléments :before et :after ont été mis à jour pour respecter complètement CSS 2.1, avec l'ajout des propriétés position, float et list-style-*, ainsi que de certaines valeurs de display.
Unité de longueur ch
L'unité ch peut à présent être utilisée à tout endroit où peut être indiquée une unité de longueur. 1ch est la largeur du caractère « 0 » (zéro).
opacity
L'extension à CSS -moz-opacity de Mozilla a été supprimée en faveur de la propriété standard opacity.
text-shadow
La propriété text-shadow, qui permet à du contenu web de spécifier des effets d'ombres sur le texte et les décorations de texte est à présent gérée.
word-wrap
Cette nouvelle propriété permet au contenu d'indiquer si oui ou non les lignes de texte peuvent être coupées au milieu d'un mot afin d'empêcher un débordement lorsqu'une chaîne normalement insécable est trop longue pour rentrer dans une seule ligne.
Valeur pre-line pour la propriété white-space
La propriété white-space accepte à présent la valeur pre-line.
-moz-box-shadow
-moz-border-image
-moz-column-rule
-moz-column-rule-width
-moz-column-rule-style
-moz-column-rule-color
La gestion de ces extensions à CSS de Mozilla a été ajoutée dans Firefox 3.5.
La -moz-nativehyperlinktext
Cette nouvelle valeur de couleur représente la couleur de lien hypertexte par défaut de l'utilisateur du système.
La nouvelle propriété -moz-window-shadow et la pseudo-classe :-moz-system-metric(mac-graphite-theme)
Ces nouvelles fonctionnalités CSS ont été ajoutées pour faciliter la mise en place de thèmes.
Nouvelles valeurs pour -moz-appearance
Les valeurs -moz-win-glass et -moz-mac-unified-toolbar ont été ajoutées à -moz-appearance.
Utilisation des transformations CSS
Firefox 3.5 gère les transformations CSS. Consultez -moz-transform et -moz-transform-origin pour plus de détails.
:nth-child
:nth-last-child
:nth-of-type
:nth-last-of-type
:first-of-type
:last-of-type
:only-of-type
Ces sélecteurs sont nouvellement gérés dans Firefox 3.5

Nouvelles fonctionnalités DOM

localStorage
Firefox 3.5 ajoute la gestion de la propriété localStorage pour le stockage web, fournissant ainsi une manière pour les applications web de stocker des données localement sur l'ordinateur du client.
Utilisation de workers DOM
Firefox 3.5 gère les workers DOM afin de permettre une gestion multithreadée dans les applications web.
Utilisation de la géolocalisation
Firefox 3.5 gère l'API Geolocation, qui permet aux applications web d'obtenir des informations concernant l'emplacement actuel de l'utilisateur si cette information est fournie et activée dans le système.
Identification d'éléments DOM à l'aide de sélecteurs
L'API Selectors permet d'interroger un document afin d'identifier les éléments correspondant à une règle de sélection donnée.
Évènements de mouvement de souris
Firefox 3.5 gère les évènements de mouvements de souris dont les glissades sur un trackpad.
L'objet NodeIterator
L'objet NodeIterator permet de parcourir la liste de nœuds dans un sous-arbre DOM.
L'évènement MozAfterPaint
Ce nouvel évènement DOM est envoyé après les mises à jour de l'affichage dans les fenêtres.
L'évènement MozMousePixelScroll
Ce nouvel évènement DOM permet de détecter les évènements de défilement à la souris par pixels plutôt que par ligne.

Nouvelles fonctionnalités JavaScript

Nouveautés dans JavaScript 1.8.1
Un aperçu de tous les changements dans JavaScript 1.8.1.
Object.getPrototypeOf()
Cette nouvelle méthode renvoie le prototype d'un objet spécifié.
Utilisation de JSON dans Firefox
La gestion de JSON est à présent intégrée dans le DOM.
Nouvelles méthodes de nettoyage des espaces sur l'objet String
L'objet String dispose à présent des méthodes trim(), trimLeft() et trimRight().

Réseau

Contrôle d'accès entre sites pour HTTP
Dans Firefox 3.5, il devient possible pour les requêtes HTTP, notamment celles faites au travers d'XMLHttpRequest, de fonctionne entre différents domaines si le serveur le permet.
Évènements de progression pour XMLHttpRequest
Des évènements de progression sont à présent émis pour permettre aux extensions de surveiller l'état des requêtes.
Amélioration des appels XMLHttpRequest synchrones
Les timeouts DOM et les évènements d'entrée sont à présent supprimés pendant un appel XMLHttpRequest synchrone.
Contrôle du préchargement DNS
Firefox 3.5 permet le préchargement DNS, par lequel il effectue la résolution des noms de domaines à l'avance pour les liens présents dans la page courante, afin de gagner du temps lorsque l'on clique effectivement sur ces liens. Cet article explique comment adapter votre site pour désactiver le préchargement, ou contrôler le comportement de ce préchargement.

Nouvelles fonctionnalités de Canvas

API HTML5 text pour les éléments canvas
Les éléments canvas gèrent à présent l'API texte d'HTML5.
Effets d'ombres dans un canvas
Les effets d'ombrages sont à présent gérés dans canvas.
createImageData()
La méthode createImageData() de canvas est à présent gérée, ce qui permet à du code de créer spécifiquement un objet ImageData plutôt que demander que ce soit fait automatiquement. Les performances d'autres méthodes d'ImageData peuvent en être améliorées puisqu'elles n'ont pas à créer l'objet.
Attribut moz-opaque
L'attribut DOM moz-opaque a été ajouté, ce qui permet à canvas de savoir si oui ou non la transparence devra être prise en compte. Si le canvas sait qu'il n'y a pas de transparence, les performances de dessin peuvent être optimisées.

Nouvelles fonctionnalités SVG

Application d'effets SVG à du contenu HTML
Vous pouvez à présent appliquer des effets SVG à du contenu HTML et XHTML ; cet article explique comment.

Autres nouvelles fonctionnalités

Correction de couleurs ICC dans Firefox
Firefox 3.5 gère à présent la correction de couleurs ICC pour les images balisées.
L'attribut defer est géré sur les éléments script
Cet attribut indique au navigateur qu'il peut décider de continuer d'analyser et d'afficher la page sans attendre que le script ait terminé son exécution.

Autres améliorations

  • La propriété wholeText et la méthode replaceWholeText() ont été ajoutées aux nœuds texte.
  • La propriété element.children a été ajoutée. Elle renvoie une collection d'éléments enfants de l'élément donné.
  • L'API Element Traversal est à présent gérée par l'objet DOM Element.
  • Les nœuds HTML document peuvent à présent être clonés à l'aide de cloneNode().
  • La méthode DOM non-standard getBoxObjectFor() a été supprimée. Utilisez plutôt getBoundingClientRect().
  • Les éléments DOM dispatchés peuvent être redispatchés. Ceci permet à Firefox 3.5 de passer le test 30 d'Acid 3.
  • Des améliorations ont été apportés à la gestion de DOM 2 Range.
  • Dans un contexte non-chrome, les objets catchés dans les exceptions sont à présent les objets rejetés tels quels plutôt qu'une enveloppe XPConnect contenant ces objets.
  • Les références ID dans SVG sont à présent directes.
  • Les filtres SVG fonctionnent à présent avec foreignObject.
  • La méthode GetSVGDocument() a été ajoutée aux éléments object et iframe pour assurer une meilleure compatibilité.
  • La définition implicite de propriétés dans des initialiseurs d'objets et de tableaux n'exécute plus les mutateurs en JavaScript. Consultez le billet Object and array initializers should not invoke setters when evaluated pour plus de détails.
  • La variable gDownloadLastDir.path a été renommée en gDownloadLastDir.file étant donné qu'elle fait référence à un objet nsIFile et non à un chemin.
  • La variable gDownloadLastDirPath a été renommée en gDownloadLastDirFile étant donné qu'elle fait référence à un objet nsIFile et non à un chemin.
  • À partir de Firefox 3.5, il devient impossible d'utiliser des liaisons data: dans les paquets chrome qui bénéficient de l'automatisation XPCNativeWrapper.

Pour les développeurs XUL et développeurs d'applications

Si vous développez des extensions, vous devriez tout d'abord lire Mise à jour des extensions pour Firefox 3.5 qui fournit un aperçu pratique des changements qui pourraient affecter vos extensions.

Nouveaux composants et nouvelles fonctionnalités

Gestion du mode de navigation privée
Firefox 3.5 offre un mode de navigation privée, qui n'enregistre pas les activités de l'utilisateur. Les extensions peuvent gérer la navigation privée en suivant les conseils donnés dans cet article.
Changements liés à la sécurité dans Firefox 3.5
Cet article détaille les changements liés à la sécurité dans Firefox 3.5.
Changements dans les thèmes pour Firefox 3.5
Cet article détaille les changements liés aux thèmes dans Firefox 3.5.
Surveillance des points d'accès WiFi
Le code disposant des privilèges UniversalXPConnect peut à présent surveiller la liste des points d'accès disponibles, et obtenir des informations concernant leurs SSID, adresses MAC et force du signal. Ceci peut être utilisé couplé avec la géolocalisaiton pour fournir des services locaux basés sur la présence d'un WiFi.

Changements et améliorations notables

  • Le widget XUL textbox offre à présent un type search, pour être utilisé en tant que champ de recherche.
  • Afin de gérer le glisser et déposer d'onglets entre les fenêtres, le widget browser dispose à présent d'une méthode swapDocShells().
  • Ajout de l'attribut level à l'élément panel ; celui-ci indique si le panel apparait par dessus les autres applications, ou uniquement au-dessus de la fenêtre contenant le panel.
  • Les éléments XUL gèrent à présent les propriétés clientHeight, clientWidth, scrollHeight et scrollWidth.
  • Les éléments keyset disposent à présent d'un attribut disabled.
  • De plus, les keysets peuvent être supprimés à l'aide de la méthode removeChild() du nœud.
  • mozIStorageStatement a vu sa méthode initialize() supprimée ; ses utilisateurs doivent utiliser la méthode createStatement() à la place pour obtenir un nouvel objet statement.
  • L'API Storage permet à présent d'effectuer des requêtes asynchrones.
  • L'interface nsICookie2 expose à présent l'heure à laquelle les cookies ont été créés dans son nouvel attribut creationTime.
  • Un flag a été ajouté à nsIProtocolHandler (URI_IS_LOCAL_RESOURCE) qui est vérifié au cours d'un enregistrement chrome pour s'assurer qu'un protocole a le droit d'être enregistré.
  • Firefox recherche à présent des plugins dans /usr/lib/mozilla/plugins sous Linux, outre les emplacements précédemment consultés.
  • L'API des plugins a été mise à jour pour gérer le mode de navigation privée ; vous pouvez à présent utiliser NPN_GetValue() pour connaître l'état du mode de navigation privée à l'aide de la variable NPNVprivateModeBool.

Nouvelles fonctionnalités pour les utilisateurs

Interface

Navigation en fonction de sa localisation
Si vous le désirez, vous pouvez permettre à Firefox 3.5 de partager des informations concernant votre localisation géographique avec des sites web. Firefox 3.5 peut utiliser des informations sur le réseau auquel votre machine est connectée pour partager votre localisation. Bien évidemment, votre permission sera demandée au préalable afin de préserver votre vie privée.
Gestion de la vidéo et de l'audio ouverts
Firefox 3.5 gère l'intégration de vidéos et d'extraits audio à l'aide du format ouvert Ogg, ainsi qu'au format WAV pour l'audio. Aucun plugin nécessaire, pas de messages d'erreurs incompréhensibles vous demandant d'installer quelque chose qui n'est en fait pas disponible sur votre plateforme.
Stockage local de données
Les applications web peuvent à présent utiliser les possibilités de stockage local pour conserver des données sur votre ordinateur. Cela peut servir pour conserver des préférences ou d'autres données plus complexes.

Sécurité et vie privée

Navigation privée
Besoin d'utiliser l'ordinateur de quelqu'un d'autre ? Activez la navigation privée et rien ne sera enregistré concernant votre session, ni cookies, ni historique, ni aucune autre information privée.
Meilleurs contrôles sur la vie privée
Le panneau de préférences Vie privée a été complètement revu pour disposer d'un meilleur contrôle sur vos informations privées. Les utilisateurs peuvent choisir de conserver ou d'effacer tout ce qui concerne l'historique, les cookies, les téléchargements et les informations de formulaire enregistrées. De plus, il est possible d'indiquer si l'historique et/ou les marque-pages doivent faire partie des suggestions automatiques de la Barre d'adresse, afin d'empêcher des adresses privées d'apparaître par inadvertance en saisissant des informations dans la Barre d'adresse.

Performances

Du JavaScript plus rapide
Le code JavaScript est exécuté nettement plus rapidement dans Firefox 3.5 grâce à son nouveau moteur TraceMonkey. Les applications web sont ainsi beaucoup plus rapides que dans Firefox 3.
Rendu plus rapide des pages
Le contenu web est affiché plus rapidement dans Firefox 3.5, grâce à des technologies telles que l'« analyse spéculative ». Vos utilisateurs n'ont pas besoin de savoir de quoi il s'agit, simplement que ça rend les choses plus rapides.

Voir également

Étiquettes et contributeurs liés au document

Étiquettes :
Contributeurs ayant participé à cette page : tregagnon, Mgjbot, Goofy, Chbok, BenoitL, FredB
Dernière mise à jour par : tregagnon,