Firefox 9 pour les développeurs

  • Raccourci de la révision : Mozilla/Firefox/Versions/9
  • Titre de la révision : Firefox 9 pour les développeurs
  • ID de la révision : 383875
  • Créé :
  • Créateur : FredB
  • Version actuelle ? Non
  • Commentaire Moved From Firefox_9_for_developers to Mozilla/Firefox/Versions/9

Contenu de la révision

Firefox 9, basé sur Gecko 9.0, est sorti le 20 décembre 2011 sur Windows. La version 9.0.1, qui corrige un problème de plantage découvert au dernier moment, est sortie le 21 décembre 2011, sur Mac et Linux.

Changements pour les développeurs Web

HTML

  • L'attribut value de {{HTMLElement("li")}} peut désormais être négatif comme c'est indiqué dans HTML5. Auparavant les valeurs négatives été converties à 0.
  • Vous pouvez désormais specifier le début et la fin du temps d'un média dans l'URI en utilisant les éléments {{HTMLElement("audio")}} et {{HTMLElement("video")}}.
  • Les éléments {{HTMLElement("input")}} et {{HTMLElement("textarea")}} respectent désormais la valeur de l'attribut lang lors de l'appel du correcteur orthographique.
  • Firefox sur Android permet désormais la prise de photo avec le téléphone sans devoir quitter le navigateur lorsque l'élément {{HTMLElement("input")}} est utilisé avec type="file" et accept="image/*".
  • Les images ICO de style PNG de Windows Vista sont à présent supportée.
  • Les images dessinées qui utilisent l'attribut crossorigin pour demander l'accès à CORS n'altère plus le canvas quand CORS est accordé.
  • La valeur de l'attribut {{htmlattrxref("rowspan", "td")}} peut désormais aller jusqu'à 65 534, contre 8190 avant.

CSS

  • La propriété {{cssxref("font-stretch")}} est à présent supportée.
  • La propriété {{cssxref("columns")}} est à présent supportée, avec le préfixe -moz. C'est un raccourci des propriétés suivantes : {{cssxref("column-width")}} et {{cssxref("column-count")}}.
  • Quand une feuille de style incluse à l'aide de l'élément {{HTMLElement("link")}} a été entièrement chargée et analysée (mais pas encore appliquée au document), l'load event est désormais déclenché. En outre, si une erreur survient durant le traitement d'une feuille de style, l'événement error est déclenché.
  • Vous pouvez à présent spécifier les paramètres de débordement pour les bords, à la fois à gauche et à droite, du contenu en utilisant une nouvelle syntaxe de deux valeurs pour {{cssxref("text-overflow")}}.

DOM

Utilisation du mode plein écran
La nouvelle API pour le plein écran offre un moyen de présenter le contenu en utilisant la totalité de l'écran, sans l'interface du navigateur. C'est très bien pour les vidéos et les jeux. Cette API est encore expérimentale et préfixée.
  • La méthode {{domxref("Node.contains()")}} est désormais implémentée, elle vous permet de déterminer si un nœud donné est un descendant d'un autre noeud.
  • L'attribut {{domxref("Node.parentElement")}} a été implémenté, cela renvoie l'{{domxref("Element")}} parent d'un noeud DOM, ou null si le parent n'est pas un élément.
  • Les évènements de composition du DOM Level 3 sont à présent supportés.
  • L'attribut {{domxref("Document.scripts")}} a été implémenté, il renvoie {{domxref("HTMLCollection")}} de tous les éléments {{HTMLElement("script")}} du document.
  • la méthode {{domxref("Document.queryCommandSupported()")}} a été implémentée.
  • L'ensemble des événements qui peuvent être écoutés sur les éléments {{HTMLElement("body")}} a été révisé pour correspondre à la dernière version de la spécification HTML5. La liste des événements dans la référence d'événements DOM reflète ceux qui peuvent être écoutés sur les {{HTMLElement("body")}}.
  • L'évènement {{domeventxref("readystatechange")}} est désormais uniquement tiré sur le document, comme prévu.
  • Les gestionnaires d'événements sont désormais implémentés comme des interfaces IDL standard. Dans la plupart des cas, cela n'affectera pas le contenu, mais il y a des exceptions.
  • Un nouveau type de réponse, "moz-json", a été ajouté à XMLHttpRequest, laissant XMLHttpRequest analyser automatiquement les chaînes JSON, quand vous demandez ce type, une chaîne JSON est analysé, afin que la valeur de la propriété response est la résultante de l'objet JavaScript.
  • Les évènements "progress" de XMLHttpRequest sont à présent correctement envoyé pour chaque bloc de données reçu, dans le passé il était possible pour que le dernier bloc de données reçu ne déclenche pas un évènement "progress". Maintenant, vous pouvez suivre uniquement la progression des évènements "progress", au lieu d'avoir également à surveiller les évènements "load" pour détecter la réception du dernier bloc de données.
  • Dans le passé, l'appel de addEventListener() avec un écouteur null renvoyait une exception. maintenant il ne retourne plus d'erreur et est sans effet.
  • La nouvelle propriété {{domxref("navigator.doNotTrack")}} permet à votre contenu de déterminer facilement si l'utilisateur a activé la préférence do-no-track, si la valeur est "oui", vous ne devez pas suivre l'utilisateur.
  • Les objets {{domxref("Range")}} et {{domxref("Selection")}} se comportent désormais selon leurs spécifications lorsque {{domxref("Text.splitText()", "splitText()")}} et {{domxref("Node.normalize", "normalize()")}} sont appelés.
  • La valeur de {{domxref("Node.ownerDocument")}} pour les noeuds de doctype est désormais le document sur lequel createDocumentType() a été appelé pour créer le noeud, au lieu de null.
  • window.navigator.taintEnabled a été retiré, il n'est plus supporté depuis plusieurs années.

Workers

  • Les workers implémentés dans les URLs blob étaient cassés sous Firefox 8, et sont de nouveaux disponibles à partir de Firefox 9.

WebGL

  • Dans le cadre de WebGL les attributs drawingBufferWidth et drawingBufferHeight sont à présent supportés.

MathML

  • La valeur non-standard restyle pour les attributs actiontype des éléments {{MathMLElement("maction")}} a été retirée.
  • Alors qu'il n'était pas encore supporté, l'utilisation de l'élément {{MathMLElement("mlabeledtr")}} ne casse plus complètement le rendu. Voir le {{bug(689641)}} pour l'avancement du support de cet élément.

Réseau

  • Vous pouvez désormais envoyer le contenu de tableaux JavaScript typés (c'est, le contenu d'un objet ArrayBuffer) en utilisant XMLHttpRequest.
  • Les connexions WebSocket permettent désormais des non-caractères autres que UTF-8 des trames de données devant être reçues, au lieu d'échouer.
  • L'en-tête HTTP Accept pour les réquêtes XSLT a été changée pour "*/*" pour simplifier. Puisque l'extraction d'XSLT est toujours retombée à "* / *", il était logique de faire la simplification.
  • Les tentatives faites par un serveur pour utiliser les codes de réponses 301 Moved Permanently ou 307 Temporary Redirect pour rediriger l'utilisateur vers une URI javascript: donne désormais lieu à l'erreur "connexion incorrecte" au lieu de vraiment rediriger. Cela évite certaines attaques de type cross-site scripting.
  • Le contenu servi par {{HTTPHeader("Content-Disposition")}} vide avait déjà été traité comme si {{HTTPHeader("Content-Disposition")}} était attachment", ce qui ne fonctionnait pas toujours comme prévu. C'est désormais traité comme si {{HTTPHeader("Content-Disposition")}} était "inline".
  • La taille maximale par défaut d'un élément dans le cache disque a été augmentée à 50 Mo, auparavant, seuls les éléments jusqu'à 5 Mo étaient mis en cache.

Outils de développement

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

Voir Updating add-ons for Firefox 9 pour un aperçu des modifications que vous devriez apporter pour rendre vos extensions compatibles avec Firefox 9.

XUL

  • L'élément {{XULElem("tab")}} dispose à présent d'un attribut {{XULAttr("pending")}}, dont la valeur est true, lorsque l'onglet est en train d'être rétabli par le service de sauvegarde de session. Il peut être utilisé pour le style de l'onglet dans les thèmes. L'attribut n'est pas présent sur les onglets qui ne sont pas en attente.
  • L'élément {{XULElem("tab")}} dispose à présent d'un attribut {{XULAttr("unread")}}, dont la valeur est true, lorsque l'onglet a changé depuis la dernière fois qu'il était actif ou si il n'a pas été sélectionné depuis que la session en cours a commencé. L'attribut n'est pas présent sur les onglets qui ne sont pas lus.
  • Vous pouvez désormais utiliser {{XULElem("panel")}} comme une image glissée pour les opérations DOM de glisser-déposer. Cela vous permet d'utiliser l'API standard drag & drop pour glisser et déposer du contenu XUL.
  • La méthode {{XULMeth("appendNotification")}} de l'élément {{XULElem("notificationbox")}} vous permet désormais de spécifier un rappel qui est appelé pour des événements intéressants liés à la zone de notification. Actuellement, le seul événement est "removed", qui vous indique la zone qui a été retirée de sa fenêtre.

Changements dans le module de code JavaScript

  • FileUtils.jsm dispose désormais du constructeur File qui renvoie l'objet {{interface("nsIFile")}} représentant un fichier spécifié par son chemin d'accès.

Changement dans le service

NSPR

  • NSPR dispose désormais d'un module "append", qui vous permet d'ajouter de nouvelles données à la fin d'un journal existant.

Changements dans les interfaces

Interface supprimée

  • {{interface("nsIGlobalHistory3")}} a été enlevée lors de la réduction de Places et du code DocShell.

Divers changements dans les interfaces

  • L'interface {{interface("nsISound")}} a une nouvelle constante EVENT_EDITOR_MAX_LEN. Elle permet de lire le son du système quand plus de caractères que le maximum autorisé sont entrés dans un champ de texte. Actuellement, ce n'est utilisé que sous Windows.
  • L'interface {{interface("nsIScriptError2")}} a de nouvelles propriétés, timeStamp et innerWindowID ; en plus, la méthode initWithWindowID() prend désormais un ID de fenêtre intérieure au lieu d'un ID de fenêtre extérieure.
  • L'attribut {{ifattribute("nsIBidiKeyboard", "haveBidiKeyboards")}} a été ajouté, il vous permet de vérifier que le système a au moins un clavier installé dans chaque sens : de gauche à droite ou de droite à gauche.
  • Le nouvel attribut {{ifattribute("nsIEditor", "isSelectionEditable")}} vous permet de déterminer si l'ancre de sélection en cours est modifiable. Cela permet de supporter les cas où seules certaines parties du document sont modifiables, en vous permettant de voir si la sélection actuelle est dans une partie modifiable.
  • Les méthodes {{ifmethod("nsIBrowserHistory", "registerOpenPage")}} et {{ifmethod("nsIBrowserHistory", "unregisterOpenPage")}} ont été supprimées dans le cadre d'une refonte des performances dans le système Places. A la place, vous pouvez utiliser les méthodes correspondantes de {{interface("mozIPlacesAutoComplete")}}.
  • La méthode {{ifmethod("nsIDOMWindowUtils", "wrapDOMFile")}} a été ajoutée, elle retourne un objet DOM {{domxref("File")}} pour un {{interface("nsIFile")}} donné.
  • La méthode {{ifmethod("nsIChromeFrameMessageManager", "removeDelayedFrameScript")}} a été ajouté pour supporter la suppression des scripts de chargement différé. Les extensions amorcées doivent l'utilisée, lors de l'arrêt, pour éliminer tous les scripts chargés à l'aide de {{ifmethod("nsIChromeFrameMessageManager", "loadFrameScript")}} avec l'indicateur de charge différé. Cela expose des extensions comme browser.messageManager.removeDelayedFrameScript().
  • L'interface {{interface("nsIAppStartup")}} a un nouvel attribut interrupted, qui vous permet de savoir si la procédure de démarrage a été interrompue à tout moment par une commande interactive invitée. Cela peut être utile, par exemple, lors de la synchronisation du démarrage pendant l'évaluation des performances, pour être en mesure de déposer le nombre de sessions qui ont été interrompues.
  • L'interface {{interface("nsIEditorSpellCheck")}} a été revue pour supporter le choix des sites de dictionnaires pour la vérification orthographique.

Parseur IDL

Le parseur IDL ne supporte plus la notion de pointeurs unique qui n'a jamais été entièrement implémentée.

Changements dans le système de compilation

  • L'option --enable-application=standalone pour la compilation autonome d'XPConnect a été retirée, elle n'a pas été utilisée depuis 2007.
  • Le support de la compilation autonome de Necko et Transformiix XSLT a été retiré, vous ne pouvez plus utilisez --enable-application=network ou --enable-application=content/xslt.
  • Le système de compilation cherche désormais .mozconfig à $topsrcdir/.mozconfig ou $topsrcdir/mozconfig, et pas ailleurs, sauf si vous remplacez le chemin .mozconfig en utilisant la variable d'environnement MOZCONFIG.
  • L'utilitaire xpidl a été remplacé dans le SDK avec pyxpidl.

Autres changements

  • Le correcteur orthographique n'a plus la limite de 130 caractères sur la longueur des mots à vérifier. Cette limite était précédemment en place pour éviter les plantages qui sont survenus dans le correcteur orthographique, mais les bogues sous-jacents ont depuis été corrigés.
  • Vous pouvez désormais enregistrer des composants pour ajouter des fonctionnalités à l'objet {{domxref("window.navigator")}} à l'aide de la catégorie "JavaScript-navigator-property". Voir Ajout des APIs de l'objet navigator pour plus de détails et des exemples.

Voir également

Source de la révision

<p>Firefox 9, basé sur Gecko 9.0, est sorti le 20 décembre 2011 sur Windows. La version 9.0.1, qui corrige un problème de plantage découvert au dernier moment, est sortie le 21 décembre 2011, sur Mac et Linux.</p>
<h2 id="Changements_pour_les_développeurs_Web">Changements pour les développeurs Web</h2>
<h3 id="HTML">HTML</h3>
<ul>
	<li>L'attribut <code>value</code> de {{HTMLElement("li")}} peut désormais être négatif comme c'est indiqué dans HTML5. Auparavant les valeurs négatives été converties à 0.</li>
	<li>Vous pouvez désormais <a clas="internal" href="https://developer.mozilla.org/en-US/docs/Using_HTML5_audio_and_video#Specifying_playback_range" title="Using HTML5 audio and video#Specifying playback range">specifier le début et la fin du temps d'un média</a> dans l'URI en utilisant les éléments {{HTMLElement("audio")}} et {{HTMLElement("video")}}.</li>
	<li>Les éléments {{HTMLElement("input")}} et {{HTMLElement("textarea")}} <a class="internal" href="https://developer.mozilla.org/en-US/docs/HTML/Controlling_spell_checking_in_HTML_forms#Controlling_the_spellchecker_language" title="Controlling spell checking in HTML forms#Controlling the spellchecker language">respectent désormais la valeur de l'attribut <code>lang</code></a> lors de l'appel du correcteur orthographique.</li>
	<li>Firefox sur Android permet désormais la prise de photo avec le téléphone sans devoir quitter le navigateur lorsque l'élément {{HTMLElement("input")}} est utilisé avec <code>type="file"</code> et <code>accept="image/*"</code>.</li>
	<li>Les images ICO de style PNG de Windows Vista sont à présent supportée.</li>
	<li>Les images dessinées qui utilisent l'attribut <a class="internal" href="https://developer.mozilla.org/en/HTML/CORS_settings_attributes" title="CORS settings attributes"><code>crossorigin</code></a> pour demander l'accès à CORS <a class="internal" href="https://developer.mozilla.org/en/CORS_Enabled_Image#What_is_a_.22tainted.22_canvas.3F" title="CORS Enabled Image#What is a tainted canvas ?">n'altère plus le canvas</a> quand CORS est accordé.</li>
	<li>La valeur de l'attribut {{htmlattrxref("rowspan", "td")}} peut désormais aller jusqu'à  65 534, contre 8190 avant.</li>
</ul>
<h3 id="CSS">CSS</h3>
<ul>
	<li>La propriété {{cssxref("font-stretch")}} est à présent supportée.</li>
	<li>La propriété {{cssxref("columns")}} est à présent supportée, avec le préfixe <code>-moz</code>. C'est un raccourci des propriétés suivantes : {{cssxref("column-width")}} et {{cssxref("column-count")}}.</li>
	<li>Quand une feuille de style incluse à l'aide de l'élément {{HTMLElement("link")}} a été entièrement chargée et analysée (mais pas encore appliquée au document), l'<a class="internal" href="https://developer.mozilla.org/en-US/docs/HTML/Element/link#Stylesheet_load_events" title="link#Stylesheet load events"><code>load</code> event</a> est désormais déclenché. En outre, si une erreur survient durant le traitement d'une feuille de style, l'événement <code>error</code> est déclenché.</li>
	<li>Vous pouvez à présent spécifier les paramètres de débordement pour les bords, à la fois à gauche et à droite, du contenu en utilisant une nouvelle syntaxe de deux valeurs pour {{cssxref("text-overflow")}}.</li>
</ul>
<h3 id="DOM">DOM</h3>
<dl>
	<dt><a class="internal" href="https://developer.mozilla.org/en-US/docs/DOM/Using_full-screen_mode" title="Using full-screen mode">Utilisation du mode plein écran</a></dt>
	<dd>La nouvelle API pour le plein écran offre un moyen de présenter le contenu en utilisant la totalité de l'écran, sans l'interface du navigateur. C'est très bien pour les vidéos et les jeux. Cette API est encore expérimentale et préfixée.</dd>
</dl>
<ul>
	<li>La méthode {{domxref("Node.contains()")}} est désormais implémentée, elle vous permet de déterminer si un nœud donné est un descendant d'un autre noeud.</li>
	<li>L'attribut {{domxref("Node.parentElement")}} a été implémenté, cela renvoie l'{{domxref("Element")}} parent d'un noeud DOM, ou <code>null</code> si le parent n'est pas un élément.</li>
	<li><a class="internal" href="https://developer.mozilla.org/en-US/docs/DOM/CompositionEvent" title="CompositionEvent">Les évènements de composition</a> du DOM Level 3 sont à présent supportés.</li>
	<li>L'attribut {{domxref("Document.scripts")}} a été implémenté, il renvoie {{domxref("HTMLCollection")}} de tous les éléments {{HTMLElement("script")}} du document.</li>
	<li>la méthode {{domxref("Document.queryCommandSupported()")}} a été implémentée.</li>
	<li>L'ensemble des événements qui peuvent être écoutés sur les éléments {{HTMLElement("body")}} a été révisé pour correspondre à la dernière version de la spécification HTML5. La liste des événements dans la <a class="internal" href="https://developer.mozilla.org/en/DOM/DOM_event_reference" title="DOM event reference">référence d'événements DOM</a> reflète ceux qui peuvent être écoutés sur les {{HTMLElement("body")}}.</li>
	<li>L'évènement {{domeventxref("readystatechange")}} est désormais uniquement tiré sur le document, comme prévu.</li>
	<li>Les gestionnaires d'événements sont désormais implémentés comme des interfaces IDL standard. Dans la plupart des cas, cela n'affectera pas le contenu, mais <a class="internal" href="https://developer.mozilla.org/en-US/docs/DOM/DOM_event_handlers#Event_handler_changes_in_Firefox_9" title="DOM event handlers#Event handler changes in Firefox 9">il y a des exceptions</a>.</li>
	<li>Un nouveau type de réponse, "<code>moz-json</code>", a été ajouté à <code>XMLHttpRequest</code>, laissant <code>XMLHttpRequest</code> analyser automatiquement les chaînes <a class="internal" href="https://developer.mozilla.org/en-US/docs/JSON" title="JSON">JSON</a>, quand vous demandez ce type, une chaîne JSON est analysé, afin que la valeur de la propriété <code>response</code> est la résultante de l'objet JavaScript.</li>
	<li><a class="internal" href="https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/Using_XMLHttpRequest#Monitoring_progress" title="Using XMLHttpRequest#Monitoring progress">Les évènements "progress" de <code>XMLHttpRequest</code></a> sont à présent correctement envoyé pour chaque bloc de données reçu, dans le passé il était possible pour que le dernier bloc de données reçu ne déclenche pas un évènement "progress". Maintenant, vous pouvez suivre uniquement la progression des évènements "progress", au lieu d'avoir également à surveiller les évènements "load" pour détecter la réception du dernier bloc de données.</li>
	<li>Dans le passé, l'appel de <a class="internal" href="https://developer.mozilla.org/fr/docs/DOM/element.addEventListener" title="element.addEventListener"><code>addEventListener()</code></a> avec un écouteur <code>null</code> renvoyait une exception. maintenant il ne retourne plus d'erreur et est sans effet.</li>
	<li>La nouvelle propriété {{domxref("navigator.doNotTrack")}} permet à votre contenu de déterminer facilement si l'utilisateur a activé la préférence do-no-track, si la valeur est "oui", vous ne devez pas suivre l'utilisateur.</li>
	<li>Les objets {{domxref("Range")}} et {{domxref("Selection")}} se comportent désormais selon leurs spécifications lorsque {{domxref("Text.splitText()", "splitText()")}} et {{domxref("Node.normalize", "normalize()")}} sont appelés.</li>
	<li>La valeur de {{domxref("Node.ownerDocument")}} pour les noeuds de doctype est désormais le document sur lequel <a class="internal" href="https://developer.mozilla.org/en-US/docs/DOM/DOMImplementation.createDocumentType" title="DOMImplementation.createDocumentType"><code>createDocumentType()</code></a> a été appelé pour créer le noeud, au lieu de <code>null</code>.</li>
	<li><code>window.navigator.taintEnabled</code> a été retiré, il n'est plus supporté depuis plusieurs années.</li>
</ul>
<h3 id="Workers">Workers</h3>
<ul>
	<li>Les workers implémentés dans les URLs blob étaient cassés sous Firefox 8, et sont de nouveaux disponibles à partir de Firefox 9.</li>
</ul>
<h3 id="WebGL">WebGL</h3>
<ul>
	<li>Dans le cadre de <a class="internal" href="https://developer.mozilla.org/en-US/docs/WebGL" title="WebGL">WebGL</a> les attributs <code>drawingBufferWidth</code> et <code>drawingBufferHeight</code> sont à présent supportés.</li>
</ul>
<h3 id="MathML">MathML</h3>
<ul>
	<li>La valeur non-standard <code>restyle</code> pour les attributs <code>actiontype</code> des éléments {{MathMLElement("maction")}} a été retirée.</li>
	<li>Alors qu'il n'était pas encore supporté, l'utilisation de l'élément {{MathMLElement("mlabeledtr")}} ne casse plus complètement le rendu. Voir le {{bug(689641)}} pour l'avancement du support de cet élément.</li>
</ul>
<h3 id="Réseau">Réseau</h3>
<ul>
	<li>Vous pouvez désormais envoyer le contenu de <a class="internal" href="https://developer.mozilla.org/en-US/docs/JavaScript_typed_arrays" title="JavaScript typed arrays">tableaux JavaScript typés</a> (c'est, le contenu d'un objet <a class="internal" href="https://developer.mozilla.org/en-US/docs/JavaScript_typed_arrays/ArrayBuffer" title="ArrayBuffer"><code>ArrayBuffer</code></a>) <a class="internal" href="https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/Using_XMLHttpRequest#Sending_typed_arrays_as_binary_data" title="Using XMLHttpRequest#Sending typed arrays as binary data">en utilisant XMLHttpRequest</a>.</li>
	<li>Les connexions WebSocket permettent désormais des non-caractères autres que UTF-8 des trames de données devant être reçues, au lieu d'échouer.</li>
	<li>L'en-tête HTTP <code>Accept</code> pour les réquêtes XSLT a été changée pour "*/*" pour simplifier. Puisque l'extraction d'XSLT est toujours retombée à "* / *", il était logique de faire la simplification.</li>
	<li>Les tentatives faites par un serveur pour utiliser les codes de réponses <code>301 Moved Permanently</code> ou <code>307 Temporary Redirect</code> pour rediriger l'utilisateur vers une URI <code>javascript:</code> donne désormais <a class="internal" href="https://developer.mozilla.org/en-US/docs/HTTP#More_on_redirection_responses" title="HTTP#More on redirection responses">lieu à l'erreur "connexion incorrecte"</a> au lieu de vraiment rediriger. Cela évite certaines attaques de type cross-site scripting.</li>
	<li>Le contenu servi par {{HTTPHeader("Content-Disposition")}} vide avait déjà été traité  comme si {{HTTPHeader("Content-Disposition")}} était attachment", ce qui ne fonctionnait pas toujours comme prévu. C'est désormais traité comme si {{HTTPHeader("Content-Disposition")}} était "inline".</li>
	<li>La taille maximale par défaut d'un élément dans le cache disque a été augmentée à 50 Mo, auparavant, seuls les éléments jusqu'à 5 Mo étaient mis en cache.</li>
</ul>
<h3 id="Outils_de_développement">Outils de développement</h3>
<ul>
	<li>La console Web supporte désormais <a class="internal" href="https://developer.mozilla.org/en-US/docs/Tools/Web_Console#String_substitutions" title="Using the Web Console#String substitutions">les chaînes de substitutions</a> basiques dans ses méthodes d'exploitation.</li>
	<li>Vous pouvez désormais <a class="internal" href="https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Using_groups_in_the_console" title="Using the Web Console#Using groups in the console">créer des blocs imbriqués pour la sortie</a> dans la console web, pour faciliter la lecture.</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>Voir <a class="internal" href="https://developer.mozilla.org/en-US/docs/Firefox/Updating_add-ons_for_Firefox_9" title="Updating add-ons for Firefox 9">Updating add-ons for Firefox 9</a> pour un aperçu des modifications que vous devriez apporter pour rendre vos extensions compatibles avec Firefox 9.</p>
<h3 id="XUL">XUL</h3>
<ul>
	<li>L'élément {{XULElem("tab")}} dispose à présent d'un attribut {{XULAttr("pending")}}, dont la valeur est <code>true</code>, lorsque l'onglet est en train d'être rétabli par le service de sauvegarde de session. Il peut être utilisé pour le style de l'onglet dans les thèmes. L'attribut n'est pas présent sur les onglets qui ne sont pas en attente.</li>
	<li>L'élément {{XULElem("tab")}} dispose à présent d'un attribut {{XULAttr("unread")}}, dont la valeur est <code>true</code>, lorsque l'onglet a changé depuis la dernière fois qu'il était actif ou si il n'a pas été sélectionné depuis que la session en cours a commencé. L'attribut n'est pas présent sur les onglets qui ne sont pas lus.</li>
	<li>Vous pouvez désormais utiliser {{XULElem("panel")}} comme une image glissée pour les opérations DOM de glisser-déposer. Cela vous permet d'utiliser l'API standard drag &amp; drop pour <a class="internal" href="https://developer.mozilla.org/en-US/docs/DragDrop/Drag_Operations#Using_XUL_panels_as_drag_images" title="Drag Operations#Using XUL panels as drag images">glisser et déposer du contenu XUL</a>.</li>
	<li>La méthode {{XULMeth("appendNotification")}} de l'élément {{XULElem("notificationbox")}} vous permet désormais de spécifier un rappel qui est appelé pour des événements intéressants liés à la zone de notification. Actuellement, le seul événement est "removed", qui vous indique la zone qui a été retirée de sa fenêtre.</li>
</ul>
<h3 id="Changements_dans_le_module_de_code_JavaScript">Changements dans le module de code JavaScript</h3>
<ul>
	<li><a class="internal" href="https://developer.mozilla.org/en-US/docs/JavaScript_code_modules/FileUtils.jsm" title="FileUtils.jsm"><code>FileUtils.jsm</code></a> dispose désormais du constructeur <code>File</code> qui renvoie l'objet {{interface("nsIFile")}} représentant un fichier spécifié par son chemin d'accès.</li>
</ul>
<h3 id="Changement_dans_le_service">Changement dans le service</h3>
<ul>
	<li>Le service de préférence du contenu gère désormais <a class="internal" href="https://developer.mozilla.org/en-US/docs/Using_content_preferences#private-browsing" title="Using content preferences#private-browsing">le mode de navigation privée</a> (voir {{bug("679784")}}).</li>
</ul>
<h3 id="NSPR">NSPR</h3>
<ul>
	<li>NSPR dispose désormais d'un module "append", qui vous permet d'ajouter de nouvelles données à la fin d'un journal existant.</li>
</ul>
<h3>Changements dans les interfaces</h3>
<h4 id="Interface_supprimée">Interface supprimée</h4>
<ul>
	<li>{{interface("nsIGlobalHistory3")}} a été enlevée lors de la réduction de Places et du code DocShell.</li>
</ul>
<h4 id="Divers_changements_dans_les_interfaces">Divers changements dans les interfaces</h4>
<ul>
	<li>L'interface {{interface("nsISound")}} a une nouvelle constante <code>EVENT_EDITOR_MAX_LEN</code>. Elle permet de lire le son du système quand plus de caractères que le maximum autorisé sont entrés dans un champ de texte. Actuellement, ce n'est utilisé que sous Windows.</li>
	<li>L'interface {{interface("nsIScriptError2")}} a de nouvelles propriétés, <code>timeStamp</code> et <code>innerWindowID</code> ; en plus, la méthode <code>initWithWindowID()</code> prend désormais un ID de fenêtre intérieure au lieu d'un ID de fenêtre extérieure.</li>
	<li>L'attribut {{ifattribute("nsIBidiKeyboard", "haveBidiKeyboards")}} a été ajouté, il vous permet de vérifier que le système a au moins un clavier installé dans chaque sens : de gauche à droite ou de droite à gauche.</li>
	<li>Le nouvel attribut {{ifattribute("nsIEditor", "isSelectionEditable")}} vous permet de déterminer si l'ancre de sélection en cours est modifiable. Cela permet de supporter les cas où seules certaines parties du document sont modifiables, en vous permettant de voir si la sélection actuelle est dans une partie modifiable.</li>
	<li>Les méthodes {{ifmethod("nsIBrowserHistory", "registerOpenPage")}} et {{ifmethod("nsIBrowserHistory", "unregisterOpenPage")}} ont été supprimées dans le cadre d'une refonte des performances dans le système Places. A la place, vous pouvez utiliser les méthodes correspondantes de {{interface("mozIPlacesAutoComplete")}}.</li>
	<li>La méthode {{ifmethod("nsIDOMWindowUtils", "wrapDOMFile")}} a été ajoutée, elle retourne un objet DOM {{domxref("File")}} pour un {{interface("nsIFile")}} donné.</li>
	<li>La méthode {{ifmethod("nsIChromeFrameMessageManager", "removeDelayedFrameScript")}} a été ajouté pour supporter la suppression des scripts de chargement différé. Les extensions amorcées doivent l'utilisée, lors de l'arrêt, pour éliminer tous les scripts chargés à l'aide de {{ifmethod("nsIChromeFrameMessageManager", "loadFrameScript")}} avec l'indicateur de charge différé. Cela expose des extensions comme <code>browser.messageManager.removeDelayedFrameScript()</code>.</li>
	<li>L'interface {{interface("nsIAppStartup")}} a un nouvel attribut <code>interrupted</code>, qui vous permet de savoir si la procédure de démarrage a été interrompue à tout moment par une commande interactive invitée. Cela peut être utile, par exemple, lors de la synchronisation du démarrage pendant l'évaluation des performances, pour être en mesure de déposer le nombre de sessions qui ont été interrompues.</li>
	<li>L'interface {{interface("nsIEditorSpellCheck")}} a été revue pour supporter le choix des sites de dictionnaires pour la vérification orthographique.</li>
</ul>
<h3>Parseur IDL</h3>
<p>Le parseur IDL ne supporte plus la notion de pointeurs unique qui n'a jamais été entièrement implémentée.</p>
<h3 id="Changements_dans_le_système_de_compilation">Changements dans le système de compilation</h3>
<ul>
	<li>L'option <code>--enable-application=standalone</code> pour la compilation autonome d'XPConnect a été retirée, elle n'a pas été utilisée depuis 2007.</li>
	<li>Le support de la compilation autonome de Necko et Transformiix XSLT a été retiré, vous ne pouvez plus utilisez <code>--enable-application=network</code> ou <code>--enable-application=content/xslt</code>.</li>
	<li>Le système de compilation cherche désormais <code>.mozconfig</code> à <code>$topsrcdir/.mozconfig</code> ou <code>$topsrcdir/mozconfig</code>, et pas ailleurs, sauf si vous remplacez le chemin <code>.mozconfig</code> en utilisant la variable d'environnement <code>MOZCONFIG</code>.</li>
	<li>L'utilitaire <code>xpidl</code> a été remplacé dans le SDK avec <a class="internal" href="https://developer.mozilla.org/en-US/docs/XPIDL/pyxpidl" title="pyxpidl">pyxpidl</a>.</li>
</ul>
<h3 id="Autres_changements">Autres changements</h3>
<ul>
	<li>Le correcteur orthographique n'a plus la limite de 130 caractères sur la longueur des mots à vérifier. Cette limite était précédemment en place pour éviter les plantages qui sont survenus dans le correcteur orthographique, mais les bogues sous-jacents ont depuis été corrigés.</li>
	<li>Vous pouvez désormais enregistrer des composants pour ajouter des fonctionnalités à l'objet {{domxref("window.navigator")}} à l'aide de la catégorie "JavaScript-navigator-property". Voir <a class="internal" href="https://developer.mozilla.org/En/Developer_Guide/Adding_APIs_to_the_navigator_object" title="en/Developer_Guide/Adding APIs to the navigator object">Ajout des APIs de l'objet navigator</a> pour plus de détails et des exemples.</li>
</ul>
<h2 id="Voir_également">Voir également</h2>
<ul>
	<li><a class="internal" href="https://developer.mozilla.org/fr/docs/Firefox_8_for_developers" title="Firefox 8 pour les développeurs">Firefox 8 pour les développeurs</a></li>
	<li><a class="internal" href="https://developer.mozilla.org/fr/docs/Firefox_7_for_developers" title="Firefox 7 pour les développeurs">Firefox 7 pour les développeurs</a></li>
	<li><a class="internal" href="https://developer.mozilla.org/fr/docs/Firefox_6_for_developers" title="Firefox 6 pour les développeurs">Firefox 6 pour les développeurs</a></li>
	<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