Firefox 8 pour les développeurs

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

Contenu de la révision

Firefox 8, basé sur Gecko 8.0, est sorti le 8 novembre 2011. Cet article fournit des informations à la fois pour les developpeurs Web et pour les développeurs d'extensions et de projets liés à Mozilla pour aider à tirer pleinement parti des fonctionnalités de cette version.

Changements pour les développeurs Web

HTML

  • La propriété crossOrigin a été ajouté à {{domxref("HTMLImageElement")}} et l'attribut {{htmlattrxref("crossorigin", "img")}} a été ajouté à l'élément {{HTMLElement("img")}} (voir {{bug("664299")}}).
  • La méthode {{domxref("HTMLSelectElement","","add()")}} supporte désormais supporte désormais soit un élément ou soit l'index d'un élément auquel un nouvel élément doit être inséré avant. Auparavant, seulement un élément était supporté (voir {{bug("666200")}}).
  • Le constructeur HTMLIsIndexElement a été retiré. Aucun éléments n'a implémenté cette interface depuis Firefox 4.
  • la fonctionnalité HTML5 "menu contextuel" (attribut contextmenu), qui vous permet d'ajouter des éléments personnalisés particuliers au menu contextuel d'origine, est désormais supportée (l'implémentation est encore expérimentale en attendant des changements dans la spécification (voir {{bug("617528")}}).
  • Le support de l'attribut accesskeylabel a été ajouté à tous les éléments.
  • les éléments {{HTMLElement("input")}} et {{HTMLElement("textarea")}} supportent désormais l'attribut selectionDirection, et leurs méthodes setSelectionRange() ont été mises à jour pour supporter éventuellement la spécification d'une direction.
  • La plupart des éléments peuvent désormais obtenir une bague de focalisation établie autour d'eux s'ils ont été faits pouvant recevoir le focus via l'attribut tabindex et que l'utilisateur se concentre ensuite sur l'élément.
  • Dans un ensemble d'éléments {{HTMLElement("label")}} imbriqués, cliquer sur les événements ne déclencheront plus plusieurs éléments, qui, avant, provoquaient un blocage de Firefox (voir {{bug(646157)}}).

DOM

  • La méthode {{domxref("Element.insertAdjacentHTML","insertAdjacentHTML")}} a été implémentée.
  • {{domxref("BlobBuilder")}} dispose désormais d'une méthode getFile() qui renvoie le contenu du blob dans un fichier.
  • L'interface {{domxref("FileReaderSync")}} (partie de FileAPI) a été implementée.
  • La gestion des évènements par les {{HTMLElement("label")}} imbriqués a été fixée.
  • Vous pouvez maintenant utiliser {{domxref("window.postMessage()")}} pour passer les objets {{domxref("File")}} et {{domxref("FileList")}} entre les fenêtres.
  • Lors de l'édition de zones {{domxref("element.contenteditable")}} la sortie d'une position en appuyant sur retour, ou à la sortie d'une liste en mode édition en appuyant sur retour à deux reprises, revient maintenant au mode d'entrée au paragraphe (c'est-à-dire les paragraphes à l'intérieur des blocs {{HTMLElement("p")}}) au lieu de lignes de séparation par les éléments {{HTMLElement("br")}}.
  • Correction d'un bug empêchant la justification de la prise d'effet correcte lorsqu'elle est appliquée à la première ligne dans une zone {{domxref("element.contenteditable")}}.
  • Correction d'un bug qui faisait que en appuyant sur Suppr ou Retour arrière au début d'une zone {{domxref("element.contenteditable")}} affectait le bloc contenteditable précédent s'il était présent.
  • {{domxref("document.getSelection()")}} renvoie désormais l'objet Selection identique à {{domxref("window.getSelection()")}}, à la place de stringifying.
  • La propriété HTML5 selectionDirection permet de définir la direction de la sélection dans un texte éditable.
  • {{domxref("HTMLMediaElement")}} a maintenant une propriété seekable qui retourne l'objet {{domxref("TimeRanges")}}.
  • L'attribut .preload de {{domxref("HTMLMediaElement")}} se reflète désormais comme une valeur énumérée.
  • Les propriétés crossOrigin sont par défaut defaults to "Anonyme" quand une valeur invalide est utilisée.
  • {{domxref("window.navigator.cookieEnabled")}} renvoie désormais correctement l'information quand le paramètre de cookie par défaut est écrasé sur la base de chaque site.

JavaScript

  • RegExp.exec() et RegExp.test() appelés sans arguments correspondent maintenant à la chaîne "undefined".
  • String.search() et String.match() appelés sans arguments ou undefined correspondent désormais à une chaîne vide et correspondent donc à chaque chaîne.
  • Le support des listes de surveillance a été implémenté avec les nouvelles mtéhodes (non standards) watch() et unwatch().

CSS

  • {{cssxref("resolution")}} accepte désormais {{xref_cssnumber()}}, pas seulement des valeurs {{xref_cssinteger()}} comme avec la spécification.
  • Les règles de césure ont été ajoutées pour de nombreuses nouvelles langues lors de l'utilisation de {{cssxref("hyphens")}}.
  • Le traitement de {{cssxref("background-size")}} a été revu pour mieux correspondre à la spécification.
  • Dans le passé, {{cssxref("text-decoration")}} en mode quirks avait l'épaisseur de ligne et la position ajustée sur le texte descendant pour correspondre à la descendance. Désormais le mode standard et le mode quirks ont un rendu plus proche.
  • Le positionnement horizontal des éléments est davantage conforme à la spécification dans beaucoup de cas. La documentation est à venir, mais pour l'instant, pour plus de détails voir le commentaire 23 du {{bug(682780)}}.
  • Les images SVG sont désormais correctement mise à l'échelle lorsqu'elles sont utilisées comme images de fond.

Réseau

  • Les doubles guillemets ne sont plus acceptés en tant que délimiteur pour l'encodage {{RFC("2231")}} ou {{RFC("5987")}}, conformément à ces RFCs.
  • Le parseur MIME du champ d'en-tête (Content-Disposition) exige désormais "=" dans les paramètres.
  • Les scripts ne sont plus téléchargés lorsque JavaScript est désactivé.
  • SSL 2.0 n'est plus supporté.

WebSockets

  • La méthode send() de l'objet WebSocket ne renvoie plus à tort une valeur booléenne.
  • La méthode close() de l'objet WebSocket correspond désormais à la version actuelle du standard, et les événements proches utilisent à présent correctement l'interface CloseEvent.
  • L'attribut extensions de l'objet WebSocket est à présent supporté.
  • Le constructeur WebSocket supporte désormais un ensemble de protocoles ainsi que la chaîne d'un seul protocole.
  • Le contenu mixte n'est pas autorisé avec WebSockets, vous ne pouvez plus établir une connexion vers un serveur WebSocket non sécurisé à partir d'un contenu sécurisé.
  • Les erreurs de connexion avec WebSockets déclenchent à présent le gestionnaire onerror.
  • L'API WebSocket a été mise à jour suivant la dernière version de la spécification (voir {{bug("674890")}}, {{bug("674527")}} et {{bug("674716")}}).
  • L'extension deflate-stream pour WebSockets a été désactivée, elle est obsolète et a cassée la compatibilité avec quelques sites.

WebGL

  • Les textures Cross-domain sont à présent autorisées avec l'accord de CORS.
  • Le processus de rendu Cross avec Direct2D/Direct3D 10.

MathML

  • le support de l'attribut displaystyle sur l'élément de premier niveau {{MathMLElement("math")}} a été ajouté.
  • L'interprétation de numéros de lignes négatifs pour l'attribut align de {{MathMLElement("mtable")}} a été corrigée.

Outils de développement

  • L'objet console a une nouvelle méthode dir(), qui affiche une liste interactive des propriétés sur un objet spécifié.

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

Voir Updating add-ons for Firefox 8 pour vous guidez dans les modifications que vous êtes susceptibles d'avoir à faire pour rendre vos extensions compatibles avec Firefox 8.

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

XPCOM

Components.utils
Les nouvelles méthodes Components.utils.createObjectIn() et Components.utils.makeObjectPropsNormal() ont été créées pour faciliter la création d'objets dans des compartiments spécifiques.

Autres changements relatifs à XPCOM

  • Vous pouvez à présent demander des objets DOM {{domxref("File")}} à partir d'éléments du code en faisant simplement un nouveau fichier, au lieu de devoir demander directement à {{interface("nsIDOMFile")}}.
  • Le type de tableau nsTPtrArray a été retiré. La fonctionnalité est désormais disponible sur tous les nsTArray, qui propose désormais la méthode SafeElementAt() lors d'une demande à l'aide d'un type de pointeur. Voir la section sur SafeElementAt() dans le guide des tableaux XPCOM pour plus de détails.

Workers

Il n'est plus possible d'accéder à des objets XPCOM depuis ChromeWorkers. XPConnect a été désactivé dans le contexte des travailleurs comme indiqué par le {{bug(649537)}}.

XUL

  • Un bug dans {{domxref("document.execCommand()")}} a été fixé, il survenait lors de l'appel sur la valeur de {{XULProp("contentDocument")}}. Depuis Firefox 3, cela a entraîné des erreurs au lieu d'un travail correct.
  • Les extensions amorcées peuvent à présent charger le chrome l'aide du fichier chrome.manifest. Voir la section Ajout de l'interface utilisateur avec chrome.manifest pour plus de détails.
  • Les images XUL rétrécissent désormais avec le même ratio dans les deux sens lors de la spécification de dimensions maximales.

Changements dans le système de compilation

  • Les options de configuration de compilation suivantes ont été retirées :
    • --enable-timeline
    • --disable-storage
    • --necko-disk-cache
  • Lors de la compilation des fichiers IDL aux en-têtes, le fichier d'en-tête jspubtd.h est automatiquement inclus lorsque c'est nécessaire. L'inclusion manuelle de jspubtd.h et/ou jsapi.h dans des fichiers IDL qui utilisent jsval ou [implicit_jscontext] n'est plus nécessaire.

Enregistrement du chrome

  • L'indicateur platformversion peut être utilisé dans le chrome.manifest pour spécifier la compatibilité entre les versions de Gecko.

Changements dans les interfaces

  • La méthode {{ifmethod("mozIJSSubScriptLoader", "loadSubScript")}} charge désormais scripts à partir du cache de démarrage lorsque c'est possible.
  • L'attribut ownerWindow a été supprimé de l'interface {{interface("nsIAccessNode")}}.
  • L'interface {{interface("nsIDOMStorageWindow")}} a été fusionnée avec l'interface {{interface("nsIDOMWindow")}}.
  • Tous les membres de l'interface {{interface("nsIDOMWindowInternal")}} ont été déplacés dans l'interface {{interface("nsIDOMWindow")}}. L'interface (sans les membres) reste disponible pour la compatibilité jusqu'à Firefox 9.
  • Afin d'améliorer les performances, le rappel pour les mises à jour asynchrones des bases de données Places a été changé. Voir les nouvelles méthodes {{ifmethod("mozIVisitInfoCallback", "handleResult")}} et {{ifmethod("mozIVisitInfoCallback", "handleError")}}, qui remplacent l'ancienne unique méthode pour les erreurs et les conditions de succès.
  • L'attribut KIND_MAPPED de {{interface("nsIMemoryReporter")}} a été désapprouvé au profit de KIND_NONHEAP, de nouveaux types d'unités ont été ajoutées : UNITS_COUNT_CUMULATIVE et UNITS_PERCENTAGE.
  • L'interface {{interface("nsIMemoryReporterManager")}} a un nouvel attribut explicit, qui indique explicitement la taille totale des allocations de mémoire.
  • L'interface {{interface("nsIMemoryReporterManager")}} a un nouvel attribut resident, qui relève la quantité de mémoire physique utilisée.
  • L'interface {{interface("nsINetworkLinkService")}} a un nouvel attribut, linkType. Cet attribut indique le type de connexion réseau en cours d'utilisation. Tous les systèmes d'exploitation retournent actuellement LINK_TYPE_UNKNOWN. Le support d'Android a été gardé pour des raisons de sécurité.
  • L'interface {{interface("nsISelection2")}} a été fusionnée avec l'interface {{interface("nsISelectionPrivate")}}.
  • L'interface {{interface("nsISelection3")}} a été fusionnée avec l'interface {{interface("nsISelection")}}.
  • L'attribut state de {{interface("nsISessionStartup")}} est désormais de type jsval au lieu d'être une chaîne, pour des raisons de performance.
  • L'état de l'attribut isActive de ({{interface("nsIDocShell")}}) est désormais false pour les fenêtres minimisées.
  • La méthode {{ifmethod("nsIDownloadHistory", "addDownload")}} enregistre désormais la cible de l'endroit où le téléchargement est sauvegardé, sur le système de fichiers local.

Interfaces supprimées

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

  • nsITimelineService
  • nsIDOMHTMLIsIndexElement

L'interface {{interface("nsIWorkerFactory")}} a également été retirée. WLes travailleurs peuvent encore être créés à l'aide des constructeurs Worker et ChromeWorker.

Autres changements

  • Quand une fenêtre est minimisée (non réduite), ou basculée entre le plein écran et le mode fenêtré, elle reçoit l'événement sizemodechange.
  • You can now la préférence extensions.autoDisableScopes pour désactiver l'installation automatique d'extensions sur un emplacement d'installation.
  • La nouvelle propriété {{domxref("document.mozSyntheticDocument")}} des objets {{domxref("Document")}} vous permet de déterminer si un document est synthétique (comme une image, une vidéo ou un fichier audio) plutôt qu'un document DOM standard. Cela peut être utile, par exemple, si vous voulez présenter une interface utilisateur différente dans cette situation (comme l'ajout d'éléments contextuels différemment selon le cas présent).
  • Vous pouvez désormais spécifier un filtre en ouvrant about:config ; par exemple, "about:config?filter=sessionstore" n'affichera que les préférences liées au stockage des sessions.

Voir également

Source de la révision

<p>Firefox 8, basé sur Gecko 8.0, est sorti le 8 novembre 2011. Cet article fournit des informations à la fois pour les developpeurs Web et pour les développeurs d'extensions et de projets liés à Mozilla pour aider à tirer pleinement parti des fonctionnalités de 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>La propriété <code>crossOrigin</code> a été ajouté à {{domxref("HTMLImageElement")}} et l'attribut {{htmlattrxref("crossorigin", "img")}} a été ajouté à l'élément {{HTMLElement("img")}} (voir {{bug("664299")}}).</li>
	<li>La méthode {{domxref("HTMLSelectElement","","add()")}} supporte désormais supporte désormais soit un élément ou soit l'index d'un élément auquel un nouvel élément doit être inséré avant. Auparavant, seulement un élément était supporté (voir {{bug("666200")}}).</li>
	<li>Le constructeur <code>HTMLIsIndexElement</code> a été retiré. Aucun éléments n'a implémenté cette interface depuis Firefox 4.</li>
	<li>la fonctionnalité HTML5 "menu contextuel" (attribut <code>contextmenu</code>), qui vous permet d'ajouter des éléments personnalisés particuliers au menu contextuel d'origine, est désormais supportée (l'implémentation est encore expérimentale en attendant des changements dans la spécification (voir {{bug("617528")}}).</li>
	<li>Le support de l'attribut <a class="internal" href="https://developer.mozilla.org/fr/docs/HTML/Global_attributes#accesskey" title="Global attributes#accesskey"><code>accesskeylabel</code></a> a été ajouté à tous les éléments.</li>
	<li>les éléments {{HTMLElement("input")}} et {{HTMLElement("textarea")}} supportent désormais l'attribut <code>selectionDirection</code>, et leurs méthodes <code>setSelectionRange()</code> ont été mises à jour pour supporter éventuellement la spécification d'une direction.</li>
	<li>La plupart des éléments peuvent désormais obtenir une bague de focalisation établie autour d'eux s'ils ont été faits pouvant recevoir le focus via l'attribut <code>tabindex</code> et que l'utilisateur se concentre ensuite sur l'élément.</li>
	<li>Dans un ensemble d'éléments {{HTMLElement("label")}} imbriqués, cliquer sur les événements ne déclencheront plus plusieurs éléments, qui, avant, provoquaient un blocage de Firefox (voir {{bug(646157)}}).</label></li>
</ul>
<h3 id="DOM">DOM</h3>
<ul>
	<li>La méthode {{domxref("Element.insertAdjacentHTML","insertAdjacentHTML")}} a été implémentée.</li>
	<li>{{domxref("BlobBuilder")}} dispose désormais d'une méthode <code>getFile()</code> qui renvoie le contenu du blob dans un fichier.</li>
	<li>L'interface {{domxref("FileReaderSync")}} (partie de FileAPI) a été implementée.</li>
	<li>La gestion des évènements par les {{HTMLElement("label")}} imbriqués a été fixée.</li>
	<li>Vous pouvez maintenant utiliser {{domxref("window.postMessage()")}} pour passer les objets {{domxref("File")}} et {{domxref("FileList")}} entre les fenêtres.</li>
	<li>Lors de l'édition de zones {{domxref("element.contenteditable")}} la sortie d'une position en appuyant sur retour, ou à la sortie d'une liste en mode édition en appuyant sur retour à deux reprises, revient maintenant au mode d'entrée au paragraphe (c'est-à-dire les paragraphes à l'intérieur des blocs {{HTMLElement("p")}}) au lieu de lignes de séparation par les éléments {{HTMLElement("br")}}.</li>
	<li>Correction d'un bug empêchant la justification de la prise d'effet correcte lorsqu'elle est appliquée à la première ligne dans une zone {{domxref("element.contenteditable")}}.</li>
	<li>Correction d'un bug qui faisait que en appuyant sur Suppr ou Retour arrière au début d'une zone {{domxref("element.contenteditable")}} affectait le bloc <code>contenteditable</code> précédent s'il était présent.</li>
	<li>{{domxref("document.getSelection()")}} renvoie désormais l'objet <code>Selection</code> identique à {{domxref("window.getSelection()")}}, à la place de <em>stringifying</em>.</li>
	<li>La propriété HTML5 <code>selectionDirection</code> permet de définir la direction de la sélection dans un texte éditable.</li>
	<li>{{domxref("HTMLMediaElement")}} a maintenant une propriété <code>seekable</code> qui retourne l'objet {{domxref("TimeRanges")}}.</li>
	<li>L'attribut <code>.preload</code> de {{domxref("HTMLMediaElement")}} se reflète désormais comme une <em>valeur énumérée</em>.</li>
	<li>Les <a class="internal" href="https://developer.mozilla.org/en-US/docs/HTML/CORS_settings_attributes" title="CORS settings attributes">propriétés <code>crossOrigin</code></a> sont par défaut defaults to "Anonyme" quand une valeur invalide est utilisée.</li>
	<li>{{domxref("window.navigator.cookieEnabled")}} renvoie désormais correctement l'information quand le paramètre de cookie par défaut est écrasé sur la base de chaque site.</li>
</ul>
<h3 id="JavaScript">JavaScript</h3>
<ul>
	<li><a class="internal" href="https://developer.mozilla.org/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/RegExp/exec" title="RegExp/exec"><code>RegExp.exec()</code></a> et <a class="internal" href="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RegExp/test" title="RegExp/test"><code>RegExp.test()</code></a> appelés sans arguments correspondent maintenant à la chaîne "undefined".</li>
	<li><a class="internal" href="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/search" title="String/search"><code>String.search()</code></a> et <a class="internal" href="https://developer.mozilla.org/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/String/Match" title="String/Match"><code>String.match()</code></a> appelés sans arguments ou <code>undefined</code> correspondent désormais à une chaîne vide et correspondent donc à chaque chaîne.</li>
	<li>Le support des listes de surveillance a été implémenté avec les nouvelles mtéhodes (non standards) <a class="internal" href="https://developer.mozilla.org/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/Object/watch" title="Object/watch"><code>watch()</code></a> et <a class="internal" href="https://developer.mozilla.org/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/Object/unwatch" title="Object/unwatch"><code>unwatch()</code></a>.</li>
</ul>
<h3 id="CSS">CSS</h3>
<ul>
	<li>{{cssxref("resolution")}} accepte désormais {{xref_cssnumber()}}, pas seulement des valeurs {{xref_cssinteger()}} comme avec la spécification.</li>
	<li>Les règles de césure ont été ajoutées pour de nombreuses nouvelles langues lors de l'utilisation de {{cssxref("hyphens")}}.</li>
	<li>Le traitement de {{cssxref("background-size")}} a été revu pour mieux correspondre à la spécification.</li>
	<li>Dans le passé, {{cssxref("text-decoration")}} en mode quirks avait l'épaisseur de ligne et la position ajustée sur le texte descendant pour correspondre à la descendance. Désormais le mode standard et le mode quirks ont un rendu plus proche.</li>
	<li>Le positionnement horizontal des éléments est davantage conforme à la spécification dans beaucoup de cas. La documentation est à venir, mais pour l'instant, pour plus de détails voir le commentaire 23 du {{bug(682780)}}.</li>
	<li><a class="internal" href="https://developer.mozilla.org/en-US/docs/CSS/Scaling_of_SVG_backgrounds" title="Scaling of SVG backgrounds">Les images SVG sont désormais correctement mise à l'échelle</a> lorsqu'elles sont utilisées comme images de fond.</li>
</ul>
<h3 id="Réseau">Réseau</h3>
<ul>
	<li>Les doubles guillemets ne sont plus acceptés en tant que délimiteur pour l'encodage {{RFC("2231")}} ou {{RFC("5987")}}, conformément à ces RFCs.</li>
	<li>Le parseur MIME du champ d'en-tête (<code>Content-Disposition</code>) exige désormais "=" dans les paramètres.</li>
	<li>Les scripts ne sont plus téléchargés lorsque JavaScript est désactivé.</li>
	<li>SSL 2.0 n'est plus supporté.</li>
</ul>
<h3 id="WebSockets">WebSockets</h3>
<ul>
	<li>La méthode <a class="internal" href="https://developer.mozilla.org/en-US/docs/WebSockets/WebSockets_reference/WebSocket#send()" title="WebSocket#send()"><code>send()</code></a> de l'objet <a class="internal" href="https://developer.mozilla.org/en-US/docs/WebSockets/WebSockets_reference/WebSocket" title="WebSocket"><code>WebSocket</code></a> ne renvoie plus à tort une valeur booléenne.</li>
	<li>La méthode <a class="internal" href="https://developer.mozilla.org/en-US/docs/WebSockets/WebSockets_reference/WebSocket#close()" title="WebSocket#close()"><code>close()</code></a> de l'objet <a class="internal" href="https://developer.mozilla.org/en-US/docs/WebSockets/WebSockets_reference/WebSocket" title="WebSocket"><code>WebSocket</code></a> correspond désormais à la version actuelle du standard, et les événements proches utilisent à présent correctement l'interface <a class="internal" href="https://developer.mozilla.org/en-US/docs/WebSockets/WebSockets_reference/CloseEvent" title="CloseEvent"><code>CloseEvent</code></a>.</li>
	<li>L'attribut <code>extensions</code> de l'objet <a class="internal" href="https://developer.mozilla.org/en-US/docs/WebSockets/WebSockets_reference/WebSocket" title="WebSocket"><code>WebSocket</code></a> est à présent supporté.</li>
	<li>Le constructeur WebSocket supporte désormais un ensemble de protocoles ainsi que la chaîne d'un seul protocole.</li>
	<li>Le contenu mixte n'est pas autorisé avec WebSockets, vous ne pouvez plus établir une connexion vers un serveur WebSocket non sécurisé à partir d'un contenu sécurisé.</li>
	<li>Les erreurs de connexion avec WebSockets déclenchent à présent le gestionnaire <code>onerror</code>.</li>
	<li>L'API <a class="internal" href="https://developer.mozilla.org/en-US/docs/WebSockets" title="en/WebSockets">WebSocket</a> a été mise à jour suivant la dernière version de la spécification (voir {{bug("674890")}}, {{bug("674527")}} et {{bug("674716")}}).</li>
	<li>L'extension deflate-stream pour WebSockets a été désactivée, elle est obsolète et a cassée la compatibilité avec quelques sites.</li>
</ul>
<h3 id="WebGL">WebGL</h3>
<ul>
	<li><a class="internal" href="https://developer.mozilla.org/en-US/docs/WebGL/Cross-Domain_Textures" title="Cross-Domain Textures">Les textures Cross-domain</a> sont à présent autorisées avec l'accord de CORS.</li>
	<li>Le processus de rendu Cross avec Direct2D/Direct3D 10.</li>
</ul>
<h3 id="MathML">MathML</h3>
<ul>
	<li>le support de l'attribut <code>displaystyle</code> sur l'élément de premier niveau {{MathMLElement("math")}} a été ajouté.</li>
	<li>L'interprétation de numéros de lignes négatifs pour l'attribut <code>align</code> de {{MathMLElement("mtable")}} a été corrigée.</li>
</ul>
<h3 id="Outils_de_développement">Outils de développement</h3>
<ul>
	<li>L'objet <a class="internal" href="https://developer.mozilla.org/en-US/docs/Tools/Web_Console#The_console_object" title="Using the Web Console#The console object"><code>console</code></a> a une nouvelle méthode <code>dir()</code>, qui affiche une liste interactive des propriétés sur un objet spécifié.</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_8" title="Updating add-ons for Firefox 8">Updating add-ons for Firefox 8</a> pour vous guidez dans les modifications que vous êtes susceptibles d'avoir à faire pour rendre vos extensions compatibles avec Firefox 8.</p>
<div class="note"><strong>Note:</strong> Firefox 8 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="Interface Compatibility#Binary Interfaces">Interfaces Binaires</a>.</div>
<h3 id="XPCOM">XPCOM</h3>
<dl>
	<dt><a class="internal" href="https://developer.mozilla.org/fr/docs/Components.utils" title="fr/Components.utils"><code>Components.utils</code></a></dt>
	<dd>Les nouvelles méthodes <a class="internal" href="https://developer.mozilla.org/fr/docs/Components.utils.createObjectIn" title="Components.utils.createObjectIn"><code>Components.utils.createObjectIn()</code></a> et <a class="internal" href="https://developer.mozilla.org/fr/docs/Components.utils.makeObjectPropsNormal" title="Components.utils.makeObjectPropsNormal"><code>Components.utils.makeObjectPropsNormal()</code></a> ont été créées pour faciliter la création d'objets dans des compartiments spécifiques.</dd>
</dl>
<h4 id="Autres_changements_relatifs_à_XPCOM">Autres changements relatifs à XPCOM</h4>
<ul>
	<li>Vous pouvez à présent demander des objets DOM {{domxref("File")}} à partir d'éléments du code en faisant simplement un nouveau fichier, au lieu de devoir demander directement à {{interface("nsIDOMFile")}}.</li>
	<li>Le type de tableau <code>nsTPtrArray</code> a été retiré. La fonctionnalité est désormais disponible sur tous les <code>nsTArray</code>, qui propose désormais la méthode <code>SafeElementAt()</code> lors d'une demande à l'aide d'un type de pointeur. Voir la section sur <a class="internal" href="https://developer.mozilla.org/en-US/docs/XPCOM_array_guide#Bounds-safe_access_to_elements" title="XPCOM array guide#Bounds-safe access to elements"><code>SafeElementAt()</code></a> dans le <a class="internal" href="https://developer.mozilla.org/en-US/docs/XPCOM_array_guide" title="XPCOM array guide">guide des tableaux XPCOM</a> pour plus de détails.</li>
</ul>
<h3 id="Workers">Workers</h3>
<p>Il n'est plus possible d'accéder à des objets XPCOM depuis ChromeWorkers. XPConnect a été désactivé dans le contexte des travailleurs comme indiqué par le {{bug(649537)}}.</p>
<h3 id="XUL">XUL</h3>
<ul>
	<li>Un bug dans {{domxref("document.execCommand()")}} a été fixé, il survenait lors de l'appel sur la valeur de {{XULProp("contentDocument")}}. Depuis Firefox 3, cela a entraîné des erreurs au lieu d'un travail correct.</li>
	<li><a class="internal" href="https://developer.mozilla.org/en-US/docs/Extensions/Bootstrapped_extensions" title="Bootstrapped extensions">Les extensions amorcées</a> peuvent à présent charger le chrome l'aide du fichier <a class="internal" href="https://developer.mozilla.org/fr/docs/Enregistrement_chrome" title="chrome.manifest"><code>chrome.manifest</code></a>. Voir la section <a class="internal" href="https://developer.mozilla.org/en-US/docs/Extensions/Bootstrapped_extensions#Adding_user_interface_with_a_chrome.manifest" title="Bootstrapped extensions#Adding user interface with a chrome.manifest">Ajout de l'interface utilisateur avec chrome.manifest</a> pour plus de détails.</li>
	<li><a class="internal" href="https://developer.mozilla.org/en-US/docs/XUL/image" title="XUL/image">Les images XUL</a> rétrécissent désormais avec le même ratio dans les deux sens lors de la spécification de dimensions maximales.</li>
</ul>
<h3 id="Changements_dans_le_système_de_compilation">Changements dans le système de compilation</h3>
<ul>
	<li>Les options de configuration de compilation suivantes ont été retirées :
		<ul>
			<li><code>--enable-timeline</code></li>
			<li><code>--disable-storage</code></li>
			<li><code>--necko-disk-cache</code></li>
		</ul>
	</li>
	<li>Lors de la compilation des fichiers IDL aux en-têtes, le fichier d'en-tête <code>jspubtd.h</code> est automatiquement inclus lorsque c'est nécessaire. L'inclusion manuelle de <code>jspubtd.h</code> et/ou <code>jsapi.h</code> dans des fichiers IDL qui utilisent jsval ou [implicit_jscontext] n'est plus nécessaire.</li>
</ul>
<h3 id="Enregistrement_du_chrome">Enregistrement du chrome</h3>
<ul>
	<li>L'indicateur <a class="internal" href="https://developer.mozilla.org/en-US/docs/Chrome_Registration#platformversion" title="Chrome Registration#platformversion"><code>platformversion</code></a> peut être utilisé dans le chrome.manifest pour spécifier la compatibilité entre les versions de Gecko.</li>
</ul>
<h3 id="Changements_dans_les_interfaces">Changements dans les interfaces</h3>
<ul>
	<li>La méthode {{ifmethod("mozIJSSubScriptLoader", "loadSubScript")}} charge désormais scripts à partir du cache de démarrage lorsque c'est possible.</li>
	<li>L'attribut <code>ownerWindow</code> a été supprimé de l'interface {{interface("nsIAccessNode")}}.</li>
	<li>L'interface {{interface("nsIDOMStorageWindow")}} a été fusionnée avec l'interface {{interface("nsIDOMWindow")}}.</li>
	<li>Tous les membres de l'interface {{interface("nsIDOMWindowInternal")}} ont été déplacés dans l'interface {{interface("nsIDOMWindow")}}. L'interface (sans les membres) reste disponible pour la compatibilité jusqu'à Firefox 9.</li>
	<li>Afin d'améliorer les performances, le rappel pour les mises à jour asynchrones des bases de données Places a été changé. Voir les nouvelles méthodes {{ifmethod("mozIVisitInfoCallback", "handleResult")}} et {{ifmethod("mozIVisitInfoCallback", "handleError")}}, qui remplacent l'ancienne unique méthode pour les erreurs et les conditions de succès.</li>
	<li>L'attribut <code>KIND_MAPPED</code> de {{interface("nsIMemoryReporter")}} a été désapprouvé au profit de <code>KIND_NONHEAP</code>, de nouveaux types d'unités ont été ajoutées : <code>UNITS_COUNT_CUMULATIVE</code> et <code>UNITS_PERCENTAGE</code>.</li>
	<li>L'interface {{interface("nsIMemoryReporterManager")}} a un nouvel attribut <code>explicit</code>, qui indique explicitement la taille totale des allocations de mémoire.</li>
	<li>L'interface {{interface("nsIMemoryReporterManager")}} a un nouvel attribut <code>resident</code>, qui relève la quantité de mémoire physique utilisée.</li>
	<li>L'interface {{interface("nsINetworkLinkService")}} a un nouvel attribut, <code>linkType</code>. Cet attribut indique le type de connexion réseau en cours d'utilisation. Tous les systèmes d'exploitation retournent actuellement <code>LINK_TYPE_UNKNOWN</code>. Le support d'Android a été gardé pour des raisons de sécurité.</li>
	<li>L'interface {{interface("nsISelection2")}} a été fusionnée avec l'interface {{interface("nsISelectionPrivate")}}.</li>
	<li>L'interface {{interface("nsISelection3")}} a été fusionnée avec l'interface {{interface("nsISelection")}}.</li>
	<li>L'attribut <code>state</code> de {{interface("nsISessionStartup")}} est désormais de type <a class="internal" href="https://developer.mozilla.org/en-US/docs/SpiderMonkey/JSAPI_Reference/Jsval" title="jsval"><code>jsval</code></a> au lieu d'être une chaîne, pour des raisons de performance.</li>
	<li>L'état de l'attribut <code>isActive</code> de ({{interface("nsIDocShell")}}) est désormais <code>false</code> pour les fenêtres minimisées.</li>
	<li>La méthode {{ifmethod("nsIDownloadHistory", "addDownload")}} enregistre désormais la cible de l'endroit où le téléchargement est sauvegardé, sur le système de fichiers local.</li>
</ul>
<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>nsITimelineService</code></li>
	<li><code>nsIDOMHTMLIsIndexElement</code></li>
</ul>
<p>L'interface {{interface("nsIWorkerFactory")}} a également été retirée. WLes travailleurs peuvent encore être créés à l'aide des constructeurs <code>Worker</code> et <code>ChromeWorker</code>.</p>
<h3 id="Autres_changements">Autres changements</h3>
<ul>
	<li>Quand une fenêtre est minimisée (non réduite), ou basculée entre le plein écran et le mode fenêtré, elle reçoit l'événement <code>sizemodechange</code>.</li>
	<li>You can now <a class="internal" href="https://developer.mozilla.org/en-US/docs/Installing_extensions#Preventing_automatic_install_from_specific_locations" title="en/Installing_extensions#Preventing_automatic_install_from_specific_locations">la préférence <code>extensions.autoDisableScopes</code></a> pour désactiver l'installation automatique d'extensions sur un emplacement d'installation.</li>
	<li>La nouvelle propriété {{domxref("document.mozSyntheticDocument")}} des objets {{domxref("Document")}} vous permet de déterminer si un document est synthétique (comme une image, une vidéo ou un fichier audio) plutôt qu'un document DOM standard. Cela peut être utile, par exemple, si vous voulez présenter une interface utilisateur différente dans cette situation (comme l'ajout d'éléments contextuels différemment selon le cas présent).</li>
	<li>Vous pouvez désormais spécifier un filtre en ouvrant <code>about:config</code> ; par exemple, "about:config?filter=sessionstore" n'affichera que les préférences liées au stockage des sessions.</li>
</ul>
<h2 id="Voir_également">Voir également</h2>
<ul>
	<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