Vous l'avez sans doute remarqué, les contenus FLASH, Active X ou applets java sous IE7 (tout tag 'applet', 'object' ou 'embed') sont curieusement protégés sur votre navigateur IE7 par un cadre grisé qui vous demandera "cliquez pour activer et utiliser ce contrôle". Dans le cas d'un diaporama où l'utilisateur n'a pas à interagir avec l'objet, cela ne pose aucun problème (pour le moment !), mais si vous avez fait un menu en Flash, ou un graphe boursier en applet java, vous constatez qu'il faut d'abord activer l'objet en cliquant dessus avant de pouvoir lui donner des consignes avec la souris.
Et comme moi, vous vous êtes sûrement dit : "Mais qu'est-ce que c'est que cette nouveauté de nous compliquer la vie chez Microsoft !?"
En fait, pour des raisons assez incroyables de procès que nous évoquerons plus bas, Microsoft a préféré modifier la façon dont son navigateur gère ces tags, qui ne doivent plus être traités par lui.
C'est l'origine de cette "désactivation" pas défaut, qui en fait une sorte de "objet non pris en charge par le navigateur, mais en fait si".
Du coup il faut modifier l'inclusion de vos objets dans vos pages. Voici comment faire :
Avant, pour mettre un bandeau flash, vous écriviez:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="374" height="134">
<param name="movie" value="images/bandeau.swf">
<param name="quality" value="high">
<embed src="images/bandeau.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="374" height="134"> </embed> </object>
Voici dorénavant ce qu'il faudra écrire :
- D'abord créez un fichier javascript "script.js" extérieur à la page en cours, dans lequel vous créez une fonction "flash" aussi bête et stupide que :
function flash(tag) {
document.write(tag);
}
Cette fonction recopiera juste ce qu'on lui donne à manger.
- Dans votre page web, appelez évidemment le script.js (dans le header):
<script language="JavaScript" src="script.js"></script>
- Puis, la subtilité des subtilités, vous mettez votre tag <object> (votre bandeau flash ici) dans la fonction flash() à l'endroit où vous auriez mis le code tel quel dans le HTML. Et la fonction se chargera de recopier ce tag... sans que le navigateur ne traite l'objet directement. C'est stupide, mais c'est comme ça.
On peut mettre tout le tag d'un coup, ou en plusieurs fois... nous recommandons de morceler le code.
<script>
flash('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="374" height="134">');
flash('<param name="movie" value="images/bandeau.swf">');
flash('<param name="quality" value="high">');
flash('<embed src="images/bandeau.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="374" height="134"> </embed> </object>');
</script>
Mais que s'est-il passé ? Quelle est cette histoire aberrante de procès ?
En fait, la société Eolas a breveté une technologie de plug-in permettant l'appel à distance automatique d'applications tierces via un navigateur. Or, les pages web sont de plus en plus nombreuses à faire appel à des ActiveX ou à des contenus multimedia. Le problème, c'est que ce brevet logiciel possède un champ d'application très large.
En 1999, Mike Doyle, le dirigeant de la société Eolas Technologies, porte plainte contre Microsoft en l'accusant de n'avoir pas souscrit à certaines licences auprès d'eux pour la gestion des plugs-ins. L'invention '906' d'Eolas ne concerne cependant que le chargement automatique de l'application tierce, mais il est délicat de savoir s'il peut s'étendre aux utilisations faites par les grands navigateurs.
L'application de la loi obligerait Microsoft à refondre le noyau de son environnement, et tous les créateurs de sites auraient dû réécrire l'appel à ces fonctions externes. Avec de tels enjeux, le procès s'est transformé en une longue procédure judiciaire, laissant libre le développement des nouvelles versions d'Internet Explorer.
En 2003, le jugement aboutit à la condamnation en première instance de Microsoft à 521 millions de dollars d'amende. Le W3C émet alors des craintes vis à vis des conséquences directes et indirectes du brevet, et demande un examen de sa validité.
En août 2004, Microsoft arrive à prouver l'existence de la technologie Viola (ancien navigateur), antérieure et similaire au brevet Eolas, et sort gagnant du procès.
Eolas fait appel, et en mars 2005, la justice américaine décide de renvoyer l'affaire en première instance car l'invalidité présumée du brevet nécessite un nouveau jugement sur le fond. Eolas ne baisse pas les bras : il fait réexaminer son brevet devant l'US Patent Office. Et le 30 septembre 2005, l'autorité confirme définitivement la validité de l'invention '906' d'Eolas, définissant la technologie des plugs-ins utilisés dans les navigateurs.
Alors Microsoft préfère éviter un nouveau procès avec Eolas. Elle reste persuadée que les brevets en cause sont invalides, mais choisit de réviser sa gestion du code HTML, d'où cette étrange nouveauté où les activeX ne sont pas activés automatiquement. Et c'est ce qui nous impose, pauvres concepteurs de sites Internet, ces étranges manipulations pour y remédier.
Et ne croyez pas que Firefox soit prémuni face à cette guerre de juriste. Le poisson n'est tout simplement pas assez gros, mais dès qu'il y aura assez de ca$h à se faire Eolas poursuivra sans doute Mozilla à son tour, qui devra trouver la même parade.