iOS 6 : un bug avec JavaScript… ou pas

Florian Innocente |

Bug ou plus de bug ? AppleInsider décrit un problème rencontré avec iOS 6 et la gestion de JavaScript par Safari Mobile. Il est apparu qu'un certain type de contenu pouvait réactiver le moteur JavaScript du navigateur à l'insu de son utilisateur qui l'avait désactivé. Les raisons de mettre JavaScript sur OFF dans Safari Mobile (comme desktop) ne sont pas immédiatement évidentes et le cas ne doit pas être très fréquent, mais peu importe.

Le contenu en question est celui proposé par les "Smart App Banners" d'Apple. Ces petits bandeaux qui s'affichent en haut d'un site web lorsque celui-ci veut vous alerter qu'il peut être visité depuis une app native de l'App Store, ou vous proposer de l'ouvrir si elle est déjà installée. Une fonction assez bien vue , fournie depuis iOS 6 et mise en place par le développeur d'un site.

L'affichage de ce bandeau semble nécessiter l'activation du moteur JavaScript, mais celle-ci perdure au-delà du délai nécessaire à cette action.

AppleInsider dit avoir reproduit ce bug - que d'aucuns qualifieront aussi de faille de sécurité potentielle - mais le site ne précise pas avec quelle version d'iOS 6. Malgré des essais répété avec la dernière 6.1 bêta 4, le réglage JavaScript sur notre iPhone est resté calé sur son état désactivé, en dépit de l'affichage de plusieurs de ces Smart Banners. Un lecteur d'AppleInsider établissait aussi le même constat. Peut-être alors que ce bug n'en est déjà plus un dans la version à venir d'iOS…

Il est assez aisé de faire le test soi-même. Il faut désactiver JavaScript dans les réglages de Safari. Puis revenir à la liste des réglages généraux d'iOS. Ensuite lancer Safari, aller sur les sites qui proposent ce type de bannières comme la page mise en place par AppleInsider puis fermer Safari, retourner voir ses réglages et vérifier si JavaScript s'est réactivé de lui-même. Le lien inclus par AppleInsider dans sa page de démonstration signale que JavaScript fonctionne à nouveau, mais sur iOS 6.1 b4, l'interrupteur est toujours sur OFF dans les préférences du navigateur. A voir quel est le résultat en fonction de votre version d'iOS.

Bug ou plus de bug ? AppleInsider décrit un problème rencontré avec iOS 6 et la gestion de JavaScript par Safari Mobile. Il est apparu qu'un certain type de contenu pouvait réactiver le moteur JavaScript du navigateur à l'insu de son utilisateur qui l'avait désactivé. Les raisons de mettre JavaScript sur OFF dans Safari Mobile (comme desktop) ne sont pas immédiatement évidentes et le cas ne doit pas être très fréquent, mais peu importe.

Le contenu en question est celui proposé par les "Smart App Banners" d'Apple. Ces petits bandeaux qui s'affichent en haut d'un site web lorsque celui-ci veut vous alerter qu'il peut être visité depuis une app native de l'App Store, ou vous proposer de l'ouvrir si elle est déjà installée. Une fonction assez bien vue , fournie depuis iOS 6 et mise en place par le développeur d'un site.

L'affichage de ce bandeau semble nécessiter l'activation du moteur JavaScript, mais celle-ci perdure au-delà du délai nécessaire à cette action.

AppleInsider dit avoir reproduit ce bug - que d'aucuns qualifieront aussi de faille de sécurité potentielle - mais le site ne précise pas avec quelle version d'iOS 6. Malgré des essais répété avec la dernière 6.1 bêta 4, le réglage JavaScript sur notre iPhone est resté calé sur son état désactivé, en dépit de l'affichage de plusieurs de ces Smart Banners. Un lecteur d'AppleInsider établissait aussi le même constat. Peut-être alors que ce bug n'en est déjà plus un dans la version à venir d'iOS…

Il est assez aisé de faire le test soi-même. Il faut désactiver JavaScript dans les réglages de Safari. Puis revenir à la liste des réglages généraux d'iOS. Ensuite lancer Safari, aller sur les sites qui proposent ce type de bannières comme la page mise en place par AppleInsider puis fermer Safari, retourner voir ses réglages et vérifier si JavaScript s'est réactivé de lui-même. Le lien inclus par AppleInsider dans sa page de démonstration signale que JavaScript fonctionne à nouveau, mais sur iOS 6.1 b4, l'interrupteur est toujours sur OFF dans les préférences du navigateur. A voir quel est le résultat en fonction de votre version d'iOS.

avatar mrkappuccino | 
@iDav92 : Oui! J'ai 6.0.2 et il revient a ON directement!
avatar Lulu633 | 
6.0.1 sur iPhone 4 ça réactive !
avatar sacripant | 
Sur iPhone 5 avec iOs 6 le test réactive effectivement JavaScript.
avatar drkiriko | 
Sur 4S, ios6.0.1, aucun bug, java reste dans l'état off.
avatar sacripant | 
Avec iOs 6.0.2 JavaScript est réactivé...
avatar drkiriko | 
Bon il faut être honnête le bug est dur à trouver... Par contre si l'on prend un iPod nano 2" de dernière génération et avec la dernière maj de iOS et que l'on force l'affichage sur 24h, et bien les dev d'Apple ils ne savent pas faire : une belle horloge avec toujours le AM/PM s'affiche ! Il va falloir se sortir les doigts du cul et travailler sur les horloges, réveils, années bissextiles, etc... Chez Apple c'est le nième pb de date/heure...
avatar drkiriko | 
[edit] Et chez MacG il y a des double posts...
avatar properso | 
La vrai bonne idée serait surtout de modifier le comportement insupportable de ces bannières, qui sont vraiment très très intrusives, et ne tiennent pas compte de la liberté de l'utilisateur de naviguer sur un site plutôt qu'une application. Ah c'est sur que de favoriser l'utilisation des applications arrange Apple et fait grossir ses stats de DL sur l'appStore ! (sans même parler des éventuels revenus publicitaire que touche Apple via les applications utilisant iad) ah et à propos de site mobile, macgé, serait-ce possible de SUPPRIMER le truc infâme que vous proposez aujourd'hui (ou d'au moins permettre de revenir au site classique !)
avatar oliv-et-pomme | 
Bug reproduit en 6.0.1 (iPhone 4S)
avatar macniamor | 
@greggorynque Je trouve aussi que la majorité des sites adaptés pour l'iphone est moins bien que leur version normale et je contourne le forcing en utilisant un autre navigateur que Safari permettant de s'identifier comme un navigateur de bureau.
avatar lgda | 
Fonctionne chez moi (6.0.1) En gros le système de ces "Smart App Banners" a besoin de Javascript pour fonctionner et Apple en le mettant en place n'a rien trouvé de mieux que de réactiver Javascript chez ceux qui l'ont désactivé... Pas très élégant comme méthode. Pourquoi proposer une option de désactivation si par la suite Apple met en place un système qui non seulement contourne cette option mais en plus laisse la porte ouverte en sortant ? C'est un petit détail pour beaucoup, mais pour ceux qui l'ont désactivé ce n'est justement pas un détail, c'est la marque d'une option bâclée.
avatar PachaColbert | 
Personnellement je préfère le site normal à l'application développée, comme celle par exemple de macGé. J'en ai eu vite marre d'installer des tas d'applications qui ne servent à rien et qui ne font que bouffer de la mémoire. Pour java Script, il faut même qu'il soit activé pour réussir à accéder au site au lieu de rester bloquer sur la page qui vous propose l'application. prenez le site d'Eurosport avec java Script désactivé. On vous propose d'accéder au site via l'application dédiée, et bien si vous cliquez sur le bouton NON avec java Script désactivé, vous resterez désespérément scotché sur cette page. C'est chiant ces applications pour iPhone et iPad. En plus c'est une discrimination envers les lecteurs qui ne veulent pas les installer. par exemple avec macGé, sans cette foutue application, impossible de participer aux tirages au sort pour espérer gagner une application. Fidèle lecteur ou pas, sans l'application, dégagez, vous n'avez rien à foutre sur ce site pour y espérer participer comme tous les copains. Lamentable.
avatar lgda | 
@MachX : Discriminatoire... Ce qu'il ne faut pas lire. Tu installe l'app gratuite et voilà. Pour des concours où l'enjeu est une app a 1€ de plus, on est plus dans l'anecdotique qu'autre chose là.
avatar PachaColbert | 
@philactere Je gueule pour le principe. J'ai tout ce qu'il faut au niveau Applications. Je ne suis pas à un euro près. Mais je trouve ces applications inutiles le site Web étant accessible facilement avec n'importe quel navigateur Web. Pourquoi faire compliqué quand on peut faire simple. Et pourquoi ne pas laisser tout le monde participer ? Ce serait tellement plus simple.
avatar pgpg | 
Parce qu'ils ont en ont envie c'est tout.
avatar KreepLord | 
Pardonnez mon ignorance, mais quel est l'intérêt d'activer ou non JavaScript
avatar KreepLord | 
?

CONNEXION UTILISATEUR