OSSCA Chromium

기여 목록 / 8447532

[gaia] Remove kSigninChromePasskeyUnlockUrlUsesAccountIndex

SecuritycleanupMerged

패스키 잠금 해제 URL에 계정 인덱스(authuser=<n>)를 붙이는 동작을 감싸고 있던 Finch 킬스위치 kSigninChromePasskeyUnlockUrlUsesAccountIndex를 제거했습니다. 코드 주석에 «M150에 기본 켜짐, M153 이후 제거»라고 적혀 있던 플래그로, 트리가 M156이 된 지금까지 기본 켜짐이었으므로 동작은 바뀌지 않습니다. 4파일 +2/−45. 2026-09-23에 머지됐습니다(ec8311ae05c34). OWNER alexilin@가 «기능 소유자 승인이 먼저»라며 플래그 작성자 nsatragno@를 불러 두 사람의 +1을 받았습니다.

문제 설명

  • crbug 없음. google_apis/gaia/gaia_features.cc의 주석 «Intended as a Finch killswitch. Enabled by default in M150. Remove in or after M153»이 근거입니다.
  • 여러 계정으로 로그인한 상태에서 패스키 잠금 해제 페이지가 올바른 계정으로 열리도록, GaiaUrls의 두 함수(SigninChromePasskeyUnlockUrl, …DesktopEmbeddedUrl)가 URL에 계정 인덱스를 붙입니다. 플래그가 꺼지면 인덱스 없는 옛 URL을 돌려줬습니다.
  • 지금은 두 함수의 꺼진 쪽 early return과, 그 상태를 검사하는 _FeatureDisabled 테스트 두 개만 남아 있었습니다.

해결 내용

  • gaia_features.{h,cc}에서 플래그 선언·정의를 지웠습니다.
  • gaia_urls.cc의 두 함수에서 플래그가 꺼졌을 때의 early return을 지웠습니다.
  • gaia_urls_unittest.cc에서 _FeatureDisabled 테스트 두 개를 지우고, _FeatureEnabled 두 개는 플래그 설정 없이 남기면서 이름의 접미사를 뗐습니다.
  • 형제 플래그 kSigninChromeSyncKeysUrlUsesAccountIndex는 제거 지시가 없어 그대로 두었습니다.
 GURL GaiaUrls::SigninChromePasskeyUnlockUrl(size_t account_index) const {
-  if (!base::FeatureList::IsEnabled(
-          gaia::features::kSigninChromePasskeyUnlockUrlUsesAccountIndex)) {
-    return signin_chrome_passkey_unlock_url_;
-  }
   return net::AppendQueryParameter(signin_chrome_passkey_unlock_url_,
                                    "authuser",
                                    base::NumberToString(account_index));

발굴 과정

«Remove … after M» 만료 주석을 트리 전체에서 다시 훑은 스윕(148건)에서 나온 항목입니다. crbug가 없는 자체 발굴이라 OSSCA에는 self-issue로 #498을 등록했고, 플래그 이름이 든 열린 CL과 파일의 열린 CL이 없는 것을 확인한 뒤 착수했습니다.

테스트 방법

  • 같은 시기에 준비한 킬스위치 정리 네 건을 통합 브랜치에 모아 media_unittests·viz_unittests·google_apis_unittests를 한 번에 빌드: Mac M5, 12분 29초 / 623 스텝
  • google_apis_unittests --gtest_filter='GaiaUrlsTest.*' 20/20 통과 (이름을 바꾼 두 테스트 포함)
  • presubmit 0 경고

배운 점

  • 플래그를 지울 때 «꺼진 상태»를 검사하는 테스트는 지우고, «켜진 상태» 테스트는 플래그 설정만 빼고 남깁니다. 이름에 붙은 _FeatureEnabled 같은 접미사도 함께 정리해야 이후 읽는 사람이 헷갈리지 않습니다.
  • 이름이 비슷한 형제 플래그가 있으면 제거 지시가 각각 있는지 따로 확인합니다.

참고 자료