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.
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 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:
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?
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
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?
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).
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.
@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:
Abra o Meta no Safari
Abra o console do desenvolvedor
Tente fazer o upload de um arquivo
Clique no console do desenvolvedor
Cmd + a para selecionar todos os logs
Clique com o botão direito → salvar seleção
Salve o arquivo de texto em algum lugar e, em seguida, faça o upload aqui (usando o Firefox, suponho)
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. 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
@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.