CodePen Home File and Directory Drag-and-drop for Firefox and Chrome - Codepen

Un script JS pour uploader des fichiers ET des répertoires.

Ça marche dans Firefox et dans Chrome.
Alors que généralement, cette fonction est décrite comme ne fonctionnant pas dans Firefox.

En vrai, Firefox supporte une fonction de Webkit ici, mais elle le supporte depuis 2016 (la fonction — expérimentale et préfixée — existe elle depuis 2012, mais est utilisée partout), et autant de temps qu’on a droit à ce genre de bullshit :
https://twitter.com/lehollandaisv/status/1447595435233882114

Déjà connu depuis longtemps sur les sites de Google (qui ont tout intérêt à descendre la concurrence), voir là :
https://lehollandaisvolant.net/?d=2016/01/03/16/30/39-youtube-lent-en-html5-avec-firefox-42

… et sur les sites codés avec des moufles sur chaque main :
https://lehollandaisvolant.net/?d=2017/07/03/20/33/52-ce-site-nest-fait-que-pour-chrome-bla-bla-blah

#ChromeIsTheNewIE

::after (:after) - CSS : Feuilles de style en cascade | MDN

Dans la série #ChromeIsTheNewIE. Je cite la page de Mozilla

les pseudo-éléments générés par ::before et ::after sont contenus dans la boîte de mise en forme de l'élément.

Qui traduit ce que dit la spec officielle :

The :before and :after pseudo-elements interact with other boxes as if they were real elements inserted just inside their associated element.

J’insiste bien sur le « dans ».

Là j’ai du code (un peu complexe, certes, avec des flex et des positionnements absolus).

Où est-ce que Firefox place le ::after ? Dedans.
Où est-ce que Chrome place le ::after ? Après.

Va.
Chier.
Chrome.

Webkit, en fait (ou Blink). Tu m’emmerdes. Ouais j’ai l’impression d’être retrouvé à l’époque d’IE6 : celui où tous les navigateurs respectaient les standards sauf le ouistiti complètement con de Microsoft, IE6.

Sauf que maintenant ce primate décérébré, c’est Chrome/Chromium… et tous les navigateurs dans lequel son code de merde pourri le web depuis 10 ans (Opera, Vivaldi, Edge…).

Firefox is working properly. The "unintended behavior" is that the Twitter devs only ever tested whether the cache is kept in Chrome aft... - Twitter

Vous avez eu ce message sur Twitter, sous Firefox, qui dit que Firefox a une faille de sécurité lié au cache navigateur ?

Ben en fait c'est à cause de Chrome (what else?). Les devs n'ont testé qu'avec Chrome et ses méthodes exotiques non-standards et du coup ben ça marche dans Chrome mais pas ailleurs.

#chromeIsTheNewIE

Vivaldi Now Impersonates Google Chrome to Avoid Being Blocked

Voilà, c’est fait : Vivaldi s’identifie désormais comme Chrome.

Mettez à jour Vivaldi et testez là : https://lehollandaisvolant.net/tout/tools/browser/

Les raisons ? Parce que certains sites codés avec les pieds détectent tout ce qui est différent de Chrome et disent « votre navigateur est pourri, passez à Chrome ».

Vivement que tous les navigateurs finissent par adopter le même user-agent, comme ça ça en obligera peut-être à apprendre à coder correctement, c’est à dire en HTML, pas en en ChromeML.

#chromeIsTheNewIE

ex ef ex sur Twitter : "Hey, @WhatsApp, could you unblock @vivaldibrowser? Whatsapp Web works perfectly fine with it.… "

#chromeIsTheNewIE n°562 835…

Comme je suis content que cette époque de sites web « IE compatible only » est révolue… oh wait.

Et c’est ça à chaque, putain de fois.

Je pense qu’il y a aussi quelques dév à enfermer dans l’histoire, depuis le temps qu’on leur dit de tester des fonctionnalités plutôt qu’un nom de navigateur, mais qu’ils sont trop des feignasses pour se sortir les doigts du cul…

Martijn Cuppens sur Twitter : "The div that looks different in every browser https://t.co/hXmxoLA8fW… "

Et merde, ce code CSS, pourtant pas tellement exotique, s’affiche de façon drastiquement différente dans chaque navigateur (Firefox, Chrome, IE, Edge, Safari).
(Dans le code, le CSS affecté sur body et html ne servent qu’à centrer le <div>, on peut le virer)

Pour le coup, si j’avais à dire lequel avait raison, je dirais soit Edge, soit Safari.

Si je prend un <div> et que je lui met une outline, elle se met autour. Si je met un outline-offset négatif, logiquement, la bordure « implose » sur le <div>.

C’est ce qui se passe avec Edge.

Safari met du vert au centre aussi, mais le laisse également au bord. IE ne supporte pas outline-offset.
Chrome affiche un truc chelou (#chromeIsTheNewIE). Et Firefox semble bien décaler le outline, mais on dirait qu’il fait le rendu comme deux blocs (afin d’avoir l’effet du "inset") : ce qu’il affiche semble être le résultat de sa mécanique interne différente des autres. Et ici, les deux blocs s’affichent pas au même endroit…

Safari is the New Internet Explorer

Chrome… Safari… C’est tout du Webkit.
Quoique… non, c’est vrai que Chrome c’est Blink maintenant. Mais dire que le problème date de cette année serait faux : Google a toujours fait sa popote dans son coin et les autres navigateurs ont été obligés de suivre.

The issue that Chrome is starting to suffer from is that it is becoming too good. Google just has so many people invested in the entire process of web development stack (standards spec writing, browser engineering, site development, etc) that the other browsers are having a hard time catching up when it comes to releasing new features.
Internet Explorer (and ergo Microsoft circa 2006-ish) did not only not participate in standards development, but went off standard, thus forcing web developers to do the same in order to cater to the browser that had a +90% market share.

Je résume en gros : « Google investit tellement de dév dans Chrome que ce navigateur devient « trop bon » et les autres n’arrivent pas à suivre. »

Or, ce qui est supposé ici, c’est que Google fait la norme, les autres navigateurs imitent et les web-dév ensuite qui font des sites web adaptés. À lire le passage, on pourrait penser que c’est sensé se passer ainsi.

Or un système qui suppose que différents acteurs (navigateurs, web-dév…) s’accordent à utiliser un standard commun (HTML/CSS/JS) ça doit plutôt être « tout le monde discute de ce qui doit être fait ; un organisme (ici le W3C) rédige les spécificités ; les navigateurs implémentent ça puis les web-dév utilisent ça ».

En pratique, on a plutôt eu (et ça a toujours été comme ça, sans être un mal non plus) des navigateurs qui implémentent un nouveau truc, les web-dév qui se disent « oh chouette vivement que les nav implémentent ça que je puisse l’utiliser », les nav qui implémentent puis les web-dév qui utilisent.
Pour le moment ça s’est fait comme ça ; généralement avec quelques fall-back pour pas pénaliser les navigateurs qui avaient un petit peu de retard.

Ce qui se passe aujourd’hui, c’est que Chrome a tellement de techno en plus des standards, que Google utilisent lui-même tout ça sur ses sites (Gmail, Youtube, G+, etc.) que ce sont les standards qui s’adaptent à lui, et donc les autres navigateurs également.
Les web-dév, voyant que les standards eux-même ne suivent plus, ne se donnent plus la peine pour mettre des fall-back de rétro-compatibilité et on se retrouve avec des sites web fait uniquement pour Chrome. Ce n’est pas que le site web ne fonctionne pas sous Firefox ou IE, c’est tout simplement que le site web n’est pas un site web ! Il n’utilise pas des standards du web, mais des technos Google. Ce sont des sites-chrome, pas des sites-web.

Il suffit de voir que Opera (l’ancien, avec « -o- ») et Firefox se sont mis à supporter spécifiquement les préfixes destinées à Chrome : « -webkit- ». Les web-dév sont devenu des feignasses qui s’en branlent si 40% des internautes ne voient pas leur site et préfèrent mettre un popup « faites pas chier et installez Chrome, comme tout le monde » plutôt que tester leur site dans les autres navigateurs comme un codeur consciencieux devrait faire.

Et puis Google impose sa vision des choses au W3C, qui lui-même se voit forcé de dire aux autres navigateurs « désolé les gars, mais le porte-feuille a parlé, vous implémenterez donc les DRM HTML5 » (pour les DRM, Microsoft et Apple, il me semble étaient également pour l’idée… Mozilla était contre. Résultat ? Aujroud’hui Firefox implémente les DRM parce qu’ils n’avaient pas le choix : ils ont fait ça pour que leurs utilisateurs puissent regarder Youtube, Netflix… qui mettent des DRM partout). Ceci n’est qu’un exemple…

Oui la standardisation est un processus long, mais elle permet de garantir que tout le monde puisse surfer dans de bonnes conditions. Google n’a pas envie d’attendre, les web-dév non plus, donc ils poussent une techno dans le navigateur et dans le cul la standardisation.
Avec ça, c’est sûr que les autres navigateurs n’arrivent pas à suivre… Mais en attendant, les sites qui implémentent ces technos sont des sites-chrome, pas des site-web.

Si t’as un seul navigateur qui est à la traîne parmi 5 ou 6 autres, le problème vient de lui.
Si t’as 5 ou 6 navigateurs qui sont à la traîne parmi un seul, le problème ne vient pas forcément d’eux… C’est bien d’inventer de nouvelles techno, car sinon on stagne et c’est pas cool. Mais à un moment il faut assumer : est-ce qu’on fait du web pour tout le monde ? ou est-ce qu’on fait sa cuisine HTML dans son coin pour faire rentrer du fric et fuck aux autres ?

Ben le premier, c’est ce que représente le W3C (du moins… ce qu’il devrait être). Le second, c’est Google. Et ce n’est pas nouveau.

Du coup, je maintiens pour mon hashtag #ChromeIsTheNewIE : peu importe les causes réelles et sous-jacentes, le résultat sera le même que sous l’ère IE6, à savoir :
– des web-dév emmerdés parce que la dernière techno à la mode « faire du café dans son navigateur » n’est pas disponible partout (sans se soucier si c’est bien le rôle du navigateur que de faire du café)
– des internautes excédés parce tous les sites exigent d’être visités par Chrome.

Chrome is turning into the new Internet Explorer 6 - The Verge

Ça fait un moment que je le dis  : https://lehollandaisvolant.net/?q=ChromeIsTheNewIE&mode=links

Et ça ne présage rien de bon pour l’avenir.
Parce que bon, aujourd’hui le HTML et le CSS c’est cool et simple : tout marche à peu près bien partout (si on exclue les technos à la pointe encore dans les labos).

Mais quiconque a déjà codé des trucs avant 2010 sait qu’avant il fallait utiliser les commentaires conditionnels pour IE et même les trucs parfaitement standards depuis 10 ans ne fonctionnaient pas encore. Et je crois bien que même Microsoft Edge a encore des soucis : supportent-ils au moins les favicon en PNG, par exemple ?

Bref, c’était un bordel : le site web s’affichait de façon différente partout et y avait des problèmes partout. Seul un psychopathe pourrait vouloir revenir à ça.

#ChromeIsTheNewIE

Chrome is Not the Standard · Chris Krycho

Un article dont l’auteur aussi en raz-le-bol que les dév prennent Chrome comme le nouveau standard du web, ce qui à terme contribue à un nombre toujours plus grand de sites compatible avec Chrome/Webkit seul.
On revient en l’an 2001, où on avait IE6…

#ChromeIsTheNewIE

Screen.width - Référence Web API | MDN

screen.width

Permet de trouver la largeur de l’écran, en « pixel CSS » (d’après les spec).
Sauf que Firefox tient compte du ratio de zoom (si vous avez un zoom de 2, ou un pixel-ratio de 2, alors la largeur affichée sera divisée par 2).

Webkit en revanche, ne tient pas compte de ça…

Les specs disent que un pixel c’est 1/96 pouce. Un pouce ne variant pas, je pense que si le pixel-ratio est de deux, alors la valeur affichée par le navigateur doit être divisée par deux aussi. Donc un écran 4K en 15" qui est affiché en fHD (comme c’est le cas sur certains ordinateurs portables) devrait retourner une valeur de 1920×1080, pour conserver le fait que 96 px en CSS corresponde à 1 inch.

C’est ensuite au script lui-même de prévoir ce cas là et de faire une multiplication avec le window.devicePixelRatio (qui contient le facteur de zoom de l’écran).

À priori, selon moi, c’est Firefox qui implémenterait correctement les spec (très étonnant… #ironie).

#ChromeIsTheNewIE