Pour les utilisateurs de Linux ayant ce problème, j'ai créé le script suivant comme solution de contournement :
Avant de continuer, vous devez vous assurer que pepper-flash est installé pour Chrome/Chromium, (flashplugin pour Firefox) ; la seule façon de le vérifier (sans utiliser la solution de contournement ci-dessous) est de lire un fichier flash sur Internet. (ou dans Firefox, allez à about:plugins et regardez s'il y a “Shockwave Flash”)
#!/bin/bash
if [-z $1]; then
swf=$(ls *.swf | tail -1)
else
swf=$@
fi
html=$(echo $swf | sed 's:swf:html:g')
echo '<embed src='$swf 'width="100%" height="100%"></embed>' | sed 's:src=:src=":g' | sed 's:swf:swf":g' > "$html"
#chromium "$html" && sleep 20 && rm "$html"
#google-chrome "$html" && sleep 20 && rm "$html"
#firefox about:config & wmctrl -xa firefox && sleep 0.2 && xdotool type plugins.http && sleep 1 && xdotool key Tab && xdotool key Down && xdotool key Return && xdotool key Control+w && firefox "$html" && firefox about:config && wmctrl -xa firefox && sleep 0.2 && xdotool type plugins.http && sleep 1 && xdotool key Tab && xdotool key Down && xdotool key Return && xdotool key Control+w && sleep 20 && rm "$html"
(alternativement compatible avec dash)
Pour utiliser le script, enregistrez-le sous swftohtml.sh (peut être n'importe quel nom, ne doit pas se terminer par .sh) à l'endroit que vous souhaitez, puis pour le convertir en une commande exécutable, soit créez un alias pour lui en bashrc, soit copiez-le dans /usr/bin/. N'oubliez pas d'exécuter chmod +x swftohtml.sh pour le rendre exécutable.
Le script, lorsqu'il est exécuté sans arguments, cherche dans le dossier courant un fichier swf et crée un fichier html correspondant qui peut être utilisé pour exécuter ce fichier swf dans un navigateur. S'il y a plus d'un fichier swf dans le dossier, il prendra par défaut le dernier (par exemple, si vous avez nom de fichier1.0.swf et nom de fichier2.0.swf, il prendra par défaut nom de fichier2.0.swf)
Alternativement, pour cibler un fichier swf spécifique, vous pouvez entrer le nom de fichier (ou le chemin complet du fichier) comme argument pour le script et il l'utilisera à la place. (par exemple swftohtml.sh nom de fichier 1.0.swf )
Si vous souhaitez automatiser entièrement le script :
Pour ouvrir automatiquement les fichiers swf dans votre navigateur et automatiser la suppression du fichier html résultant après son utilisation, décommentez l'une des lignes suivantes en bas du script (selon votre navigateur) :
#chromium "$html" && sleep 20 && rm "$html"
#google-chrome "$html" && sleep 20 && rm "$html"
#firefox about:config & wmctrl -xa firefox && sleep 0.2 && xdotool key Return && xdotool type plugins.http && sleep 1 && xdotool key Tab && xdotool key Down && xdotool key Return && xdotool key Control+w && firefox "$html" && firefox about:config && wmctrl -xa firefox && sleep 0.2 && xdotool key Return && xdotool type plugins.http && sleep 1 && xdotool key Tab && xdotool key Down && xdotool key Return && xdotool key Control+w && sleep 20 && rm "$html"
Le script ouvrira maintenant le fichier html dans votre navigateur dès qu'il aura été créé. Si une instance existante de votre navigateur est en cours d'exécution, il supprimera le fichier html en 20 secondes (ce qui vous donne suffisamment de temps pour dire au navigateur d'ouvrir le fichier avec son plugin flash). S'il n'y a pas d'instance existante de votre navigateur, le fichier sera plutôt supprimé 20 secondes après la fermeture du navigateur.
Avec ce jeu, vous pouvez configurer les fichiers SWF pour qu'ils s'ouvrent avec le script, et le processus est maintenant entièrement automatisé de sorte que vous pouvez ouvrir les fichiers SWF directement, sans jamais vous soucier de créer (ou de supprimer) les fichiers html à la main, en d'autres termes, il se comportera comme il devrait maintenant. (Gardez à l'esprit qu'il peut y avoir quelques cas de figure où le fichier html n'est pas supprimé, mais lorsque cela se produit, vous pouvez l'ignorer sans risque).
Pour les utilisateurs de Firefox :
La version de Firefox était un peu plus compliquée, elle nécessite l'installation de wmctrl et xdotool. La raison en est que pour que Firefox puisse lire les fichiers swf locaux de cette manière, vous devez désactiver plugins.http_https_only dans about:config, le script le désactive automatiquement, ouvre le fichier flash, puis le réactive, car c'est un paramètre que la plupart des gens voudront généralement garder activé. Le navigateur doit être ouvert avant l'exécution de la commande. Si vous pensez qu'il est probable que votre navigateur Firefox sera fermé lorsque vous exécuterez la commande, remplacez la ligne par ceci :
firefox about:config & sleep 1 && wmctrl -xa firefox && sleep 0.2 && xdotool key Return && xdotool type plugins.http && sleep 1 && xdotool key Tab && xdotool key Down && xdotool key Return && xdotool key Control+w && firefox "$html" && firefox about:config && wmctrl -xa firefox && sleep 0.2 && xdotool key Return && xdotool type plugins.http && sleep 1 && xdotool key Tab && xdotool key Down && xdotool key Return && xdotool key Control+w && sleep 20 && rm "$html"
Il donnera maintenant au navigateur 1 seconde pour se lancer avant d'exécuter le reste du script. (Il peut être nécessaire de l'ajuster pour les ordinateurs plus lents).
La version Firefox du script effacera toujours le fichier après 20 secondes.
Tests de performance :
J'ai fait quelques tests de performance rudimentaires et voici mes résultats :
- Chrome/Chromium Pepper Flash (PPAPI) : Le plus rapide :
- Adobe Flash Projector (NPAPI)(Wine) : Rapide
- Flashplugin Firefox (NPAPI) : Le plus lent
En ce qui concerne la stabilité, il y a des cas où le PPAPI rencontre des bogues/erreurs que le NPAPI ne rencontre pas, mais ils sont rares.
La performance entre Pepper Flash et Flash Projector était plutôt faible (c'est remarquable, mais à peine) alors que la performance du plugin flash Firefox était sensiblement plus lente que le reste pour une raison quelconque.
Ainsi, si le but est de jouer à des jeux flash, je recommanderais d'utiliser le chrome avec le flash poivre installé par-dessus le reste, en général. Pour d'autres tâches, il est peu probable que cela ait de l'importance.