aboutsummaryrefslogtreecommitdiffstats
path: root/src/background/run-ocr.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/background/run-ocr.ts')
-rw-r--r--src/background/run-ocr.ts49
1 files changed, 0 insertions, 49 deletions
diff --git a/src/background/run-ocr.ts b/src/background/run-ocr.ts
deleted file mode 100644
index 683f701..0000000
--- a/src/background/run-ocr.ts
+++ /dev/null
@@ -1,49 +0,0 @@
-import { OCRRequest, OCRResponse } from "@/shared/ocr-request";
-
-const OFFSCREEN_DOCUMENT_PATH = "offscreen/ocr/index.html";
-
-// Function to ensure the offscreen document is open
-/**
- * Ensures the offscreen OCR document is open. If it already exists
- * this is a no-op.
- */
-async function setupOffscreenDocument(): Promise<void> {
- if (await chrome.offscreen.hasDocument()) {
- return; // Offscreen document already open
- }
- await chrome.offscreen.createDocument({
- url: OFFSCREEN_DOCUMENT_PATH,
- reasons: [chrome.offscreen.Reason.CLIPBOARD],
- justification: "Performing OCR with Tesseract.js in a long-running context."
- });
-}
-
-// Listen for messages from content scripts (and popup if applicable)
-/**
- * Listens for `"OCR"` messages from content scripts. Forwards the
- * image data URL to an offscreen document for Tesseract.js processing
- * and sends the recognised text back to the caller.
- */
-chrome.runtime.onMessage.addListener(function(message: OCRRequest, _sender, sendResponse): boolean {
- if (message.type === "OCR" && message.dataURL) {
- void (async function(): Promise<void> {
- try {
- // Ensure the offscreen document is open
- await setupOffscreenDocument();
-
- // Send the OCR request to the offscreen document
- const offscreenResponse = await chrome.runtime.sendMessage<OCRRequest, OCRResponse>({
- type: "OFFSCREEN_OCR_REQUEST",
- dataURL: message.dataURL
- });
-
- sendResponse(offscreenResponse);
- } catch(error) {
- sendResponse({ success: false, error: (error as Error).message });
- }
- })();
- return true; // Indicate async response
- }
-
- return false;
-});