@@ -35,6 +35,7 @@ const {fullscreenOption} = require('./common/constants/settingsEnums')
35
35
const isThirdPartyHost = require ( './browser/isThirdPartyHost' )
36
36
const extensionState = require ( './common/state/extensionState' )
37
37
const { cookieExceptions, refererExceptions} = require ( '../js/data/siteHacks' )
38
+ const { getBraverySettingsCache, updateBraverySettingsCache} = require ( './common/cache/braverySettingsCache' )
38
39
39
40
let appStore = null
40
41
@@ -58,6 +59,22 @@ const registeredSessions = {}
58
59
*/
59
60
const permissionCallbacks = { }
60
61
62
+ const getBraverySettingsForUrl = ( url , appState , isPrivate ) => {
63
+ const cachedBraverySettings = getBraverySettingsCache ( url )
64
+ if ( cachedBraverySettings ) {
65
+ return cachedBraverySettings
66
+ }
67
+ const savedSettings = siteSettings . getSiteSettingsForURL ( appState . get ( 'siteSettings' ) , url )
68
+ const tempSettings = siteSettings . getSiteSettingsForURL ( appState . get ( 'temporarySiteSettings' ) , url )
69
+
70
+ let braverySettings = siteSettings . activeSettings ( savedSettings , appState , appConfig )
71
+ if ( isPrivate && tempSettings ) {
72
+ braverySettings = siteSettings . activeSettings ( tempSettings , appState , appConfig )
73
+ }
74
+ updateBraverySettingsCache ( url , braverySettings )
75
+ return braverySettings
76
+ }
77
+
61
78
module . exports . registerBeforeSendHeadersFilteringCB = ( filteringFn ) => {
62
79
beforeSendHeadersFilteringFns . push ( filteringFn )
63
80
}
@@ -731,28 +748,22 @@ module.exports.isResourceEnabled = (resourceName, url, isPrivate) => {
731
748
if ( resourceName === 'flash' ) {
732
749
return true
733
750
}
751
+ const appState = appStore . getState ( )
752
+ const settingsState = appState . get ( 'settings' )
734
753
735
754
if ( resourceName === 'pdfjs' ) {
736
- return getSetting ( settings . PDFJS_ENABLED )
755
+ return getSetting ( settings . PDFJS_ENABLED , settingsState )
737
756
}
738
757
if ( resourceName === 'webtorrent' ) {
739
- return getSetting ( settings . TORRENT_VIEWER_ENABLED )
758
+ return getSetting ( settings . TORRENT_VIEWER_ENABLED , settingsState )
740
759
}
741
760
742
- const appState = appStore . getState ( )
743
-
744
761
if ( resourceName === 'webtorrent' ) {
745
762
const extension = extensionState . getExtensionById ( appState , config . torrentExtensionId )
746
763
return extension !== undefined ? extension . get ( 'enabled' ) : false
747
764
}
748
765
749
- const savedSettings = siteSettings . getSiteSettingsForURL ( appState . get ( 'siteSettings' ) , url )
750
- const tempSettings = siteSettings . getSiteSettingsForURL ( appState . get ( 'temporarySiteSettings' ) , url )
751
-
752
- let braverySettings = siteSettings . activeSettings ( savedSettings , appState , appConfig )
753
- if ( isPrivate && tempSettings ) {
754
- braverySettings = siteSettings . activeSettings ( tempSettings , appState , appConfig )
755
- }
766
+ const braverySettings = getBraverySettingsForUrl ( url , appState , isPrivate )
756
767
757
768
// If full shields are down never enable extra protection
758
769
if ( braverySettings . shieldsUp === false ) {
0 commit comments