oc?.engineStatus === "error") { this.#translatedDoc.destroy(); this.#translatedDoc = null; } if (this.#translatedDoc) { console.error("This page was already translated."); return undefined; } const { isFindBarOpen, languagePair, port } = data; if ( !TranslationsChild.#translationsCache || !TranslationsChild.#translationsCache.matches(languagePair) ) { TranslationsChild.#translationsCache = new lazy.LRUCache( languagePair ); } this.#translatedDoc = new lazy.TranslationsDocument( this.document, languagePair.sourceLanguage, languagePair.targetLanguage, this.contentWindow.windowGlobalChild.innerWindowId, port, () => this.sendAsyncMessage("Translations:RequestPort"), () => this.sendAsyncMessage("Translations:ReportFirstVisibleChange"), TranslationsChild.#translationsCache, isFindBarOpen ); return undefined; } case "Translations:GetDocumentElementLang": { return this.document.documentElement.lang; } case "Translations:IsDocumentReady": { const state = this.document.readyState; return state === "interactive" || state === "complete"; } case "Translations:AcquirePort": { this.addProfilerMarker("Acquired a port, resuming translations"); this.#translatedDoc.acquirePort(data.port); return undefined; } default: throw new Error("Unknown message.", name); } } } PK