Servo 0.7.0, 웹표준 기능 대폭 확충
원제 September in Servo: <progress>, rounded rectangles, and more
102 포인트댓글 24
Key Point
웹 표준 호환성 확대와 성능 최적화가 동시에 진행 중인 오픈소스 렌더링 엔진의 큰 업데이트로, 웹 개발자와 Servo 기여자들이 진행 상황을 파악해야 할 시점이다.
핵심 요약
- 웹 렌더링 엔진 Servo가 9월 동안 527개 커밋을 통해 0.7.0 버전을 릴리스했다.
- 요소, :checked 의사클래스, user-select 속성, CSS typed arithmetic, alpha() 함수, font-width 속성 등 새로운 웹 플랫폼 기능을 추가했다.
- parentRule, version, getComposedRanges(), baseURL, CSS 모듈, SVG 요소들, MLKEM768-X25519 알고리즘, roundRect(), PerformancePaintTiming 등 다양한 DOM API를 구현했다.
- SpiderMonkey v153.3과 mozangle v0.7으로 업그레이드해 보안 버그 수정사항을 반영했으며, egui.rs 데모와 Candy Crush 게임이 이제 정상 작동한다.
- 접근성 트리가 인라인 요소의 기하학적 경계를 보고하며 DOM 변경 응답 시 작업량을 대폭 줄였다.
- WebGL2 구현에 대한 컨포먼스 개선이 다수 이루어졌고, 키보드 입력 연결로 많은 contenteditable 기반 에디터가 이제 사용 가능해졌다.
- 자막 기능이 진전했으며, 텍스트 트랙이 enter, exit, cuechange 이벤트를 발화하고 WebVTT 파싱이 에러에서 복구될 수 있다.
- IndexedDB 개선으로 관련 없는 테이블의 중복 인덱스 이름으로 인한 에러가 해결되었고, openCursor(), openKeyCursor(), advance(), continue(), continuePrimaryKey() 메서드가 구현되었다.
- Embedding API에서 접근성 도구 이벤트 포워딩, 세션 히스토리 클리어 API가 추가되었으며, 멀티프로세스 모드가 빌드 시 활성화 옵션으로 제공된다.
- 선택(selection) 개선으로 섀도우 트리를 걸쳐 선택 범위가 가능해졌고, Window.open()이 팝업 방지 샌드박스 플래그를 존중한다.
- 성능 최적화에서 불필요한 할당 제거, 벡터 사전할당, 싱글 프로세스 모드에서 IPC 회피로 성능을 개선했다.
- GC 상호작용 감소, 선택 수정 시 작업 감소, 이벤트 발생, 폰트 메트릭 계산 등 여러 작업에서 속도 향상을 이루었다.
- 메모리 사용량을 버퍼 재사용, 페이지별 데이터 클리어, 데이터 구조 컴팩팅으로 줄였으며, , 요소와 관련된 메모리 누수를 수정했다.
- 월 8,144 USD의 정기 후원금을 받고 있으며, thanks.dev에서 37명의 GitHub 사용자가 Servo에 후원하고 있다.