Por que um navegador ação padrão do ícone reapper depois de um ícone personalizado foi aplicada?
-
13-12-2019 - |
Pergunta
Eu tenho um problema estranho com um navegador ícone de acção para o Chrome.Há um ícone padrão para o navegador de ação definido no manifesto.O ícone é exibido corretamente.Em seguida, em uma página de plano de fundo, sob algumas condições, eu chamo de:
chrome.browserAction.setIcon({path:"green_32.png", tabId:request.tabId});
Este ícone pisca por um momento e, em seguida, as alterações de volta para o ícone padrão.A guia ativa e a sua id do passado para setIcon
permanecer o mesmo durante todo o processo.
Alguém pode sugerir uma idéia de por que isso pode acontecer?
Solução
A razão por que o ícone foi repor a predefinição de estado cada vez que é porque eu chamei setIcon
antes de o guia terminar de carregar e obtém "concluir" do estado.
Eu acho que deve haver alguma informação sobre isto na documentação sobre guias ou em as ações do navegador, mas eu não encontrá-lo:o ícone padrão é, na verdade, aplicado - by-design - para uma página específica depois de terminar de carregar.Mudei a chamada setIcon
em tabs.onUpdated
manipulador, e agora ícone personalizado persistir.
Isso contradiz ao meu entendimento anterior de que o navegador ícone de ação é definida por separador base, regarless para uma página carregada para o guia e o seu estado.
@KonradDzwinel gentilmente forneceu uma extensão simples para testar o caso (veja os comentários).Eu mudei a sua background.js script para demonstrar este comportamento:
chrome.browserAction.onClicked.addListener(function(tab)
{
chrome.browserAction.setIcon({path: 'gfx/icon2.png', tabId: tab.id});
});
Para reproduzir este comportamento, em qualquer guia pressione o navegador ícone de ação para obtê-lo alterado.Em seguida, atualize a página.Como resultado, o navegador ícone de acção redefinir para o padrão.
Se este comportamento é explicado na documentação, por favor, escreva isso em comentários, e eu vou atualizar a resposta.Pelo que tenho lido até agora, eu estava convencido de que o ícone padrão é definido para o novo guia no seu tempo de criação e, em seguida, quaisquer alterações são exclusivamente sob a extensão do controle.