1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
|
---
title: Firefox 5 pour les développeurs
slug: Mozilla/Firefox/Releases/5
tags:
- Firefox
- Firefox 5
translation_of: Mozilla/Firefox/Releases/5
original_slug: Mozilla/Firefox/Versions/5
---
<div>{{FirefoxSidebar}}</div>
<p>Firefox 5, basé sur Gecko 5.0, est sorti le 21 juin 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>Tous les éléments HTML ont maintenant l'attribut {{domxref("element.accessKey", "accessKey")}}, ainsi que les méthodes {{domxref("element.blur()", "blur()")}}, {{domxref("element.click()", "click()")}} et {{domxref("element.focus()", "focus()")}}. Elles sont spécifiées dans l'interface {{domxref("HTMLElement")}}.</li>
<li>Afin d'être conforme à la spécification HTML5, le support des <a class="internal" href="https://developer.mozilla.org/en-US/docs/Character_Sets_Supported_by_Gecko" title="Character Sets Supported by Gecko">jeux de caractères</a> UTF-7 et UTF-32 a été retiré.</li>
<li>Lorsque l'on est en mode quirks, les {{HTMLElement("map")}} vides ne sont plus ignorées en faveur des non-vides quand elles correspondent. Pour plus de détails, voir <a class="internal" href="https://developer.mozilla.org/en-US/docs/HTML/Element/map#Gecko_notes" title="HTML/Element/map#Gecko notes">les notes de Gecko</a> sur l'élément {{HTMLElement("map")}}.</li>
<li>Firefox mobile pour Android supporte désormais les polices WOFF pour {{cssxref("@font-face")}}.</li>
<li>WebGL <a class="internal" href="https://developer.mozilla.org/en-US/docs/WebGL/Cross-Domain_Textures" title="WebGL/Cross-Domain Textures">ne charge plus les textures provenant d'autres domaines que celui d'origine</a>, par mesure de sécurité. Le support <a class="internal" href="https://developer.mozilla.org/en-US/HTTP_access_control" title="HTTP access control">du contrôle d'accès d'HTTP</a> devrait arriver dans le futur pour que le chargement des textures se fasse en toute sécurité.</li>
</ul>
<h4 id="Améliorations_de_Canvas">Améliorations de Canvas</h4>
<ul>
<li>L'environnement de dessin 2D {{HTMLElement("canvas")}} supporte désormais la spécification d'un objet <code>ImageData</code> en entrée de la méthode <code>createImageData()</code> ; cela <a class="internal" href="https://developer.mozilla.org/en-US/docs/HTML/Canvas/Pixel_manipulation_with_canvas#Creating_an_ImageData_object" title="HTML/Canvas/Pixel manipulation with canvas#Creating an ImageData object">créé un nouvel objet <code>ImageData</code></a> qui est initialisé avec les mêmes dimensions que l'objet spécifié, mais tous les pixels sont toujours prédéfinis en noir transparent. ceci a été documenté comme déjà mis en oeuvre alors que ça ne l'était pas.</li>
<li>Spécifier des valeurs non finies lors de l'ajout de couleur arrête l'ajout via un appel à <code>addColorStop()</code> de la méthode {{domxref("CanvasGradient")}} en renvoyant désormais <code>INDEX_SIZE_ERR</code> à la place de <code>SYNTAX_ERR</code>.</li>
<li>La méthode {{domxref("HTMLCanvasElement")}} <code>toDataURL()</code> now correctly lower-cases the specified MIME type before matching.</li>
<li><code>getImageData()</code> accepte maintenant correctement les rectangles qui vont au-delà des limites de la zone, les pixels qui sont en dehors de la zone sont mis en noir transparent.</li>
<li><code>drawImage()</code> et <code>createImageData()</code> traitent désormais les arguments négatifs conformément à la spécification, en retournant le rectangle autour de l'axe approprié. <strong>Nous avons besoin d'un article sur <a class="external" href="http://dev.w3.org/csswg/css3-images/#default-sizing" title="http://dev.w3.org/csswg/css3-images/#default-sizing">CSS sizing</a> et son fonctionnement.</strong></li>
<li>La spécification de valeurs non-finies lors de l'appel de <code>createImageData()</code> renvoi maintenant l'exception <code>NOT_SUPPORTED_ERR</code>.</li>
<li><code>createImageData()</code> et <code>getImageData()</code> retournent maintenant correctement une valeur d'un pixel en données d'image si un rectangle plus petit qu'un petit qu'un pixel est spécifié.</li>
<li>La spécification d'un angle négatif lors de l'appel de <code>createRadialGradient()</code> renvoi désormais <code>INDEX_SIZE_ERR</code>.</li>
<li>La spécification d'une image <code>null</code> ou <code>undefined</code> lors de l'appel de <code>createPattern()</code> ou <code>drawImage()</code> renvoi désormais l'exception <code>TYPE_MISMATCH_ERR</code>.</li>
<li>La spécification de valeurs incorrectes pour <code>globalAlpha</code> ne renvoie plus l'exception <code>SYNTAX_ERR</code>, cela est désormais ignoré silencieusement.</li>
<li>La spécification de valeurs incorrectes lors de l'appel de <code>translate()</code>, <code>transform()</code>, <code>rect()</code>, <code>clearRect()</code>, <code>fillRect()</code>, <code>strokeRect()</code>, <code>lineTo()</code>, <code>moveTo()</code>, <code>quadraticCurveTo()</code> ou <code>arc()</code> ne renvoie plus une exception ; ces appels sont désormais ingorés silencieusement.</li>
<li>Le réglage de la valeur de <code>shadowOffsetX</code>, <code>shadowOffsetY</code> ou <code>shadowBlur</code> avec une valeur incorrecte est désormais ignoré silencieusement.</li>
<li>Le réglage de la valeur de <code>rotate</code> ou <code>scale</code> avec une valeur incorrecte est désormais ignoré silencieusement.</li>
</ul>
<h3 id="CSS">CSS</h3>
<dl>
<dt><a class="internal" href="https://developer.mozilla.org/fr/docs/CSS/Animations_CSS" title="CSS/Animations CSS">Animations CSS</a></dt>
<dd>Le support pour les animations CSS a été ajouté, pour l'instant il faut utilisé le préfixe <code>-moz-</code>.</dd>
</dl>
<h3 id="DOM">DOM</h3>
<ul>
<li>L'objet {{domxref("selection")}} de la méthode <a class="internal" href="https://developer.mozilla.org/en-US/docs/DOM/Selection/modify" title="DOM/Selection/modify"><code>modify()</code></a> a été modifiée afin que la sélection de la granularité "mot" ne contienne plus les espaces à la fin, ce qui est plus cohérent et correspond au comportement de WebKit.</li>
<li>La méthode {{domxref("window.setTimeout()")}} veille maintenant à ne plus envoyer de délai d'attente dans les onglets inactifs. En plus, le délai est imbriqué à la valeur minimale autorisée par la spécification HTML5 : 4 ms (au lieu de 10 ms qui sert à fixer).</li>
<li>De même, la méthode {{domxref("window.setInterval()")}} ne serre pas plus d'un intervalle par seconde dans les onglets inactifs.</li>
<li><a class="internal" href="https://developer.mozilla.org/fr/docs/XMLHttpRequest" title="XMLHttpRequest"><code>XMLHttpRequest</code></a> supporte maintenant <a class="internal" href="https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/Using_XMLHttpRequest#Detecting_any_load_end_condition" title="XMLHttpRequest/Using XMLHttpRequest#Detecting any load end condition">l'évènement <code>loadend</code></a>. C'est envoyé après qu'un transfert soit terminé (c'est-à-dire après l'évènement <code>abort</code>, <code>error</code> ou <code>load</code>). Vous pouvez utiliser cette fonction pour gérer les tâches qui doivent être exécutées indépendamment de la réussite ou l'échec d'un transfert.</li>
<li>{{domxref("Blob")}} et, par extension, les objets de {{domxref("File")}} de la méthode <code>slice()</code> ont été supprimés et remplacés par une nouvelle, avec une syntaxe qui la rend mieux compatible avec les méthodes <a class="internal" href="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/slice" title="JavaScript/Reference/Global Objects/Array/slice"><code>Array.slice()</code></a> et <a class="internal" href="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/slice" title="JavaScript/Reference/Global Objects/String/slice"><code>String.slice()</code></a> dans JavaScript. Cette méthode s'appelle pour l'instant <a class="internal" href="https://developer.mozilla.org/en-US/docs/DOM/Blob#mozSlice()" title="DOM/Blob#mozSlice()"><code>mozSlice()</code></a>.</li>
<li>La valeur de {{domxref("window.navigator.language")}} est maintenant déterminée en examinant la valeur de <a class="internal" href="https://developer.mozilla.org/en-US/docs/HTTP/Headers" title="HTTP/Headers">l'en-tête HTTP</a> <code>Accept-Language</code>.</li>
<li>La propriété {{domxref("Node.prefix")}} est maintenant en lecture seule, comme l'exige la spécification DOM.</li>
<li>{{domxref("HTMLVideoElement")}} supporte maintenant des propriétés expérimentales qui permettent d'obtenir des informations sur les statistiques des vidéos comme le nombres d'images par seconde.</li>
</ul>
<h3 id="JavaScript">JavaScript</h3>
<ul>
<li>Les expressions régulières ne sont plus appelable comme si il s'agissait de fonctions, ce changement a été fait de concert avec l'équipe de WebKit afin d'assurer la compatibilité (voir {{WebkitBug(28285)}}. Cette fonctionnalité existait depuis longtemps déjà mais n'a jamais été documentée (du moins, pas sur MDN).</li>
<li>La méthode <a class="internal" href="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/isGenerator" title="JavaScript/Reference/Global Objects/Function/isGenerator"><code>Function.prototype.isGenerator()</code></a> est désormais supportée, ce qui vous permet de déterminer si une fonction est <a class="internal" href="https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Iterators_and_Generators#Generators.3a_a_better_way_to_build_Iterators" title="Core JavaScript 1.5 Guide/Iterators and Generators#Generators.3a a better way to build Iterators">génératrice</a>.</li>
<li>Les <a class="internal" href="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Reserved_Words" title="JavaScript/Reference/Reserved Words">mots suivants ont été réservés</a> : <code>class</code>, <code>enum</code>, <code>export</code>, <code>extends</code>, <code>import</code> et <code>super</code>. Auparavant, ils étaient uniquement considérés comme réservés en mode strict.</li>
<li>Les documents DOM crées dans le chrome ne peuvent plus être exposés à des scripts en sandbox.</li>
<li>Le parser JSON a été ré-écrit pour améliorer la vitesse et la conformité. Ce qui inclut un correctif pour le {{bug("572279")}}.</li>
</ul>
<h3 id="SVG">SVG</h3>
<ul>
<li>L'attribut SVG {{SVGAttr("class")}} peut maintenant être animé.</li>
<li>Les interfaces SVG suivantes sont liées à des interfaces DOM représentant les listes d'objets qui sont maintenant indexables et peuvent être consultées comme des tableaux ; en outre, ils ont une propriété <code>length</code> indiquant le nombre d'éléments dans les listes : {{domxref("SVGLengthList")}}, {{domxref("SVGNumberList")}}, {{domxref("SVGPathSegList")}} et {{domxref("SVGPointList")}}.</li>
</ul>
<h3 id="HTTP">HTTP</h3>
<ul>
<li>Firefox n'envoi plus l'en-tête HTTP <code>Keep-Alive</code>, nous n'avons pas pu le formater correctement et il était redondant car on retrouve la valeur "keep-alive" dans l'en-tête {{httpheader("Connection")}} ou {{httpheader("Proxy-Connection")}}.</li>
<li>Le modèle de transaction HTTP a été mis à jour pour être plus intelligent sur la réutilisation des connexions dans le pool de connexions persistantes, au lieu de traiter le pool pool comme une file d'attente {{interwiki("wikipedia", "FIFO")}}, Necko tente maintenant de trier le pool avec des connexions avec la fenêtre qui a le plus de {{interwiki("wikipedia", "congestion window")}} (CWND) en premier. Cela peut réduire le temps d'aller-retour (RTT) des transactions HTTP en évitant la nécessité de développer des connexions fenêtres dans de nombreux cas.</li>
<li>Firefox gère désormais l'en-tête de réponse HTTP <code>Content-Disposition</code> plus efficacement si les deux paramètres <code>filename</code> et <code>filename*</code> sont fournis, il regarde à travers tous les noms fournis, en utilisant le paramètre <code>filename*</code> si il est disponible, même si un paramètre <code>filename</code> est inclus en premier. Auparavant, le premier paramètre correspondant était utilisé, ce qui empêchait l'utilisation d'un nom plus approprié. Voir {{bug(588781)}}.</li>
</ul>
<h3 id="MathML">MathML</h3>
<ul>
<li>Support des <a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#id.3.2.5.7.3" title="http://www.w3.org/TR/MathML3/chapter3.html#id.3.2.5.7.3">opérateurs embellis</a></li>
</ul>
<h3 id="Outils_pour_les_développeurs">Outils pour les développeurs</h3>
<ul>
<li><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">L'objet <code>Console</code> de la Console Web</a> a maintenant une méthode <code>debug()</code>, qui est un alias pour la méthode <code>log()</code>, cela améliore la compatibilité avec certains sites.</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 5, voir <a class="internal" href="https://developer.mozilla.org/en-US/docs/Firefox/Updating_add-ons_for_Firefox_5" title="Firefox/Updating add-ons for Firefox 5">Updating add-ons for Firefox 5</a>.</p>
<div class="note"><strong>Note :</strong> Firefox 5 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="Changements_dans_les_modules_de_code_JavaScript">Changements dans les modules de code JavaScript</h3>
<h4 id="Nouveau_module_de_code_JavaScript">Nouveau module de code JavaScript</h4>
<ul>
<li>Le module de code <a class="internal" href="https://developer.mozilla.org/en-US/docs/JavaScript_code_modules/Dict.jsm" title="JavaScript code modules/Dict.jsm"><code>Dict.jsm</code></a> a été ajouté, il fournit une API pour les dictionnaires de paires clé/valeur.</li>
</ul>
<h4 id="NetUtil.jsm">NetUtil.jsm</h4>
<ul>
<li>La méthode <a class="internal" href="https://developer.mozilla.org/en-US/docs/JavaScript_code_modules/NetUtil.jsm#asyncFetch()" title="JavaScript code modules/NetUtil.jsm#asyncFetch()"><code>asyncFetch()</code></a> supporte désormais la spécification de la source en tant que {{interface("nsIInputStream")}}.</li>
</ul>
<h3 id="Changements_dans_les_interfaces">Changements dans les interfaces</h3>
<ul>
<li>L'interface {{interface("nsIHttpChannelInternal")}} a maintenant de nouveaux attributs donnant accès à des informations sur les points finaux des canaux des adresses et des ports. Ces informations sont fournies principalement à des fins de débogage.</li>
<li>Les attribut {{htmlattrxref("width", "canvas")}} et {{htmlattrxref("height", "canvas")}} de l'élément {{HTMLElement("canvas")}} sont désormais inclus dans IDL comme des entiers non signés au lieu d'être signés (voir <a class="internal" href="https://developer.mozilla.org/en/DOM/HTMLCanvasElement" title="en/DOM/HTMLCanvasElement"><code>HTMLCanvasElement</code></a>).</li>
<li>Les interfaces <code>nsIAppStartup2</code> et {{interface("nsIAppStartup_MOZILLA_2_0")}} ont été fusionnées avec l'interface {{interface("nsIAppStartup")}}.</li>
<li>L'interface <code>nsIDocShell_MOZILLA_2_0_BRANCH</code> a été fusionnée avec l'interface {{interface("nsIDocShell")}}.</li>
<li>L'interface <code>nsIFocusManager_MOZILLA_2_0_BRANCH</code> a été fusionnée avec l'interface {{interface("nsIFocusManager")}}.</li>
<li>L'interface <code>nsIHTMLEditor_MOZILLA_2_0_BRANCH</code> a été fusionnée avec l'interface {{interface("nsIHTMLEditor")}}.</li>
</ul>
<h4 id="Nouvelle_interface">Nouvelle interface</h4>
<ul>
<li>Ajout de <code>nsIDOMAnimationEvent</code>. {{domxref("AnimationEvent")}}</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>nsICiter</code> (voir {{bug(633066)}})</li>
<li><code>nsIDOM3Document</code> (voir {{bug(639849)}})</li>
<li><code>nsIFIXptrEvaluator</code></li>
<li><code>nsISelectElement</code> (voir {{bug(619996)}})</li>
</ul>
<h3 id="Aide_au_débogage">Aide au débogage</h3>
<ul>
<li>La nouvelle aide <a class="internal" href="https://developer.mozilla.org/en-US/docs/Namespace/Mozilla/DebugOnly%3CT%3E" title="Namespace/Mozilla/DebugOnly<T>"><code>DebugOnly<T></code></a> permet de déclarer des variables seulement pour les versions <code>DEBUG</code>.</li>
</ul>
<h3 id="API_JavaScript_(SpiderMonkey)">API JavaScript (SpiderMonkey)</h3>
<ul>
<li><a class="internal" href="https://developer.mozilla.org/en-US/docs/SpiderMonkey/JSAPI_Reference/JS_DoubleToInt32" title="SpiderMonkey/JSAPI Reference/JS DoubleToInt32"><code>JS_DoubleToInt32()</code></a> et <a class="internal" href="https://developer.mozilla.org/en-US/docs/SpiderMonkey/JSAPI_Reference/JS_DoubleToInt32" title="SpiderMonkey/JSAPI Reference/JS DoubleToInt32"><code>JS_DoubleToUint32()</code></a> ont été ajoutés, pour convertir des valeurs <a class="internal" href="https://developer.mozilla.org/en-US/docs/SpiderMonkey/JSAPI_Reference/jsdouble" title="jsdouble"><code>jsdouble</code></a> en nombres entiers de type C et en entiers non-signés.</li>
</ul>
<h3 id="Changement_dans_le_système_de_compilation">Changement dans le système de compilation</h3>
<ul>
<li>Vous pouvez désormais compiler Firefox sans le fichier <code>mozconfig</code>, <a class="internal" href="https://developer.mozilla.org/en-US/docs/Configuring_Build_Options#Choose_an_application" title="Configuring Build Options#Choose an application"><code>l'option --enable-application</code></a> paramètre par défaut à "browser". Après avoir extrait ou téléchargé le code, vous pouvez tout simplement faire <code>configure && make</code> (ou <code>make -f client.mk</code>) pour compiler Firefox.</li>
</ul>
<h2 id="Voir_également">Voir également</h2>
<p>{{Firefox_for_developers('4')}}</p>
|