Skip to main content

Electron 12.0.0

· 9 min read

Electron 12.0.0이 출시되었다! 이번 버전에서는 Chromium 89, V8 8.9, Node.js 14.16로 업그레이드되었다. 또한 remote 모듈에 변경 사항이 추가되었고, contextIsolation의 기본값이 새롭게 설정되었으며, 새로운 webFrameMain API가 도입되었다. 그리고 전반적인 개선이 이루어졌다. 자세한 내용은 아래를 참고하라!


Electron 팀은 Electron 12.0.0 출시를 기쁘게 알린다. npm install electron@latest 명령어를 통해 npm으로 설치하거나 릴리스 웹사이트에서 다운로드할 수 있다. 이번 릴리스에 대한 자세한 내용을 계속 읽어보고, 여러분의 피드백을 공유해 주기 바란다!

주요 변경 사항

스택 변경 사항

주요 기능

  • ContextBridge의 exposeInMainWorld 메서드가 이제 객체가 아닌 API도 노출할 수 있다. #26834
  • Node 12에서 Node 14로 업그레이드했다. #23249
  • 메인 프로세스에서 WebContents 인스턴스의 하위 프레임에 접근할 수 있는 새로운 webFrameMain API를 추가했다. #25464
  • contextIsolationworldSafeExecuteJavaScript의 기본값이 이제 true로 설정되었다. #27949 #27502

새로운 기능과 변경 사항의 전체 목록은 12.0.0 릴리스 노트를 참고한다.

주요 변경 사항

이러한 변경 사항과 향후 예정된 변경 사항에 대한 자세한 내용은 예정된 주요 변경 사항 페이지에서 확인할 수 있다.

API 변경 사항

  • webFrameMain API 추가: webFrameMain 모듈은 기존 WebContents 인스턴스에서 프레임을 조회하는 데 사용할 수 있다. 이는 기존 webFrame API의 메인 프로세스 버전에 해당한다. 이 새로운 API에 대한 자세한 정보는 여기문서에서 확인할 수 있다.
  • app API 변경 사항:
    • 'child-process-gone'app.getAppMetrics()에 지역화되지 않은 serviceName 추가. #25975
    • Apple Silicon에서 Rosetta로 실행 중인지 감지할 수 있는 app.runningUnderRosettaTranslation 속성 추가. #26444
    • render-process-gone 세부 정보에 exitCode 추가 (app & webContents). #27677
  • BrowserWindow API 변경 사항:
    • BrowserWindow.isTabletMode() API 추가. #25209
    • BrowserWindowresized (Windows/macOS) 및 moved (Windows) 이벤트 추가. #26216
    • 시스템 컨텍스트 메뉴를 방지하고 재정의할 수 있는 새로운 system-context-menu 이벤트 추가. #25795
    • BrowserView를 상위로 올릴 수 있는 win.setTopBrowserView() 추가. #27713
    • 문서의 최소 크기에 따라 뷰를 조정할 수 있는 webPreferences.preferredSizeMode 추가. #25874
  • contextBridge API 변경 사항:
    • ContextBridge의 exposeInMainWorld 메서드가 비객체 API도 노출할 수 있도록 허용. #26834
  • display API 변경 사항:
    • Display 객체에 displayFrequency 속성 추가하여 Windows에서 재생 빈도 정보를 가져올 수 있도록 함. #26472
  • extensions API 변경 사항:
    • 일부 chrome.management API 지원 추가. #25098
  • MenuItem API 변경 사항:
    • macOS 공유 메뉴 표시 지원 추가. #25629
  • net API 변경 사항:
    • net.request()에 새로운 credentials 옵션 추가. #25284
    • 인터넷 연결 여부를 감지하는 net.online 추가. #21004
  • powerMonitor API 변경 사항:
    • powerMonitor.onBatteryPower 추가. #26494
    • macOS에서 빠른 사용자 전환 이벤트를 powerMonitor에 추가. #25321
  • session API 변경 사항:
    • ses.loadExtension() API에 allowFileAccess 옵션 추가. #27702
    • session.setPermissionRequestHandlerdisplay-capture API 추가. #27696
    • session.setSSLConfigdisabledCipherSuites 옵션 추가. #25818
    • sessionextension-loaded, extension-unloaded, extension-ready 이벤트 추가. #25385
    • SSL을 구성할 수 있는 session.setSSLConfig() 추가. #25461
    • session.setProxy()에서 direct, auto_detect, system 모드를 명시적으로 지정할 수 있도록 지원 추가. #24937
    • Serial API 지원 추가. #25237
    • 맞춤법 검사기를 활성화/비활성화할 수 있는 API 추가. #26276
  • shell API 변경 사항:
    • 동기식 shell.moveItemToTrash()를 대체하는 비동기식 shell.trashItem() API 추가. #25114
  • webContents API 변경 사항:
    • 렌더러 크래시 디버깅을 돕기 위한 작은 콘솔 힌트 추가. #25317
    • webRequest 핸들러의 세부 정보 객체에 framewebContents 속성 추가. #27334
    • 렌더러 프로세스를 강제로 종료하여 멈춘 렌더러를 복구할 수 있는 webContents.forcefullyCrashRenderer() 추가. #25580
    • 렌더러에서 생성된 자식 윈도우를 위한 setWindowOpenHandler API 추가 및 new-window 이벤트 사용 중단. #24517
  • webFrame API 변경 사항:
    • 렌더러에 맞춤법 검사 API 추가. #25060

제거되거나 더 이상 사용되지 않는 변경 사항

다음 API는 제거되었거나 더 이상 사용되지 않는다:

  • remote 모듈을 더 이상 사용하지 않는다. 이 모듈은 @electron/remote로 대체되었다. #25293
  • 더 이상 사용되지 않는 crashReporter API를 제거했다. #26709
  • 패키징된 앱의 기본 '도움말' 메뉴에서 Electron 웹사이트로의 링크를 제거했다. #25831

9.x.y 버전 지원 종료

Electron 9.x.y는 프로젝트의 지원 정책에 따라 지원이 종료되었다. 개발자와 애플리케이션은 더 새로운 버전의 Electron으로 업그레이드할 것을 권장한다.

다음 단계

단기적으로, Electron 팀은 Chromium, Node, V8과 같은 주요 컴포넌트의 개발을 따라가기 위해 계속 노력할 것이다. 출시 일정에 대해 약속하지는 않지만, 대략 분기별로 이러한 컴포넌트의 새 버전과 함께 Electron의 주요 버전을 출시할 계획이다. Electron 13.0.0의 예정된 일정은 Electron 13.0 개발 주기의 주요 날짜를 보여준다. 또한, Electron의 버전 관리에 대한 더 자세한 정보는 버전 관리 문서를 참고하면 된다.

다가오는 Electron 버전에서 예정된 주요 변경 사항에 대한 정보는 예정된 주요 변경 사항 문서를 확인하면 된다.