diff options
author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2023-12-29 00:01:11 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-29 05:01:11 +0000 |
commit | 0a68020771fc5b9dd437a90d5aac5e8a0c66719b (patch) | |
tree | 48a0c4c25977343dd15da06e19807f332ca62ddb /ext/js/accessibility/google-docs.js | |
parent | d90d408279938d389019a8bed15c5eb95af7c8bc (diff) |
Fix google docs (#473)
* Add support for content script execution world
* Update manifest version to support world parameter in Chromium browsers
* Update google docs injection
* Reuse code for registration
* Add info
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'; |