"Chrome.tabs não é suportado ..."

15

Eu sempre recebo esse erro no console do Chrome.

Uncaught Error: chrome.tabs is not supported in content scripts. See the content scripts documentation for more details.

Mas tudo funciona bem.

Alguém sabe o que está causando isso e como posso resolvê-lo?

8k_of_power
fonte

Respostas:

36

Normalmente, a causa é uma extensão que se comporta mal. No meu caso, foi "MeasureIt!". Para identificar qual extensão está causando problemas, você pode

desativá-los um por um e testar

  1. desativar todas as extensões
  2. garantir que o erro se foi
  3. ativar extensões uma por uma
  4. teste se o erro reaparecer, repita da etapa 3

ou

pesquise o código fonte

  1. aberto chrome://extensions
  2. ativar "Modo de desenvolvedor" no canto superior direito
  3. agora você pode abrir background.htmlpara cada extensão
  4. Ctrl + F, digite "chrome.tabs" para procurar pontos de código suspeitos
  5. dar feedback ao criador da extensão
geekQ
fonte
8
Nice one :) Foi 'Measureit!' para mim também ..
Eddie
7

Você não pode usar chrome.tabsem scripts de conteúdo. De acordo com a documentação ,

... os scripts de conteúdo têm algumas limitações. Eles não podem:

  • Use APIs chrome. * (Exceto partes de chrome.extension)
  • Use variáveis ​​ou funções definidas pelas páginas de suas extensões
  • Use variáveis ​​ou funções definidas por páginas da web ou por outros scripts de conteúdo

Portanto, você só pode usar a chrome.tabsAPI em páginas em segundo plano ou em outras páginas de extensão. Você pode usar a passagem de mensagens de extensão para solicitar o uso de uma página em segundo plano chrome.tabs.

Digital Plane
fonte
Eu não entendo o que está usando chrome.tabs. Poderia ser uma das minhas extensões do Chrome?
8k_of_power
3
Sim, este erro só pode ser gerado por uma extensão do Chrome (a partir de agora).
5
Para mim, foi o MeasureIt! causando o erro.
Justin Bull
@weng Se você ainda receber o erro, tente desativar algumas extensões em grupos e veja se o erro foi removido.
Meça isto! Também está causando esse erro para. Não posso me incomodar em depurar o código de outra pessoa, por isso estou lidando com ele por enquanto.
1

Isso é causado por uma extensão usando a chrome.tabspermissão, mas sem especificar isso no manifest.jsonpacote fornecido com a extensão. O truque não é apenas encontrar a extensão que usa chrome.tabs, mas encontrar a que faz isso sem anunciar.

Comece com uma abordagem mais automatizada (comandos de várias linhas para facilitar a leitura): No * nix:

$ find . -type f \
> | xargs grep -l chrome.tabs \
> | cut -d '/' -f 2 \
> | uniq

No Windows, usando o PowerShell:

> gci -rec |? {-not $_.PSIsContainer} `
>> | sls 'chrome.tabs' `
>> | select -Unique Path `
>> |% {$_.Path.Split('\')[10] } `
>> | select -Unique
>>

Em seguida, vá para a chrome://extensionsguia para corresponder os diretórios nos resultados aos nomes de extensão e clique nas permissões de cada um para ver quem não está copiando para o uso chrome.tabs. Observe que na quarta linha do snippet do PowerShell, eu indexo '10' porque é quantos componentes de caminho existem C:\para o Extensionsdiretório; Pode ser diferente no seu sistema.

No meu caso, automatizei totalmente a pesquisa inserindo mais alguns segmentos no pipeline:

$ find . type f \
> | xargs grep -l chrome.tabs \
> | cut -d '/' -f 2 \
> | uniq \
> | xargs -I % find % -name 'manifest.json' \
> | xargs grep -L tabs
hipbfijinpcgfogaopmgehiegacbhmob/16.0.544_0/manifest.json
hipbfijinpcgfogaopmgehiegacbhmob/17.1_0/manifest.json
hipbfijinpcgfogaopmgehiegacbhmob/18.1_0/manifest.json

Agora, olhando para chrome://extensions:

insira a descrição da imagem aqui

Preso.

insira a descrição da imagem aqui

Ben Collins
fonte