Perguntas frequentes sobre a migração para a descontinuação da instalação inline

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.