services/network: remove stale crypto/sha2 and secure_hash includes

MERGED2026services/networkcrypto
2026. 8. 20.jmsmg 프로필 이미지jmsmg

crypto/hash 마이그레이션 이슈(crbug.com/372283556)의 일환으로, services/network 디렉토리에 남아 있던 구 해시 API(crypto/sha2.h, crypto/secure_hash.h)의 불필요한 include를 제거하였습니다.

문제 설명

  • issue url: https://crbug.com/372283556
  • 위 이슈는 구 해시 API(crypto/sha2.h, crypto/secure_hash.h)를 새로운 crypto/hash 인터페이스로 마이그레이션하는 작업입니다.
  • services/network 디렉토리를 조사해 보니, 실제 호출부는 이미 업스트림에서 crypto/hash API로 마이그레이션이 끝난 상태였습니다.
  • 하지만 호출부를 고치면서 미처 정리되지 않은 구 API의 include 문이 여러 파일에 그대로 남아 있었습니다. 사용하지 않는 include는 불필요한 의존성을 만들고, 구 API 제거를 방해합니다.

해결 내용

7개 파일에서 더 이상 사용되지 않는 include 9줄을 제거했습니다.

  1. git grep으로 services/network 내 crypto/sha2.h, crypto/secure_hash.h를 include 하는 파일을 모두 찾았습니다.

  2. 각 파일에서 crypto::SHA256Hash(), crypto::SecureHash 등 구 API 사용처가 실제로 남아 있는지 확인했습니다. 남아 있는 것은 include 문뿐이었습니다.

  3. 해당 include 문을 제거했습니다.

    --- a/services/network/sct_auditing/sct_auditing_cache.cc
    +++ b/services/network/sct_auditing/sct_auditing_cache.cc
    
    -#include "crypto/secure_hash.h"
    -#include "crypto/sha2.h"

    수정한 파일 목록:

    • network_context_unittest.cc
    • sct_auditing/sct_auditing_cache.cc
    • sct_auditing/sct_auditing_cache_unittest.cc
    • ssl_config_service_mojo_unittest.cc
    • test/trust_token_request_handler.cc
    • trust_tokens/trust_token_client_data_canonicalization.cc
    • trust_tokens/trust_token_client_data_canonicalization_unittest.cc

테스트 방법

사용하지 않는 include만 제거하는 변경이라 동작 변화가 없으며, 핵심 검증은 "정말 사용처가 없는가"와 "컴파일이 되는가"입니다.

  1. include 제거 후 git grep -nE 'crypto/(sha2|secure_hash)' -- services/network로 services/network에 구 API 참조가 하나도 남지 않았음을 확인했습니다.
    • grep에 걸리는 SHA256Hash 매치들은 crypto가 아닌 net::SHA256HashValue 타입으로, 이번 마이그레이션과 무관합니다.
  2. 수정된 unittest 파일들은 services_unittests 타깃에 속하므로 autoninja -C out/Default services_unittests 빌드로 컴파일을 확인할 수 있습니다.
  3. 다른 플랫폼을 포함한 전체 검증은 Gerrit CQ dry run에 맡겼습니다. 멘티 계정에는 tryjob 권한이 없어 CQ 실행은 멘토님이 진행해 주셨습니다.

배운 점

  • 멘토님께서 작은 기여부터 시작하는 것이 좋다고 하셔서 민섭님 이슈 기반으로 작성을 했는데, 작은 기여로한바퀴 쭉 흐름을 익히는 것이 좋은 것 같습니다.
  • include 정리 CL은 diff는 작지만, "사용처가 없다"는 것을 스스로 증명하는 조사 과정(grep, 타입 구분)이 본 작업이라는 점을 체감했습니다.
  • OWNERS 디렉토리 단위로 CL 범위를 나누고, 해당 디렉토리의 활동적인 OWNER를 리뷰어로 지정하는 Chromium 리뷰 프로세스를 경험했습니다.

참고 자료