diff options
Diffstat (limited to 'ext/js/accessibility/google-docs.js')
-rw-r--r-- | ext/js/accessibility/google-docs.js | 61 |
1 files changed, 4 insertions, 57 deletions
diff --git a/ext/js/accessibility/google-docs.js b/ext/js/accessibility/google-docs.js index 4bc398ff..00266bb6 100644 --- a/ext/js/accessibility/google-docs.js +++ b/ext/js/accessibility/google-docs.js @@ -1,6 +1,5 @@ /* * Copyright (C) 2023 Yomitan Authors - * Copyright (C) 2021-2022 Yomichan Authors * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,59 +15,7 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -(async () => { - // Reentrant check - // @ts-expect-error - Checking a property to the global object - if (self.googleDocsAccessibilitySetup) { return; } - // @ts-expect-error - Adding a property to the global object - self.googleDocsAccessibilitySetup = true; - - /** - * @template {import('api').ApiNames} TAction - * @template {import('api').ApiParams<TAction>} TParams - * @param {TAction} action - * @param {TParams} params - * @returns {Promise<import('api').ApiReturn<TAction>>} - */ - const invokeApi = (action, params) => { - return new Promise((resolve, reject) => { - chrome.runtime.sendMessage({action, params}, (response) => { - void chrome.runtime.lastError; - if (typeof response !== 'object' || response === null) { - reject(new Error('Unexpected response')); - } else if (typeof response.error !== 'undefined') { - reject(new Error('Invalid response')); - } else { - resolve(response.result); - } - }); - }); - }; - - const optionsContext = {depth: 0, url: location.href}; - /** @type {import('api').ApiReturn<'optionsGet'>} */ - let options; - try { - options = await invokeApi('optionsGet', {optionsContext}); - } catch (e) { - return; - } - - if (!options.accessibility.forceGoogleDocsHtmlRendering) { return; } - - // The extension ID below is on an allow-list that is used on the Google Docs webpage. - /* eslint-disable */ - // @ts-expect-error : Adding a property to the global object - const inject = () => { window._docs_annotate_canvas_by_ext = 'ogmnaimimemjmbakcfefmnahgdfhfami'; }; - /* eslint-enable */ - - let parent = document.head; - if (parent === null) { - parent = document.documentElement; - if (parent === null) { return; } - } - const script = document.createElement('script'); - script.textContent = `(${inject.toString()})();`; - parent.appendChild(script); - parent.removeChild(script); -})(); +// The extension ID below is on an allow-list that is used on the Google Docs webpage. +// @ts-expect-error - Adding a property to the global object +// eslint-disable-next-line no-underscore-dangle +window._docs_annotate_canvas_by_ext = 'ogmnaimimemjmbakcfefmnahgdfhfami'; |