Firefox 6 pour les développeurs

  • Raccourci de la révision : Firefox_6_for_developers
  • Titre de la révision : Firefox 6 pour les développeurs
  • ID de la révision : 308255
  • Créé :
  • Créateur : the prisoner
  • Version actuelle ? Non
  • Commentaire

Contenu de la révision

Firefox 6, basé sur Gecko 6.0, est sorti le 16 août 2011. Cet article fournit des informations à propos des changements qui affectent les développeurs dans cette version.

Changements pour les développeurs web

HTML

  • L'élément HTML5 {{HTMLElement("progress")}}, qui vous permet de créer une barre de progression, est maintenant supporté.
  • L'analyse syntaxique de l'élément HTML5 {{HTMLElement("track")}}, qui spécifie les pistes de texte pour les éléments multimédias, est désormais supporté. Cet élément devrait apparaître dans les DOM, si son comportement n'est pas encore implémenté.
  • L'élément {{HTMLElement("iframe")}} est désormais correctement coupé par son conteneur lorsque les coins du conteneur ont été arrondis à l'aide de la propriété {{cssxref("border-radius")}}.
  • Les champs {{HTMLElement("input")}} des éléments {{HTMLElement("form")}} ne sont plus supportés par la propriété XUL {{xulprop("maxwidth")}}, cela n'a jamais été volontaire, et est contraire à la spécification HTML. Vous devriez plutôt utiliser l'attribut {{HTMLAttrXref("size", "input")}} pour définir la largeur maximum de champs de saisie.
  • Les propriétés fillStyle et strokeStyle de {{domxref("CanvasRenderingContext2d")}} ({{HTMLElement("canvas")}}) utilisées pour ignorer les déchets inclus après la définition d'une couleur valide, maintenant c'est traité comme une erreur. Par exemple, "rouge bleu" est une couleur utilisée pour être traitée comme du "rouge", alors qu'elle aurait dû être ignorée.
  • La largeur et la hauteur des éléments {{HTMLElement("canvas")}} peuvent être correctement mis à 0px ; avant, lorsque vous essayez de le faire, elles se fixaient à 300px.
  • le support de l'attribut HTML des données personnalisées (data-*) a été ajouté. La propriété DOM {{domxref("element.dataset")}} permet d'y accéder.
  • Quand un élément {{HTMLElement("textarea")}} reçoit le focus, le point d'insertion de texte est désormais placé, par défaut, au début du texte plutôt qu'à la fin. Le comportement de Firefox est ainsi conforme avec les autres navigateurs.

CSS

{{cssxref("text-decoration-color", "-moz-text-decoration-color")}}
Cette nouvelle propriété vous permet de définir la couleur utilisée par les décorations du texte, comme le soulignement, le surlignement et le texte barré.
{{cssxref("text-decoration-line", "-moz-text-decoration-line")}}
Cette nouvelle propriété vous permet de définir le type de décorations du texte ajoutée à un élément.
{{cssxref("text-decoration-style", "-moz-text-decoration-style")}}
Cette nouvelle propriété vous permet de définir le style de décorations du texte, comme le soulignement, le surlignement et le texte barré. Les styles incluent les simples lignes, les lignes doubles, les lignes ondulées, les lignes pointillées, etc.
{{cssxref("hyphens", "-moz-hyphens")}}
Cette nouvelle propriété vous permet de contrôler la façon dont la césure des mots lors de retours à la ligne est gérée.
{{cssxref("orient", "-moz-orient")}}
Une nouvelle propriété (pour l'instant spécifique à Mozilla) qui vous permet de contrôler l'orientation verticale ou horizontale de certains éléments (en particulier {{HTMLElement("progress")}}).
{{cssxref("::-moz-progress-bar")}}
Un pseudo-élément spécifique à Mozilla qui vous permet de définir le style de la zone d'un élément {{HTMLElement("progress")}} représentant la fraction d'une tâche.

Autres changements

  • La propriété {{cssxref("@-moz-document")}} a une nouvelle fonction regexp(), qui vous permet d'adapter l'URL du document à une regular expression.
  • La propriété CSS {{cssxref("azimuth")}} n'est plus supportée, comme nous avons enlevé le peu de code que nous avions pour le groupe média aural. Il n'a jamais été implémenté de manière significative, donc il était plus logique de supprimer cette implémentation crufty pour le moment, au lieu d'essayer de le rafistoler.
  • Avant, la pseudo-classe {{cssxref(":hover")}} n'était pas appliquée aux sélecteurs de classe quand on était en mode quirks, par exemple, .someclass:hover ne fonctionne pas. Cette bizarrerie a été enlevée.
  • La pseudo-classe {{cssxref(":indeterminate")}} peut être appliquée à l'élément {{HTMLElement("progress")}}. Cela n'est pas un standard, mais nous espérons que ce soit adopté par les autres navigateurs car c'est utile.
  • La valeur -moz-win-exclude-glass a été ajoutée à la propriété CSS {{cssxref("-moz-appearance")}} afin d'exclure des zones opaques dans les effets d'Aero Glass sur les systèmes Windows.
  • Le {{Bug(658949)}} change la façon dont le symbole dièse (#) est traité dans les données URI qui peut briser les feuilles de style CSS qui contiennent un tel symbole.

DOM

Utilisation de media queries à partir de code
Vous pouvez désormais tester le résultat d'une chaîne media query en programmant la méthode {{domxref("window.matchMedia()")}} et l'interface {{domxref("MediaQueryList")}}.
Evènements tactile
Firefox 6 ajout le support du standard W3C sur les évènements tactile, cela facilite l'interprétation d'une ou plusieurs touches à la fois sur les surfaces tactiles comme les écrans tactiles et pavés tactiles.
Evènements server-sent
Les évènements server-sent permettent à une application Web de demander à un serveur pour envoyer des événements comme n'importe quel événement DOM localement créé.
  • navigator.securityPolicy, qui a depuis longtemps retourné une chaîne vide, a simplement été supprimé.
  • {{domxref("BlobBuilder")}} est maintenant implémenté, même si pour l'instant il est préfixé (vous devez utiliser MozBlobBuilder).
  • {{domxref("document.height")}} et {{domxref("document.width")}} ont été supprimées. {{Bug(585877)}}
  • Les propriétés entities et notations de l'objet {{domxref("DocumentType")}}, qui n'ont jamais été implémentées et renvoyées toujours null, ont été retirées, car elles ont également été enlevées de la spécification.
  • L'interface DOMConfiguration et la propriété document.domConfig qu'elle utilisait ont été supprimées, elles n'ont jamais été supportées et ont depuis été retirées de la spécification DOM.
  • L'évènement hashchange comprend désormais les champs newURL et oldURL.
  • La méthode abort() de l'interface {{domxref("FileReader")}} retourne maintenant une exception si aucun fichier n'est en cours de lecture lorqu'elle est utilisée.
  • La méthode {{domxref("window.postMessage()")}} utilise maintenant l'algorithme de clonage structuré pour vous permettre de transmettre d'une fenêtre à une autre des objets JavaScript au lieu de chaînes.
  • L'API {{domxref("window.history")}} utilise désormais l'algorithme de clonage structuré pour sérialiser des objets que vous passez avec les méthodes pushState() et replaceState(), ce qui vous permet d'utiliser des objets plus complexes (y compris ceux qui contiennent des références de graphes cycliques).
  • Vous pouvez désormais détecter lorsqu'une impression a été lancée et a été achevée grâce aux nouveaux évènements beforeprint et afterprint.
  • La propriété document.strictErrorChecking a été supprimée, car elle n'a jamais été implémentée et a été retiré de la spécification DOM.
  • La propriété standard {{domxref("event.defaultPrevented")}} est maintenant supportée, vous devriez utiliser à la place la méthode non-standard getPreventDefault() pour détecter si {{domxref("event.preventDefault()")}} a été appelée sur l'événement.
  • La propriété {{domxref("window.top")}} est désormais en lecture seule.
  • DOM views, which we never documented, have been removed. This was a bit of implementation detail that was unnecessarily complicating things, so we got rid of it. If you notice this change, you're probably doing something wrong.
  • La fonction EventTarget de la méthode addEventListener() est désormais facultative, car ça l'est dans WebKit (et aussi dans la dernière version de la spécification).
  • La propriété mozResponseArrayBuffer de l'objet XMLHttpRequest a été remplacé par les propriétés responseType et response.
  • La propriété {{domxref("element.dataset")}} a été ajoutée à l'interface HTMLElement permettant d'accéder aux attributs globaux data-* global attributes d'un élément.
  • L'interface {{domxref("CustomEvent")}} a été implémentée. (voir {{bug("427537")}})
  • Pour des raisons de sécurité, les URIs data: et javascript: n'héritent plus de l'environnment de sécurité de la page active lorsque l'utilisateur les saisit dans la barre d'adresse, mais un nouvel environnment de sécurité vide est créé. Par exemple, le script chargé en entrant l'URI javascript: dans la barre d'adresse n'a plus accès aux méthodes DOM et similaires. Ces URIs continueront à travailler comme avant lorsqu'elles sont utilisées par le script.

JavaScript

  • Avant, il était possible d'utiliser l'opérateur new sur plusieurs fonctions natives (eval, parseInt, Date.parse, etc) ce qui, conformément à la spécification, n'était pas autorisé. Désormais ce comportement n'est plus supporté. Cette façon d'utiliser l'opérateur new n'a jamais été officiellement supportée et était peu utilisée, donc il est peu probable que ce changement vous affecte.
  • ECMAScript Harmony WeakMaps a été ajouté en tant que prototype.

SVG

  • L'attribut {{SVGAttr("pathLength")}} est désormais supporté.
  • Les modèles SVG, les dégradés et les filtres fonctionnent désormais correctement lorsqu'ils sont chargés à partir de data: URLs.

MathML

  • L'implémentation de {{MathMLElement("mstyle")}} a été corrigée.

Accessibilité (ARIA)

  • Un événement de changement d'état est à présent correctement envoyé lors d'un changement de la valeur de aria-busy.
  • Un événement de changement d'attribut est à présent correctement envoyé lorsque survient aria-sort.

Réseau

WebSockets
Pour Firefox 6, WebSockets a été mis à jour à la version 07 du protocole. De plus, l'objet WebSocket a été renommé en MozWebSocket pour l'empêcher d'être utilisé de façon incorrecte pour détecter la disponibilité des WebSockets sans préfixe.
  • L'analyse de l'en-tête Content-Disposition a été fixée afin d'interpréter correctement les antislashs des caractères ASCII. Auparavant, il été remplacé par le caractère underscore ("_").
  • La valeur du champ du chemin de l'en-tête Set-Cookie est désormais correctement interprétée lors de l'utilisation de guillements, auparavant, ils étaient considérés comme faisant partie de la chaîne du chemin d'accès à la place d'être des délimiteurs. Ce changement peut affecter la compatibilité avec certains sites web, les auteurs doivent vérifier leur code.
  • L'en-tête de la requête Upgrade est désormais supporté, vous pouvez demander la mise à niveau d'un canal vers un autre protocole HTTP en appelant {{ifmethod("nsIHttpChannelInternal","HTTPUpgrade")}}.

Autres changements

  • Le support des microrésumés a été enlevé, ils n'ont jamais été très utilisés, n'étaient pas très détectable et continuer leur support été d'apporter des améliorations à Places (favoris et historique) à l'architecture difficile.
  • WebGL supporte maintenant l'extension OES_texture_float.
  • Le nouvel outil Ardoise offre un endroit pratique pour expérimenter du code JavaScript.
  • La méthode console.trace() a été ajouté à ConsoleAPI (voir {{bug('585956')}}).

Changements pour les développeurs de Mozilla et de modules complémentaires

Pour des conseils utiles sur la mise à jour des extensions pour Firefox 6, voir Updating add-ons for Firefox 6.

Note: Firefox 6 requiert que les composants binaires soient recompilés, comme pour toutes les versions majeures de Firefox. Pour plus de détails, voir Interfaces Binaires.

Modules de code JavaScript

FileUtils.jsm

  • La méthode openSafeFileOutputStream() ouvre maintenant les fichiers avec l'indicateur de comportement DEFER_OPEN au lieu d'essayer de les ouvrir immédiatement.

XPCOMUtils.jsm

  • La nouvelle méthode importRelative() vous permet de charger un module de code JavaScript depuis un chemin relatif au chemin d'un autre module de code JavaScript. Cela rend plus facile la construction de modules qui dépendent les uns des autres.

XPCOM

Utilisation du DOM depuis le chrome

Utilisation de l'API DOM File dans du code chrome
Bien que vous avez toujours pu utiliser l'API DOM File à partir du code chrome, le constructeur {{domxref("File")}} supporte désormais la spécification d'un chemin d'accès local lorsqu'il est utilisé depuis le chrome. De plus, vous pouvez également spécifier le fichier pour accéder à l'aide de l'API DOM File en utilisant un objet {{interface("nsIFile")}}.

Changements dans les interfaces

  • {{interface("nsINavHistoryQueryOptions")}} supporte désormais le tri par orde de frecency à l'aide des nouvelles constantes SORT_BY_FRECENCY_ASCENDING et SORT_BY_FRECENCY_DESCENDING.
  • {{interface("nsIFilePicker")}} a un nouvel attribut {{ifattribute("nsIFilePicker", "addToRecentDocs")}}, qui vous permet d'indiquer que le fichier sélectionné doit être ajoutée à la liste "documents récents" de l'utilisateur si il y en a une. Cet attribut n'a aucun effet en mode navigation privée.
  • Les méthodes de {{interface("nsINavBookmarkObserver")}} avec les paramètres ID d'un élément exigent désormais un GUID.
  • {{ifmethod("nsIPrefBranch", "clearUserPref")}} ne génère plus d'exception si la préférence spécifié n'existe pas ou n'a pas de valeur définie par l'utilisateur. Désormais, il ne fait rien.
  • L'interface {{interface("nsIMemoryReporter")}} prend désormais en charge l'indication du type de mémoire qui est décrite (mappée, heap, ou autre).
  • L'attribut stateData de {{interface("nsISHEntry")}} renvoi désormais à {{interface("nsIStructuredCloneContainer")}}.
  • {{interface("nsIURI")}} a un nouvel attribut {{ifattribute("nsIURI", "ref")}}, qui renvoie la partie de référence (la partie après le "#") de l'URI. Il y a également de nouvelles méthodes {{ifmethod("nsIURI", "cloneIgnoringRef")}} qui clone {{interface("nsIURI")}} sans l'élément ref et {{ifmethod("nsIURI", "equalsExceptRef")}} qui se compare à un autre {{interface("nsIURI")}} en ignorant l'élément ref.

Nouvelles interfaces

{{interface("mozIAsyncFavicons")}}
Un nouveau service qui vous permet d'accéder au service favicon de façon asynchrone.
{{interface("nsIEventSource")}}
Détails à venir.
{{interface("nsIGSettingsCollection")}}
Détails à venir.
{{interface("nsIGSettingsService")}}
Détails à venir.
{{interface("nsIHttpUpgradeListener")}}
L'interface de rappel pour le traitement des demandes de mise à niveau HTTP via la méthode {{ifmethod("nsIHttpChannelInternal", "HTTPUpgrade")}}.
{{interface("nsIStructuredCloneContainer")}}
Un conteneur pour les objets qui ont été sérialisé à l'aide de l'algorithme de clonage structuré.
{{interface("nsITelemetry")}}
Implémentation du support de la télémétrie permettant d'enregistrer des données de télémétrie pour être utilisé pour présenter des histogrammes à des fins de suivi des performances. Voir {{bug("649502")}} et {{bug("585196")}}.
{{interface("nsITimedChannel")}}
Voir {{bug("576006")}}.
{{interface("nsIWebSocketListener")}}
Voir {{bug("640003")}}.
{{interface("nsIWebSocketProtocol")}}
Voir {{bug("640003")}}.

Interfaces supprimées

Les interfaces suivantes ont été supprimées car elles n'étaient plus indispensables :

  • nsIDOMDocumentEvent (voir {{bug("655517")}})
  • nsIDOMDocumentTraversal (voir {{bug("655514")}})
  • nsIDOMDocumentRange (voir {{bug("655513")}})
  • IWeaveCrypto (voir {{bug("651596")}})
  • nsIDOM3DocumentEvent (voir {{bug("481863")}})
  • nsIDOMAbstractView
  • nsILiveTitleNotificationSubject
  • nsIPlugin (voir {{bug("637253")}})
  • nsIPluginInstance (voir {{bug("637253")}})
  • nsIHTMLEditRules (voir {{bug(633750)}})
  • {{interface("nsIXSLTProcessorObsolete")}} (voir {{bug("649534")}})

Autres changements

Utilisation des préférences à partir du code d'application
Une nouvelle API statique est disponible pour accéder facilement aux préférences, ce n'est disponible que pour le code d'application et ne peut pas être utilisé par les modules complémentaires.

Voir également

Source de la révision

<p>Firefox 6, basé sur Gecko 6.0, est sorti le 16 août 2011. Cet article fournit des informations à propos des changements qui affectent les développeurs dans cette version.</p>
<h2 id="Changements_pour_les_développeurs_web">Changements pour les développeurs web</h2>
<h3 id="HTML">HTML</h3>
<ul>
	<li>L'élément HTML5 {{HTMLElement("progress")}}, qui vous permet de créer une barre de progression, est maintenant supporté.</li>
	<li>L'analyse syntaxique de l'élément HTML5 {{HTMLElement("track")}}, qui spécifie les pistes de texte pour les éléments multimédias, est désormais supporté. Cet élément devrait apparaître dans les DOM, si son comportement n'est pas encore implémenté.</li>
	<li>L'élément {{HTMLElement("iframe")}} est désormais correctement coupé par son conteneur lorsque les coins du conteneur ont été arrondis à l'aide de la propriété {{cssxref("border-radius")}}.</li>
	<li>Les champs {{HTMLElement("input")}} des éléments {{HTMLElement("form")}} ne sont plus supportés par la propriété XUL {{xulprop("maxwidth")}}, cela n'a jamais été volontaire, et est contraire à la spécification HTML. Vous devriez plutôt utiliser l'attribut {{HTMLAttrXref("size", "input")}} pour définir la largeur maximum de champs de saisie.</li>
	<li>Les propriétés <code>fillStyle</code> et <code>strokeStyle</code> de {{domxref("CanvasRenderingContext2d")}} ({{HTMLElement("canvas")}}) utilisées pour ignorer les déchets inclus après la définition d'une couleur valide, maintenant c'est traité comme une erreur. Par exemple, "rouge bleu" est une couleur utilisée pour être traitée comme du "rouge", alors qu'elle aurait dû être ignorée.</li>
	<li>La largeur et la hauteur des éléments {{HTMLElement("canvas")}} peuvent être correctement mis à 0px ; avant, lorsque vous essayez de le faire, elles se fixaient à 300px.</li>
	<li>le support de l'attribut HTML <a class="internal" href="https://developer.mozilla.org/fr/docs/HTML/Global_attributes#attr-data-*" title="/HTML/Global_attributes#attr-data-*">des données personnalisées</a> (data-*) a été ajouté. La propriété DOM {{domxref("element.dataset")}} permet d'y accéder.</li>
	<li>Quand un élément {{HTMLElement("textarea")}} reçoit le focus, le point d'insertion de texte est désormais placé, par défaut, au début du texte plutôt qu'à la fin. Le comportement de Firefox est ainsi conforme avec les autres navigateurs.</li>
</ul>
<h3 id="CSS">CSS</h3>
<dl>
	<dt>{{cssxref("text-decoration-color", "-moz-text-decoration-color")}}</dt>
	<dd>Cette nouvelle propriété vous permet de définir la couleur utilisée par les décorations du texte, comme le soulignement, le surlignement et le texte barré.</dd>
	<dt>{{cssxref("text-decoration-line", "-moz-text-decoration-line")}}</dt>
	<dd>Cette nouvelle propriété vous permet de définir le type de décorations du texte ajoutée à un élément.</dd>
	<dt>{{cssxref("text-decoration-style", "-moz-text-decoration-style")}}</dt>
	<dd>Cette nouvelle propriété vous permet de définir le style de décorations du texte, comme le soulignement, le surlignement et le texte barré. Les styles incluent les simples lignes, les lignes doubles, les lignes ondulées, les lignes pointillées, etc.</dd>
	<dt>{{cssxref("hyphens", "-moz-hyphens")}}</dt>
	<dd>Cette nouvelle propriété vous permet de contrôler la façon dont la césure des mots lors de retours à la ligne est gérée.</dd>
	<dt>{{cssxref("orient", "-moz-orient")}}</dt>
	<dd>Une nouvelle propriété (pour l'instant spécifique à Mozilla) qui vous permet de contrôler l'orientation verticale ou horizontale de certains éléments (en particulier {{HTMLElement("progress")}}).</dd>
	<dt>{{cssxref("::-moz-progress-bar")}}</dt>
	<dd>Un pseudo-élément spécifique à Mozilla qui vous permet de définir le style de la zone d'un élément {{HTMLElement("progress")}} représentant la fraction d'une tâche.</dd>
</dl>
<h4 id="Autres_changements">Autres changements</h4>
<ul>
	<li>La propriété {{cssxref("@-moz-document")}} a une nouvelle fonction <code>regexp()</code>, qui vous permet d'adapter l'URL du document à une <a class="internal" href="https://developer.mozilla.org/fr/Guide_JavaScript_1.5/Expressions_rationnelles" title="fr/Guide_JavaScript_1.5/Expressions_rationnelles">regular expression</a>.</li>
	<li>La propriété CSS {{cssxref("azimuth")}} n'est plus supportée, comme nous avons enlevé le peu de code que nous avions pour le groupe média <code>aural</code>. Il n'a jamais été implémenté de manière significative, donc il était plus logique de supprimer cette implémentation crufty pour le moment, au lieu d'essayer de le rafistoler.</li>
	<li>Avant, la pseudo-classe {{cssxref(":hover")}} n'était pas appliquée aux sélecteurs de classe quand on était en mode quirks, par exemple, <code>.someclass:hover</code> ne fonctionne pas. Cette bizarrerie a été enlevée.</li>
	<li>La pseudo-classe {{cssxref(":indeterminate")}} peut être appliquée à l'élément {{HTMLElement("progress")}}. Cela n'est pas un standard, mais nous espérons que ce soit adopté par les autres navigateurs car c'est utile.</li>
	<li>La valeur <code>-moz-win-exclude-glass</code> a été ajoutée à la propriété CSS {{cssxref("-moz-appearance")}} afin d'exclure des zones opaques dans les effets d'Aero Glass sur les systèmes Windows.</li>
	<li>Le {{Bug(658949)}} change la façon dont le symbole  dièse (#) est traité dans les données URI qui peut briser les feuilles de style CSS qui contiennent un tel symbole.</li>
</ul>
<h3 id="DOM">DOM</h3>
<dl>
	<dt><a class="internal" href="https://developer.mozilla.org/en-US/docs/CSS/Using_media_queries_from_code" title="en/CSS/Using media queries from code">Utilisation de media queries à partir de code</a></dt>
	<dd>Vous pouvez désormais tester le résultat d'une chaîne media query en programmant la méthode {{domxref("window.matchMedia()")}} et l'interface {{domxref("MediaQueryList")}}.</dd>
	<dt><a class="internal" href="https://developer.mozilla.org/en-US/docs/DOM/Touch_events" title="en/DOM/Touch events">Evènements tactile</a></dt>
	<dd>Firefox 6 ajout le support du standard W3C sur les évènements tactile, cela facilite l'interprétation d'une ou plusieurs touches à la fois sur les surfaces tactiles comme les écrans tactiles et pavés tactiles.</dd>
	<dt><a class="internal" href="https://developer.mozilla.org/en-US/docs/Server-sent_events" title="en/Server-sent events">Evènements server-sent</a></dt>
	<dd>Les évènements server-sent permettent à une application Web de demander à un serveur pour envoyer des événements comme n'importe quel événement DOM localement créé.</dd>
</dl>
<ul>
	<li><code>navigator.securityPolicy</code>, qui a depuis longtemps retourné une chaîne vide, a simplement été supprimé.</li>
	<li>{{domxref("BlobBuilder")}} est maintenant implémenté, même si pour l'instant il est préfixé (vous devez utiliser <code>MozBlobBuilder</code>).</li>
	<li>{{domxref("document.height")}} et {{domxref("document.width")}} ont été supprimées. {{Bug(585877)}}</li>
	<li>Les propriétés <code>entities</code> et <code>notations</code> de l'objet {{domxref("DocumentType")}}, qui n'ont jamais été implémentées et renvoyées toujours <code>null</code>, ont été retirées, car elles ont également été enlevées de la spécification.</li>
	<li>L'interface <code>DOMConfiguration</code> et la propriété <code>document.domConfig</code> qu'elle utilisait ont été supprimées, elles n'ont jamais été supportées et ont depuis été retirées de la spécification DOM.</li>
	<li>L'évènement <code>hashchange</code> comprend désormais <a class="internal" href="https://developer.mozilla.org/en-US/docs/DOM/window.onhashchange#The_hashchange_event" title="en/DOM/window.onhashchange#The hashchange event">les champs <code>newURL</code> et <code>oldURL</code></a>.</li>
	<li>La méthode <code>abort()</code> de l'interface {{domxref("FileReader")}} retourne maintenant une exception si aucun fichier n'est en cours de lecture lorqu'elle est utilisée.</li>
	<li>La méthode {{domxref("window.postMessage()")}} utilise maintenant <a class="internal" href="https://developer.mozilla.org/en-US/docs/DOM/The_structured_clone_algorithm" title="en/DOM/The structured clone algorithm">l'algorithme de clonage structuré</a> pour vous permettre de transmettre d'une fenêtre à une autre des objets JavaScript au lieu de chaînes.</li>
	<li>L'API {{domxref("window.history")}} utilise désormais <a class="internal" href="https://developer.mozilla.org/en-US/docs/DOM/The_structured_clone_algorithm" title="en/DOM/The structured clone algorithm">l'algorithme de clonage structuré</a> pour sérialiser des objets que vous passez avec les méthodes <code>pushState()</code> et <code>replaceState()</code>, ce qui vous permet d'utiliser des objets plus complexes (y compris ceux qui contiennent des références de graphes cycliques).</li>
	<li>Vous pouvez désormais <a class="internal" href="https://developer.mozilla.org/en-Us/docs/Printing#Detecting_print_requests" title="en/Printing#Detecting_print_requests">détecter lorsqu'une impression a été lancée et a été achevée</a> grâce aux nouveaux évènements <code>beforeprint</code> et <code>afterprint</code>.</li>
	<li>La propriété <code>document.strictErrorChecking</code> a été supprimée, car elle n'a jamais été implémentée et a été retiré de la spécification DOM.</li>
	<li>La propriété standard {{domxref("event.defaultPrevented")}} est maintenant supportée, vous devriez utiliser à la place la méthode non-standard <code>getPreventDefault()</code> pour détecter si {{domxref("event.preventDefault()")}} a été appelée sur l'événement.</li>
	<li>La propriété {{domxref("window.top")}} est désormais en lecture seule.</li>
	<li>DOM views, which we never documented, have been removed. This was a bit of implementation detail that was unnecessarily complicating things, so we got rid of it. If you notice this change, you're probably doing something wrong.</li>
	<li>La fonction <code>EventTarget</code> de la méthode <a class="internal" href="https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsIDOMEventTarget" title="en/XPCOM Interface Reference/nsIDOMEventTarget"><code>addEventListener()</code></a> est désormais facultative, car ça l'est dans WebKit (et aussi dans la dernière version de la spécification).</li>
	<li>La propriété <code>mozResponseArrayBuffer</code> de l'objet <a class="internal" href="https://developer.mozilla.org/fr/docs/XMLHttpRequest" title="fr/XMLHttpRequest"><code>XMLHttpRequest</code></a> a été remplacé par les propriétés <code>responseType</code> et <code>response</code>.</li>
	<li>La propriété {{domxref("element.dataset")}} a été ajoutée à l'interface <a class="internal" href="https://developer.mozilla.org/fr/docs/DOM/HTMLElement" title="fr/DOM/HTMLElement"><code>HTMLElement</code></a> permettant d'accéder aux attributs globaux <a class="internal" href="https://developer.mozilla.org/fr/docs/HTML/Global_attributes#attr-data-*" title="fr/HTML/Global_attributes#attr-data-*"><code>data-*</code> global attributes</a> d'un élément.</li>
	<li>L'interface {{domxref("CustomEvent")}} a été implémentée. (voir {{bug("427537")}})</li>
	<li>Pour des raisons de sécurité, les URIs <code>data:</code> et <code>javascript:</code> n'héritent plus de l'environnment de sécurité de la page active lorsque l'utilisateur les saisit dans la barre d'adresse, mais un nouvel environnment de sécurité vide est créé. Par exemple, le script chargé en entrant l'URI <code>javascript:</code> dans la barre d'adresse n'a plus accès aux méthodes DOM et similaires. Ces URIs continueront à travailler comme avant lorsqu'elles sont utilisées par le script.</li>
</ul>
<h3 id="JavaScript">JavaScript</h3>
<ul>
	<li>Avant, il était possible d'utiliser l'opérateur <code>new</code> sur plusieurs fonctions natives (eval, parseInt, Date.parse, etc) ce qui, conformément à la spécification, n'était pas autorisé. Désormais ce comportement n'est plus supporté. Cette façon d'utiliser l'opérateur <code>new</code> n'a jamais été officiellement supportée et était peu utilisée, donc il est peu probable que ce changement vous affecte.</li>
	<li>ECMAScript Harmony <a class="internal" href="https://developer.mozilla.org/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/WeakMap" title="fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/WeakMap">WeakMaps</a> a été ajouté en tant que prototype.</li>
</ul>
<h3 id="SVG">SVG</h3>
<ul>
	<li>L'attribut {{SVGAttr("pathLength")}} est désormais supporté.</li>
	<li>Les modèles SVG, les dégradés et les filtres fonctionnent désormais correctement lorsqu'ils sont chargés à partir de <a class="internal" href="https://developer.mozilla.org/en/data_URIs" title="data_URIs"><code>data:</code> URLs</a>.</li>
</ul>
<h3 id="MathML">MathML</h3>
<ul>
	<li>L'implémentation de {{MathMLElement("mstyle")}} a été corrigée.</li>
</ul>
<h3 id="Accessibilité_(ARIA)">Accessibilité (ARIA)</h3>
<ul>
	<li>Un événement de changement d'état est à présent correctement envoyé lors d'un changement de la valeur de <code>aria-busy</code>.</li>
	<li>Un événement de changement d'attribut est à présent correctement envoyé lorsque survient <code>aria-sort</code>.</li>
</ul>
<h3 id="Réseau">Réseau</h3>
<dl>
	<dt><a class="internal" href="https://developer.mozilla.org/en-US/docs/WebSockets" title="WebSockets">WebSockets</a></dt>
	<dd>Pour Firefox 6, WebSockets a été mis à jour à la version 07 du protocole. De plus, l'objet <code>WebSocket</code> a été renommé en <code>MozWebSocket</code> pour l'empêcher d'être utilisé de façon incorrecte pour détecter la disponibilité des WebSockets sans préfixe.</dd>
</dl>
<ul>
	<li>L'analyse de l'en-tête <code>Content-Disposition</code> a été fixée afin d'interpréter correctement les antislashs des caractères ASCII. Auparavant, il été remplacé par le caractère underscore ("_").</li>
	<li>La valeur du champ du chemin de l'en-tête <code>Set-Cookie</code> est désormais correctement interprétée lors de l'utilisation de guillements, auparavant, ils étaient considérés comme faisant partie de la chaîne du chemin d'accès à la place d'être des délimiteurs. <strong>Ce changement peut affecter la compatibilité avec certains sites web</strong>, les auteurs doivent vérifier leur code.</li>
	<li>L'en-tête de la requête <a class="external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.42" title="www.w3.org/Protocols/rfc2616/rfc2616-sec14.html"><code>Upgrade</code></a> est désormais supporté, vous pouvez demander la mise à niveau d'un canal vers un autre protocole HTTP en appelant {{ifmethod("nsIHttpChannelInternal","HTTPUpgrade")}}.</li>
</ul>
<h3 id="Autres_changements">Autres changements</h3>
<ul>
	<li>Le support des microrésumés a été enlevé, ils n'ont jamais été très utilisés, n'étaient pas très détectable et continuer leur support été d'apporter des améliorations à Places (favoris et historique) à l'architecture difficile.</li>
	<li>WebGL supporte maintenant l'extension <a class="external" href="http://www.khronos.org/registry/gles/extensions/OES/OES_texture_float.txt" title="http://www.khronos.org/registry/gles/extensions/OES/OES_texture_float.txt"><code>OES_texture_float</code></a>.</li>
	<li>Le nouvel outil <a class="internal" href="https://developer.mozilla.org/fr/docs/Outils/Ardoise" title="Outils/Ardoise">Ardoise</a> offre un endroit pratique pour expérimenter du code JavaScript.</li>
	<li>La méthode <code>console.trace()</code> a été ajouté à <a class="internal" href="https://developer.mozilla.org/en-US/docs/Tools/Web_Console" title="Using_the_Web_Console">ConsoleAPI</a> (voir {{bug('585956')}}).</li>
</ul>
<h2 id="Changements_pour_les_développeurs_de_Mozilla_et_de_modules_complémentaires">Changements pour les développeurs de Mozilla et de modules complémentaires</h2>
<p>Pour des conseils utiles sur la mise à jour des extensions pour Firefox 6, voir <a class="internal" href="https://developer.mozilla.org/en-US/docs/Firefox/Updating_add-ons_for_Firefox_6" title="Updating add-ons for Firefox 6">Updating add-ons for Firefox 6</a>.</p>
<div class="note"><strong>Note:</strong> Firefox 6 requiert que les composants binaires soient recompilés, comme pour toutes les versions majeures de Firefox. Pour plus de détails, voir <a class="internal" href="https://developer.mozilla.org/en-US/docs/Developer_Guide/Interface_Compatibility#Binary_Interfaces" title="Developer Guide/Interface Compatibility#Binary Interfaces">Interfaces Binaires</a>.</div>
<h3 id="Modules_de_code_JavaScript">Modules de code JavaScript</h3>
<h4 id="FileUtils.jsm">FileUtils.jsm</h4>
<ul>
	<li>La méthode <code>openSafeFileOutputStream()</code> ouvre maintenant les fichiers avec <a class="internal" href="https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsIFileOutputStream#Behavior_flag_constants" title="en/XPCOM Interface Reference/nsIFileOutputStream#Behavior flag constants">l'indicateur de comportement</a> <code>DEFER_OPEN</code> au lieu d'essayer de les ouvrir immédiatement.</li>
</ul>
<h4 id="XPCOMUtils.jsm">XPCOMUtils.jsm</h4>
<ul>
	<li>La nouvelle méthode <a class="internal" href="https://developer.mozilla.org/en-US/docs/JavaScript_code_modules/XPCOMUtils.jsm#importRelative()" title="en/JavaScript code modules/XPCOMUtils.jsm#importRelative()"><code>importRelative()</code></a> vous permet de charger un module de code JavaScript depuis un chemin relatif au chemin d'un autre module de code JavaScript. Cela rend plus facile la construction de modules qui dépendent les uns des autres.</li>
</ul>
<h3 id="XPCOMUtils.jsm">XPCOM</h3>
<ul>
	<li><a class="internal" href="https://developer.mozilla.org/en-US/docs/XPCOM_array_guide#nsCOMArray.3cT.3e" title="en/XPCOM array guide#nsCOMArray.3cT.3e"><code>nsCOMArray&lt;T&gt;</code></a> dispose désormais d'une méthode <a class="internal" href="https://developer.mozilla.org/en-US/docs/XPCOM_array_guide#Deleting_objects" title="en/XPCOM array guide#Deleting objects"><code>RemoveObjectsAt()</code></a> pour enlever plusieurs objets à la fois à partir d'un tableau.</li>
</ul>
<h3 id="Utilisation_du_DOM_depuis_le_chrome">Utilisation du DOM depuis le chrome</h3>
<dl>
	<dt><a class="internal" href="https://developer.mozilla.org/en-US/docs/Extensions/Using_the_DOM_File_API_in_chrome_code" title="en/Extensions/Using the DOM File API in chrome code">Utilisation de l'API DOM File dans du code chrome</a></dt>
	<dd>Bien que vous avez toujours pu utiliser l'API DOM File à partir du code chrome, le constructeur {{domxref("File")}} supporte désormais la spécification d'un chemin d'accès local lorsqu'il est utilisé depuis le chrome. De plus, vous pouvez également spécifier le fichier pour accéder à l'aide de l'API DOM File en utilisant un objet {{interface("nsIFile")}}.</dd>
</dl>
<h3 id="Changements_dans_les_interfaces">Changements dans les interfaces</h3>
<ul>
	<li>{{interface("nsINavHistoryQueryOptions")}} supporte désormais le tri par orde de frecency à l'aide des nouvelles constantes <code>SORT_BY_FRECENCY_ASCENDING</code> et <code>SORT_BY_FRECENCY_DESCENDING</code>.</li>
	<li>{{interface("nsIFilePicker")}} a un nouvel attribut {{ifattribute("nsIFilePicker", "addToRecentDocs")}}, qui vous permet d'indiquer que le fichier sélectionné doit être ajoutée à la liste "documents récents" de l'utilisateur si il y en a une. Cet attribut n'a aucun effet en mode navigation privée.</li>
	<li>Les méthodes de {{interface("nsINavBookmarkObserver")}} avec les paramètres ID d'un élément exigent désormais un GUID.</li>
	<li>{{ifmethod("nsIPrefBranch", "clearUserPref")}} ne génère plus d'exception si la préférence spécifié n'existe pas ou n'a pas de valeur définie par l'utilisateur. Désormais, il ne fait rien.</li>
	<li>L'interface {{interface("nsIMemoryReporter")}} prend désormais en charge l'indication du type de mémoire qui est décrite (mappée, heap, ou autre).</li>
	<li>L'attribut <code>stateData</code> de {{interface("nsISHEntry")}} renvoi désormais à {{interface("nsIStructuredCloneContainer")}}.</li>
	<li>{{interface("nsIURI")}} a un nouvel attribut {{ifattribute("nsIURI", "ref")}}, qui renvoie la partie de référence (la partie après le "#") de l'URI. Il y a également de nouvelles méthodes {{ifmethod("nsIURI", "cloneIgnoringRef")}} qui clone {{interface("nsIURI")}} sans l'élément ref et {{ifmethod("nsIURI", "equalsExceptRef")}} qui se compare à un autre {{interface("nsIURI")}} en ignorant l'élément ref.</li>
</ul>
<h4 id="Nouvelles_interfaces">Nouvelles interfaces</h4>
<dl>
	<dt>{{interface("mozIAsyncFavicons")}}</dt>
	<dd>Un nouveau service qui vous permet d'accéder au service favicon de façon asynchrone.</dd>
	<dt>{{interface("nsIEventSource")}}</dt>
	<dd><em>Détails à venir.</em></dd>
	<dt>{{interface("nsIGSettingsCollection")}}</dt>
	<dd><em>Détails à venir.</em></dd>
	<dt>{{interface("nsIGSettingsService")}}</dt>
	<dd><em>Détails à venir.</em></dd>
	<dt>{{interface("nsIHttpUpgradeListener")}}</dt>
	<dd>L'interface de rappel pour le traitement des demandes de mise à niveau HTTP via la méthode {{ifmethod("nsIHttpChannelInternal", "HTTPUpgrade")}}.</dd>
	<dt>{{interface("nsIStructuredCloneContainer")}}</dt>
	<dd>Un conteneur pour les objets qui ont été sérialisé à l'aide de <a class="internal" href="https://developer.mozilla.org/en/HTML/Structured_clones" title="en/HTML/Structured clones">l'algorithme de clonage structuré</a>.</dd>
	<dt>{{interface("nsITelemetry")}}</dt>
	<dd>Implémentation du support de la télémétrie permettant d'enregistrer des données de télémétrie pour être utilisé pour présenter des histogrammes à des fins de suivi des performances. Voir {{bug("649502")}} et {{bug("585196")}}.</dd>
	<dt>{{interface("nsITimedChannel")}}</dt>
	<dd>Voir {{bug("576006")}}.</dd>
	<dt>{{interface("nsIWebSocketListener")}}</dt>
	<dd>Voir {{bug("640003")}}.</dd>
	<dt>{{interface("nsIWebSocketProtocol")}}</dt>
	<dd>Voir {{bug("640003")}}.</dd>
</dl>
<h4 id="Interfaces_supprimées">Interfaces supprimées</h4>
<p>Les interfaces suivantes ont été supprimées car elles n'étaient plus indispensables :</p>
<ul>
	<li><code>nsIDOMDocumentEvent</code> (voir {{bug("655517")}})</li>
	<li><code>nsIDOMDocumentTraversal</code> (voir {{bug("655514")}})</li>
	<li><code>nsIDOMDocumentRange</code> (voir {{bug("655513")}})</li>
	<li><code>IWeaveCrypto</code> (voir {{bug("651596")}})</li>
	<li><code>nsIDOM3DocumentEvent</code> (voir {{bug("481863")}})</li>
	<li><code>nsIDOMAbstractView</code></li>
	<li><code>nsILiveTitleNotificationSubject</code></li>
	<li><code>nsIPlugin</code> (voir {{bug("637253")}})</li>
	<li><code>nsIPluginInstance</code> (voir {{bug("637253")}})</li>
	<li><code>nsIHTMLEditRules</code> (voir {{bug(633750)}})</li>
	<li>{{interface("nsIXSLTProcessorObsolete")}} (voir {{bug("649534")}})</li>
</ul>
<h3 id="Autres_changements">Autres changements</h3>
<dl>
	<dt><a class="internal" href="https://developer.mozilla.org/en-US/docs/Mozilla/Preferences/Using_preferences_from_application_code" title="en/Preferences/Using preferences from application code">Utilisation des préférences à partir du code d'application</a></dt>
	<dd>Une nouvelle API statique est disponible pour accéder facilement aux préférences, ce n'est disponible que pour le code d'application et ne peut pas être utilisé par les modules complémentaires.</dd>
</dl>
<h2 id="Voir_également">Voir également</h2>
<ul>
	<li><a class="internal" href="https://developer.mozilla.org/fr/docs/Firefox_5_for_developers" title="Firefox 5 pour les développeurs">Firefox 5 pour les développeurs</a></li>
	<li><a class="internal" href="https://developer.mozilla.org/fr/docs/Firefox_4_for_developers" title="Firefox 4 pour les développeurs">Firefox 4 pour les développeurs</a></li>
	<li><a class="internal" href="https://developer.mozilla.org/fr/docs/Firefox_3.6_for_developers" title="Firefox 3.6 pour les développeurs">Firefox 3.6 pour les développeurs</a></li>
	<li><a class="internal" href="https://developer.mozilla.org/fr/docs/Firefox_3.5_pour_les_développeurs" title="Firefox 3.5 pour les développeurs">Firefox 3.5 pour les développeurs</a></li>
	<li><a class="internal" href="https://developer.mozilla.org/fr/docs/Firefox_3_pour_les_développeurs" title="Firefox 3 pour les développeurs">Firefox 3 pour les développeurs</a></li>
	<li><a class="internal" href="https://developer.mozilla.org/fr/docs/Firefox_2_pour_les_développeurs" title="Firefox 2 pour les développeurs">Firefox 2 pour les développeurs</a></li>
	<li><a class="internal" href="https://developer.mozilla.org/fr/docs/Firefox_1.5_pour_les_développeurs" title="Firefox 1.5 pour les développeurs">Firefox 1.5 pour les développeurs</a></li>
</ul>
Revenir à cette révision