aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/js/pages/permissions-main.js4
-rw-r--r--ext/permissions.html23
2 files changed, 27 insertions, 0 deletions
diff --git a/ext/js/pages/permissions-main.js b/ext/js/pages/permissions-main.js
index 782ea9ec..66fa1d42 100644
--- a/ext/js/pages/permissions-main.js
+++ b/ext/js/pages/permissions-main.js
@@ -18,6 +18,7 @@
/* global
* DocumentFocusController
* PermissionsToggleController
+ * PersistentStorageController
* SettingsController
*/
@@ -92,6 +93,9 @@ function setupPermissionsToggles() {
const permissionsToggleController = new PermissionsToggleController(settingsController);
permissionsToggleController.prepare();
+ const persistentStorageController = new PersistentStorageController();
+ persistentStorageController.prepare();
+
await promiseTimeout(100);
document.documentElement.dataset.loaded = 'true';
diff --git a/ext/permissions.html b/ext/permissions.html
index 5bd6987f..699aca4f 100644
--- a/ext/permissions.html
+++ b/ext/permissions.html
@@ -153,6 +153,28 @@
<label class="toggle"><input type="checkbox" id="permission-checkbox-allow-file-url-access" disabled><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-left">
+ <div class="settings-item-label">Persistent storage</div>
+ <div class="settings-item-description">
+ <p>
+ Web browsers will sometimes clear stored data if the device is running low on storage space,
+ which can result in the imported dictionaries being deleted unexpectedly.
+ The persistent storage permission tells the browser that the data should not be deleted in those circumstances.
+ </p>
+ <p data-show-for-browser="firefox-mobile">
+ It may not be possible to enable this permission on Firefox for Android.
+ </p>
+ <p data-show-for-browser="chrome edge">
+ Chromium-based browsers should not need to enable this setting since the Yomichan extension has
+ the <code>unlimitedStorage</code> permission, which should prevent data deletion.<sup><a href="https://bugs.chromium.org/p/chromium/issues/detail?id=680392#c15" target="_blank" rel="noopener">[1]</a></sup>
+ </p>
+ </div>
+ </div>
+ <div class="settings-item-right">
+ <label class="toggle"><input type="checkbox" id="storage-persistent-checkbox"><span class="toggle-body"><span class="toggle-track"></span><span class="toggle-knob"></span></span></label>
+ </div>
+ </div></div>
</div>
<div class="footer-padding"></div>
@@ -172,6 +194,7 @@
<script src="/js/dom/document-focus-controller.js"></script>
<script src="/js/dom/html-template-collection.js"></script>
<script src="/js/pages/settings/permissions-toggle-controller.js"></script>
+<script src="/js/pages/settings/persistent-storage-controller.js"></script>
<script src="/js/pages/settings/settings-controller.js"></script>
<script src="/js/pages/permissions-main.js"></script>