diff --git a/app/extensions/brave/locales/en-US/preferences.properties b/app/extensions/brave/locales/en-US/preferences.properties
index 460256c424c..7368ebf6316 100644
--- a/app/extensions/brave/locales/en-US/preferences.properties
+++ b/app/extensions/brave/locales/en-US/preferences.properties
@@ -249,6 +249,8 @@ enablePinterest=Enable Pinterest
enableMetamask=Enable MetaMask
useHardwareAcceleration=Use hardware acceleration when available *
useSmoothScroll=Enable smooth scrolling *
+siteIsolation=Strict Site Isolation
+useSiteIsolation=Enhance security by loading each site in its own process (experimental) *
defaultZoomLevel=Default zoom level
toolbarUserInterfaceScale=Toolbar and UI elements scale
en-US=English (U.S.)
@@ -360,7 +362,6 @@ scaleSizeNormal=Normal
scaleSizeLarger=Larger
scaleSizeSuper=Supersize
urlBarOptions=URL Bar Options
-disableTitleMode=Always show the URL bar
wideURLbar=Use wide URL bar
autoplay=Autoplay Media
tabPreviewTiming=Time to wait before previewing a tab
diff --git a/app/index.js b/app/index.js
index bada8654569..9f81dcec67a 100644
--- a/app/index.js
+++ b/app/index.js
@@ -99,17 +99,22 @@ let loadAppStatePromise = SessionStore.loadAppState()
// Some settings must be set right away on startup, those settings should be handled here.
loadAppStatePromise.then((initialImmutableState) => {
- const {HARDWARE_ACCELERATION_ENABLED, SMOOTH_SCROLL_ENABLED, SEND_CRASH_REPORTS} = require('../js/constants/settings')
- CrashHerald.init(getSetting(SEND_CRASH_REPORTS, initialImmutableState.get('settings')))
+ const {HARDWARE_ACCELERATION_ENABLED, SMOOTH_SCROLL_ENABLED, SEND_CRASH_REPORTS, SITE_ISOLATION_ENABLED} = require('../js/constants/settings')
+ const initialSettings = initialImmutableState.get('settings')
+ CrashHerald.init(getSetting(SEND_CRASH_REPORTS, initialSettings))
telemetry.setCheckpointAndReport('state-loaded')
- if (getSetting(HARDWARE_ACCELERATION_ENABLED, initialImmutableState.get('settings')) === false) {
+ if (getSetting(HARDWARE_ACCELERATION_ENABLED, initialSettings) === false) {
app.disableHardwareAcceleration()
}
- if (getSetting(SMOOTH_SCROLL_ENABLED, initialImmutableState.get('settings')) === false) {
+ if (getSetting(SMOOTH_SCROLL_ENABLED, initialSettings) === false) {
app.commandLine.appendSwitch('disable-smooth-scrolling')
}
+
+ if (getSetting(SITE_ISOLATION_ENABLED, initialSettings) === true) {
+ app.commandLine.appendSwitch('site-per-process')
+ }
})
const notifyCertError = (webContents, url, error, cert) => {
diff --git a/docs/state.md b/docs/state.md
index 0ec7fef7fc3..fe2178b10a3 100644
--- a/docs/state.md
+++ b/docs/state.md
@@ -428,6 +428,7 @@ AppStore
'search.default-search-engine': string, // name of search engine, from js/data/searchProviders.js
'search.offer-search-suggestions': boolean, // true if suggestions should be offered from the default search engine when available.
'security.flash.installed': boolean,
+ 'security.site-isolation-enabled': boolean,
'shields.blocked-count-badge': boolean, // true if blocked counts on the shield button should be enabled
'shields.compact-bravery-panel': boolean, // true if the compact Bravery panel should be enabled
'security.passwords.active-password-manager': string, // name of active password manager
diff --git a/js/about/preferences.js b/js/about/preferences.js
index 49e72491b0a..b4e67d738b9 100644
--- a/js/about/preferences.js
+++ b/js/about/preferences.js
@@ -701,6 +701,10 @@ class SecurityTab extends ImmutableComponent {