기여 목록 / 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의 다른 사람으로 바꿉니다. 바꾼 지 사흘 만에 승인과 머지가 끝났습니다.