"Chrome.tabs n'est pas pris en charge ..."


15

J'obtiens toujours cette erreur dans la console de Chrome.

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

Mais tout fonctionne bien.

Quelqu'un sait ce qui est à l'origine de cela et comment puis-je le résoudre?

Réponses:


36

En règle générale, la cause est une extension qui se comporte mal. Dans mon cas, c'était "MeasureIt!". Pour identifier quelle extension pose problème, vous pouvez soit

les désactiver un par un et tester

  1. désactiver toutes les extensions
  2. assurez-vous que l'erreur a disparu
  3. activer les extensions une par une
  4. tester si l'erreur réapparaît, répéter à partir de l'étape 3

ou

rechercher leur code source

  1. ouvert chrome://extensions
  2. activer le "mode développeur" dans le coin supérieur droit
  3. vous pouvez maintenant ouvrir background.htmlpour chaque extension
  4. Ctrl + F, saisissez "chrome.tabs" pour rechercher les taches de code suspectes
  5. donner des commentaires au créateur de l'extension

8
Nice one :) était 'Measureit!' pour moi aussi ..
Eddie

7

Vous ne pouvez pas utiliser chrome.tabsdans les scripts de contenu. Selon la documentation ,

... les scripts de contenu ont certaines limites. Ils ne peuvent pas:

  • Utilisez les API chrome. * (Sauf pour certaines parties de chrome.extension)
  • Utiliser des variables ou des fonctions définies par les pages de leur extension
  • Utiliser des variables ou des fonctions définies par des pages Web ou par d'autres scripts de contenu

Ainsi, vous ne pouvez utiliser l' chrome.tabsAPI que dans des pages d'arrière-plan ou d'autres pages d'extension. Vous pouvez utiliser le passage de message d'extension pour demander l'utilisation d'une page d'arrière-plan chrome.tabs.


Je ne comprends pas ce qui utilise chrome.tabs. Serait-ce une de mes extensions Chrome?
8k_of_power

3
Oui, cette erreur ne peut être levée que par une extension Chrome (à partir de maintenant).

5
Pour moi, c'était MeasureIt! provoquant l'erreur.
Justin Bull

@weng Si vous obtenez toujours l'erreur, essayez de désactiver certaines extensions dans les groupes et voyez si l'erreur est supprimée.

Mesure le! Provoquant également cette erreur pour. Je ne peux pas être dérangé de déboguer le code de quelqu'un d'autre, donc je le supporte pour l'instant.

1

Cela est dû à une extension utilisant l' chrome.tabsautorisation, mais sans spécifier qu'elle le fait dans le manifest.jsonpackage avec l'extension. L'astuce n'est pas seulement de trouver l'extension qui utilise chrome.tabs, mais de trouver celle qui le fait sans l'annoncer.

Commencez avec une approche plus automatisée (commandes multi-lignes pour la lisibilité): On * nix:

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

Sous Windows, à l'aide de PowerShell:

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

Ensuite, accédez à l' chrome://extensionsonglet pour faire correspondre les répertoires des résultats aux noms d'extensions, puis cliquez sur les autorisations de chacun pour voir qui ne coupe pas son utilisation chrome.tabs. Notez que sur la 4ème ligne de l'extrait PowerShell, j'indexe «10» car c'est le nombre de composants de chemin d'accès qui se trouvent C:\dans le Extensionsrépertoire; cela pourrait être différent sur votre système.

Dans mon cas, j'ai entièrement automatisé la recherche en plaçant quelques segments supplémentaires dans le 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

Maintenant, en regardant chrome://extensions:

entrez la description de l'image ici

Busted.

entrez la description de l'image ici

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.