diff --git a/src/background.ts b/src/background.ts index bfb7b963..c1a9e8e0 100644 --- a/src/background.ts +++ b/src/background.ts @@ -1,6 +1,7 @@ import * as CompileConfig from "../config.json"; import Config from "./config"; +import { Registration } from "./types"; // Make the config public for debugging purposes ( window).SB = Config; @@ -90,7 +91,7 @@ chrome.runtime.onInstalled.addListener(function (object) { * * @param {JSON} options */ -function registerFirefoxContentScript(options) { +function registerFirefoxContentScript(options: Registration) { const oldRegistration = contentScriptRegistrations[options.id]; if (oldRegistration) oldRegistration.unregister(); diff --git a/src/types.ts b/src/types.ts index bb1b0c6d..d7818e01 100644 --- a/src/types.ts +++ b/src/types.ts @@ -63,6 +63,21 @@ interface PreviewBarOption { opacity: string } + +interface Registration { + message: string, + id: string, + allFrames: boolean, + js: browser.extensionTypes.ExtensionFileOrCode[], + css: browser.extensionTypes.ExtensionFileOrCode[], + matches: string[] +} + +interface BackgroundScriptContainer { + registerFirefoxContentScript: (opts: Registration) => void, + unregisterFirefoxContentScript: (id: string) => void +} + type VideoID = string; export { @@ -74,5 +89,7 @@ export { SponsorTime, VideoID, SponsorHideType, - PreviewBarOption -}; \ No newline at end of file + PreviewBarOption, + Registration, + BackgroundScriptContainer +}; diff --git a/src/utils.ts b/src/utils.ts index 6e4f2a28..149d99cf 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,12 +1,12 @@ import Config from "./config"; -import { CategorySelection, SponsorTime, FetchResponse } from "./types"; +import { CategorySelection, SponsorTime, FetchResponse, BackgroundScriptContainer, Registration } from "./types"; import * as CompileConfig from "../config.json"; class Utils { // Contains functions needed from the background script - backgroundScriptContainer: any = null; + backgroundScriptContainer: BackgroundScriptContainer | null = null; // Used to add content scripts and CSS required js = [ @@ -19,7 +19,7 @@ class Utils { "popup.css" ]; - constructor(backgroundScriptContainer?: any) { + constructor(backgroundScriptContainer?: BackgroundScriptContainer) { this.backgroundScriptContainer = backgroundScriptContainer; } @@ -92,7 +92,7 @@ class Utils { firefoxCSS.push({file}); } - const registration = { + const registration: Registration = { message: "registerContentScript", id: "invidious", allFrames: true,