Skip to main content

BrowserWindowConstructorOptions 객체는 BaseWindowConstructorOptions를 확장한다

  • webPreferences WebPreferences (선택 사항) - 웹 페이지 기능에 대한 설정.
    • devTools boolean (선택 사항) - DevTools를 활성화할지 여부. false로 설정하면 BrowserWindow.webContents.openDevTools()를 사용해 DevTools를 열 수 없다. 기본값은 true이다.
    • nodeIntegration boolean (선택 사항) - Node.js 통합을 활성화할지 여부. 기본값은 false이다.
    • nodeIntegrationInWorker boolean (선택 사항) - 웹 워커에서 Node.js 통합을 활성화할지 여부. 기본값은 false이다. 자세한 내용은 멀티스레딩에서 확인할 수 있다.
    • nodeIntegrationInSubFrames boolean (선택 사항) - iframe 및 자식 윈도우와 같은 하위 프레임에서 Node.js 지원을 활성화하는 실험적 옵션. 모든 프리로드 스크립트가 각 iframe에 로드되며, process.isMainFrame을 사용해 메인 프레임인지 확인할 수 있다.
    • preload string (선택 사항) - 페이지에서 다른 스크립트가 실행되기 전에 로드될 스크립트를 지정한다. 이 스크립트는 Node.js 통합이 켜져 있든 꺼져 있든 상관없이 항상 Node.js API에 접근할 수 있다. 값은 스크립트의 절대 파일 경로여야 한다. Node.js 통합이 꺼져 있을 때, 프리로드 스크립트는 Node.js 전역 심볼을 다시 전역 범위로 재도입할 수 있다. 예제는 여기에서 확인할 수 있다.
    • sandbox boolean (선택 사항) - 설정하면, 해당 윈도우와 연결된 렌더러를 샌드박스로 만들어 Chromium OS 수준의 샌드박스와 호환되게 하고 Node.js 엔진을 비활성화한다. 이 옵션은 nodeIntegration 옵션과 다르며, 프리로드 스크립트에 사용 가능한 API가 더 제한적이다. 자세한 내용은 여기에서 확인할 수 있다.
    • session Session (선택 사항) - 페이지에서 사용할 세션을 설정한다. Session 객체를 직접 전달하는 대신 partition 옵션을 사용할 수도 있다. partition은 파티션 문자열을 받는다. sessionpartition이 모두 제공되면 session이 우선한다. 기본값은 기본 세션이다.
    • partition string (선택 사항) - 페이지에서 사용할 세션을 파티션 문자열에 따라 설정한다. partitionpersist:로 시작하면, 앱 내의 모든 페이지에서 동일한 partition을 가진 지속적인 세션을 사용한다. persist: 접두사가 없으면, 메모리 내 세션을 사용한다. 동일한 partition을 할당하면 여러 페이지가 동일한 세션을 공유할 수 있다. 기본값은 기본 세션이다.
    • zoomFactor number (선택 사항) - 페이지의 기본 확대/축소 비율. 3.0300%를 의미한다. 기본값은 1.0이다.
    • javascript boolean (선택 사항) - JavaScript 지원을 활성화할지 여부. 기본값은 true이다.
    • webSecurity boolean (선택 사항) - false로 설정하면 동일 출처 정책을 비활성화하고, 사용자가 이 옵션을 설정하지 않았다면 allowRunningInsecureContenttrue로 설정한다. 기본값은 true이다.
    • allowRunningInsecureContent boolean (선택 사항) - HTTPS 페이지가 HTTP URL에서 JavaScript, CSS 또는 플러그인을 실행할 수 있도록 허용한다. 기본값은 false이다.
    • images boolean (선택 사항) - 이미지 지원을 활성화할지 여부. 기본값은 true이다.
    • imageAnimationPolicy string (선택 사항) - 이미지 애니메이션 실행 방식을 지정한다. animate, animateOnce, noAnimation 중 하나를 선택할 수 있다. 기본값은 animate이다.
    • textAreasAreResizable boolean (선택 사항) - TextArea 엘리먼트를 크기 조정 가능하게 할지 여부. 기본값은 true이다.
    • webgl boolean (선택 사항) - WebGL 지원을 활성화할지 여부. 기본값은 true이다.
    • plugins boolean (선택 사항) - 플러그인을 활성화할지 여부. 기본값은 false이다.
    • experimentalFeatures boolean (선택 사항) - Chromium의 실험적 기능을 활성화할지 여부. 기본값은 false이다.
    • scrollBounce boolean (선택 사항) macOS - macOS에서 스크롤 바운스(고무 밴드) 효과를 활성화할지 여부. 기본값은 false이다.
    • enableBlinkFeatures string (선택 사항) - 활성화할 기능 문자열의 목록을 쉼표로 구분해 지정한다. 예: CSSVariables,KeyboardEventKey. 지원되는 전체 기능 문자열 목록은 RuntimeEnabledFeatures.json5 파일에서 확인할 수 있다.
    • disableBlinkFeatures string (선택 사항) - 비활성화할 기능 문자열의 목록을 쉼표로 구분해 지정한다. 예: CSSVariables,KeyboardEventKey. 지원되는 전체 기능 문자열 목록은 RuntimeEnabledFeatures.json5 파일에서 확인할 수 있다.
    • defaultFontFamily Object (선택 사항) - 폰트 패밀리의 기본 폰트를 설정한다.
      • standard string (선택 사항) - 기본값은 Times New Roman이다.
      • serif string (선택 사항) - 기본값은 Times New Roman이다.
      • sansSerif string (선택 사항) - 기본값은 Arial이다.
      • monospace string (선택 사항) - 기본값은 Courier New이다.
      • cursive string (선택 사항) - 기본값은 Script이다.
      • fantasy string (선택 사항) - 기본값은 Impact이다.
      • math string (선택 사항) - 기본값은 Latin Modern Math이다.
    • defaultFontSize Integer (선택 사항) - 기본값은 16이다.
    • defaultMonospaceFontSize Integer (선택 사항) - 기본값은 13이다.
    • minimumFontSize Integer (선택 사항) - 기본값은 0이다.
    • defaultEncoding string (선택 사항) - 기본값은 ISO-8859-1이다.
    • backgroundThrottling boolean (선택 사항) - 페이지가 백그라운드로 전환될 때 애니메이션과 타이머를 제한할지 여부. 이는 Page Visibility API에도 영향을 미친다. 단일 browserWindow에 표시된 webContents 중 하나라도 backgroundThrottling을 비활성화하면, 전체 윈도우에 대해 프레임이 그려지고 교체된다. 기본값은 true이다.
    • offscreen Object | boolean (선택 사항) - 브라우저 윈도우에 대해 오프스크린 렌더링을 활성화할지 여부. 기본값은 false이다. 자세한 내용은 오프스크린 렌더링 튜토리얼에서 확인할 수 있다.
      • useSharedTexture boolean (선택 사항) 실험적 - 가속화된 페인트 이벤트에 GPU 공유 텍스처를 사용할지 여부. 기본값은 false이다. 자세한 내용은 오프스크린 렌더링 튜토리얼에서 확인할 수 있다.
    • contextIsolation boolean (선택 사항) - Electron API와 지정된 preload 스크립트를 별도의 JavaScript 컨텍스트에서 실행할지 여부. 기본값은 true이다. preload 스크립트가 실행되는 컨텍스트는 자체 전용 documentwindow 전역 변수와 JavaScript 내장 객체(Array, Object, JSON 등)에만 접근할 수 있으며, 이는 로드된 콘텐츠에는 보이지 않는다. Electron API는 preload 스크립트에서만 사용 가능하며 로드된 페이지에서는 사용할 수 없다. 이 옵션은 신뢰할 수 없는 원격 콘텐츠를 로드할 때 사용해, 로드된 콘텐츠가 preload 스크립트와 사용 중인 Electron API를 변조할 수 없도록 해야 한다. 이 옵션은 Chrome 콘텐츠 스크립트에서 사용하는 기술과 동일하다. DevTools에서 콘솔 탭 상단의 콤보 박스에서 'Electron Isolated Context' 항목을 선택해 이 컨텍스트에 접근할 수 있다.
    • webviewTag boolean (선택 사항) - <webview> 태그를 활성화할지 여부. 기본값은 false이다. 참고: <webview>에 대해 구성된 preload 스크립트는 실행될 때 Node.js 통합이 활성화되므로, 악성 preload 스크립트가 포함된 <webview> 태그를 원격/신뢰할 수 없는 콘텐츠가 생성하지 못하도록 해야 한다. webContentswill-attach-webview 이벤트를 사용해 preload 스크립트를 제거하거나 <webview>의 초기 설정을 검증하거나 변경할 수 있다.
    • additionalArguments string[] (선택 사항) - 이 앱의 렌더러 프로세스에서 process.argv에 추가될 문자열 목록. 렌더러 프로세스의 프리로드 스크립트에 작은 데이터를 전달하는 데 유용하다.
    • safeDialogs boolean (선택 사항) - 브라우저 스타일의 연속 다이얼로그 보호를 활성화할지 여부. 기본값은 false이다.
    • safeDialogsMessage string (선택 사항) - 연속 다이얼로그 보호가 트리거될 때 표시할 메시지. 정의되지 않으면 기본 메시지가 사용되며, 현재 기본 메시지는 영어로 제공되고 지역화되지 않았다.
    • disableDialogs boolean (선택 사항) - 다이얼로그를 완전히 비활성화할지 여부. safeDialogs를 재정의한다. 기본값은 false이다.
    • navigateOnDragDrop boolean (선택 사항) - 파일이나 링크를 페이지에 드래그 앤 드롭할 때 네비게이션을 발생시킬지 여부. 기본값은 false이다.
    • autoplayPolicy string (선택 사항) - 윈도우 내 콘텐츠에 적용할 자동 재생 정책. no-user-gesture-required, user-gesture-required, document-user-activation-required 중 하나를 선택할 수 있다. 기본값은 no-user-gesture-required이다.
    • disableHtmlFullscreenWindowResize boolean (선택 사항) - HTML 전체 화면으로 전환할 때 윈도우 크기 조정을 방지할지 여부. 기본값은 false이다.
    • accessibleTitle string (선택 사항) - 화면 리더와 같은 접근성 도구에만 제공되는 대체 제목 문자열. 이 문자열은 사용자에게 직접 보이지 않는다.
    • spellcheck boolean (선택 사항) - 내장 맞춤법 검사기를 활성화할지 여부. 기본값은 true이다.
    • enableWebSQL boolean (선택 사항) - WebSQL API를 활성화할지 여부. 기본값은 true이다.
    • v8CacheOptions string (선택 사항) - blink에서 사용하는 v8 코드 캐싱 정책을 강제한다. 허용되는 값은 다음과 같다:
      • none - 코드 캐싱을 비활성화한다.
      • code - 휴리스틱 기반 코드 캐싱.
      • bypassHeatCheck - 코드 캐싱 휴리스틱을 우회하지만 지연 컴파일을 사용한다.
      • bypassHeatCheckAndEagerCompile - 위와 동일하지만 컴파일이 즉시 이루어진다. 기본 정책은 code이다.
    • enablePreferredSizeMode boolean (선택 사항) - 선호 크기 모드를 활성화할지 여부. 선호 크기는 문서의 레이아웃을 포함하는 데 필요한 최소 크기로, 스크롤이 필요하지 않다. 이 옵션을 활성화하면 선호 크기가 변경될 때 WebContents에서 preferred-size-changed 이벤트가 발생한다. 기본값은 false이다.
    • transparent boolean (선택 사항) - 게스트 페이지에 대해 배경 투명도를 활성화할지 여부. 기본값은 true이다. 참고: 게스트 페이지의 텍스트와 배경 색상은 루트 엘리먼트의 색상 스킴에서 파생된다. 투명도가 활성화되면 텍스트 색상은 여전히 변경되지만 배경은 투명하게 유지된다.
  • paintWhenInitiallyHidden boolean (선택 사항) - showfalse이고 창이 방금 생성되었을 때 렌더러가 활성 상태여야 하는지 여부. show: false 상태에서 첫 로드 시 document.visibilityState가 올바르게 동작하도록 하려면 이 값을 false로 설정해야 한다. 이 값을 false로 설정하면 ready-to-show 이벤트가 발생하지 않는다. 기본값은 true이다.