« Native Client est une technologie open source qui vous permet de mettre au point des applications Web qui exécutent de façon transparente et sure du code natif à l'intérieur du navigateur », indique l'équipe en charge du développement de Chrome. Le code natif, c'est celui qui passe outre la barrière du navigateur ou du système d'exploitation, en faisant appel directement au jeu d'instructions des processeurs x86 qui équipent aujourd'hui nos PC, par opposition à celui qui s'exécute dans une machine virtuelle ou doit être interprété par un moteur tiers.
Lancé en décembre 2008, le projet entre dans sa phase publique, avec la mise à disposition d'un premier SDK, baptisé « Artic Sea », et l'activation au sein de Chrome 10 bêta, du module Native Client. Celui-ci n'est toutefois pas actif par défaut : il faudra le lancer manuellement via la page de réglages « about:flags ».
Ce kit de développement, accessible sur toutes les plateformes x86, est composé d'une série d'interfaces de programmation ainsi que d'une documentation visant à permettre à la mise au point de modules écrits en C ou en C++ et capables de communiquer avec des éléments HTML ou JavaScript exécutés au sein du navigateur. Le code mis au point par son entremise sera exécuté au sein d'un bac à sable (sandbox), censé garantir la sécurité de la machine hôte.
L'isolation des processus NaCl (surnom de Native Client, NaCl est le symbole chimique du chlorure de sodium, soit l'appellation scientifique de notre bon vieux sel de table) sera assurée par le biais de Pepper (poivre), la série d'interfaces qui permettra d'installer ces plugins au sein de Chrome. Egalement open source, Pepper dérive pour sa part du projet Netscape NPAPI (Netscape Plugin Application Program Interface).
A ce stade, le SDK Native Client n'est proposé qu'à des fins de test, et Google promet d'importantes améliorations pour les mois à venir, à commencer par l'ajout de nouvelles interfaces de programmation dédiées à la prise en charge de la 3D, des fichiers stockés en local, du protocole Websocket ou de communications en pair à pair (P2P). L'éditeur indique par ailleurs que NaCl ne sera pas activé par défaut tant que l'Application Binary Interface (ABI) ne sera pas parfaitement stable.
Reste à savoir où souhaite vraiment en venir Google avec ce projet, qui ne manquera pas de rappeler à certains esprits forts les fameux ActiveX de Microsoft. Avec la possibilité de faire tourner du code natif dans Chrome, le moteur de recherche promet des performances accrues et des fonctionnalités bien plus avancées que ce qu'il est habituellement possible de faire au sein d'un navigateur. Le complément idéal à Chrome OS ?