# Mystère des liens ITMS...



## Pleinpopossum (9 Septembre 2004)

Bonjour,

 Un détail technique me turlupine depuis quelques temps. Lorsque je clique sur un lien itms dans safari ou camino, je suis directement envoyé sur la chanson correspondante dans itunes. Ce dernier est même lancé au besoin. D'après ce que j'ai vu le lien redirige vers le site d'apple puis déclenche le lancement du programme. Le processus semble être le même sous windows donc je ne pense pas qu'ils utilisent une faille ou une astuce. Du coups ben... je ne comprends pas comment il font. Il me semblait qu'il était interdit de lancer un exécutable depuis une page internet (sinon imaginez les débordement possibles !!). Quelqu'un peut m'éclairer ?

 Merci


----------



## iDan (9 Septembre 2004)

Et c'est bien la même chose avec Windows, la chose m'avait également étonné !!

Donc +1, si kk1 a une idée du processus...


----------



## Gallenza (9 Septembre 2004)

Pleinpopossum a dit:
			
		

> Bonjour,
> 
> Un détail technique me turlupine depuis quelques temps. Lorsque je clique sur un lien itms dans safari ou camino, je suis directement envoyé sur la chanson correspondante dans itunes. Ce dernier est même lancé au besoin. D'après ce que j'ai vu le lien redirige vers le site d'apple puis déclenche le lancement du programme. Le processus semble être le même sous windows donc je ne pense pas qu'ils utilisent une faille ou une astuce. Du coups ben... je ne comprends pas comment il font. Il me semblait qu'il était interdit de lancer un exécutable depuis une page internet (sinon imaginez les débordement possibles !!). Quelqu'un peut m'éclairer ?
> 
> Merci


L'ITMS N'est PAS une page internet...y'a eu un article d'un dev en anglais qu'à trainé une fois, pour dire qu'ils pouvaient pas dire ce que c'était, mais un peu ce que ce n'était pas...


----------



## citizenofwakana (9 Septembre 2004)

Gallenza a dit:
			
		

> L'ITMS N'est PAS une page internet...y'a eu un article d'un dev en anglais qu'à trainé une fois, pour dire qu'ils pouvaient pas dire ce que c'était, mais un peu ce que ce n'était pas...


 Je pense que ca n'est pas vraiment ce que voulait dire pleinpopossum. Quand on clique sur un lien itms à partir d'un navigateur, on est redirigé vers phobos.apple.com/..... et le logiciel itunes est lancé. Je ne vois pas non plus comment cela est possible. La seule chose c'est que le serveur phobos doit surement renvoyé une instruction dans le header ce qui lance itunes (sinon je ne vois pas l'interet de passer par un autre serveur).

   +1 aussi. Si quelqu'un a la solution ca m'interesse


----------



## citizenofwakana (9 Septembre 2004)

citizenofwakana a dit:
			
		

> Je pense que ca n'est pas vraiment ce que voulait dire pleinpopossum. Quand on clique sur un lien itms à partir d'un navigateur, on est redirigé vers phobos.apple.com/..... et le logiciel itunes est lancé. Je ne vois pas non plus comment cela est possible. La seule chose c'est que le serveur phobos doit surement renvoyé une instruction dans le header ce qui lance itunes (sinon je ne vois pas l'interet de passer par un autre serveur).
> 
> +1 aussi. Si quelqu'un a la solution ca m'interesse


  En fait tout est dans la page internet appelée :


```
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"><HTML><HEAD><Script language="JavaScript" type="Text/Javascript">
  function open(url) {
    if(haveITMS) {
   return _open(url);
    } else if (!runITInstall()) {
   window.location.href="http://www.apple.com/itunes/download/";
  }
  }function _open(url) {
  
  var shouldClose=0;
  var uA = navigator.userAgent;
  var safariPos=navigator.userAgent.indexOf('Safari');
  var safariVersion=(safariPos!=-1) ? parseFloat(uA.substr(safariPos+7)) : -1;
  
  if ( (safariPos==-1 && window.history.length == 0) || (safariVersion>120 && window.history.length < 2))
  {
   window.opener='iTunes';
   shouldClose=1;
   }
  if (safariPos==-1 || safariVersion>120)
   {
    window.location.href=url;
    if (shouldClose==1)
    {
     setTimeout('window.close()', 100);
     }
    else
     {
  	 setTimeout('window.history.back()', 100);
  	}
    } else {
    statement='window.location.href="'+url+'"';
    setTimeout(statement, 1);
  }
   return true;
  }</Script>
 <Object classID="CLSID:D719897A-B07A-4C0C-AEA9-9B663A28DFCB" width="1" height="1" id="iTunesDetector" codeBase="http://ax.phobos.apple.com.edgesuite.net/detection/ITDetector.cab#Version=2,0,0,0""></Object>
 <Script language="Javascript" type="Text/Javascript" src="http://ax.phobos.apple.com.edgesuite.net/detection/itmsCheck.js"></Script>
 <TITLE>iTunes Music Store</TITLE></HEAD><Body onload="return open('itms://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStore.woa/wa/viewAlbum?playlistId=22273667')"></Body></HTML>
```
 

 et le plus important est : 
	
	



```
onload="return open('itms://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStore.woa/wa/viewAlbum?playlistId=22273667')"
```
 
  il s'agit donc d'un service qui tourne sur l'ordinateur. tapez itms:// dans mozilla ou autre et ca demarre itunes


----------



## citizenofwakana (9 Septembre 2004)

En fait on trouve itms dans la base de registre (HKEY_LOCAL_MACHINE > Classes) sous windows (pas de mac sous la main pour en dire plus)


----------

