summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpraschke <stel@comfy.monster>2023-10-29 22:17:08 +0000
committerpraschke <stel@comfy.monster>2023-10-29 23:22:22 +0000
commitbbefd8a07ba71d7fe5e9c707ddb06e99bfd2a502 (patch)
tree528d984e6f4b3f39e4502a6cf125f8fc30b86c6c
parente61a69fb9ed8ad1dc94b4695d9b9052f4a533a52 (diff)
nativeMessaging can always be optional
this is the only blocker to Firefox for Android.
-rw-r--r--dev/data/manifest-variants.json29
-rw-r--r--docs/permissions.md5
-rw-r--r--ext/js/extension/environment.js16
-rw-r--r--ext/permissions.html4
-rw-r--r--ext/settings.html2
5 files changed, 17 insertions, 39 deletions
diff --git a/dev/data/manifest-variants.json b/dev/data/manifest-variants.json
index 4d4ec301..139814fd 100644
--- a/dev/data/manifest-variants.json
+++ b/dev/data/manifest-variants.json
@@ -229,28 +229,15 @@
"gecko": {
"id": "{cb7c0bec-7085-4f84-8422-7b55a7c4467c}",
"strict_min_version": "115.0"
+ },
+ "gecko_android": {
+ "strict_min_version": "115.0"
}
}
},
{
"action": "remove",
"path": [
- "optional_permissions"
- ],
- "item": "nativeMessaging"
- },
- {
- "action": "add",
- "path": [
- "permissions"
- ],
- "items": [
- "nativeMessaging"
- ]
- },
- {
- "action": "remove",
- "path": [
"permissions"
],
"item": "offscreen"
@@ -332,13 +319,6 @@
"path": [
"permissions"
],
- "item": "webRequestBlocking"
- },
- {
- "action": "remove",
- "path": [
- "permissions"
- ],
"item": "offscreen"
},
{
@@ -365,6 +345,9 @@
],
"excludeFiles": [
"sw.js",
+ "offscreen.html",
+ "js/background/offscreen.js",
+ "js/background/offscreen-main.js",
"js/dom/simple-dom-parser.js",
"lib/parse5.js"
]
diff --git a/docs/permissions.md b/docs/permissions.md
index 8ab3bba5..b2b1a34c 100644
--- a/docs/permissions.md
+++ b/docs/permissions.md
@@ -27,15 +27,14 @@
Yomichan supports simulating the `Ctrl+C` (copy to clipboard) keyboard shortcut
when a definitions popup is open and focused.
-* `clipboardRead` (optional) <br>
+* `clipboardRead` _(optional)_ <br>
Yomichan supports automatically opening a search window when Japanese text is copied to the clipboard
while the browser is running, depending on how certain settings are configured.
This allows Yomichan to support scanning text from external applications, provided there is a way
to copy text from those applications to the clipboard.
-* `nativeMessaging` (optional on Chrome) <br>
+* `nativeMessaging` _(optional, unavailable on Firefox for Android)_ <br>
Yomichan has the ability to communicate with an optional native messaging component in order to support
parsing large blocks of Japanese text using
[MeCab](https://en.wikipedia.org/wiki/MeCab).
The installation of this component is optional and is not included by default.
- This permission is optional on Chrome, but required on Firefox, because Firefox does not permit it to be optional.
diff --git a/ext/js/extension/environment.js b/ext/js/extension/environment.js
index ec1e8612..ad5a19ae 100644
--- a/ext/js/extension/environment.js
+++ b/ext/js/extension/environment.js
@@ -31,8 +31,9 @@ class Environment {
}
async _loadEnvironmentInfo() {
- const browser = await this._getBrowser();
const os = await this._getOperatingSystem();
+ const browser = await this._getBrowser(os);
+
return {
browser,
platform: {os}
@@ -64,7 +65,7 @@ class Environment {
});
}
- async _getBrowser() {
+ async _getBrowser(os) {
try {
if (chrome.runtime.getURL('/').startsWith('ms-browser-extension://')) {
return 'edge-legacy';
@@ -76,17 +77,12 @@ class Environment {
// NOP
}
if (typeof browser !== 'undefined') {
- try {
- const info = await browser.runtime.getBrowserInfo();
- if (info.name === 'Fennec') {
- return 'firefox-mobile';
- }
- } catch (e) {
- // NOP
- }
if (this._isSafari()) {
return 'safari';
}
+ if (os === 'android') {
+ return 'firefox-mobile';
+ }
return 'firefox';
} else {
return 'chrome';
diff --git a/ext/permissions.html b/ext/permissions.html
index f6956cd7..376a9de5 100644
--- a/ext/permissions.html
+++ b/ext/permissions.html
@@ -94,9 +94,9 @@
<label class="toggle"><input type="checkbox" class="permissions-toggle" data-required-permissions="clipboardRead"><span class="toggle-body"><span class="toggle-track"></span><span class="toggle-knob"></span></span></label>
</div>
</div></div>
- <div class="settings-item"><div class="settings-item-inner">
+ <div class="settings-item" data-hide-for-browser="firefox-mobile"><div class="settings-item-inner">
<div class="settings-item-left">
- <div class="settings-item-label"><code>nativeMessaging</code> <span class="light" data-show-for-browser="chrome edge">(optional)</span></div>
+ <div class="settings-item-label"><code>nativeMessaging</code> <span class="light">(optional)</span></div>
<div class="settings-item-description">
Yomitan has the ability to communicate with an optional native messaging component in order to support
parsing large blocks of Japanese text using
diff --git a/ext/settings.html b/ext/settings.html
index f1001f90..8d5f0a76 100644
--- a/ext/settings.html
+++ b/ext/settings.html
@@ -1372,7 +1372,7 @@
</p>
</div>
</div>
- <div class="settings-item advanced-only">
+ <div class="settings-item advanced-only" data-hide-for-browser="firefox-mobile">
<div class="settings-item-inner">
<div class="settings-item-left">
<div class="settings-item-invalid-indicator"></div>