Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Permissions fixups #293

Merged
merged 5 commits into from
Nov 2, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 6 additions & 40 deletions dev/data/manifest-variants.json
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,6 @@
"clipboardWrite",
"unlimitedStorage",
"declarativeNetRequest",
"webRequest",
"scripting",
"offscreen"
],
Expand Down Expand Up @@ -230,41 +229,12 @@
"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": "add",
"path": [
"permissions"
],
"items": [
"webRequestBlocking"
]
},
{
"action": "remove",
"path": [
"permissions"
],
"item": "declarativeNetRequest"
},
{
"action": "remove",
"path": [
Expand Down Expand Up @@ -344,13 +314,6 @@
],
"item": "clipboardRead"
},
{
"action": "remove",
"path": [
"permissions"
],
"item": "webRequestBlocking"
},
{
"action": "remove",
"path": [
Expand Down Expand Up @@ -382,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"
]
Expand Down
23 changes: 6 additions & 17 deletions docs/permissions.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,26 +9,16 @@
`unlimitedStorage` is used to help prevent web browsers from unexpectedly
deleting dictionary data.

* `webRequest` <br>
Yomichan uses this permission to collect audio or create Anki notes using
[AnkiConnect](https://ankiweb.net/shared/info/2055492159).
It is also required to surface error information from failed requests.

* `webRequestBlocking` _(Firefox only)_ <br>
Yomichan uses this permission to ensure certain requests have valid and secure headers.
This sometimes involves removing or changing the `Origin` request header,
as this can be used to fingerprint browser configuration.

* `declarativeNetRequest` _(Chrome only)_ <br>
* `declarativeNetRequest` <br>
Yomichan uses this permission to ensure certain requests have valid and secure headers.
This sometimes involves removing or changing the `Origin` request header,
as this can be used to fingerprint browser configuration.

* `scripting` _(Manifest V3 only)_ <br>
Yomichan will sometimes need to inject stylesheets into webpages in order to
* `scripting` <br>
Yomichan needs to inject content scripts and stylesheets into webpages in order to
properly display the search popup.

* `offscreen` __(Chrome only)_ <br>
* `offscreen` _(Chrome only)_ <br>
Yomitan uses this permission to create a secondary backend document that has DOM access, given that Manifest v3
service workers do not. Service workers can then reach out to out to this document in order to complete
actions that require access to DOM APIs, such as any that require clipboard access.
Expand All @@ -37,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.
Loading