Impossible de télécharger des images avec Safari

Il y a environ un mois, je n’ai plus pu téléverser d’images sur Discourse. J’obtiens les informations de progression habituelles sous le volet de composition — 20 %, 40 %, 100 % téléversé. Mais une fois cela terminé, le volet de composition affiche quelque chose comme ceci (j’ai entré ceci comme texte préformaté pour que tout s’affiche) :

[Uploading: Screen Shot 2022-06-14 at 10.58.16 AM.png…]()

et le volet de message terminé pour la même chose affichera :

Uploading: Screen Shot 2022-06-14 at 10.58.16 AM.png…

Mais à ce stade, aucune activité de téléversement n’est toujours en cours. Évidemment, le contenu qui est censé être entre parenthèses ne se téléverse pas. Attendre des heures ne change rien.

Cela se produit sur un Mac exécutant macOS v10.15.7 et Safari Version 15.5 (15613.2.7.1.9, 15613). Lorsque Discourse est accédé sur la même machine via Firefox, tout fonctionne normalement.

1 « J'aime »

Quelque chose apparaît-il dans la console des outils de développement du navigateur lorsque cela se produit ?

1 « J'aime »

Des extensions sont-elles activées dans Safari ? Pouvez-vous les désactiver temporairement ?

Je suis novice à cet égard. Veuillez me conseiller où chercher. Dans ma version de Safari, je ne vois qu’un titre de menu Développer dans la barre supérieure.

Non. Il s’agit simplement de l’installation standard.

Oui, ce serait ça ! Je pense que cette vidéo aléatoire sur YouTube explique comment accéder à la console ? https://www.youtube.com/watch?v=kRRK3hZGw7I

2 « J'aime »

Désolé, mais cette vidéo était si mal produite que je n’ai pas pu la suivre. Néanmoins, je pense avoir trouvé la « Console ». Si j’essaie de téléverser une image JPG nommée Joss-Main dans le message que je suis en train de composer dans Safari, voici le résultat :

Téléversement : Joss-Main.jpg…

En me connectant via Firefox et en continuant sur le même sujet, je peux téléverser une capture d’écran de la fenêtre de la Console Safari. Tout dans la fenêtre de la Console est apparu après avoir fait glisser cette image dans le volet de composition (dans Safari). Comme vous pouvez le voir, l’image de la capture d’écran se téléverse sans problème dans Firefox :

Que puis-je faire d’autre pour aider à résoudre ce problème ?

1 « J'aime »

Étant donné que vous utilisez un navigateur très récent, nous pouvons essayer de le reproduire ici. Nous l’assignons en interne aux défenseurs techniques afin de voir si d’autres peuvent reproduire le problème sur Safari 15.5. Pour le moment, je ne peux même pas le tester sur BrowserStack tellement il est récent (bien qu’il soit entièrement pris en charge).\n\nPouvez-vous télécharger l’image problématique ici, ou est-ce que toutes les images sont concernées ?

2 « J'aime »

Ce sont toutes les images que j’ai essayées. PNG, JPG, PDF…. Le type et la taille du fichier n’ont pas d’importance.

2 « J'aime »

Les membres de ma communauté ont le même problème, il semble que Safari soit le principal problème, je vais essayer de trouver le problème pour vous.

1 « J'aime »

Des nouvelles @Noah ?

Nous avons essayé de reproduire le problème simplement, mais nous n’avons malheureusement pas réussi jusqu’à présent. Il y avait un autre sujet similaire où le problème était lié à une extension de navigateur ClearURL, mais je ne suis pas sûr que cela soit utile ici ? MacOS Firefox image upload error - #16 by jimkleiber

4 « J'aime »

Il y a des différences clés entre mon problème et celui signalé par @jimkleiber :

  • Son problème concernait Firefox. Firefox fonctionne pour moi.
  • Il avait une extension de navigateur qui a finalement été identifiée comme le problème. Je n’en ai aucune.
  • Il a vu un message d’erreur. Dans mon cas, Discourse se comporte comme si le téléchargement de l’image avait réussi.
2 « J'aime »

Salut @JammyDodger désolé pour ma réponse tardive, je m’apprête à effectuer un test sur la version Safari de mon ami pour voir si quelque chose en sort. @tut Par curiosité, quel appareil utilises-tu ?

1 « J'aime »

Screen Shot 2022-07-13 at 3.15.04 PM

Une machine arrivant en fin de vie utile, d’où la limitation à macOS v10.15.7.

Oh @david il me semble que cela est lié à execCommand selon : [BUG] Share > Copy link broken in Safari · Issue #1716 · opensearch-project/OpenSearch-Dashboards · GitHub

Je suppose que cette version de Safari a des bugs avec. Cette API marquée comme « obsolète » cause toutes sortes de problèmes car les navigateurs ont tendance à la casser un peu ?

Nous n’utilisons pas execCommand lors du passage des espaces réservés de téléchargement vers des URL, donc je ne pense pas que ce soit la cause ici. (Nous ne pouvons pas facilement changer, car execCommand("insertText") nécessite que la zone de texte ait le focus, et les téléchargements peuvent se terminer lorsque vous n’avez pas le focus sur la zone de texte).

Les téléchargements utilisent toujours la méthode set("value", ...) que nous utilisons depuis des années

Elle est techniquement obsolète selon les normes du Web, mais il n’existe pas encore d’alternative pour la commande insertText. D’après MDN :

L’ API Clipboard peut être utilisée à la place de execCommand dans de nombreux cas, mais execCommand est toujours utile dans certains cas. En particulier, l’API Clipboard ne remplace pas la commande insertText, que vous pouvez utiliser pour remplacer programmatiquement du texte à la position du curseur tout en préservant le tampon d’annulation (historique des modifications) dans les éléments textarea et input simples.

Compte tenu de son utilisation généralisée, il semble extrêmement improbable que les navigateurs abandonnent le support de cette fonctionnalité sans d’abord fournir une alternative et une période de dépréciation.

4 « J'aime »

@tut Je viens d’ajouter des informations de débogage supplémentaires ici sur Meta afin que nous puissions essayer de comprendre ce qui se passe. S’il vous plaît, pouvez-vous essayer :

  1. Ouvrez Meta dans Safari
  2. Ouvrez la console du développeur
  3. Essayez de télécharger un fichier
  4. Cliquez dans la console du développeur
  5. Appuyez sur Cmd + a pour sélectionner tous les journaux
  6. Clic droit → enregistrer la sélection
  7. Enregistrez le fichier texte quelque part, puis téléchargez-le ici (en utilisant Firefox, je suppose)
2 « J'aime »

@david, voici ma tentative de téléverser une image JPEG nommée Joss-Main.jpg dans Safari :

Téléversement : Joss-Main.jpg…

Comme prévu, le téléversement n’a pas abouti.


J’ai maintenant basculé sur Firefox et j’ai repris la rédaction du même message.

Console.txt (4,1 Ko)

1 « J'aime »

Ok wow, c’est bizarre ! Safari remplace les ... (trois points) par un caractère d’ellipse . Cela empêche ensuite notre tentative ultérieure de remplacer le placeholder par l’URL réelle.

@tut peux-tu ouvrir tes préférences système → Clavier → Texte, et voir si tu as une substitution configurée là-bas. Si j’ajoute une substitution ..., alors je peux reproduire le même problème dans Safari sur ma machine :

(le tien peut sembler légèrement différent en raison de la version plus ancienne de macOS)

Donc oui, cela semble très probable - désolé d’avoir écarté cette idée plus tôt @sam :sweat_smile:. Il semble que Safari applique les substitutions de texte au niveau du système d’exploitation au texte que nous ajoutons via execCommand("insertText",. Je me demande si c’est une nouveauté de Safari 15.5, ou si cela a toujours été le cas et que nous ne l’avions pas remarqué :thinking:

5 « J'aime »

@david, je n’ai aucune substitution configurée dans les préférences du clavier. Maintenant que je sais quoi chercher, je peux confirmer que la substitution se produit. Je peux en fait la voir se produire pendant que je tape. Et je peux la vérifier en utilisant la flèche arrière. Lorsque j’arrive au caractère des points de suspension, le curseur saute par-dessus les trois points qui ont été saisis comme caractères distincts.

La même chose se produit dans Notes, Aperçu, Messages et Mail, mais pas dans Calendrier, Cartes, Photos ou (évidemment) Firefox. Il semble donc s’agir d’une chose spécifique à l’application, et non d’un niveau système.

2 « J'aime »