Legacy-сборка pdf.js: «Не удалось открыть PDF» в Яндекс Браузере (#22) #23
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/22-pdfjs-legacy"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #22.
Причина. Воркер обычной сборки pdfjs-dist 5.7 (
build/pdf.worker.mjs) при открытии документа вызываетUint8Array.prototype.toHex(отпечаток документа). Метод появился в Chromium 140; у Яндекс Браузера ядро старше, поэтомуgetDocumentпадаетUnknownErrorException: a.toHex is not a function, а карточка «Исходный документ» показывает «Не удалось открыть PDF». В Node 24 метода тоже нет.Что сделано.
src/widgets/DocumentReview/pdfjs.ts: модуль и воркер берутся изpdfjs-dist/legacy/build(в них полифиллы core-js, включаяtoHex);PdfPagesимпортирует его.pdfjs.test.ts: удаляетUint8Array.prototype.toHex, открывает минимальный PDF через наш модуль и ждёт одну страницу. Без legacy-сборки тест не проходит.Проверки (worktree, node_modules — симлинк на установленные зависимости той же
package.json): vitest 21 файл / 125 тестов зелёные;tsc --noEmitчисто;biome check src— 0 ошибок (7 старых warning);rsbuild buildсобирается, вdist/static/assets/ложится legacy-воркер с полифиллом.Rulings I made.
node_modules(без@types/node), потому чтоnew URL(<пакет>, import.meta.url)под vitest не резолвится.Остаток для владельца.
docs/dev/qa-guide.md, таблица неполадок: строка «Скан PDF не отображается — старый браузер» теперь неактуальна для Яндекс Браузера.🤖 Generated with Claude Code