OSSCA Chromium

기여 목록 / 8449690

[media] Remove the kMergeRangesDuringAppend kill switch

MediacleanupMerged

Media Source Extensions의 SourceBufferStream이 append 직후 인접 range를 병합하는 동작을 감싸고 있던 킬스위치 kMergeRangesDuringAppend를 제거했습니다. «M147이 안정되면 제거»라는 주석과 함께 들어온 플래그로, 트리가 M156이 된 지금까지 기본 켜짐이었으므로 동작은 바뀌지 않습니다(crbug.com/486351442). 1파일 +1/−7. 2026-09-24에 머지됐습니다(5c1ab551fbab4). tmathmeyer@와 dalecurtis@의 +1을 받았고, 첫 CQ가 무관한 Mac GPU WebGL 적합성 테스트 실패(패치 없이 재실행 통과)로 떨어져 재요청 뒤 통과했습니다.

문제 설명

  • issue url: https://crbug.com/486351442
  • MP2T/AVC 파이프라인 퍼저가 IsRangeListSorted(ranges_) CHECK 실패를 찾았습니다. 겹치는 append가 서로 떨어진 range를 만들 수 있었기 때문입니다. 2026-03 수정 CL 7624208이 append 끝에 MergeAllAdjacentRanges()를 호출하도록 고치면서 롤백용 킬스위치로 감싸 두었습니다.
  • 버그는 VERIFIED로 닫혔고, 코드에는 FeatureList 조회 한 번과 TODO만 남아 있었습니다.

해결 내용

  • media/filters/source_buffer_stream.cc에서 BASE_FEATURE 정의와 TODO를 지웠습니다.
  • Append() 끝의 병합 호출을 무조건 실행하도록 바꿨습니다.
  • 파일에서 유일한 FeatureList 사용이 사라져 base/feature_list.h include도 제거했습니다.
-  if (base::FeatureList::IsEnabled(kMergeRangesDuringAppend)) {
-    MergeAllAdjacentRanges();
-  }
+  MergeAllAdjacentRanges();

about_flags·enums.xml·fieldtrial_testing_config에 등록되지 않은 플래그라 다른 파일은 손댈 것이 없었습니다.

발굴 과정

«Remove … after M» 만료 주석을 트리 전체에서 다시 훑은 스윕(148건)에서 나온 항목입니다. 플래그 이름이 든 열린 CL과 OSSCA 이슈가 없는지 확인하고 OSSCA #494로 등록한 뒤 착수했습니다.

테스트 방법

동작 불변 정리라 새 테스트는 없고 기존 테스트 통과가 검증입니다.

  • 같은 시기에 준비한 킬스위치 정리 네 건을 통합 브랜치에 모아 media_unittests·viz_unittests·google_apis_unittests를 한 번에 빌드: Mac M5, 12분 29초 / 623 스텝
  • media_unittests --gtest_filter='SourceBufferStream*' 198/198 통과
  • presubmit 0 경고

배운 점

  • 작은 정리 CL 여러 개는 통합 브랜치 하나에서 한 번에 빌드·테스트하면 빌드 비용을 나눠 쓸 수 있습니다. 업로드는 CL마다 따로 합니다.
  • 킬스위치의 원 CL 리뷰어가 곧 가장 적합한 첫 리뷰어입니다(원 CL 7624208의 리뷰어 tmathmeyer@).

참고 자료