Door Philias: Ik zie het kort opflitsen van een door scripts ondersteunde Gmail pagina - ik vermoed zo'n 1/4 seconde - waarna Noscript de pagina herlaadt niet alleen gebeuren als ik de browser start m.b.v die bureaubladsnelkoppeling URL. Als Firefox actief is ook, maar slechts vaag en heel kort zie ik dan de door scripts ondersteunde inlogpagina waarschijnlijk omdat ik die heel goed ken omdat het wel voorkomt dat ik google moet toestaan voor andere webpagina's die voorheen zijn geladen en dan Gmail wil openen.
Het wordt misschien wat technisch, maar ik heb het volgende gedaan in Firefox (71.0 op Linux) en dat kan je naspelen:
• Open een lege tab.
• Druk daar op F12. Dat opent hulpmiddelen voor ontwikkelaars in de onderste helft van het scherm.
• Klik daar in het menu boven de hulpmiddelen op "Netwerk".
• Rechtsboven zie je een paar aanvinkvakjes. Vink "Registraties aanhouden" aan. Dat stelt je in staat "redirects" te volgen (wat dat is wordt zo duidelijk).
• Typ nu in de adresbalk in: https://gmail.com/ en druk op ENTER.
• Je ziet een aantal regels verschijnen, die bij mij beginnen met:
301 GET
302 GET
302 GET
200 GET
200 GET
De getallen vooraan zijn HTTP-responsecodes. Daarvan zijn 301 en 302 twee varianten van de mededeling dat de browser de gevraagde pagina ergens anders op moet halen, een zogenaamde "redirect". De code 200 betekent dat de gevraagde pagina gevonden is en als onderdeel van de response wordt teruggegeven. Het eigenaardige is dat die twee keer voorkomt.
• Klik op de
laatste regel (de 2e "200") en klik in boven de rechterhelft van de ontwikkelhulpmiddelen op "Antwoord". Je ziet een afbeelding van het aanlogscherm.
• Klik nu op de
voorlaatste regel (de 1e "200") en dan verschijnt rechts geen afbeelding maar een rode balk met de tekst: "Antwoord is afgekapt". Als je daaronder "Voorbeeld" openklapt krijg je een berg HTML-code te zien, die kennelijk een onvolledige pagina vertegenwoordigt.
Ik heb (enigzins lastig om te doen) die volledige HTML gekopieerd en in een teksteditor geplakt, en daarin vervolgens gezocht naar het woordje "nojavascript", dat onderdeel is van de uiteindelijk getoonde pagina. Dat stond erin, en het relevante stukje HTML ziet er zo uit:
<noscript><meta http-equiv="refresh" content="0; url=https://accounts.google.com/ServiceLogin?continue=https%3A%2F%2Fmail.google.com%2Fmail%2F&rip=1&nojavascript=1&service=mail&rm=false&ltmpl=default&scc=1&ss=1&osid=1&emr=1"><style nonce="PZj55uAHFbFKTLCS8paP5Q">body{opacity:0;}</style></noscript>
En dat geeft de verklaring van wat je ziet gebeuren. Het hele fragment staat tussen "<noscript>" en "</noscript>", wat betekent dat het een stukje HTML-code is dat alleen wordt geïnterpreteerd als JavaScript uitstaat. Wat erin staat is een tag die het equivalent van een HTTP-responscode bevat die hier "refresh" wordt genoemd, die overeenkomt met die 301- en 302-codes. Het is een opdracht om direct door te schakelen naar de URL die erin staat, een met "nojavascript=1".
Je krijgt inderdaad in een flits de aanlogpagina voor met JavaScript te zien, maar die wordt niet eens volledig opgebouwd omdat die opdracht erinzit om door te schakelen naar de aanlogpagina voor zonder JavaScript. En die doorverwijzing wordt gevolgd precies
omdat JavaScript uitstaat. Dat betekent dat je add-ons al keurig actief zijn voordat de pagina geladen wordt.