기여 목록 / 8464722
[remoting] Remove the leftover oauth2: prefix DCHECK and legacy test
PlatformcleanupMerged
ChromeOS 원격 지원(CRD) 호스트 RemoteSupportHostAsh에 남아 있던 oauth2: 접두어 관련 DCHECK와 레거시 토큰 테스트를 지웠습니다. 둘 다 같은 버그(b/309958013)의 TODO가 붙어 있었고, 접두어를 처리하던 본체 코드는 2025-02에 이미 제거된 상태였습니다. 2파일 −14, 릴리스 빌드 동작 불변. 리뷰어 joedow@가 부재여서 원 CL을 리뷰했던 yuweih@와 jamiewalch@의 +1을 받았고, 첫 CQ가 인프라 문제로 실패한 뒤 재시도해 2026-10-01에 머지됐습니다(43ef050a06230).
문제 설명
- issue url: 내부 버그 b/309958013 (공개 crbug 없음)
- CRD 액세스 토큰에 붙던
oauth2:접두어를 걷어내는 마이그레이션이었습니다. joedow@가 2025-02 CL 6227399(«Removing LaCrOS and pre-M124 compat code»)로 접두어 호환 코드를 지웠지만 두 곳이 남았습니다. OnSessionRetrieved()의DCHECK(!access_token.starts_with("oauth2:"))— «Remove this DCHECK after M122»- 테스트
ValidLegacyAccessTokenFormatSucceeds— «Remove this test when we remove the oauth prefix logic» - 트리는 M156이라 두 TODO의 조건(M122 경과, 접두어 로직 삭제)이 모두 충족돼 있었습니다.
해결 내용
remote_support_host_ash.cc에서 DCHECK와 설명 주석 4줄을 지웠습니다.remote_support_host_ash_unittest.cc에서ValidLegacyAccessTokenFormatSucceeds를 지웠습니다.
- // TODO(b/309958013): Remove this DCHECK after M122.
- DCHECK(!access_token.starts_with("oauth2:"));
session_params.oauth_access_token = access_token;발굴 과정
«Remove … M» 만료 주석 105건을 훑다가 Mac에서 빌드할 수 없는 ChromeOS 전용 파일만 따로 추렸습니다(후보 V~Z). 커밋 이력을 git log -S'"oauth2:"'로 따라가 접두어 로직이 이미 사라진 CL을 찾았고, 그 CL이 이 DCHECK와 테스트만 남겨 둔 것을 확인했습니다. 리뷰어는 그 CL 작성자인 joedow@로 시작했습니다. 엿새 동안 응답이 없어 그 CL을 리뷰했던 yuweih@를 추가했고, yuweih@의 +1 뒤 두 번째 OWNER로 jamiewalch@를 추가했습니다. OSSCA #538.
테스트 방법
- ChromeOS 코드라 리눅스 박스(4코어)에서
target_os="chromeos"빌드를 새로 만들었습니다..gclient에target_os = ['chromeos']추가 →gclient sync→out/cros첫 빌드(unit_tests+remoting_unittests14시간 4분 / 39,117 스텝). - 수정 전 대조군
remoting_unittests --gtest_filter='*RemoteSupportHostAshTest*'46/46 → 수정 후 45/45(지운 테스트 1개만큼 감소). 헤드리스 서버라testing/xvfb.py로 실행했습니다. - presubmit 0 경고
배운 점
- ChromeOS 코드는 리눅스 호스트에서만 빌드되고,
.gclient의target_os와gclient sync가 먼저 필요합니다. sync 없이gn gen하면 clang 버전 불일치로 바로 멈춥니다. - CrOS의
remoting_unittests는//chrome/browser에 의존해 사실상 크롬 전체를 빌드합니다. 테스트 바이너리 크기는 플랫폼마다 다릅니다. - 첫 빌드를 수정 없는 main으로 돌려 대조군을 먼저 얻으면, 이후 수정 브랜치 검증은 증분 빌드로 끝납니다.
- CQ가 실패하면 코드 문제인지부터 가립니다. 첫 CQ에서는 tryjob 3개(
android-x64-rel·linux-chromeos-rel·win-rel)가 대기열에서 시작도 못 한 채 정확히 2시간 뒤 INFRA_FAILURE로 끝났습니다. Buildbucket에서 빌드의 시작 시각이 비어 있으면 대기열 만료이고, 이때는 리뷰어에게 CQ 재시도만 부탁하면 됩니다.