1. adapt mv3 alarm trigger flow. 2. adapt mv3 background event page lifecycle.

This commit is contained in:
suziwen 2024-04-05 21:52:47 +08:00
parent 45295e149c
commit 815e162640
5 changed files with 16 additions and 13 deletions

View File

@ -1,7 +1,7 @@
{
"manifest_version": 3,
"name": "ZeroOmega--Proxy Switchy manifest v3 version",
"version": "3.2.0",
"version": "3.2.1",
"description": "__MSG_manifest_app_description__",
"icons": {
"16": "img/icons/omega-action-16.png",

View File

@ -1,7 +1,7 @@
{
"manifest_version": 3,
"name": "ZeroOmega--Proxy Switchy manifest v3 version",
"version": "3.2.0",
"version": "3.2.1",
"description": "__MSG_manifest_app_description__",
"icons": {
"16": "img/icons/omega-action-16.png",

View File

@ -9,7 +9,10 @@ Url = require('url')
TEMPPROFILEKEY = 'tempProfileState'
globalThis.isBrowserRestart = false
chrome.runtime.onStartup.addListener ->
globalThis.isBrowserRestart = true
console.log('delete temp profile')
idbKeyval.del(TEMPPROFILEKEY).then(->
console.log('delete temp profile success')
@ -22,6 +25,13 @@ class ChromeOptions extends OmegaTarget.Options
constructor: (args...) ->
super(args...)
chrome.alarms.onAlarm.addListener (alarm) =>
switch alarm.name
when 'omega.updateProfile'
console.log('update profile interval')
@ready.then( =>
@updateProfile()
)
chrome.contextMenus.onClicked.addListener((info, tab) =>
@ready.then( =>
switch info.menuItemId
@ -224,18 +234,11 @@ class ChromeOptions extends OmegaTarget.Options
port.onDisconnect.addListener =>
delete @_tabRequestInfoPorts[tabId] if tabId?
_alarms: null
schedule: (name, periodInMinutes, callback) ->
schedule: (name, periodInMinutes) ->
name = 'omega.' + name
if not _alarms?
@_alarms = {}
chrome.alarms.onAlarm.addListener (alarm) =>
@_alarms[alarm.name]?()
if periodInMinutes < 0
delete @_alarms[name]
chrome.alarms.clear(name)
else
@_alarms[name] = callback
chrome.alarms.create(name, {
periodInMinutes: periodInMinutes
})

View File

@ -160,7 +160,7 @@ class Options
###
init: ->
@ready = @loadOptions().then(=>
if @_options['-startupProfileName']
if globalThis.isBrowserRestart and @_options['-startupProfileName']
@applyProfile(@_options['-startupProfileName'])
else
@_state.get({
@ -384,8 +384,7 @@ class Options
if changes['-enableQuickSwitch']? or quickSwitchProfiles?
@reloadQuickSwitch()
if changes['-downloadInterval']?
@schedule 'updateProfile', @_options['-downloadInterval'], =>
@updateProfile()
@schedule 'updateProfile', @_options['-downloadInterval']
if changes['-showInspectMenu']? or changes == @_options
showMenu = @_options['-showInspectMenu']
if not showMenu?

View File

@ -17,6 +17,7 @@ html, body {
body {
min-width: 12em;
margin: 5px;
}
.om-hidden {