기여 목록 / 8523618
[net] Remove the expired Net.Reporting.*HeaderType histograms
NetworkcleanupIn Review
Reporting API 의 Net.Reporting.HeaderType(2025-06-22 만료)과 Net.Reporting.UploadHeaderType(2025-11-30 만료) 히스토그램을, 그것만을 위해 존재하던 enum 2개·기록 코드·테스트 단언과 함께 지웠습니다. 8파일 +1/−230, 동작은 바뀌지 않습니다.
문제 설명
- 공식 정리 작업 메타 버그: https://crbug.com/499059525
- 두 히스토그램은 어떤 Reporting API 헤더(
Report-To/Reporting-Endpoints)가 엔드포인트를 만들었는지 세는 enum 지표였습니다.HeaderType은 헤더를 파싱할 때마다,UploadHeaderType은 업로드에 성공한 보고서마다 기록했습니다. - 만료된 지 각각 15개월·10개월이 지났는데 기록 코드가 그대로라,
tools/metrics/histograms/README.md기준으로 죽은 코드였습니다.
해결 내용
ReportingHeaderParser::ReportingHeaderTypeenum,RecordReportingHeaderType()과 호출 6곳,ReportingDeliveryAgent::ReportingUploadHeaderTypeenum, 기록 헬퍼,Delivery::ProcessOutcome()에서 header type 을 계산해 보고서 수만큼 기록하던 루프를 지웠습니다.- 파서 테스트의 히스토그램 단언 9곳과
HistogramTester7개, 에이전트 테스트의 단언 4곳, 지표만 검사하던 에이전트 테스트 2개(ReportToHeaderCountedCorrectly·UploadHeaderTypeEnumCountPerReport)와 그 테스트만 쓰던 픽스처 헬퍼를 지웠습니다. 불필요해진histogram_functions.h·histogram_tester.hinclude 도 정리했습니다. metadata/net/histograms.xml항목 2개와metadata/net/enums.xml의NetReportingHeaderType·NetReportingUploadHeaderType을 지웠습니다.
if (success) {
- ReportingUploadHeaderType upload_type =
- target_.reporting_source.has_value()
- ? ReportingUploadHeaderType::kReportingEndpoints
- : ReportingUploadHeaderType::kReportTo;
- for (size_t i = 0; i < reports_.size(); ++i) {
- RecordReportingUploadHeaderType(upload_type);
- }
cache->RemoveReports(reports_, /* delivery_success */ true);같은 파일의 Net.Reporting.Report* 4개는 2026-02-21 에 만료됐지만 올해 2월 kExcludeLargeBodyReports 롤아웃용으로 들어온 것이고 테스트가 관찰 수단으로도 쓰고 있어, 삭제할지 연장할지는 OWNER 결정으로 남기고 커밋 메시지에 적었습니다.
발굴 과정
커미터 추천을 받으려면 같은 리뷰어에게 여러 번 승인받는 것이 중요해서, 이미 승인을 여러 번 받은 영역(media·net·storage)으로 발굴을 좁혔습니다. metadata/net 의 만료 히스토그램 중 net 코드가 아직 기록하는 것을 파일별로 모았고, net/reporting 은 OWNER 가 ricea@ 한 명이라 승인 경로가 짧습니다. 가장 오래 만료된 enum 지표 2개를 한 CL 로 묶고, 최근 만료분은 범위에서 뺐습니다.
테스트 방법
동작 불변 정리라 새 테스트는 없고 기존 테스트 통과가 검증입니다.
net_unittests증분 빌드 67스텝 3분 21초net_unittests --gtest_filter='*ReportingHeaderParser*:*ReportingDeliveryAgent*'87/87 (지운 테스트 2개는 더 이상 없음)validate_format.py·pretty_print.py --presubmit통과, presubmit 0 경고
배운 점
- 지표 전용 enum 은 지표를 지울 때 함께 지워야 합니다. 헤더 주석이 «enums.xml 과 맞춰라»고 적혀 있으면 그 enum 은 지표 말고는 쓰임이 없다는 신호입니다.
- 여러 줄을 한 덩어리로 지우는 편집에서 조건문 줄이 같이 딸려 가면 조기 반환이 무조건 반환으로 바뀝니다. 지운 뒤 diff 를 헝크 단위로 다시 읽어야 합니다. 이번에도 그렇게 잡았습니다.
- 같은 파일에 더 최근에 만료된 지표가 있을 때는 한 CL 에 다 넣기보다 OWNER 에게 결정을 넘기는 편이 리뷰가 빠릅니다.