background.js (1124B)
1 const port = browser.runtime.connectNative("browser"); 2 3 async function apiCall(message) { 4 const { type, since, removalOptions, dataTypes } = message; 5 switch (type) { 6 case "clear-downloads": 7 await browser.browsingData.removeDownloads({ since }); 8 break; 9 case "clear-form-data": 10 await browser.browsingData.removeFormData({ since }); 11 break; 12 case "clear-history": 13 await browser.browsingData.removeHistory({ since }); 14 break; 15 case "clear-passwords": 16 await browser.browsingData.removePasswords({ since }); 17 break; 18 case "clear": 19 await browser.browsingData.remove(removalOptions, dataTypes); 20 break; 21 case "get-settings": 22 return browser.browsingData.settings(); 23 } 24 return null; 25 } 26 27 port.onMessage.addListener(async message => { 28 const { uuid } = message; 29 try { 30 const result = await apiCall(message); 31 port.postMessage({ 32 type: "response", 33 result, 34 uuid, 35 }); 36 } catch (exception) { 37 const { message } = exception; 38 port.postMessage({ 39 type: "error", 40 error: message, 41 uuid, 42 }); 43 } 44 });