"Chrome.tabs wird nicht unterstützt ..."

15

Ich erhalte diesen Fehler immer in der Chrome-Konsole.

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

Aber alles funktioniert gut.

Weiß jemand woran das liegt und wie ich das beheben kann?

8k_of_power
quelle

Antworten:

36

In der Regel ist die Ursache eine fehlerhafte Erweiterung. In meinem Fall war es "MeasureIt!". Um festzustellen, welche Nebenstelle Probleme macht, können Sie entweder

deaktiviere sie einzeln und teste

  1. Deaktivieren Sie alle Erweiterungen
  2. Stellen Sie sicher, dass der Fehler behoben ist
  3. Aktivieren Sie die Erweiterungen nacheinander
  4. Testen Sie, ob der Fehler erneut auftritt, und wiederholen Sie den Vorgang ab Schritt 3

oder

Suche ihren Quellcode

  1. öffnen chrome://extensions
  2. aktiviere den "Entwicklermodus" in der oberen rechten Ecke
  3. Jetzt können Sie background.htmlfür jede Erweiterung öffnen
  4. Strg + F, tippe "chrome.tabs" ein, um nach verdächtigen Code-Stellen zu suchen
  5. Geben Sie dem Ersteller der Erweiterung Feedback
geekQ
quelle
8
Schön :) War 'Measureit!' für mich auch ..
Eddie
7

Sie können nicht chrome.tabsin Inhaltsskripten verwenden. Nach der Dokumentation ,

... Inhaltsskripte haben einige Einschränkungen. Sie können nicht:

  • Verwenden Sie chrome. * APIs (außer für Teile von chrome.extension)
  • Verwenden Sie Variablen oder Funktionen, die auf den Seiten ihrer Erweiterung definiert sind
  • Verwenden Sie Variablen oder Funktionen, die von Webseiten oder anderen Inhaltsskripten definiert werden

Daher können Sie die chrome.tabsAPI nur in Hintergrundseiten oder anderen Erweiterungsseiten verwenden. Sie können die Übergabe von Erweiterungsnachrichten verwenden , um die Verwendung einer Hintergrundseite anzufordern chrome.tabs.

Digitales Flugzeug
quelle
Ich verstehe nicht, was chrome.tabs verwendet. Könnte es eine meiner Chrome-Erweiterungen sein?
8k_of_power
3
Ja, dieser Fehler kann (ab sofort) nur von einer Chrome-Erweiterung ausgelöst werden.
5
Für mich war es MeasureIt! den Fehler verursachen.
Justin Bull
@weng Wenn der Fehler weiterhin auftritt, deaktivieren Sie einige Erweiterungen in Gruppen und prüfen Sie, ob der Fehler behoben ist.
Messe Es! Verursacht auch diesen Fehler für. Kann nicht die Mühe machen, den Code eines anderen zu debuggen, so dass ich es nur für den Moment ertrage.
1

Dies wird durch eine Erweiterung verursacht, die die chrome.tabsBerechtigung verwendet, ohne jedoch anzugeben, dass dies in dem manifest.jsonPaket mit der Erweiterung erfolgt. Der Trick besteht nicht nur darin, die verwendete Erweiterung zu finden chrome.tabs, sondern auch diejenige, die dies tut, ohne es anzukündigen.

Beginnen Sie mit einem stärker automatisierten Ansatz (mehrzeilige Befehle zur besseren Lesbarkeit): On * nix:

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

Unter Windows mit PowerShell:

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

Wechseln Sie dann zu der chrome://extensionsRegisterkarte, um die Verzeichnisse in den Ergebnissen den Erweiterungsnamen zuzuordnen, und klicken Sie auf die Berechtigungen der einzelnen Verzeichnisse, um zu sehen, von wem die Verwendung nicht eingeschränkt wird chrome.tabs. Beachten Sie, dass ich in der vierten Zeile des PowerShell-Snippets '10' indiziere, da dies die Anzahl der Pfadkomponenten C:\zum ExtensionsVerzeichnis ist. Es könnte auf Ihrem System anders sein.

In meinem Fall habe ich die Suche vollständig automatisiert, indem ich ein paar weitere Segmente in die Pipeline eingefügt habe:

$ 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

Nun schauen Sie in chrome://extensions:

Bildbeschreibung hier eingeben

Gehackt.

Bildbeschreibung hier eingeben

Ben Collins
quelle