BrowserWindowConstructorOptions 객체는 BaseWindowConstructorOptions를 확장한다
webPreferencesWebPreferences (선택 사항) - 웹 페이지 기능에 대한 설정.devToolsboolean (선택 사항) - DevTools를 활성화할지 여부.false로 설정하면BrowserWindow.webContents.openDevTools()를 사용해 DevTools를 열 수 없다. 기본값은true이다.nodeIntegrationboolean (선택 사항) - Node.js 통합을 활성화할지 여부. 기본값은false이다.nodeIntegrationInWorkerboolean (선택 사항) - 웹 워커에서 Node.js 통합을 활성화할지 여부. 기본값은false이다. 자세한 내용은 멀티스레딩에서 확인할 수 있다.nodeIntegrationInSubFramesboolean (선택 사항) - iframe 및 자식 윈도우와 같은 하위 프레임에서 Node.js 지원을 활성화하는 실험적 옵션. 모든 프리로드 스크립트가 각 iframe에 로드되며,process.isMainFrame을 사용해 메인 프레임인지 확인할 수 있다.preloadstring (선택 사항) - 페이지에서 다른 스크립트가 실행되기 전에 로드될 스크립트를 지정한다. 이 스크립트는 Node.js 통합이 켜져 있든 꺼져 있든 상관없이 항상 Node.js API에 접근할 수 있다. 값은 스크립트의 절대 파일 경로여야 한다. Node.js 통합이 꺼져 있을 때, 프리로드 스크립트는 Node.js 전역 심볼을 다시 전역 범위로 재도입할 수 있다. 예제는 여기에서 확인할 수 있다.sandboxboolean (선택 사항) - 설정하면, 해당 윈도우와 연결된 렌더러를 샌드박스로 만들어 Chromium OS 수준의 샌드박스와 호환되게 하고 Node.js 엔진을 비활성화한다. 이 옵션은nodeIntegration옵션과 다르며, 프리로드 스크립트에 사용 가능한 API가 더 제한적이다. 자세한 내용은 여기에서 확인할 수 있다.sessionSession (선택 사항) - 페이지에서 사용할 세션을 설정한다. Session 객체를 직접 전달하는 대신partition옵션을 사용할 수도 있다.partition은 파티션 문자열을 받는다.session과partition이 모두 제공되면session이 우선한다. 기본값은 기본 세션이다.partitionstring (선택 사항) - 페이지에서 사용할 세션을 파티션 문자열에 따라 설정한다.partition이persist:로 시작하면, 앱 내의 모든 페이지에서 동일한partition을 가진 지속적인 세션을 사용한다.persist:접두사가 없으면, 메모리 내 세션을 사용한다. 동일한partition을 할당하면 여러 페이지가 동일한 세션을 공유할 수 있다. 기본값은 기본 세션이다.zoomFactornumber (선택 사항) - 페이지의 기본 확대/축소 비율.3.0은300%를 의미한다. 기본값은1.0이다.javascriptboolean (선택 사항) - JavaScript 지원을 활성화할지 여부. 기본값은true이다.webSecurityboolean (선택 사항) -false로 설정하면 동일 출처 정책을 비활성화하고, 사용자가 이 옵션을 설정하지 않았다면allowRunningInsecureContent를true로 설정한다. 기본값은true이다.allowRunningInsecureContentboolean (선택 사항) - HTTPS 페이지가 HTTP URL에서 JavaScript, CSS 또는 플러그인을 실행할 수 있도록 허용한다. 기본값은false이다.imagesboolean (선택 사항) - 이미지 지원을 활성화할지 여부. 기본값은true이다.imageAnimationPolicystring (선택 사항) - 이미지 애니메이션 실행 방식을 지정한다.animate,animateOnce,noAnimation중 하나를 선택할 수 있다. 기본값은animate이다.textAreasAreResizableboolean (선택 사항) - TextArea 엘리먼트를 크기 조정 가능하게 할지 여부. 기본값은true이다.webglboolean (선택 사항) - WebGL 지원을 활성화할지 여부. 기본값은true이다.pluginsboolean (선택 사항) - 플러그인을 활성화할지 여부. 기본값은false이다.experimentalFeaturesboolean (선택 사항) - Chromium의 실험적 기능을 활성화할지 여부. 기본값은false이다.scrollBounceboolean (선택 사항) macOS - macOS에서 스크롤 바운스(고무 밴드) 효과를 활성화할지 여부. 기본값은false이다.enableBlinkFeaturesstring (선택 사항) - 활성화할 기능 문자열의 목록을 쉼표로 구분해 지정한다. 예:CSSVariables,KeyboardEventKey. 지원되는 전체 기능 문자열 목록은 RuntimeEnabledFeatures.json5 파일에서 확인할 수 있다.disableBlinkFeaturesstring (선택 사항) - 비활성화할 기능 문자열의 목록을 쉼표로 구분해 지정한다. 예:CSSVariables,KeyboardEventKey. 지원되는 전체 기능 문자열 목록은 RuntimeEnabledFeatures.json5 파일에서 확인할 수 있다.defaultFontFamilyObject (선택 사항) - 폰트 패밀리의 기본 폰트를 설정한다.standardstring (선택 사항) - 기본값은Times New Roman이다.serifstring (선택 사항) - 기본값은Times New Roman이다.sansSerifstring (선택 사항) - 기본값은Arial이다.monospacestring (선택 사항) - 기본값은Courier New이다.cursivestring (선택 사항) - 기본값은Script이다.fantasystring (선택 사항) - 기본값은Impact이다.mathstring (선택 사항) - 기본값은Latin Modern Math이다.
defaultFontSizeInteger (선택 사항) - 기본값은16이다.defaultMonospaceFontSizeInteger (선택 사항) - 기본값은13이다.minimumFontSizeInteger (선택 사항) - 기본값은0이다.defaultEncodingstring (선택 사항) - 기본값은ISO-8859-1이다.backgroundThrottlingboolean (선택 사항) - 페이지가 백그라운드로 전환될 때 애니메이션과 타이머를 제한할지 여부. 이는 Page Visibility API에도 영향을 미친다. 단일 browserWindow에 표시된 webContents 중 하나라도backgroundThrottling을 비활성화하면, 전체 윈도우에 대해 프레임이 그려지고 교체된다. 기본값은true이다.offscreenObject | boolean (선택 사항) - 브라우저 윈도우에 대해 오프스크린 렌더링을 활성화할지 여부. 기본값은false이다. 자세한 내용은 오프스크린 렌더링 튜토리얼에서 확인할 수 있다.useSharedTextureboolean (선택 사항) 실험적 - 가속화된 페인트 이벤트에 GPU 공유 텍스처를 사용할지 여부. 기본값은false이다. 자세한 내용은 오프스크린 렌더링 튜토리얼에서 확인할 수 있다.
contextIsolationboolean (선택 사항) - Electron API와 지정된preload스크립트를 별도의 JavaScript 컨텍스트에서 실행할지 여부. 기본값은true이다.preload스크립트가 실행되는 컨텍스트는 자체 전용document및window전역 변수와 JavaScript 내장 객체(Array,Object,JSON등)에만 접근할 수 있으며, 이는 로드된 콘텐츠에는 보이지 않는다. Electron API는preload스크립트에서만 사용 가능하며 로드된 페이지에서는 사용할 수 없다. 이 옵션은 신뢰할 수 없는 원격 콘텐츠를 로드할 때 사용해, 로드된 콘텐츠가preload스크립트와 사용 중인 Electron API를 변조할 수 없도록 해야 한다. 이 옵션은 Chrome 콘텐츠 스크립트에서 사용하는 기술과 동일하다. DevTools에서 콘솔 탭 상단의 콤보 박스에서 'Electron Isolated Context' 항목을 선택해 이 컨텍스트에 접근할 수 있다.webviewTagboolean (선택 사항) -<webview>태그를 활성화할지 여부. 기본값은false이다. 참고:<webview>에 대해 구성된preload스크립트는 실행될 때 Node.js 통합이 활성화되므로, 악성preload스크립트가 포함된<webview>태그를 원격/신뢰할 수 없는 콘텐츠가 생성하지 못하도록 해야 한다. webContents의will-attach-webview이벤트를 사용해preload스크립트를 제거하거나<webview>의 초기 설정을 검증하거나 변경할 수 있다.additionalArgumentsstring[] (선택 사항) - 이 앱의 렌더러 프로세스에서process.argv에 추가될 문자열 목록. 렌더러 프로세스의 프리로드 스크립트에 작은 데이터를 전달하는 데 유용하다.safeDialogsboolean (선택 사항) - 브라우저 스타일의 연속 다이얼로그 보호를 활성화할지 여부. 기본값은false이다.safeDialogsMessagestring (선택 사항) - 연속 다이얼로그 보호가 트리거될 때 표시할 메시지. 정의되지 않으면 기본 메시지가 사용되며, 현재 기본 메시지는 영어로 제공되고 지역화되지 않았다.disableDialogsboolean (선택 사항) - 다이얼로그를 완전히 비활성화할지 여부.safeDialogs를 재정의한다. 기본값은false이다.navigateOnDragDropboolean (선택 사항) - 파일이나 링크를 페이지에 드래그 앤 드롭할 때 네비게이션을 발생시킬지 여부. 기본값은false이다.autoplayPolicystring (선택 사항) - 윈도우 내 콘텐츠에 적용할 자동 재생 정책.no-user-gesture-required,user-gesture-required,document-user-activation-required중 하나를 선택할 수 있다. 기본값은no-user-gesture-required이다.disableHtmlFullscreenWindowResizeboolean (선택 사항) - HTML 전체 화면으로 전환할 때 윈도우 크기 조정을 방지할지 여부. 기본값은false이다.accessibleTitlestring (선택 사항) - 화면 리더와 같은 접근성 도구에만 제공되는 대체 제목 문자열. 이 문자열은 사용자에게 직접 보이지 않는다.spellcheckboolean (선택 사항) - 내장 맞춤법 검사기를 활성화할지 여부. 기본값은true이다.enableWebSQLboolean (선택 사항) - WebSQL API를 활성화할지 여부. 기본값은true이다.v8CacheOptionsstring (선택 사항) - blink에서 사용하는 v8 코드 캐싱 정책을 강제한다. 허용되는 값은 다음과 같다:none- 코드 캐싱을 비활성화한다.code- 휴리스틱 기반 코드 캐싱.bypassHeatCheck- 코드 캐싱 휴리스틱을 우회하지만 지연 컴파일을 사용한다.bypassHeatCheckAndEagerCompile- 위와 동일하지만 컴파일이 즉시 이루어진다. 기본 정책은code이다.
enablePreferredSizeModeboolean (선택 사항) - 선호 크기 모드를 활성화할지 여부. 선호 크기는 문서의 레이아웃을 포함하는 데 필요한 최소 크기로, 스크롤이 필요하지 않다. 이 옵션을 활성화하면 선호 크기가 변경될 때WebContents에서preferred-size-changed이벤트가 발생한다. 기본값은false이다.transparentboolean (선택 사항) - 게스트 페이지에 대해 배경 투명도를 활성화할지 여부. 기본값은true이다. 참고: 게스트 페이지의 텍스트와 배경 색상은 루트 엘리먼트의 색상 스킴에서 파생된다. 투명도가 활성화되면 텍스트 색상은 여전히 변경되지만 배경은 투명하게 유지된다.
paintWhenInitiallyHiddenboolean (선택 사항) -show가false이고 창이 방금 생성되었을 때 렌더러가 활성 상태여야 하는지 여부.show: false상태에서 첫 로드 시document.visibilityState가 올바르게 동작하도록 하려면 이 값을false로 설정해야 한다. 이 값을false로 설정하면ready-to-show이벤트가 발생하지 않는다. 기본값은true이다.