Browser Erkennung für Windows 11 , Katastrophe
Beim Umbau meiner Visitors Erweiterung für Contao 5 wollte ich die gleich noch ein wenig "modernisieren" und die Windows 11 Erkennung einbauen (User Agent).
Aber:
Microsoft hat sich mal wieder das "tolles" einfallen lassen. Unter Windows 11 melden die Browser im Useragent nach wie vor "Windows NT 10.0". :mad:
https://developers.whatismybrowser.c...-11-user-agent
Um an die richtige Version zu kommen, gibt es "Client Hints", die im Header versendet werden.
https://learn.microsoft.com/en-us/mi...o-detect-win11
Leider senden die Browser (z.Z nur Edge, Chrome und Opera) im Header die Plattform "Windows" aber nicht die Version. (Firefox diskutiert noch, ob die das einbauen oder nicht.)
Um die Version zu bekommen muss man serverseitig ein Header setzen, in dem man die Information anfordert. Ab dem zweiten Request vom Browser wird dann die Version mit geliefert.
Auch MS: Version 1-10 ist Windows 10, Version 13 oder höher ist dann Windows 11. Warum, das wissen nur die.
Nun läuft mein Visitors FE Modul als ESI Request, darin kann ich keine Header setzen.
Jetzt wird es darauf hinauslaufen, das ich über einen extra
Code:
onKernelResponse Event
mich einklinken muss, um den Header darüber zu setzen.
Das muss ich mir dann ansehen wie das geht, Code Beispiel habe ich, mal sehen ob ich das implementiert bekomme.
PS: es gibt auch über JavaScript eine Möglichkeit an die Verison zu kommen, die Info müsste man dann aber per XMLHttpRequest an den Tracker senden.
Dabei kam mir der Gedanke, wie macht das Matomo? Und siehe da, es gibt einen Device Detector, der die Client Hints auswerten kann. Jedoch habe ich keinen Hinweis gefunden, das die den Header setzen.
Ist ja auch nicht Aufgabe von Matomo.
Also kurz gesagt, wer den Matomo Tracker benutzt (Contao Erweiterung- Hintergrund-Tracking) wird in Matomo keinen Windows 11 Erkennung haben. (oder ich übersehe was)
(Achtung: es gibt Bots die mit "Windows NT 11.1" sich melden, das ist Fake!)
Daher habe ich fast überlegt, ob es nicht sinnvoller wäre eine extra Erweiterung zu machen die nur diesen Header setzt. (contao-clienthints-request-bundle)
Dann hätten alle Tracker die Möglichkeit Windows 11 zu erkennen.
Wird aber alles Zeit brauchen. Was meint Ihr dazu?
Liste der Anhänge anzeigen (Anzahl: 1)
Ah, das erklärt, warum in der Liste ein Win11 auftaucht, aber das hier glaube ich auch nicht so wirklich:
Anhang 26587
Da muss viel Fake dabei sein.
Wenn ich das richtig im Kopf habe (meine das irgendwo gelesen zu haben), dann wollen die Browserhersteller weg von einer Versionerkennung über den UA und da eh nur noch etwas generisches ausliefern.
Es gab da mal was, dass manche Software den Versionsstring falsch interpretiert und aus einem "Windows 11", verstand die Software dann ein "Windows 1.1". Deswegen meldet sich ein Windows 11 als 10.x.
Genauso wie es auch keine Frühjahrsversion von Windows 10 /Windows Server im Jahr 2020 gab. Die hieß dann plötzlich 20H1. Warum? Nach dem alten Schema hätte die 2003 heißen müssen, aber einen Windows Server 2003 gab es vor 20 Jahrem schon.
Visitors Zukunft der Windows Version Erkennung / Ausgabe
Die Erweiterung "contao-clienthints-request-bundle" ist fertig und funktioniert.
Jetzt muss Visitors das nur noch auswerten. Dabei gibt es zukünftig folgende Kombinationen:
HTTP:
- Browser (sendet keine Client Hints über http) laut UA Windows 10 : Plattform: Windows
HTTPS:
- Browser ohne Fähigkeit von Client Hints und laut UA Windows 10 : Plattform: Windows
- Browser mit Client Hints Platform 1-10 : Plattform: Win10
- Browser mit Client Hints Platform 13+ : Plattform: Win11