intermediate

This commit is contained in:
Fabian Freund
2024-09-13 09:11:06 +02:00
parent 3b047b5d8a
commit 37d2c84d7f
155 changed files with 5666 additions and 1816 deletions
@@ -0,0 +1,85 @@
'use strict';
console.log("Connecting to native port...")
const port = browser.runtime.connectNative("cookieManager");
console.log("Native port connected!")
function cookieToMap(cookie) {
let partitionKey = {}
if (cookie.partitionKey) {
partitionKey["topLevelSite"] = cookie.partitionKey.topLevelSite
}
return {
"domain": cookie.domain,
"expirationDate": cookie.expirationDate,
"firstPartyDomain": cookie.firstPartyDomain,
"hostOnly": cookie.hostOnly,
"httpOnly": cookie.httpOnly,
"name": cookie.name,
"partitionKey": partitionKey,
"path": cookie.path,
"secure": cookie.secure,
"session": cookie.session,
"sameSite": cookie.sameSite,
"storeId": cookie.storeId,
"value": cookie.value
}
}
function sendCookieResultForRequest(id) {
return function (cookie) {
port.postMessage({
"id": id,
"status": "success",
"result": cookieToMap(cookie)
})
}
}
function sendCookieListResultForRequest(id) {
return function (cookies) {
port.postMessage({
"id": id,
"status": "success",
"result": cookies.map((cookie) => cookieToMap(cookie))
})
}
}
function sendErrorForRequest(id) {
return function (error) {
console.error(error);
port.postMessage({
"id": id,
"status": "error",
"error": error
});
}
}
port.onMessage.addListener(message => {
let requestId = message["id"]
switch (message["action"]) {
case "get":
browser.cookies.get(message["args"])
.then(sendCookieResultForRequest(requestId))
.catch(sendErrorForRequest(requestId))
break
case "getAll":
browser.cookies.getAll(message["args"])
.then(sendCookieListResultForRequest(requestId))
.catch(sendErrorForRequest(requestId))
break
case "remove":
browser.cookies.remove(message["args"])
.then(sendCookieResultForRequest(requestId))
.catch(sendErrorForRequest(requestId))
break
case "set":
browser.cookies.set(message["args"])
.then(sendCookieResultForRequest(requestId))
.catch(sendErrorForRequest(requestId))
break
}
});
@@ -0,0 +1,23 @@
{
"manifest_version": 2,
"name": "cookie-manager",
"version": "1.0",
"description": "Cookie manager",
"browser_specific_settings": {
"gecko": {
"id": "cookie-manager@lensai.eu"
}
},
"background": {
"scripts": [
"background.js"
]
},
"permissions": [
"nativeMessaging",
"nativeMessagingFromContent",
"geckoViewAddons",
"cookies",
"<all_urls>"
]
}