Tesseract.js не работает в расширении Google ChromeJavascript

Форум по Javascript
Ответить
Anonymous
 Tesseract.js не работает в расширении Google Chrome

Сообщение Anonymous »

Я использую Tesseract.js для чтения текста из изображения в расширении Google Chrome, но столкнулся с проблемой: Tesseract.js включает worker.min.js из CDN во время выполнения и CSP Chrome не позволяет использовать внешние скрипты. Я делюсь своим манифестом.json и позвольте мне объяснить, что я пробовал до сих пор, хотя ни одна из попыток не сработала.
Я пробовал различные подходы, такие как использование локального рабочего сценария (см. код ниже), но это также было запрещено, поскольку локальный сценарий загружается с использованием расширения://app_id/worker.min.js. Я также пробовал разные варианты в "extension_pages": "script-src 'self'; object-src 'self';", такие как blob: и "wasm-unsafe-eval" , но ни один из них не решил проблему.
// initiate local script
const worker = Tesseract.createWorker({
workerPath: chrome.runtime.getURL('assets/worker.min.js'),
corePath: chrome.runtime.getURL('assets/tesseract-core.wasm.js'),
langPath: chrome.runtime.getURL('assets/lang/')
});

// initiate with local worker script using blob

const worker = Tesseract.createWorker({
workerPath: blobURL,
corePath: chrome.runtime.getURL('tesseract-core.wasm.js'),
langPath: chrome.runtime.getURL('lang/')
});

{
"manifest_version": 3,
"name": "Test Study",
"version": "1.0",
"description": "Generate quizzes and flashcards from selected text and screenshots.",
"permissions": [
"contextMenus",
"tabs",
"activeTab",
"scripting",
"storage",
"identity"
],
"oauth2": {
"client_id": "************************.apps.googleusercontent.com",
"scopes": [
"email",
"profile",
"https://www.googleapis.com/auth/userinfo.email",
"https://www.googleapis.com/auth/userinfo.profile"
]
},
"background": {
"service_worker": "background.js"
},
"host_permissions": [
"http://localhost:4200/*",
"https://app.testudy.io/*",
"https://app2.testudy.io/*",
""
],
"action": {
"default_popup": "index.html",
"default_icon": {
"16": "logo_16.png",
"24": "logo_24.png",
"32": "logo_32.png"
}
},
"icons": {
"16": "logo_16.png",
"48": "logo.png",
"128": "logo.png"
},
"content_security_policy": {
"extension_pages": "script-src 'self'; object-src 'self';"
},
"content_scripts": [
{
"matches": [
"http://localhost:4200/*",
"http://localhost/*",
"https://app.testudy.io/*",
"https://app2.testudy.io/*"
],
"js": ["content.js"],
"run_at": "document_end"
}
],
"web_accessible_resources": [
{
"resources": ["worker.min.js"],
"matches": [""]
}
]
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... -extension
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»