Electron 12.0.0
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으로 설치하거나 릴리스 웹사이트에서 다운로드할 수 있다. 이번 릴리스에 대한 자세한 내용을 계속 읽어보고, 여러분의 피드백을 공유해 주기 바란다!
주요 변경 사항
스택 변경 사항
- Chromium
89
- Node.js
14.16
- V8
8.9
주요 기능
- ContextBridge의
exposeInMainWorld
메서드가 이제 객체가 아닌 API도 노출할 수 있다. #26834 - Node 12에서 Node 14로 업그레이드했다. #23249
- 메인 프로세스에서
WebContents
인스턴스의 하위 프레임에 접근할 수 있는 새로운webFrameMain
API를 추가했다. #25464 contextIsolation
과worldSafeExecuteJavaScript
의 기본값이 이제true
로 설정되었다. #27949 #27502
새로운 기능과 변경 사항의 전체 목록은 12.0.0 릴리스 노트를 참고한다.
주요 변경 사항
remote
모듈을 더 이상 사용하지 않는다. 이제@electron/remote
로 대체한다. #25293- 현재
remote
모듈을 사용 중이라면, 여기에서@electron/remote
로 마이그레이션하는 가이드를 참고할 수 있다.
- 현재
contextIsolation
의 기본값을true
로 변경했다. #27949worldSafeExecuteJavaScript
의 기본값을true
로 변경했다. #27502crashReporter.start({ compress })
의 기본값을false
에서true
로 변경했다. #25288- Flash 지원을 제거했다: Chromium이 Flash 지원을 중단했으며, Electron 12에서도 동일하게 제거되었다. 자세한 내용은 Chromium의 Flash 로드맵을 참고한다.
- x86 기반 Chrome에서 SSE3를 필수로 요구한다: Chromium이 SSE3(Streaming SIMD Extensions 3)를 지원하지 않는 구형 x86 CPU에 대한 지원을 중단했으며, Electron 12에서도 동일하게 적용되었다.
이러한 변경 사항과 향후 예정된 변경 사항에 대한 자세한 내용은 예정된 주요 변경 사항 페이지에서 확인할 수 있다.
API 변경 사항
webFrameMain
API 추가:webFrameMain
모듈은 기존WebContents
인스턴스에서 프레임을 조회하는 데 사용할 수 있다. 이는 기존 webFrame API의 메인 프로세스 버전에 해당한다. 이 새로운 API에 대한 자세한 정보는 여기와 문서에서 확인할 수 있다.app
API 변경 사항:BrowserWindow
API 변경 사항:BrowserWindow.isTabletMode()
API 추가. #25209BrowserWindow
에resized
(Windows/macOS) 및moved
(Windows) 이벤트 추가. #26216- 시스템 컨텍스트 메뉴를 방지하고 재정의할 수 있는 새로운
system-context-menu
이벤트 추가. #25795 BrowserView
를 상위로 올릴 수 있는win.setTopBrowserView()
추가. #27713- 문서의 최소 크기에 따라 뷰를 조정할 수 있는
webPreferences.preferredSizeMode
추가. #25874
contextBridge
API 변경 사항:- ContextBridge의
exposeInMainWorld
메서드가 비객체 API도 노출할 수 있도록 허용. #26834
- ContextBridge의
display
API 변경 사항:Display
객체에displayFrequency
속성 추가하여 Windows에서 재생 빈도 정보를 가져올 수 있도록 함. #26472
extensions
API 변경 사항:- 일부
chrome.management
API 지원 추가. #25098
- 일부
MenuItem
API 변경 사항:- macOS 공유 메뉴 표시 지원 추가. #25629
net
API 변경 사항:powerMonitor
API 변경 사항:session
API 변경 사항:ses.loadExtension()
API에allowFileAccess
옵션 추가. #27702session.setPermissionRequestHandler
에display-capture
API 추가. #27696session.setSSLConfig
에disabledCipherSuites
옵션 추가. #25818session
에extension-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 변경 사항: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 버전에서 예정된 주요 변경 사항에 대한 정보는 예정된 주요 변경 사항 문서를 확인하면 된다.