FAQ pour les développeurs Web

Introduction

  1. Que propose Google Chrome ?
  2. Où puis-je trouver des informations sur les autres navigateurs ?

Agent utilisateur

  1. Quelle est la chaîne de l'agent utilisateur de Google Chrome ?

Codage de langue

  1. Google Chrome n'affiche pas correctement les caractères
  2. La déclaration du codage à l'aide de JavaScript (document.write) ne fonctionne pas
  3. Google Chrome affiche "%B1%C1%C3%E5" au lieu de deux caractères chinois

Scripts et applications Web

  1. Le contrôle ActiveX ne se charge pas
  2. JavaScript ne s'exécute pas correctement

Rendu et comportement du navigateur

  1. Mon site s'affiche différemment dans Google Chrome et dans Internet Explorer
  2. Comment puis-je tester mon site Web dans Google Chrome ?
  3. Les spécifications de police contenues dans une feuille de style externe ne sont pas prises en compte
  4. Les fenêtres pop-up de mon site Web n'apparaissent pas dans Google Chrome
  5. Au lieu d'un cadenas, un point d'exclamation s'affiche dans Google Chrome pour mon site Web protégé par SSL
  6. L'API de la base de données HTML5 n'est pas prise en charge par Google Chrome
  7. Comment puis-je personnaliser l'apparence et la fonction des raccourcis Google Chrome qui renvoient à ma page ?
  8. Comment ma page Web peut-elle ouvrir un nouvel onglet dans un processus distinct ?
  9. Comment exclure mon site Web du chargement de l'URL lorsque la recherche instantanée Google Chrome est activée ?

Recherche

  1. Lorsque j'entre l'adresse Web d'un intranet, une page de résultats de recherche s'affiche au lieu de l'intranet
  2. Comment puis-je inclure la recherche relative à mon site dans les options de recherche de Google Chrome ?

Introduction

1. Que propose Google Chrome ?

Google Chrome propose de nombreuses fonctionnalités que les développeurs Web peuvent exploiter afin d'offrir un meilleur confort d'utilisation aux internautes. Gears est intégré à Google Chrome : les webmasters peuvent ainsi tirer profit de certaines API telles que le stockage hors connexion. De plus, Google Chrome donne à votre application Web l'aspect d'une application "de bureau". Il est en effet possible de lancer le navigateur dans un mode d'interface utilisateur minimale réduite à une barre de titres.

Google Chrome fait également appel au tout récent moteur JavaScript (V8), dont la rapidité est bien supérieure à celle des interpréteurs JavaScript existants. Vous pouvez ainsi créer des applications AJAX plus complexes et plus performantes tout en réduisant les contraintes de vitesse et de traitement. Enfin, Google Chrome est développé à partir de WebKit. Les utilisateurs de Google Chrome peuvent ainsi bénéficier des fonctionnalités CSS3 ajoutées à WebKit dès que celles-ci sont disponibles.

2. Où puis-je trouver des informations sur les autres navigateurs ?

De nombreux autres navigateurs sont proposés sur le marché. Pour en savoir plus sur les navigateurs les plus utilisés, consultez les sites Web ci-dessous :

Agent utilisateur

3. Quelle est la chaîne de l'agent utilisateur de Google Chrome ?

La chaîne de l'agent utilisateur de Google Chrome est

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.X.Y.Z Safari/525.13.

Google Chrome utilise le moteur de rendu WebKit, auquel d'autres navigateurs comme Safari font également appel. Les pages Web doivent s'afficher de la même façon dans Google Chrome et dans les autres navigateurs WebKit. Vous pouvez rechercher webkit dans les chaînes de l'agent utilisateur pour cibler ces navigateurs, plutôt que le nom d'un navigateur en particulier (par exemple Google Chrome ou Safari).

Codage de langue

4. Google Chrome n'affiche pas correctement les caractères

Pour permettre un affichage correct de votre contenu dans les navigateurs, vous devez toujours indiquer des informations de codage du contenu et des caractères en haut de votre document source. En cas d'utilisation de cadres ou de cadres iFrame, indiquez également le codage en haut de la source correspondante. Certains navigateurs (dont Google Chrome fait partie) ne reconnaissent pas les déclarations de codage qui apparaissent plus bas dans le document (par exemple, après une section CSS ou un script de la section d'en-tête de votre document).

Exemple d'emplacement de codage correct :

<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <script type="text/javascript">
    ... votre code JavaScript ...
    </script>
    .......

Vous devez également vérifier que votre serveur Web n'envoie pas d'en-têtes HTTP conflictuels. Les en-têtes envoyés par le serveur Web remplacent les déclarations de jeu de caractères de votre page.

5. La déclaration du codage à l'aide de JavaScript (document.write) ne fonctionne pas

Google Chrome ne lit pas les informations de codage déclarées avec document.write(). Par exemple, si vous utilisez cette méthode pour déclarer le codage des cadres iFrames, des caractères incorrects peuvent apparaître lors de l'affichage d'un tel cadre. Plutôt que :

frame1.js

document.write("<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">");
    ... autre code JavaScript ...

... nous vous recommandons le codage suivant :

frame1.html

<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <script type="text/javascript">
    ... votre code JavaScript ...
    </script>
    ...

6. Google Chrome affiche "%B1%C1%C3%E5" au lieu de deux caractères chinois

Google Chrome encode les paramètres de requête d'une URL avec un signe de pourcentage. Avant de traiter les données, vérifiez que les scripts de votre serveur décodent correctement les caractères encodés à l'aide d'un signe de pourcentage.

Scripts et applications Web

7. Le contrôle ActiveX ne se charge pas

Vous devez indiquer une version NPAPI du plug-in.

ActiveX est pris en charge uniquement par Internet Explorer (et par les navigateurs conçus à partir d'Internet Explorer) sous Windows. Google Chrome, Mozilla Firefox, Apple Safari et les autres navigateurs ne prennent pas en charge ActiveX. Tous ces navigateurs font appel à NPAPI (Netscape Plugin Application Programming Interface).

8. JavaScript ne s'exécute pas correctement

Il existe plusieurs façons d'afficher les erreurs JavaScript et de les déboguer dans Google Chrome :

  • Console JavaScript : cliquez sur l'icône de menu Page et sélectionnez Développeur > Console JavaScript. Vous pouvez alors afficher les erreurs survenues lors de l'exécution JavaScript et entrer d'autres commandes JavaScript.
  • Débogueur JavaScript : accessible via l'icône de menu Page > Développeur > Déboguer JavaScript. Le débogueur propose une invite de commandes à partir de laquelle vous pouvez définir des points d'arrêt, des traces arrière, etc. Pour commencer, entrez aide sur la ligne de commande du débogueur.

Rendu et comportement du navigateur

9. Mon site s'affiche différemment dans Google Chrome et dans Internet Explorer

Google Chrome n'utilise pas le même moteur de rendu qu'Internet Explorer. Les pages Web risquent donc de s'afficher différemment. En revanche, comme Google Chrome, Safari fait appel au moteur de rendu WebKit : les pages devraient donc s'afficher de façon identique dans ces deux navigateurs.

  • Si votre site ne s'affiche correctement dans aucun navigateur, vérifiez que votre code HTML et CSS est correct en le testant à l'aide de la page http://validator.w3.org/.
  • Si votre site ne s'affiche correctement ni dans Google Chrome, ni dans Safari, enregistrez un bug sur le site webkit.org en suivant les instructions données à la page http://webkit.org/quality/reporting.html.
  • Si votre site s'affiche correctement dans Safari mais pas dans Google Chrome, enregistrez un bug relatif à Google Chrome à la page http://code.google.com/p/chromium/issues/list.

10. Comment puis-je tester mon site Web dans Google Chrome ?

Plusieurs outils vous permettent de tester votre site Web dans Google Chrome :

  • Inspecteur Web
    Cliquez avec le bouton droit sur n'importe quel composant d'une page Web pour lancer l'inspecteur Web. Vous pouvez alors afficher les éléments et les ressources associés au composant sur lequel vous avez cliqué, ainsi qu'une vue hiérarchique du DOM et une console JavaScript.
  • Gestionnaire de tâches
    Sélectionnez l'icône de menu Page, puis Développeur > Gestionnaire de tâches (ou appuyez sur Maj+Échap). Le gestionnaire de tâches répertorie tous les processus Google Chrome en cours et toutes les ressources qu'ils utilisent (mémoire, UC et réseau).
  • Débogueur JavaScript
    Sélectionnez l'icône de menu Page, puis Développeur > Déboguer JavaScript. Le débogueur JavaScript, qui peut être utilisé pour être associé aux processus existants, démarre.

11. Les spécifications de police contenues dans une feuille de style externe ne sont pas prises en compte

Vérifiez que vos feuilles de style externes contiennent le jeu de caractères et le type de contenu corrects. Ils doivent être indiqués sous la forme text/css ou text/css;charset=X.

Il est préférable de ne pas indiquer le jeu de caractères d'une feuille de style dans l'en-tête HTTP. Ajoutez la déclaration au tout début de votre feuille de style CSS, sans la faire précéder d'aucun caractère (espace ou saut de page), comme suit :

@charset "xxx"

Si vous oubliez d'indiquer les informations de codage, votre feuille de style risque de ne pas être analysée correctement.

Pour en savoir plus à ce sujet, consultez la documentation du World Wide Web Consortium à la page http://www.w3.org/TR/CSS21/syndata.html#charset.

12. Les fenêtres pop-up de mon site Web n'apparaissent pas dans Google Chrome

Par défaut, Google Chrome minimise puis affiche uniquement la barre de titre des fenêtres pop-up dans la partie inférieure droite de sa fenêtre. Il est alors possible d'afficher le contenu de la fenêtre pop-up en déplaçant sa barre de titre vers un endroit où ce contenu sera plus visible. Les fenêtres pop-up peuvent alors se charger sans que les fonctions des sites qui en dépendent en soient affectées. En outre, les fenêtres pop-up indésirables ne viennent pas se superposer à la page et ne risquent pas de gêner les internautes.

13. Au lieu d'un cadenas, un point d'exclamation s'affiche dans Google Chrome pour mon site Web protégé par SSL

La présence de ce point d'exclamation indique un problème lié à l'utilisation de SSL sur la page. Pour obtenir plus d'informations, cliquez sur le point d'exclamation qui s'affiche dans Google Chrome. Ce type de problème résulte souvent d'un contenu mixte sur votre page. Par exemple, la page Web de haut niveau est transmise via HTTPS et est protégée via SSL, mais certains éléments de la page ont été inclus via HTTP (images, scripts, CSS, etc.). Pour que le cadenas s'affiche, tout le contenu doit être transmis via HTTPS.

14. L'API de la base de données HTML5 n'est pas prise en charge par Google Chrome

L'équipe Google Chrome prévoit de prendre en charge l'API de la base de données HTML5 ainsi que les autres API prises en charge par WebKit telles que la possibilité de travailler hors connexion, dans une future version.

15. Comment puis-je personnaliser l'apparence et la fonction des raccourcis Google Chrome qui renvoient à ma page ?

Les utilisateurs de Google Chrome peuvent créer des raccourcis pour n'importe quelle page Web en sélectionnant Créer des raccourcis vers des applications à partir de l'icône de menu Page. Par défaut, les nouveaux raccourcis prennent le titre et la favicon de la page à laquelle le raccourci renvoie.

Vous pouvez indiquer le titre, la description et l'URL des raccourcis Google Chrome qui renvoient à votre page en insérant des balises Meta dans la section <head> de votre document.

Pour personnaliser : Balise Exemple
le titre du raccourci application-name <meta name="application-name" content="Gmail"/>
la description (utilisée lorsqu'un espace plus important existe, comme dans le panneau des préférences) description <meta name="description" content="La messagerie électronique selon Google"/>
l'URL à ouvrir lorsque l'internaute clique sur le raccourci application-url <meta name="application-url" content="http://www.gmail.com"/>
l'icône du raccourci   <link rel="icon" href="gmail_32x32.png" sizes="32x32"/>
<link rel="icon" href="gmail_48x48.png" sizes="48x48"/>

Par exemple :

<head>
    <meta name="application-name" content="Gmail"/>
    <meta name="description" content="La messagerie électronique selon Google"/>
    <meta name="application-url" content="http://www.gmail.com"/>
    <link rel="icon" href=gmail_32x32.png sizes="32x32"/>
    <link rel="icon" href=gmail_48x48.png sizes="48x48"/>
    </head>

Ces balises correspondent exactement à celles de l'API Gears Desktop. Pour plus d'informations, reportez-vous à la documentation de l'API Gears Desktop.

16. Comment ma page Web peut-elle ouvrir un nouvel onglet dans un processus distinct ?

L'architecture de Google Chrome est une architecture multiprocessus, ce qui signifie que les onglets peuvent s'exécuter dans des processus différents les uns des autres ainsi qu'à partir du processus navigateur principal. Les nouveaux onglets générés à partir d'une page Web s'ouvrent cependant généralement dans le même processus, de façon que la page d'origine puisse accéder au nouvel onglet à l'aide de JavaScript.

Toutefois, si vous utilisez le nouvel onglet pour accéder à un site Web différent, Google Chrome le détecte et utilise un processus distinct pour ce nouvel onglet.

L'approche la plus simple consiste à utiliser un lien vers un site Web différent qui cible une nouvelle fenêtre sans transmettre les informations de provenance. Google Chrome identifie cette action comme un ordre d'isoler la nouvelle page de la page d'origine. Il la charge alors dans un processus distinct. Par exemple :

<a href="http://differentsite.com" target="_blank" rel="noreferrer">Ouvrir dans un nouvel onglet et un nouveau processus</a>

Si vous voulez que le nouvel onglet s'ouvre dans un nouveau processus tout en continuant à transférer les informations de provenance, effectuez la procédure suivante dans JavaScript :

  • Ouvrez le nouvel onglet en indiquant about:blank comme cible.
  • Définissez la variable opener du nouvel onglet sur null, de manière qu'il ne puisse pas accéder à la page d'origine.
  • Effectuez une redirection de about:blank vers un site Web différent de celui de la page d'origine.

Par exemple :

var w = window.open();
w.opener = null;
w.document.location = "http://differentsite.com/index.html";

Ces indications ne fonctionnent qu'avec les URL dont le domaine ou le protocole est différent de celui de la page engendrant la fenêtre pop-up. Par exemple, si la fenêtre pop-up est générée à partir de la page http://www.exemple.com/ :

  • Un domaine différent pourrait être http://www.exemple.org ou http://www.exemple2.com.
  • Un protocole différent pourrait être https://www.exemple.com.

17. Comment exclure mon site Web du chargement de l'URL lorsque la recherche instantanée Google Chrome est activée ?

Lorsqu'un utilisateur de Google Chrome active la fonctionnalité "Recherche instantanée Google Chrome", la plupart des pages Web se chargent dès qu'il saisit l'URL dans la barre d'adresse, avant même qu'il n'appuie sur Entrée.

Si vous êtes un administrateur de site Web, vous pouvez empêcher ce comportement pour votre site :

  • Lorsque Google Chrome fait la demande auprès du serveur de votre site Web, il envoie l'en-tête suivant :
    X-Purpose: instant
  • Une fois ce dernier détecté, renvoyez un code d'état HTTP 403 ("Interdit").
  • À la réception de ce code, Google Chrome ajoute votre site Web à une liste noire conservée sur le client. Cette liste est effective le temps de la session de navigation de cet utilisateur.

Recherche

18. Lorsque j'entre l'adresse Web d'un intranet, une page de résultats de recherche s'affiche au lieu de l'intranet

Lorsqu'un internaute entre un seul mot dans la barre d'adresse, Google Chrome effectue une recherche sur ce terme et renvoie des résultats à l'aide du moteur de recherche par défaut de l'utilisateur. Google Chrome émet simultanément une requête HEAD concernant http://terme pour vérifier s'il s'agit d'un site Web valide. Si Google Chrome reçoit une réponse HTTP/2xx (par exemple HTTP/200 OK), l'utilisateur reçoit un message lui demandant s'il préfère visiter le site en question. S'il accède au site à partir de l'invite, le site Web deviendra la cible par défaut correspondant à ce terme lors de requêtes futures.

Google Chrome affiche également l'invite s'il reçoit :

  • une réponse HTTP/401 ou HTTP/407 ;
  • une redirection HTTP/3xx qui se termine en une page contenant l'une des réponses ci-dessus.

Vérifiez que votre serveur Web répond correctement aux requêtes HEAD et pas seulement aux requêtes GET concernant une page.

Si, par exemple, un site correspond à l'adresse http://projet.intranet.exemple.com et qu'un utilisateur de ce réseau d'entreprise entre projet dans la barre d'adresse :

  • Google Chrome renvoie les résultats de la recherche portant sur le terme projet.
  • Google Chrome vérifie simultanément si http://projet est un site Web valide. Si tel est le cas,
  • Une invite demandant à l'utilisateur s'il souhaite consulter le site http://projet s'affiche.
  • Dès que l'internaute accepte et accède à http://projet, Google Chrome définit http://projet comme la cible de toutes les instances futures du terme projet dans la barre d'adresse.

Il est possible de remplacer le comportement (la recherche) par défaut en entrant projet/ ou http://projet, ou en sélectionnant l'entrée de la barre d'adresse qui contient projet/ au lieu de Recherche de projet.

19. Comment puis-je inclure la recherche relative à mon site dans les options de recherche de Google Chrome ?

En fournissant un document de description OpenSearch (OSDD), vous autorisez Google Chrome à inclure votre site dans la liste des moteurs de recherche du navigateur. Pour plus d'informations sur OpenSearch, consultez le site http://www.opensearch.org.