technology

Como um programador iniciante do Firefox de 23 anos corrigiu um bug de 22 anos

.

Raposa vermelha observa um inseto voador
Prolongar / Alguns bugs estão sempre fora de alcance. (Sabemos que este não é um panda vermelho, mas não temos imagens que ilustrem tal criatura sendo levemente irritada por um tipo específico de inseto).

Imagens Getty

Em junho de 2002, o fundador do Ubuntu, Mark Shuttleworth, estava experimentando o espaço pela primeira vez, o caso antitruste do Departamento de Justiça contra a Microsoft estava chegando aos seus argumentos finais, e Adam Price, usando o que era então chamado de Mozilla em um Mac, teve um problema com problemas persistentes. dicas de ferramentas.

“Se eu passar o mouse sobre um link da barra de ferramentas e esperar um segundo, uma pequena caixa amarela com a descrição do link aparecerá. Se eu usar agora a tecla de comando para mover o Mozilla para o fundo, a pequena caixa amarela permanecerá lá, em primeiro plano .A única maneira de se livrar dele é colocar o Mozilla em primeiro plano novamente e mover o mouse para fora da barra de ferramentas”, escreveu Price em 2 de junho. Houve alguns outros bugs relacionados a esse problema, mas Price estabeleceu um reproduzível questão, confirmada por muitos outros nas próximas semanas – e nos próximos meses, nos próximos anos e nas próximas duas décadas.

Dica de ferramenta do Firefox persistente em uma janela de aplicativos no Mac OS X, capturada há 12 anos.

Dica de ferramenta do Firefox persistente em uma janela de aplicativos no Mac OS X, capturada há 12 anos.

Com o passar dos anos, as pessoas verificaram o tópico ou marcaram outros bugs como duplicatas deste problema. Ocasionalmente, parecia corrigido, apenas para codificadores e comentaristas descobrirem que era apenas um pouco diferente em versões diferentes ou que as correções anteriores eram aparentemente acidentais. Às vezes parecia aparecer também no Windows ou no Linux. Um comentarista, Denis, observou que, aos 21 anos: “Tenho uma certa preferência por deixar isso para sempre. Parece uma relíquia do passado.”

Essa relíquia não existe mais, pois uma correção para o Bug 148624 foi lançada no início de setembro, com a correção aparecendo na compilação 119. Tentei replicar a dica de ferramenta em meu navegador Firefox 118.0.1 ainda não atualizado no Mac, mas não consegui experimentar este rito de passagem para mim. O patch em si é bem pequeno, adicionando uma verificação para saber se um documento tem foco no código que mostra a dica de ferramenta.

Yifan Zhu, que escreveu o patch para o Tooltip Listener do Firefox, escreveu para Ars que eles encontraram o bug pela primeira vez no Thunderbird no Linux, como “segmentos de texto aparentemente aleatórios flutuando na minha tela”. Alternar frequentemente entre desktops virtuais deixava linhas de assunto flutuando na tela, o que era “extremamente irritante”. Zhu aprendeu a voltar para o Firefox ou Thunderbird e mover o cursor antes de voltar.

Mas eles cresceram, então eles pesquisaram e tentaram enviar o bug, mas “Para meu horror, percebi que este relatório de bug está aberto há mais de 20 anos e ainda não foi corrigido.” Como era “um pequeno problema ‘cosmético’ que não causava travamentos”, havia uma boa chance de ninguém consertar o problema – “A menos que eu mesmo fizesse isso”, escreveu Zhu.

Zhu estava motivado e sabia programar, mas não tinha “nenhuma experiência em projetos tão complicados quanto o navegador Firefox” e “nunca havia contribuído para projetos de código aberto antes”. Mas foi no verão antes do início do programa de doutorado. “Então por que não?”

O início deles foi desfavorável, para dizer o mínimo. “Acabei de procurar por ‘dica’ em toda a base de código, examinei o material em busca de possíveis candidatos e inseri instruções de impressão de depuração para acompanhar a execução”, escreveu Zhu. Isso acabou trazendo respostas. “Quando o mouse passa sobre algum elemento, um cronômetro é iniciado para exibir a dica de ferramenta. O cronômetro seria cancelado em um evento de saída do mouse, que o Firefox não estava obtendo quando usei atalhos de teclado para alternar janelas ou áreas de trabalho virtuais.”

Zhu enviou um commit que exibia a dica de ferramenta com base na perda de foco do Firefox, em vez de o mouse sair do aplicativo. Nas horas seguintes, eles ouviram Emilio Cobos Álvarez, que refinou a abordagem de Zhu e ajudou a inserir o commit na base de código. Embora a correção tenha criado alguma regressão, esse bug também está funcionando.

Zhu, nascido em 1999, apenas três anos antes de esse bug ser enviado, tinha acabado de terminar a graduação e o mestrado em Stanford quando começaram a trabalhar nele. Eles estão apenas começando seu doutorado em engenharia elétrica. Eles só conseguem adivinhar por que um bug como esse durou a maior parte de suas vidas. Eles acham que é um inconveniente cosmético e difícil de reproduzir, deixando outros bugs mais sérios com classificações sempre mais altas.

Cobos Álvarez, que conduziu a correção de Zhu para um commit, escreveu-nos que “esta área é bastante complicada”, dadas as várias configurações do Firefox e como elas respondem a diferentes sistemas operacionais. Encontrar uma solução que lidasse elegantemente com a falta de informações quando um aplicativo Mozilla não estava em foco, sem garantia de entrada do sistema operacional, foi complicado. “Muito impressionante por sua primeira contribuição no Firefox!”

Nas mídias sociais, especialmente nos casos do Mastodon, onde você poderia esperar encontrar pessoas com opiniões sobre a linguagem de interface de usuário XML da Mozilla, houve muita alegria. Alguns ficaram surpresos com o fato de o próprio Bugzilla, a ferramenta de relatório de bugs, ter durado ainda mais que o bug (25 anos em agosto). Alguns sugeriram que essa correção contrabalançava a prevalência de “stalebots”, que selecionam problemas antigos e não resolvidos para serem excluídos. E um deles elaborou uma jornada completa do herói:

Se todos pudéssemos conquistar o software formativo da nossa juventude.

Se todos pudéssemos conquistar o software formativo da nossa juventude.

ClickyMcTicker

Nem qualquer um pode fazer um grande commit, mas um grande commit pode vir de qualquer lugar.

Esta história foi atualizada com respostas de Yifan Zhu às 17h45 horário do leste dos EUA em 10 de outubro. Também foi atualizada para corrigir um erro na manchete sobre a idade de Zhu.

.

Mostrar mais

Artigos relacionados

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Botão Voltar ao topo