@@ -35,6 +35,7 @@ class PwaBrowser {
35
35
this . handleRegisteringProtocols ( ) ;
36
36
this . handleOutOfScopeNavigation ( ) ;
37
37
this . handleOpeningNewWindow ( ) ;
38
+ this . handleDisablingShortcuts ( ) ;
38
39
setTimeout ( ( ) => { this . handleHiddenTitlebar ( ) } ) ;
39
40
setTimeout ( ( ) => { this . handleTabsMode ( ) } ) ;
40
41
setTimeout ( ( ) => { this . handleLinkTargets ( ) } ) ;
@@ -456,6 +457,14 @@ class PwaBrowser {
456
457
} ) ;
457
458
}
458
459
460
+ handleDisablingShortcuts ( ) {
461
+ const getPref = ( pref ) => xPref . get ( pref , false , true ) ;
462
+ if ( ! getPref ( ChromeLoader . PREF_SHORTCUTS_CLOSE_TAB ) ) document . getElementById ( 'key_close' ) . remove ( ) ;
463
+ if ( ! getPref ( ChromeLoader . PREF_SHORTCUTS_CLOSE_WINDOW ) ) document . getElementById ( 'key_closeWindow' ) . remove ( ) ;
464
+ if ( ! getPref ( ChromeLoader . PREF_SHORTCUTS_QUIT_APPLICATION ) ) document . getElementById ( 'key_quitApplication' ) . remove ( ) ;
465
+ if ( ! getPref ( ChromeLoader . PREF_SHORTCUTS_PRIVATE_BROWSING ) ) document . getElementById ( 'key_privatebrowsing' ) . remove ( ) ;
466
+ }
467
+
459
468
handleHiddenTitlebar ( ) {
460
469
// This can be unstable feature and is only meant for tiling window manager users
461
470
// So it is disabled by default and can be enabled using about:config preference
@@ -705,11 +714,10 @@ class PwaBrowser {
705
714
}
706
715
707
716
disableNewTabShortcuts ( ) {
708
- // New tab and close tab shortcuts are useless when tabs mode is disabled
717
+ // New tab shortcuts are useless when the tabs mode is disabled
709
718
if ( ! xPref . get ( ChromeLoader . PREF_ENABLE_TABS_MODE ) ) {
710
719
document . getElementById ( 'cmd_newNavigatorTab' ) . remove ( ) ;
711
720
document . getElementById ( 'cmd_newNavigatorTabNoEvent' ) . remove ( ) ;
712
- document . getElementById ( 'key_close' ) . remove ( ) ;
713
721
}
714
722
}
715
723
@@ -1738,6 +1746,12 @@ class PwaBrowser {
1738
1746
// Determines which domains should always be allowed to open in the PWA browser
1739
1747
// This is a comma-separated list of domains
1740
1748
xPref . set ( ChromeLoader . PREF_ALLOWED_DOMAINS , '' , true ) ;
1749
+
1750
+ // Determines whether specific shortcuts are enabled or not
1751
+ xPref . set ( ChromeLoader . PREF_SHORTCUTS_CLOSE_TAB , true , true ) ;
1752
+ xPref . set ( ChromeLoader . PREF_SHORTCUTS_CLOSE_WINDOW , true , true ) ;
1753
+ xPref . set ( ChromeLoader . PREF_SHORTCUTS_QUIT_APPLICATION , true , true ) ;
1754
+ xPref . set ( ChromeLoader . PREF_SHORTCUTS_PRIVATE_BROWSING , true , true ) ;
1741
1755
}
1742
1756
1743
1757
disableOnboarding ( ) {
0 commit comments