Files
chrome-extenstions/foxyproxy/content/browsing-data.js
2026-01-20 21:53:59 +03:30

35 lines
1.2 KiB
JavaScript

import {App} from './app.js';
// ---------- browsingData (Side Effect) -------------------
class BrowsingData {
static {
document.querySelector('#deleteBrowsingData').addEventListener('click', () => this.process());
this.init();
}
static async init() {
// https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/permissions/request
// Any permissions granted are retained by the extension, even over upgrade and disable/enable cycling.
// check if permission is granted
this.permission = await browser.permissions.contains({permissions: ['browsingData']});
}
static async process() {
if (!this.permission) {
// request permission
// Chrome appears to return true, granted silently without a popup prompt
this.permission = await browser.permissions.request({permissions: ['browsingData']});
if (!this.permission) { return; }
}
if (!confirm(browser.i18n.getMessage('deleteBrowsingDataConfirm'))) { return; }
browser.browsingData.remove({}, {
cookies: true,
indexedDB: true,
localStorage: true
})
.catch(error => App.notify(browser.i18n.getMessage('deleteBrowsingData') + '\n\n' + error.message));
}
}