Discourse não está renderizando a página inteira no iPad antigo

Recebi um relatório de dois usuários distintos do meu fórum de que o site está inutilizável, pois nada é renderizado além do título do tópico em seus iPads (um é um iPad mini 2; não tenho certeza da versão do outro).

Pequei a um dos usuários para verificar no modo de segurança e o problema persistiu.

Aparentemente, esse problema surgiu nos últimos dias (atualizei o Discourse recentemente). Será que foi introduzida uma incompatibilidade de navegador?

https://se23.life/t/cant-open-topics-suddenly/13677?u=chrisbeach

Possível erro relacionado no log:

### Mensagem

TypeError: Object.values não é uma função. (In 'Object.values(k)', 'Object.values' está indefinido) Url: https://se23.life/assets/application-40c596cdf7e29282f09e31f3627440b02ba54ef8bec1f65c72732b78dddeadb2.js Linha: 1 Coluna: 2302964 Localização da Janela: https://se23.life/t/hat-stolen-from-forest-hill-christmas-tree-now-replaced/13615/16

### Rastreamento

html@https://se23.life/assets/application-40c596cdf7e29282f09e31f3627440b02ba54ef8bec1f65c72732b78dddeadb2.js:1:2302964 value@https://se23.life/assets/application-40c596cdf7e29282f09e31f3627440b02ba54ef8bec1f65c72732b78dddeadb2.js:1:2380769 s@https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:142806 exports@https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:142956 t@https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:136443 t@https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:136753 t@https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:136753 t@https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:136753 t@https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:136753 t@https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:136753 https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:138354 exports@https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:138399 c@https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:139468 o@https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:139332 exports@https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:138842 c@https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:139468 o@https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:139332 t@https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:139608 rerenderWidget@https://se23.life/assets/application-40c596cdf7e29282f09e31f3627440b02ba54ef8bec1f65c72732b78dddeadb2.js:1:1070961 invoke@https://se23.life/assets/ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:1:483463 flush@https://se23.life/assets/ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:1:482460 flush@https://se23.life/assets/ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:1:484479 _end@https://se23.life/assets/ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:1:489914 end@https://se23.life/assets/ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:1:486449 _run@https://se23.life/assets/ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:1:490450 h@[código nativo] success@https://se23.life/assets/application-40c596cdf7e29282f09e31f3627440b02ba54ef8bec1f65c72732b78dddeadb2.js:1:228913 n@https://se23.life/assets/ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:1:27779 fireWith@https://se23.life/assets/ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:1:28543 l@https://se23.life/assets/ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:1:78782 https://se23.life/assets/ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:1:81099

### Env

hostname gbyk1-app
process_id 222
application_version e8beccdaa4eb36fd292de9cd77d59a0e0389c92f
HTTP_HOST se23.life
REQUEST_URI /logs/report_js_error
REQUEST_METHOD POST
HTTP_USER_AGENT Mozilla/5.0 (iPad; CPU OS 10_0_2 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Mobile/14A456 Safari/602.1
HTTP_ACCEPT */*
HTTP_REFERER https://se23.life/t/hat-stolen-from-forest-hill-christmas-tree-now-replaced/13615/16
HTTP_X_FORWARDED_FOR [redacted]
HTTP_X_REAL_IP [redacted]
params message TypeError: Object.values não é uma função. (In 'Object.values(k)', 'Object.values' está indefinido)
--- --- --- ---
--- ---
url https://se23.life/assets/application-40c596cdf7e29282f09e31f3627440b02ba54ef8bec1f65c72732b78dddeadb2
linha 1
coluna 2302964
window_location https://se23.life/t/hat-stolen-from-forest-hill-christmas-tree-now-replaced/13615/16
stacktrace html@https://se23.life/assets/application-40c596cdf7e29282f09e31f3627440b02ba54ef8bec1f65c72732b78ddd
2 curtidas

Eles funcionam no modo de segurança?

1 curtida

O iPad Mini 2 é de 2013, então é bastante antigo. Seu fim de vida útil foi em 2017.

4 curtidas

Não, não funciona no modo de segurança.

1 curtida

Funcionando bem no meu mini 4 e 5: Acredito que é hora de os parceiros deles serem generosos no Natal :wink:

1 curtida

Acredito que isso ocorra porque o polyfill de entradas foi movido para o plugin do IE cc @j.jaffeux

3 curtidas

Sim, Object.entries é a versão 10.3

Até onde sei, suportamos Safari 10+ e iOS 10+

4 curtidas

Então, existe um plugin que posso instalar para fazer esse problema desaparecer?

1 curtida

Não, este plugin já é instalado por padrão com o Discourse agora. O que estou dizendo é que esse polyfill foi adicionado há meses para dar suporte ao IE11.

Quando criamos este plugin algumas semanas atrás, movemos tudo que foi adicionado ao núcleo para o IE11 para dentro deste plugin.

Apenas as requisições feitas a partir do IE11 carregam arquivos deste plugin, é por isso que o iOS 9 não está mais funcionando.

O uso do iOS 9 quase não é mais rastreado; provavelmente está bem abaixo de 1% (o IE11 está em 1%).

Dito isso, podemos fazer duas coisas simples:

  • adicionar o arquivo de volta ao núcleo por mais um ano
  • carregar também o polyfill do IE11 para iOS 10 e versões anteriores; é uma boa solução, já que agora podemos carregá-lo condicionalmente sem impactar todos os outros usuários.

A decisão é sua, @codinghorror. Minha sensação é que devemos parar de dar suporte a isso, mas estou de acordo em mantê-lo se você achar que é mais razoável por enquanto.

9 curtidas

É assim que as coisas são: dispositivos iOS extremamente antigos e obsoletos não podem ser suportados para sempre.

5 curtidas