Compare commits

...

3 Commits

Author SHA1 Message Date
Ajay
b2e6e4f076 Fix tests 2023-02-01 19:55:01 -05:00
Ajay
6348bdccde bump version 2023-02-01 19:51:50 -05:00
Ajay
c3213eb040 Add invidious instances by default for safari
https://github.com/ajayyy/SponsorBlock/issues/798
2023-02-01 19:48:24 -05:00
5 changed files with 15 additions and 5 deletions

View File

@@ -1,7 +1,7 @@
{
"name": "__MSG_fullName__",
"short_name": "SponsorBlock",
"version": "5.1.13",
"version": "5.1.14",
"default_locale": "en",
"description": "__MSG_Description__",
"homepage_url": "https://sponsor.ajay.app",

View File

@@ -1,7 +1,7 @@
import * as CompileConfig from "../config.json";
import * as invidiousList from "../ci/invidiouslist.json";
import { Category, CategorySelection, CategorySkipOption, NoticeVisbilityMode, PreviewBarOption, SponsorTime, StorageChangesObject, Keybind, HashedValue, VideoID, SponsorHideType } from "./types";
import { keybindEquals } from "./utils/configUtils";
import { isSafari, keybindEquals } from "./utils/configUtils";
export interface Permission {
canSubmit: boolean;
@@ -180,7 +180,7 @@ const Config: SBObject = {
hideDiscordLaunches: 0,
hideDiscordLink: false,
invidiousInstances: ["invidious.snopyta.org"], // leave as default
supportInvidious: false,
supportInvidious: isSafari(),
serverAddress: CompileConfig.serverAddress,
minDuration: 0,
skipNoticeDuration: 4,
@@ -550,7 +550,8 @@ function migrateOldSyncFormats(config: SBConfig) {
}
// populate invidiousInstances with new instances if 3p support is **DISABLED**
if (!config["supportInvidious"] && config["invidiousInstances"].length !== invidiousList.length) {
// for safari, update it immediately
if ((isSafari() || !config["supportInvidious"]) && config["invidiousInstances"].length !== invidiousList.length) {
config["invidiousInstances"] = invidiousList;
}

View File

@@ -4,6 +4,7 @@ import { CategorySelection, SponsorTime, FetchResponse, BackgroundScriptContaine
import * as CompileConfig from "../config.json";
import { findValidElement, findValidElementFromSelector } from "./utils/pageUtils";
import { waitFor } from "@ajayyy/maze-utils";
import { isSafari } from "./utils/configUtils";
export default class Utils {
@@ -236,6 +237,8 @@ export default class Utils {
}
containsInvidiousPermission(): Promise<boolean> {
if (isSafari()) return Promise.resolve(true);
return new Promise((resolve) => {
let permissions = ["declarativeContent"];
if (this.isFirefox()) permissions = [];

View File

@@ -6,7 +6,7 @@ export function showDonationLink(): boolean {
}
export function isSafari(): boolean {
return navigator.vendor === "Apple Computer, Inc.";
return typeof(navigator) !== "undefined" && navigator.vendor === "Apple Computer, Inc.";
}
export function keybindEquals(first: Keybind, second: Keybind): boolean {

View File

@@ -3,6 +3,7 @@
const webpack = require("webpack");
const path = require('path');
const { validate } = require('schema-utils');
const invidiousList = require("../ci/invidiouslist.json");
const fs = require('fs');
@@ -49,6 +50,11 @@ class BuildManifest {
mergeObjects(manifest, chromeManifestExtra);
} else if (this.options.browser.toLowerCase() === "safari") {
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") {