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
|
---
title: Mise à jour des applications Web pour Firefox 3
slug: Mozilla/Firefox/Releases/3/Updating_web_applications
tags:
- Firefox 3
translation_of: Mozilla/Firefox/Releases/3/Updating_web_applications
original_slug: Mise_à_jour_des_applications_Web_pour_Firefox_3
---
<div>{{FirefoxSidebar}}</div>
<p>{{ Fx_minversion_header(3) }} Un certain nombre de changements présents dans Firefox 3 pourraient affecter votre site ou application Web. Vous pourriez en outre tirer parti de plusieurs de ses nouvelles fonctionnalités. Cet article servira de point de départ au fur et à mesure de la mise à jour de votre contenu pour bénéficier au maximum des possibilités de Firefox 3.</p>
<h3 id="Changements_dans_le_DOM" name="Changements_dans_le_DOM">Changements dans le DOM</h3>
<p></p><p>Les nœuds provenant de documents externes doivent être clonés à l'aide de <a href="/fr/docs/Web/API/Document/importNode" title="La méthode Document importNode() crée une nouvelle copie du Node ou DocumentFragment spécifié à partir d'un autre document, afin qu'il puisse être inséré dans le document actuel. Il n'est pas encore inclus dans l'arbre des documents; Pour ce faire, vous devez appeler une méthode telle que appendChild () ou insertBefore ()."><code>document.importNode()</code></a> (ou adoptés avec
<a href="/fr/docs/Web/API/Document/adoptNode" title="Adopte un noeud. Le noeud (et son sous-arbre) est supprimé du document dans lequel il se trouve (le cas échéant) et son ownerDocument (document propriétaire) est remplacé par le document en cours. Le noeud peut ensuite être inséré dans le document en cours."><code>document.adoptNode()</code></a>) avant de pouvoir être insérés dans le document courant. Pour en savoir plus sur les problèmes
de <a href="/fr/docs/Web/API/Node/ownerDocument" title="La propriété en lecture seule Node.ownerDocument renvoie l'objet document de niveau supérieur pour ce nœud."><code>Node.ownerDocument</code></a>, consultez la <a class="external" href="http://www.w3.org/DOM/faq.html#ownerdoc" rel="noopener">FAQ DOM du W3C</a> (en anglais).</p>
<p>Gecko n'obligeait pas à utiliser <a href="/fr/docs/Web/API/Document/importNode" title="La méthode Document importNode() crée une nouvelle copie du Node ou DocumentFragment spécifié à partir d'un autre document, afin qu'il puisse être inséré dans le document actuel. Il n'est pas encore inclus dans l'arbre des documents; Pour ce faire, vous devez appeler une méthode telle que appendChild () ou insertBefore ()."><code>document.importNode()</code></a> et <a href="/fr/docs/Web/API/Document/adoptNode" title="Adopte un noeud. Le noeud (et son sous-arbre) est supprimé du document dans lequel il se trouve (le cas échéant) et son ownerDocument (document propriétaire) est remplacé par le document en cours. Le noeud peut ensuite être inséré dans le document en cours."><code>document.adoptNode()</code></a> avant sa version 1.9. Depuis les versions 1.9
alphas, si un nœud n'est pas adopté ou importé avant d'être utilisé dans un autre document, l'exception
<code>WRONG_DOCUMENT_ERR</code> est déclenchée (<code>NS_ERROR_DOM_WRONG_DOCUMENT_ERR</code>). implémentation dans le <a class="external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=47903" rel="noopener" title="FIXED: WRONG_DOCUMENT_ERR not being thrown">bug 47903</a>.</p><p></p>
<h3 id="Changements_li.C3.A9s_.C3.A0_HTML" name="Changements_li.C3.A9s_.C3.A0_HTML">Changements liés à HTML</h3>
<h4 id="Changements_dans_l.27h.C3.A9ritage_des_jeux_de_caract.C3.A8res" name="Changements_dans_l.27h.C3.A9ritage_des_jeux_de_caract.C3.A8res">Changements dans l'héritage des jeux de caractères</h4>
<p>Firefox 3 corrige un bug de sécurité dans les éléments <code>frame</code> et <code>iframe</code> qui leur permettait d'hériter du jeu de caractères de leur parent. Cela pouvait poser des problèmes dans certains cas. À présent, les cadres ne peuvent hériter du jeu de caractère de leur parent que si tant le cadre que le parent sont chargés depuis le même serveur. Si vous avez des pages qui dépendent du fait que les cadres chargés depuis d'autres serveurs hériteront du même jeu de caractères, leurs balisage HTML devra être mis à jour pour indiquer leur jeu de caractères plus précisément.</p>
<h4 id="Changements_concernant_l.27.C3.A9l.C3.A9ment_SCRIPT" name="Changements_concernant_l.27.C3.A9l.C3.A9ment_SCRIPT">Changements concernant l'élément SCRIPT</h4>
<p>L'élément <span class="nowiki"><script></span> dans les documents HTML servis en mode <code>text/html</code> doit à présent être obligatoirement accompagné d'une balise fermante <span class="nowiki"></script></span>, même si aucun contenu n'est fourni entre les deux balises. Dans les versions précédentes de Firefox, il était possible de faire ceci :</p>
<pre class="eval"><script ... />
</pre>
<p>Le balisage doit à présent respecter les spécifications HTML (si c'est effectivement du HTML), il devient donc obligatoire de placer une balise de fermeture séparément, comme ceci :</p>
<pre class="eval"><script ...></script>
</pre>
<p>Ce changement améliore tant la compatibilité que la sécurité.</p>
<h3 id="Changements_li.C3.A9s_.C3.A0_CSS" name="Changements_li.C3.A9s_.C3.A0_CSS">Changements liés à CSS</h3>
<h4 id="Changements_concernant_les_tailles_de_police_bas.C3.A9es_sur_les_unit.C3.A9s_em_et_ex" name="Changements_concernant_les_tailles_de_police_bas.C3.A9es_sur_les_unit.C3.A9s_em_et_ex">Changements concernant les tailles de police basées sur les unités em et ex</h4>
<p>Les valeurs de taille de police (<code>font-size</code>) utilisant les unités em et ex étaient auparavant affectées selon la taille de police minimale spécifiée par l'utilisateur : si une police était affichée plus grande à cause de la taille de police minimale, les unités em et ex pour les tailles de police étaient adaptées en fonction. Ce comportement était incohérent avec la manière dont les tailles de police en pourcentage fonctionnaient.</p>
<p>Les valeurs de <code>font-size</code> sont à présent basées sur une « taille de police désirée » qui n'est pas affectée par la taille minimale de police de l'utilisateur. Autrement dit, les tailles de police sont toujours calculées selon l'intention du concepteur du site et ne sont ajustées selon la taille de police minimale qu'après coup.</p>
<p>Consultez le {{ Bug(322943) }} pour une démonstration (doit être visionnée avec une taille de police minimale supérieure ou égale à 6 pour voir la différence : les deux cascades de boîtes se comportent différemment dans Firefox 2, car la taille de police basée sur des unités em est décalée par la taille de police minimale).</p>
<h3 id="Changements_concernant_la_s.C3.A9curit.C3.A9" name="Changements_concernant_la_s.C3.A9curit.C3.A9">Changements concernant la sécurité</h3>
<h4 id="Acc.C3.A8s_au_chrome" name="Acc.C3.A8s_au_chrome">Accès au chrome</h4>
<p>Dans les versions précédentes de Firefox, toute page web pouvait charger des scripts ou des images depuis le chrome à l'aide du protocole <a class="external" rel="freelink">chrome://</a>. Cela permettait entre autres à des sites de détecter la présence de certains modules complémentaires — ce qui pourrait être utilisé pour compromettre la sécurité d'un utilisateur en contournant des modules ajoutant des fonctionnalités de sécurité au navigateur.</p>
<p>Firefox 3 ne permet plus au contenu web que d'accéder aux éléments dans les espaces <a class="external" rel="freelink">chrome://browser/</a> et <a class="external" rel="freelink">chrome://toolkit/</a>. Ces fichiers sont prévus pour être accessibles au contenu web. Tous les autres contenus chrome y sont par contre à présent inaccessibles.</p>
<p>Une possibilité existe cependant pour les extensions désirant rendre le contenu accessible aux pages web. Ces extensions peuvent spécifier un paramètre spécial dans leur fichier chrome.manifest comme ceci :</p>
<pre class="eval">content mypackage location/ contentaccessible=yes
</pre>
<p>Cette manipulation ne devrait pas être nécessaire la plupart du temps, mais elle existe toutefois pour les rares cas où elle reste indispensable. Notez qu'il n'est pas exclu que Firefox avertisse l'utilisateur de cette utilisation du paramètre <code>contentaccessible</code>, étant donné qu'il constitue un risque potentiel de sécurité.</p>
<div class="note"><strong>Note :</strong> Firefox 2 ne gérant pas le paramètre contentaccessible (la ligne le contenant sera entièrement ignorée), si vous voulez que votre module reste compatible avec Firefox 2 et Firefox 3, ajoutez plutôt quelque chose comme ceci :
<pre class="eval">content mypackage location/
content mypackage location/ contentaccessible=yes
</pre>
</div>
<h4 id="Champs_d.27envoi_de_fichiers_.28upload.29" name="Champs_d.27envoi_de_fichiers_.28upload.29">Champs d'envoi de fichiers (upload)</h4>
<p>Dans les versions précédentes de Firefox, un certain nombre de cas existaient où le chemin entier du fichier envoyé par l'utilisateur était lisible par une application web. Pour des raisons de confidentialité, ce n'est plus possible dans Firefox 3 ; à présent seul le nom du fichier lui-même est visible par l'application web.</p>
<h3 id="Changements_dans_JavaScript" name="Changements_dans_JavaScript">Changements dans JavaScript</h3>
<p>Firefox 3 intègre <a href="fr/Nouveaut%c3%a9s_dans_JavaScript_1.8">JavaScript 1.8</a>. Un changement important qui pourrait nécessiter une mise à jour de vos sites ou applications Web est que l'objet obsolète et non standard <code>Script</code> n'est plus géré. Il ne s'agit pas de la balise <code><span class="nowiki"><script></span></code> mais d'un objet JavaScript qui n'avait jamais été standardisé. Il est finalement peu probable que vous l'ayez jamais utilisé, et vous n'aurez sans doute aucun problème.</p>
<h3 id="Voir_.C3.A9galement" name="Voir_.C3.A9galement">Voir également</h3>
<ul>
<li><a href="fr/Firefox_3_pour_les_d%c3%a9veloppeurs">Firefox 3 pour les développeurs</a></li>
<li><a href="fr/Nouveaut%c3%a9s_dans_JavaScript_1.8">Nouveautés dans JavaScript 1.8</a></li>
<li><a href="fr/Mise_%c3%a0_jour_des_extensions_pour_Firefox_3">Mise à jour des extensions pour Firefox 3</a></li>
</ul>
<p> </p>
<div class="noinclude"> </div>
<p>{{ languages( { "en": "en/Updating_web_applications_for_Firefox_3", "es": "es/Actualizar_aplicaciones_web_para_Firefox_3", "ja": "ja/Updating_web_applications_for_Firefox_3", "pl": "pl/Aktualizacja_aplikacji_internetowych_dla_Firefoksa_3" } ) }}</p>
|