Я завжди отримую цю помилку в консолі Chrome.
Uncaught Error: chrome.tabs is not supported in content scripts. See the content scripts documentation for more details.
Але все працює добре.
Хтось знає, що викликає це, і як я можу це вирішити?
Я завжди отримую цю помилку в консолі Chrome.
Uncaught Error: chrome.tabs is not supported in content scripts. See the content scripts documentation for more details.
Але все працює добре.
Хтось знає, що викликає це, і як я можу це вирішити?
Відповіді:
Зазвичай причиною є неправильне подовження. У моєму випадку це було "MeasureIt!". Визначити, яке розширення створює проблеми, ви можете будь-який
або
chrome://extensionsbackground.htmlдля кожного розширенняНе можна використовувати chrome.tabsу скриптах із вмістом. Згідно з документацією ,
... скрипти вмісту мають деякі обмеження. Вони не можуть:
- Використовуйте API chrome. * (Крім частин chrome.extension)
- Використовуйте змінні або функції, визначені на сторінках їх розширення
- Використовуйте змінні або функції, визначені веб-сторінками або іншими скриптами вмісту
Отже, ви можете використовувати chrome.tabsAPI лише на фонових сторінках чи інших сторінках розширень. Ви можете використовувати повідомлення про розширення, щоб подати запит на використання фонової сторінки chrome.tabs.
Це спричинено розширенням з використанням chrome.tabsдозволу, але не вказуючи, що це робиться в manifest.jsonупаковці з розширенням. Хитрість полягає не в тому, щоб знайти розширення, яке використовує chrome.tabs, а знайти те, що це робить, не оголошуючи про це.
Почніть з більш автоматизованого підходу (багаторядкові команди для читабельності): On * nix:
$ find . -type f \
> | xargs grep -l chrome.tabs \
> | cut -d '/' -f 2 \
> | uniq
У Windows за допомогою PowerShell:
> gci -rec |? {-not $_.PSIsContainer} `
>> | sls 'chrome.tabs' `
>> | select -Unique Path `
>> |% {$_.Path.Split('\')[10] } `
>> | select -Unique
>>
Потім перейдіть на chrome://extensionsвкладку, щоб зіставити каталоги в результатах з іменами розширень, і натисніть на дозволи кожного з них, щоб побачити, хто не працює з їх використанням chrome.tabs. Зауважте, що у 4-му рядку фрагмента PowerShell я індексую "10", оскільки саме так є багато компонентів шляху C:\до Extensionsкаталогу; у вашій системі це може бути інакше.
У моєму випадку я повністю автоматизував пошук, додавши ще пару сегментів до конвеєра:
$ 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
Тепер, дивлячись chrome://extensions:

Розпущений.
