about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/assets/javascripts/helpers/youtube/invidious-preferences.js51
-rw-r--r--src/assets/javascripts/helpers/youtube/youtube.js41
-rw-r--r--src/manifest.json2
-rw-r--r--src/pages/background/background.js5
-rw-r--r--src/pages/options/youtube/invidious.js10
-rw-r--r--src/pages/options/youtube/youtube.html5
-rw-r--r--src/pages/stylesheets/Open_Sans.zipbin3624112 -> 0 bytes
7 files changed, 70 insertions, 44 deletions
diff --git a/src/assets/javascripts/helpers/youtube/invidious-preferences.js b/src/assets/javascripts/helpers/youtube/invidious-preferences.js
new file mode 100644
index 00000000..f60031fc
--- /dev/null
+++ b/src/assets/javascripts/helpers/youtube/invidious-preferences.js
@@ -0,0 +1,51 @@
+window.browser = window.browser || window.chrome;
+
+function getCookie() {
+    for (const c of document.cookie.split(";")) {
+        while (c.charAt(0) == " ") c = c.substring(1, c.length);
+        if (c.indexOf("PREFS=") == 0)
+            return JSON.parse(
+                decodeURIComponent(c.substring("PREFS=".length, c.length))
+            );
+    }
+    return {};
+}
+
+browser.storage.local.get(
+    [
+        "invidiousAlwaysProxy",
+        "invidiousSubtitles",
+        "invidiousPlayerStyle",
+        "youtubeVolume",
+        "youtubeAutoplay",
+        "OnlyEmbeddedVideo",
+        "youtubeTheme",
+        "invidiousVideoQuality",
+    ], (result) => {
+        let prefs = getCookie();
+        let oldPrefs = { ...prefs };
+
+        if (result.invidiousAlwaysProxy !== undefined && prefs.local !== result.invidiousAlwaysProxy)
+            prefs.local = result.invidiousAlwaysProxy;
+
+        if (result.invidiousVideoQuality !== undefined && prefs.quality !== result.invidiousVideoQuality)
+            prefs.quality = result.invidiousVideoQuality;
+
+        if (result.youtubeTheme !== undefined && prefs.dark_mode !== result.youtubeTheme)
+            prefs.dark_mode = result.youtubeTheme;
+
+        if (result.youtubeVolume !== undefined && prefs.volume !== result.youtubeVolume)
+            prefs.volume = result.youtubeVolume;
+
+        if (result.invidiousPlayerStyle !== undefined && prefs.player_style !== result.invidiousPlayerStyle)
+            prefs.player_style = result.invidiousPlayerStyle;
+
+        if (result.invidiousSubtitles !== undefined && prefs.subtitles === result.invidiousSubtitles)
+            prefs.subtitles = result.invidiousSubtitles;
+
+        if (result.youtubeAutoplay !== undefined && prefs.autoplay !== result.youtubeAutoplay)
+            prefs.autoplay = result.youtubeAutoplay;
+
+        if (prefs != oldPrefs) document.cookie = `PREFS=${encodeURIComponent(JSON.stringify(prefs))}`;
+    }
+)
diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js
index 243561d0..55f7d7d6 100644
--- a/src/assets/javascripts/helpers/youtube/youtube.js
+++ b/src/assets/javascripts/helpers/youtube/youtube.js
@@ -564,7 +564,7 @@ function addUrlParams(url) {
   else return;
 }
 
-function initPipedLocalStorage(url, tabId) {
+function initPipedLocalStorage(tabId) {
   browser.tabs.executeScript(
     tabId,
     {
@@ -574,37 +574,12 @@ function initPipedLocalStorage(url, tabId) {
   );
 }
 
-function invidiousInitCookies(url) {
-  console.log("invidiousInitCookies");
-  browser.cookies.get({
-    url: url,
-    name: "PREFS"
-  }).then(
-    cookie => {
-      let prefs = {};
-      if (cookie) prefs = JSON.parse(decodeURIComponent(cookie.value));
-      let oldPrefs = { ...prefs };
-
-      if (invidiousAlwaysProxy != "DEFAULT" && prefs.local !== invidiousAlwaysProxy) prefs.local = invidiousAlwaysProxy;
-
-      if (invidiousVideoQuality != "DEFAULT" && prefs.quality !== invidiousVideoQuality) prefs.quality = invidiousVideoQuality;
-
-      if (theme != "DEFAULT" && prefs.dark_mode !== theme) prefs.dark_mode = theme;
-
-      if (volume != "--" && prefs.volume !== volume) prefs.volume = volume;
-
-      if (invidiousPlayerStyle != "DEFAULT" && prefs.player_style !== invidiousPlayerStyle) prefs.player_style = invidiousPlayerStyle;
-
-      if (invidiousSubtitles != "DEFAULT" && prefs.subtitles === invidiousSubtitles) prefs.subtitles = invidiousSubtitles;
-
-      if (autoplay != "DEFAULT" && prefs.autoplay !== autoplay) prefs.autoplay = autoplay;
-
-      if (oldPrefs != prefs)
-        browser.cookies.set({
-          url: url,
-          name: "PREFS",
-          value: encodeURIComponent(JSON.stringify(prefs))
-        })
+function initInvidiousCookies(tabId) {
+  browser.tabs.executeScript(
+    tabId,
+    {
+      file: "/assets/javascripts/helpers/youtube/invidious-preferences.js",
+      runAt: "document_start"
     }
   );
 }
@@ -695,7 +670,7 @@ async function init() {
 export default {
   getBypassWatchOnYoutube,
   setBypassWatchOnYoutube,
-  invidiousInitCookies,
+  initInvidiousCookies,
   initPipedLocalStorage,
 
   getFrontend,
diff --git a/src/manifest.json b/src/manifest.json
index d9286bce..53b7a518 100644
--- a/src/manifest.json
+++ b/src/manifest.json
@@ -16,9 +16,9 @@
   },
   "permissions": [
     "storage",
+    "cookies",
     "webRequest",
     "webRequestBlocking",
-    "cookies",
     "<all_urls>"
   ],
   "browser_action": {
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index d77495e0..13bbb5d4 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -50,6 +50,7 @@ browser.webRequest.onBeforeRequest.addListener(
     var newUrl;
 
     if (!newUrl) newUrl = youtubeHelper.redirect(url, details, initiator)
+    if (youtubeHelper.isPipedorInvidious(newUrl ?? url, details.type)) newUrl = youtubeHelper.addUrlParams(newUrl ?? url);
     if (youtubeMusicHelper.isYoutubeMusic(url, initiator)) newUrl = youtubeMusicHelper.redirect(url, details.type)
 
     if (twitterHelper.isTwitter(url, initiator)) newUrl = twitterHelper.redirect(url);
@@ -106,6 +107,6 @@ browser.tabs.onRemoved.addListener((tabId) => {
 
 browser.tabs.onUpdated.addListener(
   (tabId, changeInfo, _) => {
-    if (changeInfo.url && youtubeHelper.isUrlPipedorInvidious(changeInfo.url, 'piped')) youtubeHelper.initPipedLocalStorage(changeInfo.url, tabId);
-    if (changeInfo.url && youtubeHelper.isUrlPipedorInvidious(changeInfo.url, 'invidious')) youtubeHelper.invidiousInitCookies(changeInfo.url);
+    if (changeInfo.url && youtubeHelper.isUrlPipedorInvidious(changeInfo.url, 'piped')) youtubeHelper.initPipedLocalStorage(tabId);
+    // if (changeInfo.url && youtubeHelper.isUrlPipedorInvidious(changeInfo.url, 'invidious')) youtubeHelper.initInvidiousCookies(tabId);
   });
\ No newline at end of file
diff --git a/src/pages/options/youtube/invidious.js b/src/pages/options/youtube/invidious.js
index 2b6f7275..76c9b1ab 100644
--- a/src/pages/options/youtube/invidious.js
+++ b/src/pages/options/youtube/invidious.js
@@ -21,10 +21,10 @@ invidiousSubtitlesElement.addEventListener("change",
     () => youtubeHelper.setInvidiousSubtitles(invidiousSubtitlesElement.value)
 );
 
-let persistInvidiousPrefsElement = document.getElementById("persist-invidious-prefs");
-persistInvidiousPrefsElement.addEventListener("change",
-    (event) => youtubeHelper.setPersistInvidiousPrefs(event.target.checked)
-);
+// let persistInvidiousPrefsElement = document.getElementById("persist-invidious-prefs");
+// persistInvidiousPrefsElement.addEventListener("change",
+//     (event) => youtubeHelper.setPersistInvidiousPrefs(event.target.checked)
+// );
 
 
 youtubeHelper.init().then(() => {
@@ -33,7 +33,7 @@ youtubeHelper.init().then(() => {
     console.log("youtubeHelper.getInvidiousAlwaysProxy()", youtubeHelper.getInvidiousAlwaysProxy())
     invidiousVideoQualityElement.value = youtubeHelper.getInvidiousVideoQuality();
     invidiousSubtitlesElement.value = youtubeHelper.getInvidiousSubtitles();
-    persistInvidiousPrefsElement.checked = youtubeHelper.getPersistInvidiousPrefs();
+    // persistInvidiousPrefsElement.checked = youtubeHelper.getPersistInvidiousPrefs();
 
     commonHelper.processDefaultCustomInstances(
         'invidious',
diff --git a/src/pages/options/youtube/youtube.html b/src/pages/options/youtube/youtube.html
index b86936b1..5608975d 100644
--- a/src/pages/options/youtube/youtube.html
+++ b/src/pages/options/youtube/youtube.html
@@ -212,14 +212,13 @@
         <input id="invidious-subtitles" placeholder="en, ar, es" type="text" />
       </div>
 
-      <div class="some-block option-block">
+      <!-- <div class="some-block option-block">
         <h4>Persist preferences (as cookie)</h4>
         <input id="persist-invidious-prefs" type="checkbox" checked />
-      </div>
+      </div> -->
 
       <hr>
 
-
       <div id="invidious-normal">
         <div class="some-block option-block">
           <h4>Default Instances</h4>
diff --git a/src/pages/stylesheets/Open_Sans.zip b/src/pages/stylesheets/Open_Sans.zip
deleted file mode 100644
index 82645e94..00000000
--- a/src/pages/stylesheets/Open_Sans.zip
+++ /dev/null
Binary files differ