@@ -5,6 +5,7 @@ import FileSystemParams from "../FileSystemParams";
55import { systemConfig } from "@App/pages/store/global" ;
66import type { FileSystemType } from "@Packages/filesystem/factory" ;
77import FileSystemFactory from "@Packages/filesystem/factory" ;
8+ import { isFirefox } from "@App/pkg/utils/utils" ;
89
910const CollapseItem = Collapse . Item ;
1011
@@ -24,52 +25,62 @@ const RuntimeSetting: React.FC = () => {
2425 setFilesystemType ( res . filesystem ) ;
2526 setFilesystemParam ( res . params [ res . filesystem ] || { } ) ;
2627 } ) ;
27- chrome . permissions . contains ( { permissions : [ "background" ] } , ( result ) => {
28- if ( chrome . runtime . lastError ) {
29- console . error ( chrome . runtime . lastError ) ;
30- return ;
31- }
32- setEnableBackgroundState ( result ) ;
33- } ) ;
34- } , [ ] ) ;
35-
36- const setEnableBackground = ( enable : boolean ) => {
37- if ( enable ) {
38- chrome . permissions . request ( { permissions : [ "background" ] } , ( granted ) => {
39- if ( chrome . runtime . lastError ) {
40- console . error ( chrome . runtime . lastError ) ;
41- Message . error ( t ( "enable_background.enable_failed" ) ! ) ;
42- return ;
43- }
44- setEnableBackgroundState ( granted ) ;
45- } ) ;
28+ if ( isFirefox ( ) ) {
29+ // no background permission
4630 } else {
47- chrome . permissions . remove ( { permissions : [ "background" ] } , ( removed ) => {
31+ chrome . permissions . contains ( { permissions : [ "background" ] } , ( result ) => {
4832 if ( chrome . runtime . lastError ) {
4933 console . error ( chrome . runtime . lastError ) ;
50- Message . error ( t ( "enable_background.disable_failed" ) ! ) ;
5134 return ;
5235 }
53- setEnableBackgroundState ( ! removed ) ;
36+ setEnableBackgroundState ( result ) ;
5437 } ) ;
5538 }
39+ } , [ ] ) ;
40+
41+ const setEnableBackground = ( enable : boolean ) => {
42+ if ( isFirefox ( ) ) {
43+ // no background permission
44+ } else {
45+ if ( enable ) {
46+ chrome . permissions . request ( { permissions : [ "background" ] } , ( granted ) => {
47+ if ( chrome . runtime . lastError ) {
48+ console . error ( chrome . runtime . lastError ) ;
49+ Message . error ( t ( "enable_background.enable_failed" ) ! ) ;
50+ return ;
51+ }
52+ setEnableBackgroundState ( granted ) ;
53+ } ) ;
54+ } else {
55+ chrome . permissions . remove ( { permissions : [ "background" ] } , ( removed ) => {
56+ if ( chrome . runtime . lastError ) {
57+ console . error ( chrome . runtime . lastError ) ;
58+ Message . error ( t ( "enable_background.disable_failed" ) ! ) ;
59+ return ;
60+ }
61+ setEnableBackgroundState ( ! removed ) ;
62+ } ) ;
63+ }
64+ }
5665 } ;
5766
5867 return (
5968 < Card title = { t ( "runtime" ) } bordered = { false } >
6069 < Space direction = "vertical" size = { 20 } className = { "tw-w-full" } >
6170 < div className = "tw-flex tw-items-center tw-justify-between tw-min-h-9" >
62- < div className = "tw-flex tw-items-center tw-gap-2 tw-flex-1" >
63- < Switch onChange = { setEnableBackground } checked = { enableBackground } />
64- < span
65- className = "tw-min-w-20 tw-font-medium tw-cursor-pointer"
66- onClick = { ( ) => {
67- setEnableBackground ( ! enableBackground ) ;
68- } }
69- >
70- { t ( "enable_background.title" ) }
71- </ span >
72- </ div >
71+ { ! isFirefox ( ) && (
72+ < div className = "tw-flex tw-items-center tw-gap-2 tw-flex-1" >
73+ < Switch onChange = { setEnableBackground } checked = { enableBackground } />
74+ < span
75+ className = "tw-min-w-20 tw-font-medium tw-cursor-pointer"
76+ onClick = { ( ) => {
77+ setEnableBackground ( ! enableBackground ) ;
78+ } }
79+ >
80+ { t ( "enable_background.title" ) }
81+ </ span >
82+ </ div >
83+ ) }
7384 < span className = "tw-text-xs tw-ml-6 tw-flex-shrink-0" > { t ( "enable_background.description" ) } </ span >
7485 </ div >
7586 < Collapse bordered = { false } defaultActiveKey = { [ "storage" ] } >
0 commit comments