Skip to content

Commit 403f33d

Browse files
committed
fix: require manual intervention or browser restart after auto update
workaround for 1881820 (resolves #1477, #1470)
1 parent 64e7323 commit 403f33d

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

src/bg/background.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import { Permissions } from 'src/services/permissions'
1515
import { Snapshots } from 'src/services/snapshots'
1616
import { Sidebar } from 'src/services/sidebar'
1717
import { Info } from 'src/services/info'
18+
import { versionToInt } from 'src/services/info.actions'
1819
import { Menu } from 'src/services/menu'
1920
import { Styles } from 'src/services/styles'
2021
import { WebReq } from 'src/services/web-req'
@@ -115,6 +116,12 @@ void (async function main() {
115116

116117
initToolbarButton()
117118

119+
browser.runtime.onUpdateAvailable.addListener(details => {
120+
const currentVersion = versionToInt(browser.runtime.getManifest().version)
121+
const newVersion = versionToInt(details.version)
122+
if (newVersion <= currentVersion) browser.runtime.reload()
123+
})
124+
118125
Logs.info(`Init end: ${performance.now() - ts}ms`)
119126
})()
120127

src/services/info.actions.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,3 +84,12 @@ export async function loadCurrentTabInfo(): Promise<void> {
8484
const tab = await browser.tabs.getCurrent()
8585
Info.currentTabId = tab.id
8686
}
87+
88+
export function versionToInt(version: string): number {
89+
const parsed = version.split('.').map(n => parseInt(n))
90+
const major = isNaN(parsed[0]) ? 0 : parsed[0]
91+
const minor = isNaN(parsed[1]) ? 0 : parsed[1]
92+
const patch = isNaN(parsed[2]) ? 0 : parsed[2]
93+
const nightly = isNaN(parsed[3]) ? 0 : parsed[3]
94+
return nightly + patch * 1_000 + minor * 1_000_000 + major * 1_000_000_000
95+
}

0 commit comments

Comments
 (0)