"Chrome.tabs no es compatible ..."

15

Siempre recibo este error en la consola de Chrome.

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

Pero todo funciona bien.

¿Alguien sabe qué está causando esto y cómo puedo resolverlo?

8k_de_power
fuente

Respuestas:

36

Por lo general, la causa es una extensión que se comporta mal. En mi caso fue "MeasureIt!". Para identificar qué extensión está causando problemas, puede

desactivarlos uno por uno y probar

  1. desactivar todas las extensiones
  2. asegúrese de que el error desaparezca
  3. activar extensiones una por una
  4. prueba si el error vuelve a aparecer, repita desde el paso 3

o

buscar su código fuente

  1. abierto chrome://extensions
  2. active el "Modo desarrollador" en la esquina superior derecha
  3. ahora puedes abrir background.htmlpara cada extensión
  4. Ctrl + F, escriba "chrome.tabs" para buscar puntos de código sospechosos
  5. dar retroalimentación al creador de la extensión
geekQ
fuente
8
Nice one :) Fue 'Measureit!' para mí también ..
Eddie
7

No se puede usar chrome.tabsen scripts de contenido. De acuerdo con la documentación ,

... los guiones de contenido tienen algunas limitaciones. Ellos no pueden:

  • Utilice las API de chrome. * (Excepto para partes de chrome.extension)
  • Usar variables o funciones definidas por las páginas de sus extensiones.
  • Utilice variables o funciones definidas por páginas web o por otros scripts de contenido.

Por lo tanto, solo puede usar la chrome.tabsAPI en páginas de fondo u otras páginas de extensión. Puede usar el mensaje de extensión que pasa para solicitar que se use una página de fondo chrome.tabs.

Plano digital
fuente
No entiendo qué está usando chrome.tabs. ¿Podría ser una de mis extensiones de Chrome?
8k_of_power
3
Sí, este error solo puede ser lanzado por una extensión de Chrome (a partir de ahora).
55
Para mí, fue MeasureIt! causando el error.
Justin Bull el
@weng Si aún recibe el error, intente deshabilitar algunas extensiones en grupos y vea si se elimina el error.
¡Mídelo! También provoca este error para. No puedo molestarme en depurar el código de otra persona, así que solo estoy soportándolo por ahora.
1

Esto es causado por una extensión que usa el chrome.tabspermiso, pero sin especificar que lo hace en el manifest.jsonpaquete con la extensión. El truco no es solo encontrar la extensión que usa chrome.tabs, sino encontrar la que lo hace sin anunciarla.

Comience con un enfoque más automatizado (comandos de varias líneas para facilitar la lectura): en * nix:

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

En Windows, usando PowerShell:

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

Luego vaya a la chrome://extensionspestaña para hacer coincidir los directorios en los resultados con los nombres de las extensiones, y haga clic en los permisos de cada uno para ver quién no está copiando su uso chrome.tabs. Tenga en cuenta que en la cuarta línea del fragmento de PowerShell, indizo '10' porque esa es la cantidad de componentes de ruta desde C:\el Extensionsdirectorio; Podría ser diferente en su sistema.

En mi caso, automaticé completamente la búsqueda añadiendo un par de segmentos más a la tubería:

$ 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

Ahora, mirando en chrome://extensions:

ingrese la descripción de la imagen aquí

Arrestado.

ingrese la descripción de la imagen aquí

Ben Collins
fuente