diff --git a/extension/background.js b/extension/background.js
index d333dc5..807ebad 100644
--- a/extension/background.js
+++ b/extension/background.js
@@ -133,6 +133,44 @@ async function subscribeLink(toSubscribe) {
}
+function buildCookieLine(cookie) {
+ return [
+ cookie.domain,
+ cookie.hostOnly.toString().toUpperCase(),
+ cookie.path,
+ cookie.httpOnly.toString().toUpperCase(),
+ cookie.expirationDate,
+ cookie.name,
+ cookie.value,
+ ].join("\t");
+}
+
+
+async function sendCookies() {
+ console.log("function sendCookies");
+
+ let cookieStores = await browserType.cookies.getAllCookieStores();
+ var cookieLines = [
+ "# Netscape HTTP Cookie File\n",
+ "# https://curl.haxx.se/rfc/cookie_spec.html\n",
+ "# This is a generated file! Do not edit.\n\n"
+ ];
+ for (let i = 0; i < cookieStores.length; i++) {
+ const cookieStore = cookieStores[i];
+ var allCookiesStore = await browserType.cookies.getAll({
+ domain: ".youtube.com",
+ storeId: cookieStore["id"]
+ });
+ for (let j = 0; j < allCookiesStore.length; j++) {
+ const cookie = allCookiesStore[j];
+ cookieLines.push(buildCookieLine(cookie));
+ }
+ }
+ console.log(cookieLines.join("\n"));
+
+}
+
+
// process and return message if needed
function handleMessage(request, sender, sendResponse) {
@@ -155,6 +193,9 @@ function handleMessage(request, sender, sendResponse) {
response.then(message => {
sendResponse(message)
})
+ } else if (request.cookie) {
+ console.log("backgound: " + JSON.stringify(request));
+ let response = sendCookies();
}
return true;
diff --git a/extension/index.html b/extension/index.html
index 26ee343..f82d66e 100644
--- a/extension/index.html
+++ b/extension/index.html
@@ -29,6 +29,10 @@
☐
+
+
+
+
diff --git a/extension/manifest-chrome.json b/extension/manifest-chrome.json
index 4e2f423..a85e40a 100644
--- a/extension/manifest-chrome.json
+++ b/extension/manifest-chrome.json
@@ -11,7 +11,11 @@
"default_popup": "index.html"
},
"permissions": [
- "storage"
+ "storage",
+ "cookies"
+ ],
+ "host_permissions": [
+ "*://*/*"
],
"content_scripts": [
{
diff --git a/extension/manifest-firefox.json b/extension/manifest-firefox.json
index 1996cf9..b848509 100644
--- a/extension/manifest-firefox.json
+++ b/extension/manifest-firefox.json
@@ -11,7 +11,9 @@
"default_popup": "index.html"
},
"permissions": [
- "storage"
+ "storage",
+ "cookies",
+ "*://*/*"
],
"content_scripts": [
{
diff --git a/extension/popup.js b/extension/popup.js
index 7043bfe..0c6e675 100644
--- a/extension/popup.js
+++ b/extension/popup.js
@@ -41,6 +41,28 @@ document.getElementById("status-icon").addEventListener("click", function() {
})
+// send cookie
+document.getElementById("send-cookies").addEventListener("click", function() {
+ sendCookie();
+})
+
+
+function sendCookie() {
+ console.log("popup send cookie");
+
+ function handleResponse(message) {
+ console.log("handle cookie response: " + message);
+ }
+
+ function handleError(error) {
+ console.log(`Error: ${error}`);
+ }
+
+ let sending = browserType.runtime.sendMessage({"cookie": true});
+ sending.then(handleResponse, handleError);
+}
+
+
// send ping message to TA backend
function pingBackend() {
diff --git a/extension/style.css b/extension/style.css
index 5da5b34..d68df8c 100644
--- a/extension/style.css
+++ b/extension/style.css
@@ -43,13 +43,15 @@ hr {
.login-form input {
margin: 3px 0;
}
-.submit {
+.submit,
+.cookie {
display: flex;
align-items: center;
justify-content: center;
}
.submit button,
-.youtube-page button {
+.youtube-page button,
+.cookie button {
margin: 10px;
border-radius: 0;
padding: 5px 13px;