From 883f9a6f0b64748a6dc696dc36faa464b7314965 Mon Sep 17 00:00:00 2001 From: Nils Maier Date: Wed, 2 Oct 2019 04:03:44 +0200 Subject: [PATCH] Add Changelog --- changelog/index.html | 473 +++++++++++++++++++++++ changelog/res/ReenieBeanie-Regular.woff2 | Bin 0 -> 28480 bytes changelog/res/background-tile.png | Bin 0 -> 13852 bytes changelog/res/footerbg.png | Bin 0 -> 10323 bytes changelog/res/halo.svg | 55 +++ lib/background.ts | 24 ++ lib/browser.ts | 52 +-- 7 files changed, 581 insertions(+), 23 deletions(-) create mode 100644 changelog/index.html create mode 100644 changelog/res/ReenieBeanie-Regular.woff2 create mode 100644 changelog/res/background-tile.png create mode 100644 changelog/res/footerbg.png create mode 100644 changelog/res/halo.svg diff --git a/changelog/index.html b/changelog/index.html new file mode 100644 index 0000000..4637f46 --- /dev/null +++ b/changelog/index.html @@ -0,0 +1,473 @@ + + + + + + DownThemAll! Changes + + + + + +
+

DownThemAll needs your support!

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

It requires a lot of time and some money to create the extension, keep up with browser + changes, read and answer emails, bug reports and feature requests, and actually publish the final versions. + Any contribution is appreciated. Thank you!

+ +

Major version changes

+

Version 4.2 Grune 42, Year of the Sneezing Panda

+ + +

Version 4.1 September 21, 2019

+ + +

Version 4.0 August 31, 2019

+

DownThemAll! reborn, as a WebExtension

+
+ + + + + \ No newline at end of file diff --git a/changelog/res/ReenieBeanie-Regular.woff2 b/changelog/res/ReenieBeanie-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..41b11547de78541fde9fd885cea03affd422e23e GIT binary patch literal 28480 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 literal 0 HcmV?d00001 diff --git a/changelog/res/background-tile.png b/changelog/res/background-tile.png new file mode 100644 index 0000000000000000000000000000000000000000..37f8f603ff6e4f912672a1fb99b01c59ecfce7c8 GIT binary patch literal 13852 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/background.ts b/lib/background.ts index d2b2bef..e0e16d7 100644 --- a/lib/background.ts +++ b/lib/background.ts @@ -22,6 +22,8 @@ import { runtime, history, sessions, + // eslint-disable-next-line no-unused-vars + OnInstalled, } from "./browser"; import { Bus } from "./bus"; import { filterInSitu } from "./util"; @@ -135,6 +137,28 @@ class Handler { } } +function getMajor(version?: string) { + if (!version) { + return ""; + } + const match = version.match(/^\d+\.\d+/); + if (!match) { + return ""; + } + return match[0]; +} + +runtime.onInstalled.addListener(({reason, previousVersion}: OnInstalled) => { + const {version} = runtime.getManifest(); + const major = getMajor(version); + const prevMajor = getMajor(previousVersion); + if (reason === "install" || (reason === "update" && major !== prevMajor)) { + tabs.create({ + url: `https://about.downthemall.org/changelog/?cur=${major}&prev=${prevMajor}`, + }); + } +}); + locale.then(() => { const menuHandler = new class Menus extends Handler { constructor() { diff --git a/lib/browser.ts b/lib/browser.ts index d6166f6..70a3c46 100644 --- a/lib/browser.ts +++ b/lib/browser.ts @@ -9,33 +9,33 @@ interface ExtensionListener { } export interface MessageSender { - tab?: Tab; - frameId?: number; - id?: number; - url?: string; - tlsChannelId?: string; + readonly tab?: Tab; + readonly frameId?: number; + readonly id?: number; + readonly url?: string; + readonly tlsChannelId?: string; } export interface Tab { - id?: number; - incognito?: boolean; + readonly id?: number; + readonly incognito?: boolean; } export interface MenuClickInfo { - menuItemId: string | number; - button?: number; - linkUrl?: string; - srcUrl?: string; + readonly menuItemId: string | number; + readonly button?: number; + readonly linkUrl?: string; + readonly srcUrl?: string; } export interface RawPort { - error: any; - name: string; - onDisconnect: ExtensionListener; - onMessage: ExtensionListener; - sender?: MessageSender; + readonly error: any; + readonly name: string; + readonly sender?: MessageSender; + readonly onDisconnect: ExtensionListener; + readonly onMessage: ExtensionListener; disconnect: () => void; postMessage: (message: any) => void; } @@ -82,16 +82,22 @@ interface Downloads { getFileIcon(id: number, options?: any): Promise; setShelfEnabled(state: boolean): void; removeFile(manId: number): Promise; - onCreated: ExtensionListener; - onChanged: ExtensionListener; - onErased: ExtensionListener; - onDeterminingFilename?: ExtensionListener; + readonly onCreated: ExtensionListener; + readonly onChanged: ExtensionListener; + readonly onErased: ExtensionListener; + readonly onDeterminingFilename?: ExtensionListener; } interface WebRequest { - onBeforeSendHeaders: WebRequestListener; - onSendHeaders: WebRequestListener; - onHeadersReceived: WebRequestListener; + readonly onBeforeSendHeaders: WebRequestListener; + readonly onSendHeaders: WebRequestListener; + readonly onHeadersReceived: WebRequestListener; +} + +export interface OnInstalled { + readonly reason: string; + readonly previousVersion?: string; + readonly temporary: boolean; } export const {browserAction} = polyfill;