Electron 30.0.0
Electron 30.0.0이 출시되었다! 이번 버전은 Chromium 124.0.6367.49
, V8 12.4
, 그리고 Node.js 20.11.1
로 업그레이드되었다.
Electron 팀은 Electron 30.0.0 출시를 발표하게 되어 기쁘다. npm install electron@latest
명령어를 통해 npm으로 설치하거나 릴리스 웹사이트에서 직접 다운로드할 수 있다. 이번 릴리스에 대한 자세한 내용은 계속 읽어보자.
피드백이 있다면 Twitter나 Mastodon을 통해 공유하거나, 커뮤니티 Discord에 참여해보자. 버그 및 기능 요청은 Electron의 이슈 트래커에서 보고할 수 있다.
주요 변경 사항
주요 사항
- Windows에서 ASAR Integrity fuse 지원 추가 (#40504)
- ASAR Integrity가 활성화된 기존 앱은 올바르게 설정되지 않으면 Windows에서 작동하지 않을 수 있다. Electron 패키징 도구를 사용하는 앱은
@electron/packager@18.3.1
또는@electron/forge@7.4.0
으로 업그레이드해야 한다. - 자세한 내용은 ASAR Integrity 튜토리얼을 참고한다.
- ASAR Integrity가 활성화된 기존 앱은 올바르게 설정되지 않으면 Windows에서 작동하지 않을 수 있다. Electron 패키징 도구를 사용하는 앱은
WebContentsView
와BaseWindow
메인 프로세스 모듈 추가,BrowserView
를 대체하며 더 이상 사용되지 않음 (#35658).BrowserView
에서WebContentsView
로 마이그레이션하는 방법은 이 블로그 포스트에서 확인할 수 있다.BrowserView
는 이제WebContentsView
를 기반으로 한 shim이며, 이전 구현은 제거되었다.- 새로운
WebContentsView
API와 다른 유사한 API를 비교하려면 Web Embeds 문서를 참고한다.
- File System API 지원 구현 (#41827)
스택 변경 사항
- Chromium
124.0.6367.49
- Chrome 124 및 DevTools 124에서 새로 추가된 기능
- Chrome 123 및 DevTools 123에서 새로 추가된 기능
- Node
20.11.1
- V8
12.4
Electron 30은 Chromium을 122.0.6261.39
에서 124.0.6367.49
로, Node를 20.9.0
에서 20.11.1
로, V8을 12.2
에서 12.4
로 업그레이드한다.
새로운 기능
- 웹뷰에
transparent
웹 환경설정을 추가했다. (#40301) - webContents API에
navigationHistory
인스턴스 프로퍼티와navigationHistory.getEntryAtIndex
메서드를 추가해, 애플리케이션이 브라우징 히스토리 내의 모든 네비게이션 항목의 URL과 제목을 가져올 수 있게 했다. (#41662) - 새로운
BrowserWindow.isOccluded()
메서드를 추가해 앱이 윈도우의 가려짐 상태를 확인할 수 있게 했다. (#38982) - 유틸리티 프로세스에서
net
모듈을 사용해 만든 요청에 대한 프록시 설정 지원을 추가했다. (#41417) navigator.serial
에서 서비스 클래스 ID로 블루투스 포트를 요청하는 기능을 지원한다. (#41734)- Node.js의
NODE_EXTRA_CA_CERTS
CLI 플래그를 지원한다. (#41822)
주요 변경 사항
동작 변경: 크로스 오리진 iframe에서 기능 접근 시 Permission Policy 사용
이제 크로스 오리진 iframe은 allow
속성을 통해 특정 iframe
에서 사용 가능한 기능을 명시해야 한다. 이를 통해 해당 기능에 접근할 수 있다.
자세한 내용은 문서를 참고한다.
제거됨: --disable-color-correct-rendering
커맨드라인 스위치
이 스위치는 공식적으로 문서화된 적은 없지만, 여기서 제거 사항을 기록한다. 크로미엄 자체가 이제 색상 공간을 더 잘 지원하므로 이 플래그가 더 이상 필요하지 않다.
변경된 동작: macOS에서 BrowserView.setAutoResize
의 동작
Electron 30에서는 BrowserView
가 새로운 WebContentsView API를 기반으로 동작하도록 변경되었다.
이전에는 BrowserView
API의 setAutoResize
함수가 macOS에서는 autoresizing을, Windows와 Linux에서는 커스텀 알고리즘을 사용했다. BrowserView
가 전체 윈도우를 채우는 간단한 사용 사례에서는 두 접근 방식의 동작이 동일했다. 하지만 더 복잡한 경우에는 macOS의 autoresizing API와 Windows 및 Linux의 커스텀 리사이징 알고리즘이 완벽히 일치하지 않아 BrowserView
가 플랫폼별로 다르게 리사이징되었다. 이제는 모든 플랫폼에서 리사이징 동작이 표준화되었다.
만약 여러분의 앱이 BrowserView.setAutoResize
를 사용해 BrowserView
가 전체 윈도우를 채우는 것보다 더 복잡한 작업을 수행한다면, macOS에서의 동작 차이를 처리하기 위해 이미 커스텀 로직을 구현했을 가능성이 높다. 이 경우, Electron 30에서는 리사이징 동작이 일관되게 변경되었기 때문에 더 이상 해당 로직이 필요하지 않다.
제거됨: WebContents
의 context-menu
이벤트에서 params.inputFormType
속성
WebContents
의 context-menu
이벤트에서 params
객체의 inputFormType
속성이 제거되었다. 대신 새로운 formControlType
속성을 사용한다.
제거됨: process.getIOCounters()
Chromium은 이 정보에 대한 접근을 제거했다.
27.x.y 버전 지원 종료
Electron 27.x.y 버전은 프로젝트의 지원 정책에 따라 지원이 종료되었다. 개발자와 애플리케이션은 더 새로운 버전의 Electron으로 업그레이드하는 것을 권장한다.
E30 (2024년 4월) | E31 (2024년 6월) | E32 (2024년 8월) |
---|---|---|
30.x.y | 31.x.y | 32.x.y |
29.x.y | 30.x.y | 31.x.y |
28.x.y | 29.x.y | 30.x.y |
다음 단계
앞으로 짧은 기간 동안, Electron 팀은 Chromium, Node, V8 등 주요 컴포넌트의 개발 동향을 계속 따라가며 이를 유지하는 데 주력할 것으로 예상된다.
Electron의 공개 타임라인은 여기서 확인할 수 있다.
향후 예정된 변경 사항에 대한 자세한 정보는 계획된 주요 변경 사항 페이지에서 찾아볼 수 있다.