A partir de 12/06/2018, a instalação inline foi descontinuada. Para mais informações, leia nossa postagem do blog do Chromium (em inglês).
Perguntas sobre o cronograma
O que mudará em 12/06/2018?
A instalação inline será desativada para todos os itens da Chrome Web Store, como extensões e apps, publicados pela primeira vez a partir de 12/06/2018. "Desativada" significa que as tentativas de instalação inline serão redirecionadas automaticamente para a página de detalhes do item na Chrome Web Store, onde o usuário poderá concluir a instalação. Nada vai mudar para os itens atuais na loja que foram publicados antes dessa data.
O que mudará em 12/09/2018?
A desativação será aplicada a TODOS os itens, independentemente da data de publicação. 100% das tentativas de instalação inline para todos os itens serão redirecionadas para a Chrome Web Store, onde os usuários poderão concluir a instalação.
O que preciso fazer antes de 12/09/2018?
Não é necessário mudar nada, mas sugerimos que você analise o fluxo de instalação e substitua a chamada
chrome.webstore.install()
por uma navegação diretamente para a página "Detalhes do app" na Chrome Web Store.
Isso permite verificar se a experiência do usuário é a melhor possível.
Também recomendamos que você incorpore o novo selo de download da Chrome Web Store ao fluxo de instalação no seu site.
O que vai mudar na versão M71 (dezembro de 2018)?
A partir da versão M71, o Chrome não vai mais oferecer suporte ao método chrome.webstore.install()
, e a chamada
dele vai falhar, resultando em um fluxo de instalação corrompido no seu site. Nesse ponto, as chamadas para a API geram um TypeError JavaScript. Remova todas as chamadas para o método de API antes dessa data.
Depois que a instalação inline for desativada
Como será o fluxo de instalação?
Quando seu site chamar chrome.webstore.install()
, o Chrome não acionará mais uma caixa de diálogo imediatamente,
mas abrirá uma nova guia em primeiro plano para a página de detalhes da Chrome Web Store (ou seja,
https://chrome.google.com/webstore/detail/EXTENSION_ID
). A partir daí, o usuário pode seguir o
processo de instalação padrão clicando em "Instalar". Uma caixa de diálogo solicitará que o usuário leia
as permissões e instale ou cancele. Depois que a caixa de diálogo for dispensada, a guia permanecerá na Chrome Web Store.
Como posso saber se minha instalação foi bem-sucedida?
Quando você chamar chrome.webstore.install()
, o failedCallback será acionado com um erro informando que o usuário foi redirecionado para a Chrome Web Store. Ele não vai indicar se a
instalação foi bem-sucedida ou não. Lembre-se de que, a partir do Chrome 71, as chamadas para
chrome.webstore.install()
vão falhar, portanto, o crashCallback nunca será executado.
Sem essa API, a comunicação entre a extensão e o site pode detectar se o item já está instalado. Isso pode ser feito por meio de mensagens de extensão e da propriedade externally_connectable no manifesto.
"externally_connectable": {
"matches": ["https://www.example.com/*"]
}
// JS running on https://example.com
try {
chrome.runtime.sendMessage('EXTENSION_ID', MESSAGE, function() {
if (chrome.runtime.lastError) {
// Extension is not installed.
}
});
} catch (e) {
// Extension is not installed.
}
Substitua:
EXTENSION_ID
: o ID da extensão.MESSAGE
: a string da mensagem ou o objeto a ser enviado para a extensão.
Como aciono uma página informativa após a instalação?
Use o evento chrome.runtime e abra uma nova guia após a instalação. Veja um exemplo para usar na página de segundo plano:
chrome.runtime.onInstalled.addListener(function listener(details) {
if (details.reason === chrome.runtime.OnInstalledReason.INSTALL) {
chrome.tabs.create({url: "https://www.example.com/"});
chrome.runtime.onInstalled.removeListener(listener);
}
});
Posso abrir uma exceção?
Não. Essa mudança na política se aplica a todos os itens da Chrome Web Store, sem exceções.