Chrome sur iOS et l’article 3.3.2 de l’App Store

Cette semaine, Google a sorti une version de Chrome sur iOS. Cependant, le moteur de cette version n’est pas celui de Chrome. Le moteur de rendu n’est pas le WebKit de Chrome, et le moteur JavaScript n’est pas le V8 de Chrome.

Ceci est dû à l’article 3.3.2 de la license du programme de développement sur iOS :

3.3.2 — Une application ne doit pas elle-même installer ou lancer d’autre code exécutable sous aucune façon, incluant sans limite à travers l’utilisation d’une architecture de plug-in, l’appel à d’autres frameworks, d’autres APIs ou encore différemment. Aucun code interprété ne peut être téléchargé ou utilisé dans une application sauf pour du code qui est interprété et exécuté par les APIs documentées par Apple et interpréteurs intégrés.

Cette règle bloque ainsi tout émulateur de jeux (sauf s’ils ont été réécris en Objective-C, comme Commodore 64), mais elle empêche aussi presque tout navigateur.

Les deux solutions pour créer un navigateur sur iOS sont alors :

  • Exécuter tout le rendu et tout JavaScript côté serveur. C’est ce que fait Opera Mini. Ça leur permets d’optimiser le rendu de la page, et de compresser un peu plus la page téléchargée. Mais ça implique que toute action faite en JavaScript sera exécutée côté serveur, ce qui peut rendre la navigation beaucoup plus longue.
  • Utiliser les API d’iOS pour afficher une page web. Cela signifie que vous utiliserez le moteur de rendu et le moteur d’exécution JavaScript de Safari. C’est ce que font la plupart des navigateurs sur iOS, comme Dolphin, Atomic ou désormais Chrome.

Le problème en utilisant cette deuxième solution, c’est qu’Apple bride son moteur JavaScript lorsqu’une page web est appelée dans une application (ou en raccourci plein écran sur l’écran d’accueil). Le résultat (vu hier sur Hacker News), c’est que Chrome sur iOS est jusqu’à 3 fois plus lent que Safari.

Ce comportement propriétaire d’Apple est clairement un frein à l’évolution du web sur mobile et à un marché compétitif sain. Alors qu’attendent Google, Firefox et les autres pour se plaindre ? Dans les années 2000, Microsoft avait été accusé d’abus de position dominante, profitant de son monopole sur le marché des systèmes d’exploitation pour développer un monopole sur le marché des navigateurs. Et bien la différence c’est qu’Apple n’a pas une position dominante sur le marché mobile. Cette place est occupée par Android. Apple est donc dans la position particulièrement confortable de pouvoir faire tout et n’importe quoi, le meilleur comme le pire, sans avoir à se soucier de réglementations du marché.

Et le plus drôle dans tout ça, c’est qu’en imposant désormais Chrome comme navigateur par défaut dans Android 4 et plus, c’est Google qui pourrait être accusé d’abus de position dominante.

  1. François "cahnory" Germain, le

    Je trouve bien idiote cette interdiction de limiter l’ouverture aux seuls « dominants ». C’est clairement quelque chose qui peut limiter la domination par abus de domination mais c’est aussi et surtout une notion fondamentale quelque soit la position de l’entreprise/os/… ça devrait s’appliquer à tous.

    Je vois trois situation simple :
    + Je domine le marchais (Android), cette domination accapare la majorité de la visibilité. Si je cloisonne, je pourrait donc assoir ma dominance sur ma dominance elle même et non pas sur l’innovation, la qualité… L’obligation à l’ouverture est donc une bonne chose.
    + Je ne domine pas le marchais mais soyons clair, c’est l’affaire de chiffres car tout le monde me connait, me regarde, je suis visible (iOS). Je peux chasser sur les terres de mon concurrent tout en l’interdisant de faire de même chez moi. Finalement on est pas si différent mais j’ai l’avantage d’avoir ma petite chasse gardée, protégée du haut comme du bas… L’obligation à l’ouverture est donc une bonne chose.
    + Je ne domine pas le marchais, on ne me connait pas ou peu. Mon principal problème va surtout être d’attirer les utilisateurs et pour ça, fasse aux dominants je vais devoir innover, apporter de la nouveauté, qualités… la question de l’ouverture ne se posera que lorsque je ferai parti d’un des deux cas ci-dessus. L’obligation à l’ouverture ne change pas forcément grand chose mais le but d’un projet étant de se développer autant appliquer directement les bonnes pratiques.

    Bon c’est une vision perso d’un sujet que je ne maîtrise pas, plus basée sur une intuition qu’une réelle analyse mais c’est mon point de vue.

  2. Ant, le

    «3.3.2 — Une application ne doit pas elle-même installer ou lancer d’autre code exécutable sous aucune façon, incluant sans limite à travers l’utilisation d’une architecture de plug-in, l’appel à d’autres frameworks, d’autres APIs ou encore différemment. Aucun code interprété ne peut être téléchargé ou utilisé dans une application sauf pour du code qui est interprété et exécuté par les APIs documentées par Apple et interpréteurs intégrés.»

    Sinon vous parlez anglais?

  3. Max, le

    Sur Android tu peux changer l’application par défaut pour tout (y compris naviguer sur le web, envoyer / recevoir des SMS ou des appels…)
    Pas besoin d’être root ou d’aller dans d’obscurs settings : Si tu as 2 navigateurs installés, il te proposera de choisir celui qui s’ouvre lorsque tu cliqueras sur un lien (et de faire ce choix par défaut si tu veux)
    Du coup l’abus de position dominante est pas aussi certain qu’Apple sur iOS ?

  4. François "cahnory" Germain, le

    @Max il est là le problème. Seul le dominant a (de ce que je lis) une obligation d’ouverture. Android est bien plus ouvert qu’iOS mais Android étant le dominant c’est le seul qui peut être accusé d’un quelconque abus et, on l’a vu avec windows, le simple fait de ne pas laisser le choix du navigateur par défaut peut-être considéré comme un abus.
    Déjà, il me paraît illogique de reprocher à un éditeur de fournir avec son OS ses propres softwares par défaut quand ceux-ci sont gratuits (sur que si on imposait office sur windows ça serait un frein au choix d’aller voir ailleurs pour un utilisateur qui aurait donc déjà déboursé de l’argent pour une solution). Ça fait parti de l’expérience qu’un éditeur souhaite fournir avec son OS et même si je ne suis pas un défenseur d’Internet Explorer ça ne me paraît pas illogique qu’il soit fourni par défaut avec windows. Alors en plus que seul le dominant soit contraint à ça (chose que j’ai appris avec cette article), surtout dans un monde où le dominé (s’il y a dominant c’est qu’il y a dominé ou alors rien d’autre) ne l’est que par les chiffres et non la popularité et avec une différence loin d’être astronomique, je trouve ça déloyal.
    Donc pour moi iOS abuse, oui, mais pas de sa position dominante car il serait un « dominé »…

  5. Paul TOTH, le

    Oui enfin si on suis la limitation à la règle il n’est pas possible d’exécuter un programme BASIC sur un émulateur Commodore 64 sur iOS :) même si ça fait moins concurrence aux applications Apple, ça n’est pas très différent de l’exécution du code javascript sous Chrome.