Não é possível carregar imagens com o Safari

Há cerca de um mês, não consigo fazer upload de nenhuma imagem no Discourse. Recebo as informações de progresso típicas abaixo do painel de composição — 20%, 40%, 100% carregado. Mas, assim que isso termina, o painel de composição mostra algo como isto (inseri isso como texto pré-formatado para que tudo fosse exibido):

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

e o painel de mensagem finalizado para a mesma coisa mostrará:

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

Mas, nesse ponto, nenhuma atividade de upload ainda está em andamento. Obviamente, o conteúdo que deveria estar entre parênteses não está sendo carregado. Esperar por horas não muda nada.

Isso ocorre em um Mac executando o macOS v10.15.7 e o Safari Versão 15.5 (15613.2.7.1.9, 15613). Quando o Discourse é acessado na mesma máquina via Firefox, tudo funciona normalmente.

1 curtida

Algo aparece no console do DevTools do navegador quando isso acontece?

1 curtida

Existem extensões ativadas no Safari? Você pode desativá-las temporariamente?

Sou novato nisso. Por favor, me diga onde procurar. Na minha versão do Safari, vejo apenas um título de menu Desenvolver na barra superior.

Não. Esta é apenas a instalação padrão.

Sim, seria isso! Acho que este vídeo aleatório no YouTube cobre como acessar o console? https://www.youtube.com/watch?v=kRRK3hZGw7I

2 curtidas

Desculpe, mas o vídeo foi tão mal produzido que não consegui acompanhar. No entanto, acho que encontrei o “Console”. Se eu tentar fazer upload de uma imagem JPG chamada Joss-Main para a mensagem que estou compondo no Safari, este é o resultado:

Fazendo upload de: Joss-Main.jpg…

Fazendo login via Firefox e continuando no mesmo tópico, posso fazer upload de uma captura de tela da janela do Console do Safari. Tudo na janela do Console apareceu depois de arrastar essa imagem para o painel de composição (enquanto no Safari). Como você pode ver, a imagem da captura de tela é carregada no Firefox sem problemas:

O que mais posso fazer para ajudar a resolver isso?

1 curtida

Como você está usando um navegador super recente, podemos tentar reproduzir o problema aqui. Estamos atribuindo internamente aos defensores técnicos para que possamos ver se mais alguém consegue reproduzir o problema no Safari 15.5. No momento, nem consigo testá-lo no BrowserStack, de tão recente que é (embora seja 100% compatível).

Você pode carregar a imagem do problema aqui, ou é qualquer imagem?

2 curtidas

São todas as imagens que tentei. PNG, JPG, PDF…. O tipo e o tamanho do arquivo não importam.

2 curtidas

Membros da minha comunidade têm o mesmo problema, parece que o Safari é o principal problema, vou tentar descobrir o problema para você.

1 curtida

Algum progresso, @Noah?

Tentamos uma reprodução simples, mas infelizmente não conseguimos replicá-la até agora. Houve outro tópico semelhante onde o problema acabou sendo algo relacionado a uma extensão do navegador ClearURL, mas não tenho certeza se isso é útil aqui? MacOS Firefox image upload error - #16 by jimkleiber

4 curtidas

Existem diferenças importantes entre o meu problema e o relatado por @jimkleiber:

  • O problema dele era no Firefox. O Firefox funciona para mim.
  • Ele tinha uma extensão de navegador que acabou sendo identificada como o problema. Eu não tenho nenhuma.
  • Ele viu uma mensagem de erro. No meu caso, o Discourse se comporta como se o upload da imagem tivesse sido bem-sucedido.
2 curtidas

Olá @JammyDodger, desculpe pela demora na resposta, estou prestes a realizar um teste na versão do Safari do meu amigo para ver se algo aparece. @tut Por curiosidade, qual dispositivo você está usando?

1 curtida

Screen Shot 2022-07-13 at 3.15.04 PM

Uma máquina chegando ao fim de sua vida útil, daí a limitação ao macOS v10.15.7.

Oh @david, parece-me relacionado ao execCommand, de acordo com: [BUG] Share > Copy link broken in Safari · Issue #1716 · opensearch-project/OpenSearch-Dashboards · GitHub

Minha suposição é que, de alguma forma, esta versão do Safari tem bugs com isso. Essa API marcada como “obsoleta” está causando todo tipo de dor, pois os navegadores tendem a quebrá-la um pouco?

Não usamos execCommand ao passar de placeholders de upload para URLs, então não acho que seja a causa aqui. (Não podemos mudar facilmente, pois execCommand("insertText") requer que a textarea tenha foco, e os uploads podem terminar quando você não tem a textarea focada).

Uploads ainda usam o método set("value", ...) que usamos há anos

Tecnicamente está obsoleta pelos padrões da web, mas ainda não há alternativa para o comando insertText. Do MDN:

A API de Área de Transferência pode ser usada em vez de execCommand em muitos casos, mas execCommand ainda é útil às vezes. Em particular, a API de Área de Transferência não substitui o comando insertText, que você pode usar para substituir programaticamente o texto no cursor enquanto preserva o buffer de desfazer (histórico de edições) em elementos textarea e input simples.

Dado o uso generalizado, parece incrivelmente improvável que os navegadores abandonem o suporte para isso sem primeiro fornecer uma alternativa e uma janela de depreciação.

4 curtidas

@tut Acabei de adicionar algumas informações extras de depuração aqui no Meta para que possamos tentar descobrir o que está acontecendo. Por favor, tente:

  1. Abra o Meta no Safari
  2. Abra o console do desenvolvedor
  3. Tente fazer o upload de um arquivo
  4. Clique no console do desenvolvedor
  5. Cmd + a para selecionar todos os logs
  6. Clique com o botão direito → salvar seleção
  7. Salve o arquivo de texto em algum lugar e, em seguida, faça o upload aqui (usando o Firefox, suponho)
2 curtidas

@david, aqui está minha tentativa de fazer upload de uma imagem JPEG chamada Joss-Main.jpg enquanto estava no Safari:

Enviando: Joss-Main.jpg…

Como esperado, o upload não foi concluído.


Agora mudei para o Firefox e continuei a compor a mesma mensagem.

Console.txt (4,1 KB)

1 curtida

Ok, uau, este é um caso estranho! O Safari está substituindo ... (três pontos) por um caractere de reticências . Isso então impede nossa tentativa posterior de substituir o placeholder pela URL real.

@tut você pode abrir suas preferências do sistema → Teclado → Texto e ver se você tem alguma substituição configurada lá. Se eu adicionar uma substituição de ..., então posso reproduzir o mesmo problema no Safari na minha máquina:

(o seu pode parecer ligeiramente diferente devido à versão mais antiga do macOS)

Então sim, isso parece bastante provável - desculpe por descartar essa ideia mais cedo @sam :sweat_smile:. Parece que o Safari está aplicando substituições de texto em nível de sistema operacional ao texto que adicionamos via execCommand("insertText",. Eu me pergunto se isso é algo novo no Safari 15.5, ou se sempre foi o caso e nós apenas não notamos :thinking:

5 curtidas

@david, não tenho nenhuma substituição configurada nas preferências do Teclado. Agora que sei o que procurar, posso confirmar que a substituição ocorre. Na verdade, posso vê-la acontecer enquanto digito. E posso verificá-la usando a seta para trás. Quando chego ao caractere de reticências, o cursor salta sobre todos os três pontos que foram inseridos como caracteres separados.

O mesmo acontece em Notas, Pré-visualização, Mensagens e Mail, mas não em Calendário, Mapas, Fotos ou (obviamente) Firefox. Portanto, parece ser algo específico do aplicativo, não em nível de sistema.

2 curtidas