Make invidious instances work on safari

This commit is contained in:
Ajay
2023-02-07 17:42:22 -05:00
parent 3716c8aa80
commit bbb234e498
4 changed files with 6 additions and 15 deletions

View File

@@ -442,7 +442,7 @@
<div id="advanced" class="option-group hidden"> <div id="advanced" class="option-group hidden">
<div id="support-invidious" data-type="toggle" data-sync="supportInvidious" data-no-safari="true"> <div id="support-invidious" data-type="toggle" data-sync="supportInvidious">
<div class="switch-container"> <div class="switch-container">
<label class="switch"> <label class="switch">
<input id="supportInvidious" type="checkbox"> <input id="supportInvidious" type="checkbox">
@@ -457,7 +457,7 @@
<div class="small-description">__MSG_supportOtherSitesDescription__ </div> <div class="small-description">__MSG_supportOtherSitesDescription__ </div>
</div> </div>
<div data-type="private-text-change" data-sync="invidiousInstances" data-no-safari="true" data-dependent-on="supportInvidious"> <div data-type="private-text-change" data-sync="invidiousInstances" data-dependent-on="supportInvidious">
<div class="option-button trigger-button"> <div class="option-button trigger-button">
__MSG_addInvidiousInstance__ __MSG_addInvidiousInstance__
</div> </div>

View File

@@ -180,7 +180,7 @@ const Config: SBObject = {
hideDiscordLaunches: 0, hideDiscordLaunches: 0,
hideDiscordLink: false, hideDiscordLink: false,
invidiousInstances: ["invidious.snopyta.org"], // leave as default invidiousInstances: ["invidious.snopyta.org"], // leave as default
supportInvidious: isSafari(), supportInvidious: false,
serverAddress: CompileConfig.serverAddress, serverAddress: CompileConfig.serverAddress,
minDuration: 0, minDuration: 0,
skipNoticeDuration: 4, skipNoticeDuration: 4,

View File

@@ -119,8 +119,8 @@ export default class Utils {
* @param {CallableFunction} callback * @param {CallableFunction} callback
*/ */
setupExtraSitePermissions(callback: (granted: boolean) => void): void { setupExtraSitePermissions(callback: (granted: boolean) => void): void {
// Request permission let permissions = ["webNavigation"];
let permissions = ["declarativeContent", "webNavigation"]; if (!isSafari()) permissions.push("declarativeContent");
if (this.isFirefox() && !isSafari()) permissions = []; if (this.isFirefox() && !isSafari()) permissions = [];
chrome.permissions.request({ chrome.permissions.request({
@@ -213,8 +213,6 @@ export default class Utils {
} }
containsInvidiousPermission(): Promise<boolean> { containsInvidiousPermission(): Promise<boolean> {
if (isSafari()) return Promise.resolve(true);
return new Promise((resolve) => { return new Promise((resolve) => {
let permissions = ["declarativeContent"]; let permissions = ["declarativeContent"];
if (this.isFirefox()) permissions = []; if (this.isFirefox()) permissions = [];

View File

@@ -3,8 +3,6 @@
const webpack = require("webpack"); const webpack = require("webpack");
const path = require('path'); const path = require('path');
const { validate } = require('schema-utils'); const { validate } = require('schema-utils');
const invidiousList = require("../ci/invidiouslist.json");
const fs = require('fs'); const fs = require('fs');
const manifest = require("../manifest/manifest.json"); const manifest = require("../manifest/manifest.json");
@@ -50,11 +48,6 @@ class BuildManifest {
mergeObjects(manifest, chromeManifestExtra); mergeObjects(manifest, chromeManifestExtra);
} else if (this.options.browser.toLowerCase() === "safari") { } else if (this.options.browser.toLowerCase() === "safari") {
mergeObjects(manifest, safariManifestExtra); mergeObjects(manifest, safariManifestExtra);
// Add all invidious instances as options for the content script
for (const instance of invidiousList) {
manifest.content_scripts[0].matches.push(`*://*.${instance}/*`);
}
} }
if (this.options.stream === "beta") { if (this.options.stream === "beta") {