Ça fait 3 semaines que je me bats avec un problème de merde sous Firefox. En JS, je fais du Drag-n-drop, pour l’upload d’images.

Mon script fait en sorte que quand je glisse un fichier sur le navigateur, un bloc prend toute la largeur de la page pour réceptionner les fichiers. Jusque là, ça va : ça marche, tout va bien. En fait, tout le drag-n-drop fonctionne parfaitement.

Sauf parfois.
Parfois j’ai un comportement étrange. Parfois « ça veut pas ».

En temps normal, quand je glisse les fichiers sur la page web, j’ai l’icône de la petite main avec la flèche :
arrow hand cursor
Mais parfois, en plein milieu de la page, le pointeur change : c’est juste la petite main. Sans la flèche : signifiant que que le "drop" est impossible :
hand cursor
Il semble ainsi y avoir un sorte de « zone morte » en plein milieu de la page où mon drag-n-drop ne marche pas.
La zone morte est invisible. Je ne peux la mettre en évidence qu’en déplaçant le curseur lors du glissement des fichiers et trouver environ les limites de la « zone morte ».

J’ai utilisé des tas de garde-fou en JS pour savoir ce qui se passe : rien de concluant.
JS voit bien que le glissement (drag) s’arrête quelque part sur la page (et agit en conséquences), mais il ne sait pas me dire ce qui se passe réellement : ni afficher l’ID d’un éventuel bloc « mort » sur l’écran, ni mettre ce bloc en évidence…

En fait j’ai fini par trouver d’où ça vient.

Vous voulez savoir ? Vraiment ?

C’est ce connard de Flash de merde à con de mes deux.

La « zone morte » correspond exactement à l’emplacement d’un lecteur Flash… sur un autre putain d’onglet !
Oui, Flash obstrue une zone du navigateur sur TOUS les onglets, même s’il est utilisé dans un seul onglet.

Quand je ferme l’onglet avec flash (Youtube en l’occurrence), je n’ai pas de problèmes.
Je ne sais pas si le coupable est Flash ou Firefox, mais là, Flash c’est terminé. Raz le bol de ces conneries récurrentes avec ce plugin de merde.


Bref.
Il y a une chose à retenir en programmation. Des bugs, vous aurez forcément : aucun script ne fonctionne du premier coup. Parfois les bugs seront plus coriaces que d’autres, et souvent, très souvent le problème vient de là où on ne l’attends absolument pas.
Ceci en est un exemple : l’événement de glissement de fichiers sur une page web, dans Firefox, ne fonctionne pas si Flash fonctionne, même sur un autre onglet.

10 commentaires

gravatar
ArcturusB a dit :

Bon, on est bien d’accord, Flash ça pue !

Mais je serais bien curieux de savoir si dans ce cas précis, le problème vient bien de Flash ou de Firefox ; as-tu songé à soumettre un rapport de bug à Mozilla ?

gravatar
Codeur Impulsif a dit :

en même temps Flash est vraiment à jeter à la poubelle, je comprends que certains en veulent encore (surtout par flemme de recoder en fait) mais y a un moment où il faut évoluer !

Surtout que depuis le HTML5 (et même avant) c'est pas les alternatives qui manquent !

(même question que @ArcturusB pour le bug)

gravatar
Le Hollandais Volant a dit :

J’y ai pensé, mais je n’arrive pas à reproduire le bug sur un autre ordi, même version Firefox, même version Flash. J’ai donc laissé tombé.

gravatar
AirDur a dit :

HTML 5 pas sécurisé.

+ Flash est très bien pour des jeux webs. Regardez la Moton-Twin et Twinoid. ._.

gravatar
mat a dit :

Flash a débuté depuis quelques mois sa virée vers la tombe, ça ne fait aucun doute. Surtout que la plupart des gens (les surfeurs lambda) qui l'utilisent, c'est pour regarder des vidéos alors que la quasi-totalité des plateformes populaires n'en dépendent plus. J'ai un nouveau PC depuis septembre 2014, et je n'ai pas voulu installer flash (normal), hé bien ça ne m'a privé à l'époque que de deux trois jeux flash (mal codés au passage) qui, de nos jours, sont largement clonés dans des versions html5 bien fluide. Si Flash est encore indispensable à quelque chose, j'espère que les alternatives seront rapidement mises en place (2015, je doute que l'on manque de technos assez riches et solides) pour lui envoyer sa dernière pelletée de terre et basta.

gravatar
Roger a dit :

"HTML 5 pas sécurisé"
Mékékidit, HTML est un format de description de pages. Tu fais peut être référence à Javascript, qui est à priori plus sécurisé que Flash (sandboxé, same-origin policy, content-security policy, etc.), quand bien même parler de sécurité pour des applications majoritairement clientes est assez absurde.

"Flash est très bien pour des jeux webs"
Ce n'est pas forcément vrai, puisque le triplet HTML5/CSS3/JS offre toutes les fonctionnalités nécessaires pour développer des jeux 2D (et même 3D, même si c'est plutôt du proof of concept). Par contre, Flash garde son avantage pour la conception graphique des jeux web, du fait de son IDE intégré pour graphistes et développeurs.

gravatar
Tervos a dit :

Flash a juste besoin de crever.

À cause des bugs comme ça, et aussi à cause de pleins d'autre trucs comme le nombre wtf de failles de sécurité.

Le problème, c'est que y'a que du genre 1/4 des trucs que Flash couvre qui sont aussi dispo sans, comme YT et son lecteur alternatif en HTML5.

Donc ouais.

gravatar
Pierre a dit :

Tu pourrais mettre un lien vers ta page de test quelque part pour qu'on puisse essayer de reproduire le bug et éventuellement y jeter un oeil.

gravatar
Tokapix a dit :

Bonjour Timo,

L'implémentation du module Flash pour GNU/Linux fournie par Adobe ouvre sa propre fenêtre Xorg dont le mouvement est asservi à la page de ton navigateur. Quand tu changes d'onglet, cette fenêtre est toujours présente, bien que rendue invisible (le comportement ressemble d'ailleurs à s'y méprendre à un cas typique de keylogger pour serveur X).

Ce phénomène est encore plus flagrant quand tu coupes l'option Composite de ton serveur X (le mécano qui permet les effets 3D avec Xorg en isolant les espaces mémoires de tes fenêtres...) car les interférences de cette fenêtre "fantôme" peuvent parfois être visibles en dehors de ton navigateur, à l'intérieur même des applis graphiques qui se superposent à ta fenêtre Firefox.

Tu as donc affaire à un savant mélange de problèmes de Javascripts liés à la fois à Flash et au serveur X.

Si ça peut t'aider à mieux cerner le problème...

gravatar
Le Hollandais Volant a dit :

@Tokapix : je vois le problème. C’est donc un problème assez spécifique, une nouvelle fois, mais qui m’a permis de me passer de flash définitivement :p.
Merci des explications !

Les commentaires sont fermés pour cet article