OSSCA Chromium

기여 목록 / 8467023

[shelf] Remove ChromeShelfPrefs::CleanupPreloadPrefs()

PlatformcleanupMerged

ChromeOS 셸프 pref에 중복으로 쌓인 'preload' 값을 걸러내던 ChromeShelfPrefs::CleanupPreloadPrefs()를 지웠습니다. M127 베타 버그를 위한 일회성 정리였고, 주석이 허용한 «mid 2025»를 1년 넘게 지났습니다. 3파일 −64. 셸프 OWNER diwux@가 업로드 당일 승인했고, 두 번째로 더한 khmel@가 일주일 넘게 답이 없어 hidehiko@로 바꿔 두 번째 승인을 받았습니다. diwux@가 CQ를 돌려 한 번에 통과해 2026-10-06에 머지됐습니다(b25e86181d2be).

문제 설명

  • issue url: https://crbug.com/350769496 (접근 제한 이슈라 내용은 볼 수 없음)
  • M127 베타에서 ShelfDefaultPinLayoutRolls(와 태블릿용 목록)에 'preload' 값이 여러 번 기록되는 버그가 있었습니다. 2024-07 joelhockey@의 CL이 원인을 고쳐 'preload'를 한 번만 쓰게 했고, 이미 영향을 받은 프로필을 위해 중복 제거 함수를 추가했습니다.
  • 그 함수에 «can be removed once M127 is no longer in stable (end of 2024, or mid 2025 is ok)»라는 TODO가 붙어 있었습니다.

해결 내용

  • chrome_shelf_prefs.cc에서 함수와 AttachProfile()의 호출, 이제 쓰지 않는 #include <set>을 지웠습니다.
  • chrome_shelf_prefs.h에서 선언을, chrome_shelf_prefs_unittest.cc에서 테스트 CleanupPreloadPrefs를 지웠습니다.
  • 원인 수정(OnGetPinPreloadApps()가 'preload'를 한 번만 씀)과 그 회귀 테스트는 그대로 둡니다.
  • 원인은 2024년에 이미 고쳐졌고 이 CL은 남은 정리라서 트레일러는 Fixed: 대신 Bug: 350769496을 썼습니다.
   if (profile_) {
-    CleanupPreloadPrefs(profile_->GetPrefs());
-  }

발굴 과정

만료 주석 스윕에서 ChromeOS 전용 파일만 추린 후보 V~Z 중 하나입니다. crbug가 로그인 없이는 보이지 않아, 같은 경우였던 #443처럼 직접 찾은 이슈 형식으로 등록했습니다(OSSCA #544). 같은 파일에 열린 CL 8382427이 있어, 올리기 전에 최신 main과 병합 충돌이 없는지 git merge-tree로 확인했습니다.

테스트 방법

  • 리눅스 박스(4코어)에서 target_os="chromeos" 빌드 후 unit_tests --gtest_filter='ChromeShelfPrefsTest.*': 수정 전 21/21 → 수정 후 20/20. 소스에는 30개가 있지만 9개는 GOOGLE_CHROME_BRANDING 빌드 전용이라 Chromium 빌드에서는 빠집니다.
  • presubmit 0 경고

배운 점

  • 테스트 수가 소스와 다르면 먼저 빌드 플래그 조건(#if BUILDFLAG(...))을 봅니다. 빠진 게 아니라 컴파일되지 않은 것일 수 있습니다.
  • Fixed:는 이 CL로 버그가 끝날 때만 씁니다. 볼 수 없는 버그를 닫게 두지 않습니다.
  • 두 번째 리뷰어가 일주일 넘게 조용하면 기다리지 말고 같은 OWNERS의 다른 사람으로 바꿉니다. 바꾼 지 사흘 만에 승인과 머지가 끝났습니다.

참고 자료