기여 목록 / 8449710
[viz] Remove the kRejectInvalidChildRegions kill switch
GraphicscleanupMerged
viz HitTestAggregator가 부모-자식 관계가 아닌 frame sink의 hit-test region을 걸러내는 검증을 감싸고 있던 킬스위치 kRejectInvalidChildRegions를 제거했습니다. «M150이 Stable이 되면 제거»라는 주석과 함께 들어온 플래그로, 트리가 M156이 된 지금까지 기본 켜짐이었으므로 동작은 바뀌지 않습니다(crbug.com/495852034). 1파일 +1/−7. 2026-09-24에 머지됐습니다(425de4fbabe45). jonross@의 +1 뒤 두 번째 리뷰어로 원 CL 리뷰어 kylechar@를 추가하자 바로 +1과 CQ를 눌러 줬습니다.
문제 설명
- issue url: https://crbug.com/495852034
- 2026-04 CL 7748974가 hit-test 집계 때 «제출한 frame sink의 자식인지»를 확인해, 자식이 아닌 region을 집계 결과에서 빼도록 했습니다. 이 검증을 롤백용 킬스위치로 감싸 두었습니다.
- 지금은
AppendRegion()조건문에FeatureList조회 한 항과 TODO만 남아 있었습니다.
해결 내용
components/viz/service/hit_test/hit_test_aggregator.cc에서BASE_FEATURE정의와 TODO, 그것만 담고 있던 익명 namespace를 지웠습니다.- 자식 관계 검증을 무조건 실행하도록 조건에서 플래그 항을 뺐습니다.
- 파일에서 유일한
FeatureList사용이 사라져base/feature_list.hinclude도 제거했습니다.
- if (base::FeatureList::IsEnabled(kRejectInvalidChildRegions) &&
- !delegate_->IsChildOf(submitting_frame_sink_id, region.frame_sink_id)) {
+ if (!delegate_->IsChildOf(submitting_frame_sink_id, region.frame_sink_id)) {
return base::unexpected(AggregationError::INVALID_CHILD_REGION);
}발굴 과정
«Remove … after M» 만료 주석을 트리 전체에서 다시 훑은 스윕(148건)에서 나온 항목입니다. 플래그 이름이 든 열린 CL과 OSSCA 이슈가 없는지 확인하고 OSSCA #495로 등록한 뒤 착수했습니다.
테스트 방법
동작 불변 정리라 새 테스트는 없고 기존 테스트 통과가 검증입니다. 원 CL이 추가한 HitTestAggregatorTest의 자식 검증 테스트가 플래그 없이도 그대로 통과하는지가 핵심입니다.
- 같은 시기에 준비한 킬스위치 정리 네 건을 통합 브랜치에 모아
media_unittests·viz_unittests·google_apis_unittests를 한 번에 빌드: Mac M5, 12분 29초 / 623 스텝 viz_unittests의HitTestAggregatorTest.*·SkiaOutputSurfaceImplTest.*필터 19/19 통과 (1개는 플랫폼 조건으로 SKIPPED)- presubmit 0 경고
배운 점
- 킬스위치가 파일의 유일한 익명 namespace 내용이면 namespace 블록째 지워야 빈 블록이 남지 않습니다.
- 원 CL 작성자가 해당 디렉터리 OWNER라면 첫 리뷰어로 가장 빠릅니다(jonross@).