이전 Chrome 버전
이전 버전의 Chrome의 경우 지원되는 ChromeDriver 버전은 다음과 같습니다.
올바른 ChromeDriver 버전을 선택하는 방법에 관한 자세한 내용은 버전 선택 페이지를 참고하세요.
ChromeDriver 148
버그 수정
- DOM 액세스: 닫힌 섀도 루트 내에 중첩된 iframe 내에서 버튼 클릭을 시뮬레이션할 때 발생하는 비정상 종료 문제가 수정되었습니다. 이전에 소유자 프레임 요소 ID를 찾는 데 사용된 JavaScript는 닫힌 섀도우 루트를 뚫을 수 없었습니다. 새 구현에서는
f.X.d.Y.e.Z형식을 직접 사용하여 프레임을 해결합니다 (crrev.com/c/7594919, 버그: 469831357). - 보안: 위치 인수 삽입과 관련된 잠재적 취약점을 방지하기 위해 Chrome 인수 정리 강화 (crrev.com/c/7695604, 버그: 494464734)
- 테스트: AddressSanitizer (ASAN)에서 실행할 때
commands_unittest의FindElement(s)WhileNavigating테스트에 대한kImplicitWait시간 제한이 증가했습니다. 기본 3초 제한 시간이 재시도 루프가 ASAN 오버헤드에서 모든 모의 오류를 소비하기에 충분하지 않아 불안정성이 발생했습니다 (crrev.com/c/7657276).
내부 변경사항 및 리팩터링
- C++ 표준:
//chrome.cc파일에서 불필요한base/functional/callback_forward.h포함을 대체하여 콜백이 실제로 사용될 때callback.h사용을 강제 적용했습니다 (crrev.com/c/7200285, 버그: 40318405). 컴파일 효율성을 개선하기 위해logging::LoggingSettings를base/logging.h에서 자체 헤더base/logging/logging_settings.h로 이동했습니다 (crrev.com/c/7173024, crrev.com/c/7170750로 되돌린 후 crrev.com/c/7160150 다시 착륙).base/logging.h와 관련된 다양한 IWYU 오류를 해결했습니다 (crrev.com/c/7730403, 버그: 499476145). - C++ 표준: 중복된 맵
count(key)검사를 조회로 대체하여 더 효율적인find(key)반복자 액세스를 사용했습니다 (crrev.com/c/7705392, crrev.com/c/7693277, 버그: 452950815). 캡슐화를 개선하기 위해Thread생성자를 통해ThreadDelegate를 삽입하고 스레드를 다시 시작해야 하는 경우를 수용하기 위해Thread에Restartable옵션을 추가했습니다 (crrev.com/c/7696887, 버그: 40881604). - 메모리 안전: 파일 전체
#pragma allow_unsafe_buffers를chrome/전반의 세부UNSAFE_TODO()매크로로 변환했습니다 (crrev.com/c/7132241, 버그: 409340989).IOBuffer->span().first()을IOBuffer->first()으로 단축했습니다 (crrev.com/c/7159119). - 종속 항목:
crossbench종속 항목을 롤링하여 macOS 및 Android에서 로컬로 빌드된 ChromeDriver 바이너리를 검색하는 수정사항을 가져왔습니다 (crrev.com/c/7673978). - 테스트: 기본 빌드 및 테스트 인프라 수정 (crrev.com/c/7707960)에 따라
chromedriver_py_tests에서module스키마를 다시 사용 설정했습니다.
ChromeDriver 147
버그 수정
- 테스트: 특히 사이트 격리 시나리오에서 오버레이 요소가 있는 교차 출처 iframe에 대한 클릭을
ElementClick가 올바르게 처리하는지 확인하는 밀폐 회귀 테스트를 추가했습니다. 이렇게 하면 클릭이 표시되는 오버레이 대신 삽입된 콘텐츠로 잘못 라우팅되지 않습니다 (crrev.com/c/7261984, 버그: 42321834, 버그: 42322220).
내부 변경사항 및 리팩터링
- C++ 표준: Google C++ 스타일 가이드를 준수하도록 URL 디코딩 모드와 함수 이름을 변경하여
DecodeURLMode를DecodeUrlMode로,DecodeURLEscapeSequences()를DecodeUrlEscapeSequences()로 변경했습니다 (crrev.com/c/7593238). 코드베이스 전체에서 URL 디코딩 사용을 간소화하기 위해url::UrlEscapeDecoder도입 (crrev.com/c/7610180)//chrome파일에서 불필요한build/branding_buildflags.h포함이 삭제되었습니다 (crrev.com/c/7595125, 버그: 40318405). ChromeDriver 내를 제외하고//chrome에서BUILDFLAG(IS_FUCHSIA)로직을 삭제했습니다 (crrev.com/c/5485913, 버그: 41481724). - 메모리 안전 (spanification): ChromeDriver 유틸리티에서
UNSAFE_TODO마커를 해결하여 안전한 스팬 기반 구현으로 이전했습니다 (crrev.com/c/7562602, 버그: 435317390).
ChromeDriver 146
버그 수정
- 안정성: 탐색이 완료되기를 기다리는 동안과 같이 창이 동시에 닫히는 경우 명령어를 처리하는 중에 발생할 수 있는 ChromeDriver 다운 문제가 수정되었습니다. 이 수정사항은
WebView객체가 조기에 삭제되지 않도록 잠금을 획득합니다 (crrev.com/c/7257074, 버그: 468228355). - 보안: ChromeDriver HTTP 서버로 수신되는 WebSocket 연결에
Origin헤더 검사를 추가하여 잠재적인 교차 출처 하이재킹을 방지했습니다 (crrev.com/c/7538400, 버그: 478783560). - 테스트:
testWebviewDetactedDuringClick를 불안정 필터로 이동하여 헤드리스 모드뿐만 아니라 모든 실행에서 건너뜁니다 (crrev.com/c/7545378, 버그: 481485821).
내부 변경사항 및 리팩터링
- C++ 표준:
//chrome전반에서base::DictValue와base::ListValue를 최신 버전 (base::Value::Dict,base::Value::List)으로 이름이 변경되었습니다 (crrev.com/c/7515855, crrev.com/c/7514475, 버그: 478100525).base::Contains()사용을std::ranges::contains()로 대체했습니다 (crrev.com/c/7461026, 버그: 470391351).std::set및std::unordered_set을 적절한 경우base::fixed_flat_set로 이전했습니다 (crrev.com/c/7521991, 버그: 473916362). 파싱 옵션을 지정하지 않은base::JSONReader::Read호출을 리팩터링했습니다 (crrev.com/c/6990988, crrev.com/c/6980533, 버그: 446188265). 다양한base::JSONWriter::Write()호출을base::WriteJson()로 대체했습니다 (crrev.com/c/6969134, crrev.com/c/6929101, 버그: 443929217).#include순서 정리 (crrev.com/c/7366868) 댓글의 버그 참조를 Monorail ID 대신 Buganizer ID를 사용하도록 이전했습니다 (crrev.com/c/7528268, 버그: 321899722). 명확성을 위해IS_OZONE_*빌드 플래그의 이름을SUPPORTS_OZONE_*으로 바꿈 (crrev.com/c/7535923). - 메모리 안전 (spanification):
base/strings/utf_string_conversion_utils.cc에서 안전하지 않은 포인터 사용을base::span로 대체했습니다 (crrev.com/c/7496410, 버그: 439964610, 버그: 40284755).//chrome테스트에서 더 많은base::File사용을 spanified했습니다 (crrev.com/c/7489592, 버그: 435317390).//chrome에서 집계 초기화로memset를 대체했습니다 (crrev.com/c/6875520, 버그: 435317390). 나머지#pragma allow_unsafe_buffers를UNSAFE_TODO마커로 변환했습니다 (crrev.com/c/7132241, 버그: 409340989). - DSE 사전 워밍: 관련 ChromeDriver 테스트 불안정 문제가 해결됨에 따라 macOS 및 Windows의
fieldtrial_testing_config.json에서DSEPrewarm기능을 사용 설정했습니다 (crrev.com/c/7489009, crrev.com/c/7452344로 되돌린 후 crrev.com/c/7002185 다시 실행). (참고: 이 reland는 Windows에서 테스트 런타임이 증가하여 다시 되돌려졌습니다 (crrev.com/c/7517985, 버그: 478888140)). - 진단: 더 나은 디버그 가능성을 위해
WaitableEvent및ConditionVariable추적 이벤트에 호출자 위치 추적을 추가했습니다 (crrev.com/c/7487755, 버그: 476408124).
ChromeDriver 145
새로운 기능
- 테스트:
input,textarea,contenteditable요소를 타겟팅하는 다양한 길이 (예: 53, 101, 501자)의 결정적 문자열 테스트를 허용하도록run_py_tests.py테스트 프레임워크를 업데이트했습니다. 이를 통해 긴send_keys작업 중에 문자가 삭제되지 않도록 회귀 범위를 제공합니다 (crrev.com/c/7221410, 버그: 428116078). - 테스트: HTML
<selectlist>요소에 관한 특정 테스트를 추가했습니다 (crrev.com/c/7420729, 버그: 342889200).
버그 수정
- 스크린샷: WebDriver 사양에서 크기 조정을 규정하지 않고 다른 스크린샷 기능과 일치하지 않으므로 요소 스크린샷의 크기 조정이 되돌려졌습니다 (crrev.com/c/7409603, 버그: 42323022).
- 테스트: ChromeDriver 테스트 기대치를 DevTools 프런트엔드 (crrev.com/c/7408699, 버그: 474179501)에 도입된 최근의 올바른 값 (플랫폼, platformVersion, 모델, 모바일 필드)과 일치하도록 업데이트하여
testClientHintsDeviceNameIPhoneX및testClientHintsDeviceNameIPad의 실패를 수정했습니다.
내부 변경사항 및 리팩터링
- C++ 표준: 필요한 서식 수정사항 (crrev.com/c/7247217)을 포함하여
//chrome전반에서 다양한base::Contains()사용을std::ranges::contains()로 이전했습니다 (crrev.com/c/7411011, 버그: 470391351).substr()사용 시 불필요한 문자열 할당을 방지하기 위해 문자열 매개변수를std::string_view로 리팩터링했습니다 (crrev.com/c/7350716).//chrome헤더에서 불필요한<map>포함을 삭제했습니다 (crrev.com/c/7225838, 버그: 40318405). 일부 파일의 포함 순서가 수정되었습니다 (crrev.com/c/7366868).std::unique_ptr대신std::optional를 사용하는BodyAsStringCallback로SimpleURLLoader사용의 기존BodyAsStringCallbackDeprecated콜백을 대체했습니다 (crrev.com/c/7210000, 버그: 40258809). - 테스트: 뷰 계층 구조에 추가되지 않은 대기 중인 정보 표시줄을 처리할 때 ChromeDriver 브라우저 테스트에서 비정상 종료를 방지하는 수정사항을 포함하여
InfobarPrioritization필드 트라이얼 구성을 다시 적용했습니다 (crrev.com/c/7223590, 버그: 447176374). 이전에는 관련 없는 테스트 실패로 인해 되돌려졌던 Glic 기능의 국가 및 언어 필터링이 다시 적용되었습니다 (crrev.com/c/7245749, 되돌린 후 crrev.com/c/7148759 다시 적용 crrev.com/c/7233767, 버그: 454431875).
ChromeDriver 144
새로운 기능
- 권한: 최신 W3C 사양을 준수하도록
SetPermission명령어를 업데이트하여 최상위 출처 외에 현재 프레임의 URL (삽입된 출처)을 사용합니다. 이렇게 하면 삽입된 컨텍스트에 의존하는storage-access와 같은 권한이 올바르게 구성됩니다 (crrev.com/c/7106801, crrev.com/c/7104484로 되돌린 후 crrev.com/c/7093216 다시 착륙, 버그: 384959114). - 테스트: 구조화된 테스트 ID (crrev.com/c/7124354, 버그: 456432041)를 사용할 때 불안정성 보증인을 지원하기 위해 ChromeDriver 테스트 업로드 페이로드에
testMetadata(테스트 이름 포함)이 추가되었습니다.
버그 수정
- 타겟 수명 주기: 하위 프레임이 명령 응답을 기다리는 동안 상위 프레임이 분리되면 ChromeDriver가 멈추는 버그가 수정되었습니다. 이제 ChromeDriver는 명령어를 처리하는 동안 상위
WebViewImpl가 잠기고 분리된 것으로 표시되면 하위 프레임을 명시적으로 전이적으로 분리합니다 (crrev.com/c/7080912, 버그: 438436830). - 창 관리: ChromeDriver 세션의 경우 가려진 창의 백그라운드 처리를 사용 중지했습니다. 브라우저에서 창이 가려져 있다고 잘못 판단하여 제한하는 경우 테스트가 실패할 수 있는 WebDriver BiDi의 문제가 해결됩니다 (crrev.com/c/7128058, Bug: 458027819).
내부 변경사항 및 리팩터링
- C++ 표준:
//chrome.cc파일에서base/functional/callback_forward.h의 불필요한 포함을 삭제하여 콜백이 실제로 사용될 때callback.h사용을 강제 적용했습니다 (crrev.com/c/7200285, 버그: 40318405). 컴파일 효율성을 개선하기 위해logging::LoggingSettings를base/logging.h에서 자체 헤더base/logging/logging_settings.h로 이동했습니다 (crrev.com/c/7173024, crrev.com/c/7170750로 되돌린 후 crrev.com/c/7160150 다시 착륙).base::HexEncode의 사용을 최신base::HexEncodeLower으로 이전했습니다 (crrev.com/c/7103100, 버그: 456472080). - 메모리 안전 (spanification):
PipeBuilder및PipeConnection단위 테스트에서WriteToPipe및WriteToPipeNoBestEffort를base::span를 허용하도록 이전하여 안전하지 않은 버퍼 사용을 수정했습니다 (crrev.com/c/7090293, 버그: 455758227). 파일 전체#pragma allow_unsafe_buffers를chrome/전반의 상세UNSAFE_TODO()매크로로 변환했습니다 (crrev.com/c/7132241, 버그: 409340989).IOBuffer->span().first()을IOBuffer->first()으로 단축했습니다 (crrev.com/c/7159119).
ChromeDriver 143
버그 수정
- 안정성:
OverrideNetworkConditions내에서 발생하는 Use-After-Free (UAF) 비정상 종료를 수정했습니다. 후속 애플리케이션을 위해 저장된 원시 포인터가 연속 호출 사이에 해제되었습니다. 이제 올바르게 관리됩니다 (crrev.com/c/7047422, Bug: 42323833). - 테스트: 더 안정적인 동기화를 위해
WaitForConditionAPI를 활용하여 불안정한 Android ChromeDriver 터치 테스트를 수정했습니다 (crrev.com/c/6978928, 버그: 42321861). - DSE 사전 로드:
--disable-features=Prewarm스위치를 통해 ChromeDriver에서Prewarm기능을 기본적으로 사용 중지하여 사전 로드된 페이지가 테스트 실행 및 타겟 검색을 방해하지 않도록 했습니다 (crrev.com/c/7007072, 버그: 431928370).
내부 변경사항 및 리팩터링
- C++ 표준: 스마트 포인터만 사용되는
//chrome헤더에서ref_counted.h를scoped_refptr.h로 바꿔 컴파일 효율성을 개선했습니다 (crrev.com/c/7080753, 버그: 40245294). 문자열 할당을 명확하게 나타내고 실수로 인한 성능 저하를 방지하기 위해GURL접근자를Get*변형 (예:spec()대신GetSpec())으로 이전했습니다 (crrev.com/c/7002119, 버그: 448174617). - 테스트:
ADD_FAILURE()을 사용하여devtools_client_impl_unittest.cc에서 중복 검사 패턴을 삭제했습니다 (crrev.com/c/6998270).crbug.com/413382905회귀 테스트가 추가되었습니다 (crrev.com/c/6879417).
ChromeDriver 142
새로운 기능
- 진단: 브라우저에서 메모리를 절약하기 위해 사전 예방적으로 종료한 프로세스와 메모리 부족(OOM) 오류로 인해 비정상 종료된 프로세스를 구분하기 위해
TERMINATION_STATUS_EVICTED_FOR_MEMORY상태가 추가되었습니다. 현재는 OOM 비정상 종료와 동일하게 작동하지만 (슬픈 탭 표시) 향후 별도의 처리를 위한 기반을 마련합니다 (crrev.com/c/6991933, 버그: 394092280). - 진단: 데스크톱 브라우저의 기본 프로세스 ID를 반환하는
goog:processID기능이 WebDriver 응답에 추가되었습니다. 이를 통해 ChromeDriver가 Firefox의moz:processID와 일치하게 되고 플랫폼 접근성 API 테스트에 도움이 됩니다 (crrev.com/c/5825307, 버그: 438884256). - 테스트: ChromeDriver의 Python 통합 테스트를 위해 ResultSink에 구조화된 테스트 ID 업로드 지원이 추가되었습니다 (crrev.com/c/6916708, 버그: 418015486).
버그 수정
- 진단:
user-data-dir사용과 관련된 혼란스러운 일반 오류 메시지가 더 이상 표시되지 않도록 일반 Chrome 종료 시 ChromeDriver의 동작이 수정되었습니다. 이제 인스턴스가 종료되었다고 명시적으로 표시되며 Chrome에서 발생한 특정 오류에 관한 자세한 로그로 사용자를 안내합니다 (crrev.com/c/6977507, 버그: 42323434). - 초기화: Selenium WebDriver v4.16.0 변경사항 (crrev.com/c/6630600)과 호환되도록 ChromeDriver의 초기화 구조가 업데이트되었습니다.
- Android: 패키지 관리자에서
--user cur플래그를 지원하지 않는 기존 Android 버전 (Android 11 이전)에서CheckAppInstalled수정 (crrev.com/c/6785949, 버그: 433885051) - 테스트: ChromeDriver에서
IgnoreDuplicateNavs가 기본 기능 스위치를 잘못 재정의하는 버그가 수정되었습니다. ChromeDriver 세션에서 이 기능이 사용 중지되었으며Switches::SetFromSwitches로직이 수정되었습니다 (crrev.com/c/6949166, 버그: 445332809).
내부 변경사항 및 리팩터링
- C++ 표준: 지원 중단된
base::JSONWriter::Write()호출을base::WriteJson()로 대체하여 반환 값이 확인되지 않은 경우 실패 시 빈 문자열을 반환하는 동작을 유지했습니다 (crrev.com/c/6969134, crrev.com/c/6929101, 버그: 443929217).base::JSONReader::Read및base::JSONReader::ReadAndReturnValueWithError에서 규정을 준수하지 않는 JSON 파싱 옵션 (예: 주석 허용)을 명시적으로 선택해야 합니다 (crrev.com/c/6990988, crrev.com/c/6980533, 버그: 446188265). 수동 범위 지정 노력에 따라 파일 전체#pragma allow_unsafe_bufferspragma가 삭제되었습니다 (crrev.com/c/6778035, 버그: 409340989). 메모리 누수가 있는LazyInstance매크로 사용 정리 (crrev.com/c/6781377, 버그: 432815283) IWYU를 통해http_response_headers.h의 누락된 헤더를 포함했습니다 (crrev.com/c/6894196, 버그: 40216326). - 메모리 안전 (spanification): Linux 빌드를 위해
chrome/디렉터리 전반에서 수많은 포인터를 자동으로 spanified하여 크기 매개변수가 중복된 것으로 간주되는 위치에 심각하지 않은CHECK를 추가했습니다 (crrev.com/c/6734592, 버그: 431824299). - 테스트: macOS에서
testDoesntCrashOnClosingBrowserFromAsyncScript를 일시적으로 사용 중지했습니다 (crrev.com/c/6995358, 버그: 446461733). '인증서'와 관련된 테스트 메서드 이름의 오타를 수정했습니다(crrev.com/c/6950683).//chrome/testGN 파일 자동 형식 지정 (crrev.com/c/6789277, 버그: 40760278) - FedCM: 계정 대화상자를 표시해야 하는지 동기식으로 확인하기 위해
IdentityDialogController에ShouldShowAccountsPassiveDialog함수를 도입하여 비동기 검사 및 DevTools 계측과 관련된 비정상 종료를 수정했습니다 (crrev.com/c/6780413, 버그: 425801332). - DSE 예열: 예열을 수동으로 사용 설정 또는 사용 중지하는 단기 솔루션으로 DevTools 프로토콜에
Page.setPrewarmingAllowed가 추가되어 기본 페이지와 올바르게 상호작용하도록 관련 테스트가 수정되었습니다 (crrev.com/c/6847287, 버그: 431928370). 불안정 문제를 해결한 후 macOS 및 Windows용fieldtrial_testing_config.json에서DSEPrewarm기능을 사용 설정했습니다 (crrev.com/c/6951835, 버그: 431928370, 버그: 435621391). (참고: CDP 명령어와 필드 체험판 사용 설정은 각각 WebDriver 사용자의 예기치 않은 타겟을 노출하는 브레이킹 체인지와 다른 다운스트림 문제를 일으키는 변경사항으로 인해 되돌려졌습니다 (crrev.com/c/6966133, crrev.com/c/6966161, 버그: 445883308)). - 정리: Android 코드에서 지원되지 않는
WebLayer프로젝트에 대한 나머지 참조를 삭제했습니다 (crrev.com/c/6792520, 버그: 40272607).
ChromeDriver 141
새로운 기능
- 테스트:
run_web_tests.py의 동작과 일치하도록run_wpt_tests.py에--enable-per-test-tracing플래그 지원을 추가했습니다. 이렇게 하면 내부 ChromeDriver 버퍼에서 JSON 추적 이벤트를 가져와 테스트 결과 디렉터리에 저장합니다 (crrev.com/c/6820247, 버그: 434017035).
버그 수정
- 진단:
kTabCrashed오류를 반환할 때 ChromeDriver가 자체 내부 스택 트레이스를 출력하지 못하도록 했습니다. 이렇게 하면 사용자의 혼란을 방지하면서도 렌더러 비정상 종료 스택 트레이스가 로그에 유지됩니다 (crrev.com/c/6841669, 버그: 395131239).
내부 변경사항 및 리팩터링
- C++ 표준: 생성자를 우회하고 메모리 안전을 보장하기 위해
chrome/전반에서 잠재적으로 안전하지 않은memset호출을 표준 C++ 집계 초기화 (instance = {})로 대체했습니다 (crrev.com/c/6875520, 버그: 435317390). IWYU를 통해//base/time/time.h에 누락된#include지시어를 추가했습니다 (crrev.com/c/6832689, 버그: 40216326). 강제된 안전하지 않은 버퍼 pragma를 다시 작성했습니다 (crrev.com/c/6828538). - 테스트:
crbug.com/413382905회귀 테스트가 추가되었습니다 (crrev.com/c/6879417). - 뷰 전환: ChromeDriver 테스트 실패와 연결된 이전 추측 되돌리기가 잘못된 것으로 입증된 후 완료된 프로미스가 해결되기 전에 실행된 작업을 업데이트하는 뷰 전환 수정사항이 다시 적용되었습니다 (crrev.com/c/6846765, 되돌리기 crrev.com/c/6808537 후 crrev.com/c/6806850 다시 적용).
ChromeDriver 140
버그 수정
- 타겟 선택: Chrome이
--auto-open-devtools-for-tabs로 실행될 때 DevTools 창이 기본 창으로 선택되기 위해 기본 페이지와 경쟁할 수 있는 문제가 수정되었습니다. 이제 ChromeDriver는 기본 창 결정 중에devtools://접두사가 붙은 타겟을 명시적으로 제외합니다 (crrev.com/c/6769505, 버그: 427908560). - 타겟 선택: 상위 요소에서 적용한
overflow:hidden클리핑을 무시하여 ChromeDriver가 요소의 표시 영역 중심점을 잘못 계산하지 않도록 했습니다. 이렇게 하면 계산이 WebDriver 사양 및 기타PerformActions시나리오 (crrev.com/c/6735230, 버그: 42322257)와 일치합니다. - Android: 패키지 관리자의
--user cur플래그가 지원되지 않는 이전 Android 버전 (Android 11 이전)에서CheckAppInstalled함수가 수정되었습니다 (crrev.com/c/6785949, 버그: 433885051). - 테스트:
DSEPrewarm기능으로 인해chromedriver_py_tests테스트 모음에서 발생하는 불안정성을 수정했습니다. 이제 ChromeDriver는 테스트 중에 예기치 않은 타겟 수가 발생하는 것을 방지하기 위해 CDP 클라이언트가 연결되어 있는 동안 사전 로드 트리거를 사용 중지합니다 (crrev.com/c/6764274, 버그: 423465927, 버그: 431928370). - 테스트: 회귀를 일으킨
IdentityDialogController(FedCM의 일부)에ShouldShowAccountsPassiveDialog함수를 추가한 것을 되돌렸습니다 (crrev.com/c/6780413, 버그: 425801332).
내부 변경사항 및 리팩터링
- C++ 표준: Include What You Use (IWYU)를 통해 누락된
std::vector#include추가(crrev.com/c/6652818, 버그: 40216326)//chrome헤더 전반에서gurl.h(crrev.com/c/6578272) 및<queue>(crrev.com/c/6570349, 버그: 40318405)의 불필요한 포함이 삭제되었습니다.//chrome에서NOTIMPLEMENTED()의IWYU를 해결했습니다 (crrev.com/c/6655452, 버그: 41493641). - 메모리 안전 (spanification): Linux 빌드에서 자동 포인터 spanification 도구를 실행하여 크기를 알 수 있는 위치에서 스팬을 사용하도록 코드를 업데이트했습니다 (crrev.com/c/6734592, 버그: 431824299). 마이그레이션 완료 후
chrome/에서 파일 전체#pragma allow_unsafe_bufferspragma가 삭제되었습니다 (crrev.com/c/6778035, 버그: 409340989). 전역으로 경고를 사용 설정할 수 있도록-Wexit-time-destructors경고에서chrome/test타겟을 제외했습니다 (crrev.com/c/6736532, 버그: 40031409, 버그: 430332953).//chrome에서 누수되는LazyInstance사용을 정리했습니다 (crrev.com/c/6781377, 버그: 432815283). - 정리: 숨겨진 타겟에서 BiDi 매퍼를 실행하는 전환이 완료되고 안정화되었으므로
--debug-bidi-mapperCLI 플래그가 삭제되었습니다 (crrev.com/c/6672011, 버그: 408992812). - 정리: 지원되지 않는
WebLayer프로젝트에 대한 나머지 참조를 삭제했습니다 (crrev.com/c/6792520, 버그: 40272607). 타겟 참조를 단축하기 위해//chrome/testGN 파일을 자동 형식 지정했습니다 (crrev.com/c/6789277, 버그: 40760278). - 테스트:
PerformActionspointerMove문제 수정사항을 확인하는 승인 테스트가 추가되었습니다 (crrev.com/c/6648646, 버그: 42322257). - 테스트:
chrome-headless-shell사용 시 독점 잠금과 관련된 macOS에서 실패를 일으키므로testBrowserWithUsedUserDataDir테스트의 병렬 드라이버 생성 세그먼트를 주석 처리하고 추적 버그를 신고했습니다(crrev.com/c/6470455, 버그: 411407649, 버그: 380903149). - 테스트: iOS용
run_cwt_chromedriver.py래퍼를 업데이트하여--platform-type인수 지원 (crrev.com/c/6771517, 버그: 427548014) - 소유자:
chrome/test/chromedriver/OWNERS파일에서nvitkov삭제 (crrev.com/c/6771413)
ChromeDriver 139
버그 수정
- 초기화 구조: Selenium WebDriver v4.16.0 업데이트 (crrev.com/c/6630600)와 호환되도록 ChromeDriver 초기화 구조를 업데이트했습니다.
- 인수 파싱: 제공된 마지막 인수만 사용하는 대신
--enable-features가 처리되는 방식과 유사하게 여러--js-flags인수를 병합했습니다. 이렇게 하면 복잡한 V8 플래그를 전달할 때 유용성이 향상됩니다 (crrev.com/c/6612042, 버그: 421941798).
내부 변경사항 및 리팩터링
- 메모리 안전 (spanification): 지원 중단된
base::MakeStringPiece()사용을//chrome/test전반에서std::string_view로 대체했습니다 (crrev.com/c/6628089, 버그: 422940464).base::as_string_view()이 사용되는 곳에base/strings/string_view_util.h을 포함하여 향후 네임스페이스 마이그레이션에 대비했습니다 (crrev.com/c/6625024, 버그: 423048781). - C++ 표준:
<vector>(crrev.com/c/6652818),base/notimplemented.h(및 사용하지 않는 경우base/notreached.h삭제)(crrev.com/c/6655452, 버그: 41493641),base/strings/string_util.h(crrev.com/c/6607646),base/strings/string_number_conversions.h(crrev.com/c/6593576)을 명시적으로 포함하고base/debug/stack_trace.h의 불필요한 포함을 삭제하여//chrome전반에서 Include What You Use(IWYU) 규정 준수 개선 - 테스트:
--driver-logging옵션을run_wpt_tests.py로 포팅하여 낮은 상세도 수준에서도 스크립트가 ChromeDriver와 브라우저stderr를 덤프할 수 있도록 했습니다 (crrev.com/c/6608138, 버그: 421262910). - 테스트: 이전에 사용 중지된 ChromeDriver 통합 테스트를 다시 사용 설정했습니다.스크린샷 테스트 (
testTakeElementScreenshot*) (crrev.com/c/6598797, 버그: 42321815), JavaScript를 통한 창 닫기 테스트 (testCloseWindowUsingJavascript*) (crrev.com/c/6598978, 버그: 42321150),headless-shell창 크기 테스트 (crrev.com/c/6621336, 버그: 42323661) - 테스트: APK를 파싱하여 현재 안정화 버전의 Clank (Android)를 올바르게 식별하고 사용하도록
run_wpt_tests.py --stable수정, Chrome for Testing (CfT)에서 해당 ChromeDriver 버전을 체크아웃을 오염시키지 않고 임시 디렉터리로 다운로드하도록 스크립트 업데이트 (crrev.com/c/6635694, 버그: 402548382) - 빌드 인프라: 매니페스트 병합 및 R.java 패키지 이름 지정이 이제 특수 속성으로 처리되므로 (crrev.com/c/6625266, 버그: 413331591) 매니페스트가 있는
android_resources()타겟을 허용하지 않아write_build_config.py에 대한 불필요한 빌드 종속 항목을 삭제했습니다. - FedCM: FedCM과 관련된 핀치 구성 기능 플래그가 수정되었습니다 (crrev.com/c/6614137, 버그: 421959289).
ChromeDriver 138
새로운 기능
- 디스플레이 기능 관리: 최근 CSS 작업 그룹 해결 방법에 맞게 표시 영역 세그먼트의 ChromeDriver 동작이 업데이트되었습니다. 이제 폴더블 기기를 평평하게 사용하거나 모든 비폴더블 기기에 대해 단일 세그먼트가 포함된 배열이 일관되게 반환됩니다. 이는 미디어 쿼리 동작과 일치하며 지문 인식 위험을 완화합니다 (crrev.com/c/6469455, Bug: 414430842).
- 환경설정 및 로컬 상태 (Android): Android 기기에 대해 ChromeDriver를 실행할 때
localState및prefs기능 지원이 추가되었습니다. 이는 ADB에 의존하며 맞춤user-data-dir플래그가 필요합니다. 현재 기본 템플릿으로 상태를 초기화합니다 (crrev.com/c/6397155, 버그: 406427226).
버그 수정
- 안정성: 사용자가 '계속' 버튼을 통해 첫 실행 환경 (FRE) 대화상자를 닫을 때 macOS에서 발생하는 ChromeDriver 비정상 종료를 수정했습니다. 비정상 종료는
kTargetDetached오류 상태를 재정의하고 잘못된WebView에 액세스하려고 시도한 결과입니다 (crrev.com/c/6538867, 버그: 410599467). - 성능 테스트:
--browser=release_x64가 전달될 때 오래된../Release_x64경로를 사용하여 ChromeDriver 바이너리를 잘못 찾으려고 시도하여 로컬 빌드를 사용하는 대신 이전 바이너리를 다운로드하도록 대체되는 Windows pinpoint 봇의crossbench테스트 러너가 수정되었습니다 (crrev.com/c/6502134).
내부 변경사항 및 리팩터링
- 메모리 안전 (spanification):
WebSocket::OnReadDuringHandshake및WebSocket::OnReadDuringOpen의 확인되지 않은 포인터를base::span로 대체하여unsafe-buffer-usage경고를 해결했습니다 (crrev.com/c/6557346, 버그: 354307328). 다른 이전 후 더 이상 필요하지 않은chrome/test/chromedriver전반의 불필요한#pragma allow_unsafe_bufferspragma가 삭제되었습니다 (crrev.com/c/6503154, Bug: 414858406). - C++ 표준:
chrome/헤더에서 불필요한#include "url/gurl.h"및#include <queue>지시문을 삭제하고 컴파일 시간을 개선하기 위해 적절한 위치에 사전 선언을 추가했습니다 (crrev.com/c/6578272, crrev.com/c/6570349, 버그: 40318405). - API 이전:
RSAPrivateKey를crypto::PrivateKey로,SHA256HashString를crypto::Sha256로 이전하여 새로운 키 생성 API가 오류가 없으므로 오래된 오류 처리 사례를 정리했습니다 (crrev.com/c/6490294, 버그: 372283556). - 테스트: Compute Pressure API 자동화 명령어 (CDP 및 testdriver 구현 모두)에
OwnContributionEstimate속성이 추가되었습니다(crrev.com/c/6373001, 버그: 402033762). - 테스트: 뷰포트 세그먼트가 기본 뷰포트 크기로 다시 지워지는지 확인하기 위해 어설션을 단순화하여 지속적 통합 (CFT) 봇에서
ClearDisplayFeatures를 확인하는 통합 테스트를 수정했습니다 (crrev.com/c/6535067, 버그: 417195296). - 테스트: 느린 CI 봇의 불안정성을 해결하기 위해 Protected Audience WebDriver 테스트의 제한 시간 증가 (crrev.com/c/6494277)
ChromeDriver 137
새로운 기능
- 디스플레이 기능 관리: 디스플레이 기능을 에뮬레이션하고 지우는 ChromeDriver 명령어를 추가하여 뷰포트 세그먼트 API (CSS 및 JS)의 자동화 요구사항을 구현했습니다. 이를 통해 개발자는 듀얼 화면 또는 폴더블 기기에서 프로그래매틱 방식으로 접기 또는 힌지 시나리오를 테스트할 수 있습니다 (crrev.com/c/6368674, 버그: 40137084).
- BiDi: 기본적으로 숨겨진 타겟에서 BiDi 매퍼를 실행하도록 ChromeDriver가 업데이트되었습니다. 이렇게 하면 매퍼의
data:,페이지가 테스트 실행 및 가시성을 방해하지 않습니다. 매퍼를 디버깅하기 위해 클라이언트는--debug-bidi-mapper플래그를 전달하여 표시되는 탭에서 실행할 수 있습니다 (crrev.com/c/6441064, crrev.com/c/6439633으로 되돌린 후 crrev.com/c/6433672 다시 착륙, 버그: 402339952).
버그 수정
- BiDi: 다른 CDP 또는 BiDi 세션에서 생성된 타겟을 추적하지 못하는 경우 ChromeDriver가 BiDi 명령어 (예:
browsingContext.close)를 처리할 때 전체 브라우저 세션을 잘못 닫는 문제가 방지되었습니다. 이제 브라우저 종료를 결정하기 전에 최상위 탭을 명시적으로 동기화합니다 (crrev.com/c/6440293, 버그: 42323838). - BiDi: ChromeDriver가 빈 문자열로 전달된 경우
goog:channel기능을 삭제하도록 하여 업스트림 WebDriver BiDi 사양과 정렬합니다. 누락된 채널과 동일하게 처리합니다 (crrev.com/c/6438865, 버그: 409282307). - 입력: 포인터 이동 명령어에서 분수 (부동 소수점) x 및 y 좌표를 지원하도록 ChromeDriver를 업데이트하여 터치 및 포인터 이벤트가 실패하거나 잘못된 동작을 보이는 문제를 수정했습니다 (crrev.com/c/6440834, 버그: 409684333).
- 타겟 선택:
PdfOopif기능이 사용 중지된 경우 게스트 뷰에서 열린 PDF 프로세스 외부 iframe(OOPIF)이 최상위 타겟 목록으로 유출되지 않도록 했습니다. 이러한chrome-extension://접두사 타겟을 적절하게 제외하도록 필터링 로직이 확장되었습니다 (crrev.com/c/6383500, Bug: 396611138).
내부 변경사항 및 리팩터링
- C++ 표준:
LogMessage및 트레이스 이벤트에서 파일 이름에std::string_view를 사용하도록 변경사항을 다시 적용하여 이전 되돌리기를 유발한 null 종료 문자열 처리 문제를 해결했습니다 (crrev.com/c/6430129, crrev.com/c/6395097 다시 적용, crrev.com/c/6383699 되돌리기 후 crrev.com/c/6387020 다시 적용). - C++ 표준:
//chrome전반에서Environment::GetVar호출을 현대화하여 out-매개변수 대신 반환 API를 사용하는std::optional를 사용합니다 (crrev.com/c/6417343, 버그: 400758498). - C++ 표준: 순환 종속성 문제를 방지하기 위해 Windows 전용 핸들 도우미를
win_util.h에서 전용windows_handle_util.h헤더로 리팩터링했습니다 (crrev.com/c/6418805, 버그: 406023316). - 테스트: Android 전용
Browser도메인 핸들러를 추가하고 Android 창 생성 테스트를 지원하는Browser.getWindowForTargetAPI를 구현했습니다 (crrev.com/c/6427605, 버그: 404932444). - 테스트: 확장 프로그램이 초기화되는 데 너무 오래 걸려 macOS 테스트에서 불안정함이 수정되었습니다 (crrev.com/c/6423229, 버그: 407804497).
- 테스트: macOS의 독점 잠금과 충돌하므로
chrome-headless-shell에 대해 실행할 때testBrowserWithUsedUserDataDir에서 병렬user-data-dir생성을 일시적으로 사용 중지했습니다 (crrev.com/c/6470455, 버그: 411407649, 버그: 380903149). - 확장 프로그램:
ExtensionManifestV2Unsupported필드 시험이 사용 설정된 경우 통과하도록 Chrome 테스트를 업데이트했습니다. 이는 기본적인 단계이지만 다른 저장소의 업데이트가 대기 중이므로 트라이얼은 사용 중지된 상태로 유지됩니다 (crrev.com/c/6415997, 버그: 367395349). (참고: 구성을 통해 이 트라이얼을 사용 설정하려는 이전 시도는 crrev.com/c/6397497에서 되돌려져 crrev.com/c/6358257이 되돌려졌습니다.) - 종속 항목:
catapult종속 항목을 수동으로 롤하고 관련pydeps파일과devil_util참조를 업데이트했습니다 (crrev.com/c/6480814, crrev.com/c/6466865, crrev.com/c/6448910 되돌린 후 crrev.com/c/6406098 다시 착륙, 버그: 397459590).
ChromeDriver 136
새로운 기능
- 브라우저 수명 주기: ChromeDriver가 기본값인
SIGKILL대신Browser.close또는 SIGTERM을 사용하여 브라우저를 정상적으로 중지하도록 강제하는 Chrome 전용 기능quitGracefully이 추가되었습니다. 이를 통해rr와 같은 디버거는 프로세스가 종료되기 전에 녹화 내용을 덤프할 수 있습니다 (crrev.com/c/6322538, crrev.com/c/6320536으로 잠시 되돌린 후 crrev.com/c/6269180 다시 착륙, 버그: 339644807). - 테스트: 브라우저 바이너리에 디버거 (예:
rr)와 인수를 접두사로 지정하는 임시 래퍼 스크립트를 생성하여run_wpt_tests.py --wrapper인수를 연결했습니다. 이는args가 스위치로 처리될 때 ChromeDriver가 바이너리를 직접 대체할 수 없는 문제를 해결합니다 (crrev.com/c/6271108, 버그: 339644807). - 테스트: ChromeDriver가 브라우저 프로세스를 관리하고
--user-data-dir이 암시적인 경우 새로운--remote-debugging-port제한을 우회하는 테스트 환경을 지원하기 위해TranslateEnabledTest에서 기본 설정으로 번역을 사용 설정했습니다 (crrev.com/c/6354089, 버그: 327797500). - DevTools: Android에서 다른 창에 새 탭을 여는 DevTools 멀티 인스턴스 기능 지원이 추가되었습니다 (crrev.com/c/6352169, 버그: 401269942, 버그: 382183406).
버그 수정
- 타겟 선택:
PdfOopif기능이 사용 중지된 경우 게스트 뷰에서 열린 PDF 아웃오브프로세스 iframe (OOPIF)이 최상위 타겟 목록에서 필터링되지 않는 문제가 수정되었습니다. 필터가chrome-extension접두사를 포함하도록 확장되어 버그가 해결되고 탭을 만드는 MV3 Chrome 확장 프로그램의 범위가 포함됩니다 (crrev.com/c/6383500, 버그: 396611138). - 타겟 선택: 패키지 Chrome 앱을 타겟팅할 때
getWindowHandles()명령어가connection refused상태로 실패하는 회귀 문제가 수정되었습니다 (crrev.com/c/6317161, 버그: 396622746).
내부 변경사항 및 리팩터링
- C++ 표준:
LogMessage및 추적 이벤트에서 파일 이름에std::string_view를 사용하는 변경사항을 다시 적용하여 null로 종료되는 문자열을 보장하지 않는 Rust 로깅 구조와의 호환성을 개선했습니다 (crrev.com/c/6387020, crrev.com/c/6383699로 되돌린 후 crrev.com/c/6395097로 다시 되돌린 후 crrev.com/c/5765705 다시 적용). - C++ 표준: 성능을 최적화하기 위해 중복된
base::Value::Clone()호출을 대체했습니다 (crrev.com/c/6361818). 빌드 출력을 정리하기 위해 Windows 관련 파일에서 추가-Wunsafe-buffers-in-libc-calls경고를 표시하지 않음 (crrev.com/c/6369920, 버그: 390223051). - 확장 프로그램: 문제로 인해
ExtensionManifestV2Unsupported단계의fieldtrial_testing_config.json항목 추가가 되돌려졌습니다 (crrev.com/c/6397497, crrev.com/c/6358257 되돌리기, 버그: 367395349, 버그: 406523920). - 문서: Android 전용 ChromeDriver 테스트 문서가 개선되었습니다 (crrev.com/c/6354040).
ChromeDriver 135
새로운 기능
- BiDi:
--enable-unsafe-extension-debugging가 지정된 경우 ChromeDriver 권한을 상속하도록 BiDi 매퍼가 업데이트되었습니다. 이를 통해 WebDriver BiDi 클라이언트는 일반적으로 WebDriver 클라이언트가 보유하는 권한이 필요한 확장 프로그램을 효과적으로 테스트할 수 있습니다 (crrev.com/c/6288627, Bug: 393500934).
버그 수정
- 테스트: 이전에 실패로 표시된 여러 WDSpec 테스트의 기대치를 다시 사용 설정하고 업데이트했습니다. 이렇게 하면 테스트 통과를 위한 사양 준수 범위가 복원됩니다 (crrev.com/c/6310420).
내부 변경사항 및 리팩터링
- 정리: Lacros가 지원 중단되고
IS_CHROMEOS(crrev.com/c/6284446, 버그: 354842935)로 표준화되므로chrome/test/에서 Lacros의 모든 흔적 (IS_CHROMEOS_LACROS및 관련 테스트 데이터 포함)을 삭제했습니다. - 정리:
devil_util으로 대체된 후md5sum유틸리티의 모든 흔적을 삭제하여 기존 빌드 종속 항목을 정리했습니다 (crrev.com/c/6309939, 버그: 397452007). - C++ 표준:
ResultCode및IsNormalResultCode()에서chrome::네임스페이스를 삭제하고 전역 네임스페이스로 이동했으며, 오래된 ChromeOS 시작 가져오기를 삭제했습니다 (crrev.com/c/6196899, 버그: 41050580). - 메모리 안전:
std::ranges::lower_bound을 활용하여 ChromeDriver에서std::lower_bound호출을 간소화했습니다 (crrev.com/c/6223172, 버그: 392116519). 향후 시행에 대비하여 처음에 식별된 비규격 파일에 대한unsafe_libc_call경고를 억제했습니다 (crrev.com/c/6187925, 버그: 390223051). 안전 및 컴파일 시간 평가를 개선하기 위해std::to_array의 반환 값을constexpr로 표시했습니다 (crrev.com/c/6298909).
ChromeDriver 134
새로운 기능
- 이탈 추적 감소 (DIPS):
RunBounceTrackingMitigations명령어를 사용하여 이탈 추적 감소를 위한 ChromeDriver 지원이 다시 추가되었습니다. 통합 테스트가 별도의 페이지를 사용하도록 재구성되어 명령어가 실행되기 전에 상태 저장 바운스가 올바르게 기록됩니다. 이 기능은nav-tracking-mitigations사양을 지원하며//chrome에 구현되어 있습니다 (crrev.com/c/4935955, 버그: 1474656). (참고: 원래 crrev.com/c/4873672에 추가되었으며 나중에 되돌려졌습니다). - BiDi: 업스트림
chromium-bidi변경사항에 맞춰goog:접두사를 사용하여 표준 WebDriver BiDi 확장 프로그램 속성을 사용하도록 ChromeDriver가 업데이트되었습니다. 기존channel속성은 더 이상 허용되지 않습니다 (crrev.com/c/6179410). - Windows: Windows의
chromedriver.exe바이너리에 버전 리소스가 추가되었습니다 (crrev.com/c/6114586, 버그: 385300323).
버그 수정
- MPArch/타겟: ChromeOS에서 기본 타겟 결정 중에 Chrome 확장 프로그램 타겟 (
chrome-extension://)이 잘못 검색되고 연결되어 후속 명령어 (예: 탐색)가 실패하는 회귀 문제가 수정되었습니다. 이제 이 초기 단계에서 확장 프로그램 타겟이 올바르게 건너뜁니다 (crrev.com/c/6183202, 버그: 385241097). - MPArch/타겟: 확장 프로그램
background_page의 탭 타겟이 확장 프로그램 타겟 지원이 사용 중지된 경우 최상위 웹 뷰에서 제대로 필터링되지 않는 또 다른 회귀 문제가 수정되었습니다 (crrev.com/c/6160774, 버그: 385731198). - MPArch/탐색: MPArch 활성화 중에 탭에 활성 페이지가 일시적으로 연결되지 않아 ChromeDriver에서 오류 상태로 잘못 인식하는 문제가 수정되었습니다. 이제 ChromeDriver는 탭이 새 페이지를 획득하고 탐색을 완료할 때까지 기다린 후 상태를 확인합니다 (crrev.com/c/6177606).
- 로그 처리: 멀티바이트 문자가 포함된 로그 문자열이 잘못 잘려 발생한 비정상 종료 (
base::Value()의DCHECK실패)가 수정되었습니다. 단순한std::string길이 검사 대신UnicodeString경계 감지를 사용하도록 로직이 업데이트되어 유효한 코드 포인트를 보장합니다 (crrev.com/c/6210809, Bug: 367752739). - 테스트: 최근 MPArch 리팩터링으로 ChromeDriver가 올바르게 실행될 수 있으므로(crrev.com/c/6168830, 버그: 42323502, 버그: 366257368) 알려진 API 문제가 있는 일부를 제외한 대부분의 사전 렌더링 관련 WPT를
content_shell에서headless_shell로 이전했습니다.
내부 변경사항 및 리팩터링
- C++ 표준:
base::ranges사용을 표준std::ranges로 대체했습니다 (crrev.com/c/6200893, crrev.com/c/6177197, 버그: 386918226). 가능한 경우base::ToString(bool)을 사용하도록b ? "true" : "false"패턴을 다시 작성했습니다 (crrev.com/c/6165810, 버그: 335797528). 안전하지 않은StringPrintfNonConstexpr()함수가 삭제되고 더 안전한 문자열 형식 지정 대안으로 대체되었습니다 (crrev.com/c/6149756). 안전하지 않은 버퍼 경고를 해결하기 위해 포인터 산술 (+ std::size)을 표준begin/end반복자로 대체했습니다 (crrev.com/c/6217045, 버그: 392116519). - 정리:
FedCmIdpSigninStatus기능 플래그와 런타임 플래그를 삭제했습니다 (crrev.com/c/6111321, 버그: 381211734). (참고: 이전 삭제 시도는 손상으로 인해 되돌려졌습니다(crrev.com/c/6082405)).
ChromeDriver 133
새로운 기능
- 아키텍처: 다중 페이지 아키텍처 (MPArch) 및 탭 타겟을 지원하도록 ChromeDriver가 리팩터링되었습니다. 이제
WebViewImpl이(가)AutoAttach를 통해 탭 타겟에 연결됩니다. 이전에 페이지를 보유했던 명령어가 이제 탭에서 활성 페이지를 찾습니다. 이 변경사항을 통해 확장 프로그램 백그라운드 페이지를 인트로스펙션할 수 있으며 이제enable_extension_targets기능을 통해 타겟팅할 수 있습니다 (기본적으로 확장 프로그램 타겟은 건너뜀) (crrev.com/c/5961156, 버그: 379767670, 버그: 42323502).chrome-extension://URL 페이지가 확장 프로그램 타겟으로 잘못 포함되는 회귀를 수정했습니다. 선택이type=background_page로만 되돌아갑니다 (crrev.com/c/6093588, 버그: 383141569).enableExtensionTargets를 최상위 기능 대신 Chrome 옵션으로 이동했습니다 (crrev.com/c/6093032). - 클래식: 다중 키 요소 참조 지원이 다시 설정되었습니다. W3C 모드와 비 W3C 모드 모두와 호환되는 참조를 만드는 데 자주 사용되는 이 문서화되지 않은 기능이 이제 공식적으로 지원되며 통합 테스트에서 다룹니다 (crrev.com/c/6063257, 버그: 379584343).
버그 수정
- 안정성:
browsingContext.close명령어를 처리할 때 ChromeDriver가 무기한 차단되지 않도록 했습니다. 브라우저를 닫아야 하는지 여부를 확인하는 다른 메커니즘을 사용하여 ChromeDriver는 이제 멈춤 없이beforeunload프롬프트를 적절하게 처리할 수 있습니다 (crrev.com/c/6080431, 버그: 42323838, 버그: 379049702). - 탐색: URL이
about:blank?test인 더미 페이지로 인해 정체가 발생하는 버그가 수정되었습니다. 응답하지 않는 새 창 (baseURL==about:blank및documentURL!=about:blank)을 식별하기 위한 휴리스틱이 이제 이러한 쿼리 문자열 URL을 특수한 사례로 올바르게 처리합니다 (crrev.com/c/6038039, 버그: 377410086). - 탐색:
AbortedByNavigation오류로 실패한 명령어를 재시도하는 로직이 추가되었습니다. 이제 ChromeDriver는 표준Timeout오류로 포기하기 전에 명령어를 여러 번 시도합니다 (crrev.com/c/6012427, 버그: 42323825). - 진단:
NavigationTracker을 통해kTargetCrashed오류를 직접 전달했습니다. 탐색 감지 중에 타겟이 비정상 종료되면 일반적인 시간 제한 대신 이 특정 오류가 사용자에게 표시되어 진단이 개선됩니다 (crrev.com/c/6032612, 버그: 377410086). - Android:
chrome_android_impl.cc에서 탭 타겟 조회를 수정했습니다 (crrev.com/c/6110492, 버그: 384781876). - 테스트:
win11-arm64에서 여러 창 크기 조정 테스트의 불안정성을 수정했습니다 (예: 가려진 요소를 클릭). 이제 테스트에서는 크기 조절 작업 후 창이 느리게 다시 그려지는 것을 고려하여 양수 높이가 올바르게 등록될 때까지 내부 창 크기를 반복적으로 쿼리합니다 (crrev.com/c/6012658, 버그: 378470046). - 테스트: 일반 Python 연결 오류를
WebSocketConnectionClosedException에 매핑하고 오류 처리를 단순화 (crrev.com/c/6054134)하고, 즉각적인 부작용이 예상되는 경우PostCommand대신SendCommand를 사용하여 경합 상태를 방지 (crrev.com/c/6054137)하고,ExecuteScript의 즉각적인 효과에 대한 의존성을 더 안정적인 탐색 감지 메커니즘으로 대체 (crrev.com/c/6063040, 버그: 42323825)하여 통합 테스트에서 여러 플레이크를 수정했습니다. - 테스트:
FedCmIdpSigninStatus기능 플래그 삭제가 손상을 일으켰으므로 (crrev.com/c/6082405, crrev.com/c/6078693 되돌림, 버그: 384866916, 버그: 381211734) 삭제를 되돌렸습니다. - 도구:
log_replay스크립트에Print명령어 지원이 추가되었습니다 (crrev.com/c/6010809, 버그: 378451938).
내부 변경사항 및 리팩터링
- C++ 표준:
Mojo.InvalidUTF8String히스토그램이 삭제되어 공개 mojo 헤더 정리 및 후속 IWYU 캐스케이드가 허용됩니다 (crrev.com/c/6133861, 버그: 40509710, 버그: 386793084). - C++ 표준:
std::list에서base::circular_deque로 전환하여WaitableEvent::Wait()의 할당을 방지했습니다 (crrev.com/c/6097198). - C++ 표준: 가능한 경우
chrome/코드베이스에서 사용자 정의 빈 생성자와 소멸자를 기본값으로 설정했습니다 (crrev.com/c/6101911, crrev.com/c/6056220, 버그: 381119547). - 메모리 안전 (spanification):
-Wunsafe-buffer-usage경고를 해결하기 위한 광범위한 노력의 일환으로chrome/전반에서 C 스타일 배열을std::array로 이전했습니다 (crrev.com/c/6043879, 버그: 378069401). 범위 함수에서 엄격한size_t사용을 연결했습니다 (crrev.com/c/6026238, crrev.com/c/6020621). - 테스트:
testdriver에서 이제 전체 화면{ref,crash}tests를 지원하므로wpt_internal/로 업스트림했습니다 (crrev.com/c/6088404). - 테스트: 기본이 아닌 출력 디렉터리 (예:
//out/*-ios-wpt-fyi-rel/)를 사용할 때 ChromeDriver 래퍼를 올바르게 찾을 수 있도록--build-directory을 올바르게 연결하여 iOS용wptrunner를 수정했습니다 (crrev.com/c/6014940, 버그: 374199289, 버그: 355218109). - 테스트: 클라이언트에서 심각한 오류를 감지하지 못하는 회귀 사례를 보여주는
testBrowserCrashWhileWaitingForEvents통합 테스트를 추가했습니다 (crrev.com/c/6025145, 버그: 379049702). - 테스트: 빌더를 안정화하기 위해 ChromeDriver와 결합된
headless_shell에서 실행될 때 비정상 종료되는 특정 WPT를 억제했습니다 (crrev.com/c/6032163, 버그: 377410086).
ChromeDriver 132
새로운 기능
- 테스트: ChromeDriver 통합 테스트에
repeat및retry-limit명령줄 매개변수 지원을 추가하여 표준isolated-script-test-repeat및isolated-script-test-launcher-retry-limit인수 (crrev.com/c/5938195, 버그: 374681919)에 매핑했습니다. 로컬에서 실행되는 테스트 (비 CI)의 기본retry-limit가 0으로 변경되었습니다 (crrev.com/c/5953326, 버그: 374681919). - WebSockets:
EmbeddedTestServer에WebSocketConnection및 관련 클래스를 구현하여 WebSocket 관련 테스트가SpawnedTestServer에서 이전할 수 있도록 했습니다. 여기에는 프로토콜에 따른 프레이밍과 간소화된 핸들러 등록이 포함됩니다 (crrev.com/c/5849732, 버그: 40812029).
버그 수정
- 안정성: 클릭 명령으로 인해 브라우저가 닫힐 수 있는 ChromeDriver 비정상 종료 문제를 이전 리팩터링에서 도입된
kTargetDetached오류 상태를 적절하게 처리하여 수정했습니다 (crrev.com/c/5934524, 버그: 42323264). - 안정성: 경합 상태를 해결하여 Mac ARM64에서
testClickNavigateRemoteToLocal통합 테스트 중 간헐적으로 발생하는 비정상 종료 문제를 수정했습니다 (crrev.com/c/5975526, 버그: 375971185). - 탐색: 문서가 활성 상태에서 전환되는 동안 (진행 중인 탐색을 나타냄)
Page.getNavigationHistory가 호출되면 이전에 실패했던GoBack및GoForward명령어를 수정했습니다. 이제 ChromeDriver가 이 시나리오에서 명령어를 올바르게 재시도합니다 (crrev.com/c/6011739, 버그: 378433873). - 스크립트 실행: 브라우저 측에서 결과를 보장하지 않는 경우 탐색을 트리거하거나 창을 닫는 스크립트가 표준
ScriptTimeout오류를 올바르게 반환하여 사용자가 모호한 테스트 구조를 피하도록 했습니다 (crrev.com/c/5934265, 버그: 372883701). - 스크립트 실행: '예기치 않은 명령 응답' 오류로 로그 재생 기능이 실패하는 문제를 수정했습니다 (crrev.com/c/5961142, 버그: 42323342).
- 오류 코드: 더 이상 모든 예외를 'code' 속성을 사용하여 일반적인 'javascript error'로 강제 래핑하지 않도록 ChromeDriver의 오류 처리가 수정되었습니다. 이렇게 하면
call_function.js의 '오래된 요소 참조' 및 Selenium AtomsCLEAR함수의 '잘못된 요소 상태'와 같은 표준 오류가 사용자에게 정확하게 전파됩니다(crrev.com/c/5937893, 버그: 42323409). 누락된 태그 이름 정보를 '객체가 요소가 아님'으로 올바르게 해석하도록GetElementTagName의 오류 처리 개선(crrev.com/c/5929087) - BiDi: 맞춤 사용자 프로필을 사용하는 경우 BiDi 세션이 초기화되지 않는 문제가 수정되었습니다. 맞춤 프로필의 로드된 페이지로 인해 BiDiMapper가 시작되지 않을 수 있습니다. 이제 ChromeDriver는 매퍼를 위한 깨끗한 상태를 제공하기 위해 첫 번째 탭이 항상
data:,를 로드하도록 합니다 (crrev.com/c/5960656, 버그: 366886096). - 시크릿 모드: 시크릿 모드에서 작동하는 동안 ChromeDriver가 새 탭을 만들지 못하도록 하는 버그가 수정되었습니다 (crrev.com/c/5952980, 버그: 42323352).
- 테스트:
testScriptNavigateRemoteToLocal통합 테스트의 불안정성을 수정하고 (8.33% 비율로 실패함) 경합 상태의 수정사항을 재현하고 검증하는 C++ 통합 테스트를 추가했습니다 (crrev.com/c/6010867, 버그: 378387680). - 테스트: Mac (
testWindowMinimize) 및 Windows (ChromeDownloadDirTest.testFileDownloadAfterTab,InvalidCertificateTest.*), 전역 (testShadowDomFindElement, 요소 스크린샷 테스트)에서 이전에 불안정했던 통합 테스트를 여러 개 다시 사용 설정했습니다. 일시적으로 불안정한css/css-scrollbars/WPT 테스트를 콘텐츠 셸에서 헤드리스 셸로 다시 이동했습니다 (crrev.com/c/5953708, crrev.com/c/5948803, crrev.com/c/5941351, crrev.com/c/5941098, crrev.com/c/5959254, Bug: 42323825, Bug: 40848017, Bug: 40736504, Bug: 40176424, Bug: 40927590).
내부 변경사항 및 리팩터링
- BiDi: 최신 업스트림 수정사항과 프로토콜 업데이트를 통합하기 위해
chromium-bidi매퍼 종속성을 업데이트했습니다 (crrev.com/c/5953339, crrev.com/c/5865478, 버그: 4226). (참고: WPT 실패로 인해 매퍼 범프가 잠시 되돌려졌다가 다시 적용되었습니다 (crrev.com/c/5961113)). - 아키텍처: 테스트 간 상태 공유 버그를 방지하고 명시적 세션 처리를 간소화하기 위해 ChromeDriver 전반에서 스레드 로컬 세션 객체 사용을 최소화했습니다 (crrev.com/c/5978486, 버그: 42323555). 공유 테스트 픽스처를 사용하도록 C++ 통합 테스트를 리팩터링했습니다 (crrev.com/c/5971474, 버그: 42323555).
- 정리: 기존
chrome-headless-shell코드가 더 이상 Chrome에 없으므로 (crrev.com/c/5961602, 버그: 42323387) '이전 헤드리스' 모드와 관련된 지원 중단된 해결 방법을 삭제했습니다. - 정리: 이전에 삭제된 ChromeDriver 승인 테스트의 잔여물인 사용하지 않는
java_tests.txt파일을 삭제했습니다 (crrev.com/c/5970994, 버그: 357737793). - 테스트: ChromeDriver가 동일한
user-data-dir로 병렬 세션을 잘못 생성하거나 세션 간에 URL이 유출되어 불안정성을 유발하지 않는지 확인하는 C++ 통합 테스트가 추가되었습니다 (crrev.com/c/5961137, 버그: 375312517). - 테스트: 통합 테스트에서 스핀업한 임시 ChromeDriver 인스턴스가 리소스를 확보하기 위해 최대한 빨리 종료되도록 했습니다 (crrev.com/c/5997970, 버그: 375974725).
ChromeDriver 131
새로운 기능
- BiDi: 최신 프로토콜 업데이트와 버그 수정사항을 통합하여
chromium-bidi매퍼 종속 항목을 v0.8.0으로 업데이트했습니다 (crrev.com/c/5899240, crrev.com/c/5865478, 버그: 4226). - DOM 액세스:
GetElementShadowRoot명령어에 닫힌 섀도 루트 지원이 추가되었습니다. 이전에는 이 명령어가 닫힌 섀도우 루트에 액세스하려고 할 때NoSuchShadowRoot오류를 반환했습니다 (crrev.com/c/5923865, 버그: 372834222). - DOM 액세스: 창 및 프레임 식별자 지원을 구현하여 실행된 스크립트에서 창 또는 프레임 (OOP iframe 포함)에 대한 참조가 반환되어 추가 역참조가 가능하도록 했습니다 (crrev.com/c/5890437, crrev.com/c/5923555, 버그: 366272556, 버그: 40229283).
- WebAuthn:
userName및userDisplayName속성을 포함하도록 WebAuthn 자동화 API를 확장했습니다 (crrev.com/c/5905423, 버그: 367915823).
버그 수정
- 입력: 마우스 이벤트를 최상위 프레임으로 전송하는 대신 타겟 프레임의 가장 높은 동일 출처 상위 요소로 라우팅하여 원격 프레임에서 마우스 클릭과 관련된 경합 상태를 수정했습니다 (crrev.com/c/5836968, 버그: 42323535).
- 입력:
Input.dispatchTouchEvent명령과 함께 전송되는 타임스탬프 형식을 밀리초에서 초로 수정하여 WPT 포인터 이벤트 테스트의 비정상 종료를 수정했습니다 (crrev.com/c/5924253, 버그: 360918166). - 테스트: 연결된 불안정성 오류가 더 이상 재현되지 않으므로 Mac (crrev.com/c/5923569, crrev.com/c/5922823, crrev.com/c/5921444, crrev.com/c/5920851, crrev.com/c/5921442) 및 Windows (crrev.com/c/5923955)에서 여러 ChromeDriver 테스트를 다시 사용 설정했습니다.
내부 변경사항 및 리팩터링
- 메모리 안전성 (스팬화):
net::HttpUtil에서 안전하지 않은 포인터 사용을base::span로 대체하고 (crrev.com/c/5854420)base::File::WriteAtCurrentPos()를 스팬 기반 동등 항목으로 이전했습니다 (crrev.com/c/5818972).raw_ptr(crrev.com/c/5867189, 버그: 329428315)에 맞게 지도 포인터 값 (예:std::map,std::unordered_map)을 다시 작성했습니다. - C++ 표준: Abseil 속성 매크로 (
ABSL_ATTRIBUTE_*)를 표준base/매크로로 대체했습니다 (crrev.com/c/5852373). 값으로 전달되는 문자열/벡터를 적절한 경우std::string_view또는 const 참조로 대체하여 의도치 않은 복사를 방지하고std::string_view인수에서 잘못된const한정자를 삭제했습니다 (crrev.com/c/5914620, crrev.com/c/5906184, 버그: 369952985). - 인프라: ChromeDriver를 사용하여
web-engine를 제어하도록 Fuchsia를 구성했습니다 (crrev.com/c/5867896, 버그: 40935291). - 테스트: 기존 러너가 곧 WebAuthn testdriver API 지원을 중단하므로 (crrev.com/c/5920770, 버그: 372169469) 차단된 프레임 WebAuthn 테스트를 기존 콘텐츠 셸 러너에서 ChromeDriver가 있는 헤드리스 Chrome으로 이전했습니다.
ChromeDriver 130
새로운 기능
- BiDi: BiDi 매퍼 종속 항목을 업데이트하여 업스트림
chromium-bidi에서 최신 프로토콜 업데이트와 버그 수정사항을 가져왔습니다 (crrev.com/c/5850570, crrev.com/c/5840080으로 되돌린 후 crrev.com/c/5837065 다시 적용, crrev.com/c/5717956, 버그: 4226). - BiDi: BiDi 세션을 초기화할 때
session.new명령어를 통해 매퍼에 직접unhandledPromptBehavior를 제공하도록 ChromeDriver가 업데이트되었습니다. 이로써MapperOptions에서 벗어나는 이전이 완료됩니다 (crrev.com/c/5682934, crrev.com/c/5766077, 버그: 42323841, 버그: 356371297). - 테스트: 데스크톱 빌드의
bisect-builds.py스크립트에--chromedriver인수를 지원하여 WebDriver/ChromeDriver 종속 테스트의 이분법 중에 스크립트가 올바른 버전의 ChromeDriver를 자동으로 다운로드하고 사용할 수 있도록 했습니다 (crrev.com/c/5861048, 버그: 352344089).
내부 변경사항 및 리팩터링
- C++ 표준: 다양한 클래스에서 '5의 규칙' 문제가 해결되었습니다. Chrome 스타일 플러그인은 인라인 이동 생성자를 강제하지 않고 인라인 소멸자를 고집하므로 컴파일러가 이동 연산자를 암시적으로 삭제하고 복사로 자동 대체했습니다. 이러한 누락된 선언이 추가되었습니다 (crrev.com/c/5846757, 버그: 364788123).
- 테스트: 하드코딩된
chrome문자열을 실제 사용된 제품으로 대체하고 자세한command아티팩트를 요약 출력에서 숨겨wptrunner테스트 결과 요약을 정리했습니다 (crrev.com/c/5825633, 버그: 41494889). - 테스트: 이 OS의 테스트에는 Mac14보다 훨씬 더 많은 시간이 필요했으므로 특정 시간 제한을 두 배로 늘려 macOS 15 (Mac15)에서 ChromeDriver 통합 테스트의 대규모 테스트 실패를 수정했습니다. 또한 불안정성으로 인해 4개의 가상 센서 테스트가 무시 목록에 추가되었습니다 (crrev.com/c/5817455, Bug: 354939744).
- 테스트: Mac에서 불안정한
ChromeDriverSiteIsolation.testClickNavigateLocalToLocal테스트 (crrev.com/c/5806894, 버그: 361521805)와 Windows 11에서 불안정한ChromeDriverTest.testClickElement*ObscuredByScrollBar테스트 (crrev.com/c/5804083, 버그: 360058651)를 사용 중지했습니다. - 테스트: 여러 인프라 문제로 인해 ChromeDriver 승인 테스트 (현재 ChromeDriver에 대해 테스트하기 위해 이전 Chrome 버전을 다운로드함)가 삭제되었습니다. 나중에 자동 롤을 사용하여 CI에 다시 추가될 수 있습니다 (crrev.com/c/5812142, 버그: 357737793).
ChromeDriver 129
새로운 기능
- BiDi: BiDi 매퍼에
session.new명령어를 전송하도록 ChromeDriver 세션 초기화 도우미를 업데이트하여 매퍼가 기능을 직접 처리할 수 있도록 했습니다. 이는MapperOptions(crrev.com/c/5741432, 버그: 356371297)를 삭제하기 위한 첫 번째 단계입니다. (참고: 처리된unhandledPromptBehavior를 제공하는 관련 변경사항 crrev.com/c/5754093은 테스트 범위가 감소하여 crrev.com/c/5755744로 되돌려졌습니다.) - 컴퓨팅 압력: 컴퓨팅 압력 사양의 자동화 섹션을 구현하는 가상 압력 소스 관리를 위한 새로운 확장 프로그램 명령어가 추가되었습니다. 이러한 명령은 파싱되어 CDP 레이어로 전달됩니다 (crrev.com/c/5666583, Bug: 347031400).
- 확장 프로그램 MV2: 진행 중인 확장 프로그램 Manifest V2 지원 중단 필드 시험의 일환으로
ScopedTestMV2Enabler를 사용하도록 MV2 동작을 실행하는 테스트가 업데이트되었습니다 (crrev.com/c/5685054, 버그: 339061151).
버그 수정
- 클래식 직렬화: WebDriver 클래식 스크립트 실행 결과에서
Set을 직렬화할 때 본 객체를 추적하여 무한 루프를 방지하고Array.prototype.includes재정의를 허용합니다 (crrev.com/c/5765833, 버그: 357472850). (참고: WPT 회귀로 인해 이후 crrev.com/c/5773175에서 되돌려졌습니다.)
내부 변경사항 및 리팩터링
- BiDi:
chromium-bidi의 최신 버그 수정 및 프로토콜 업데이트를 포함하도록 BiDi 매퍼 종속 항목을 업데이트했습니다 (crrev.com/c/5756587, crrev.com/c/5717956, 버그: 4226). - 메모리 안전 (spanification):
WebSocketFrameParser::Decode,MaskWebSocketFramePayload,WriteWebSocketFrameHeader의 안전하지 않은 버퍼 사용을base::span로 대체했습니다 (crrev.com/c/5764863, crrev.com/c/5743019, crrev.com/c/5722108, 버그: 40284755, 버그: 354307327). 추가 수정 준비를 위해chrome/*전반에#pragma allow_unsafe_buffers가 추가되었고 (crrev.com/c/5717950, 버그: 40285824) 비준수UNSAFE_BUFFERS()매크로가UNSAFE_TODO()로 변환되었습니다 (crrev.com/c/5786346).base::span필드를base::raw_span로 다시 작성했습니다 (crrev.com/c/5515096, 버그: 332587642). - C++ 표준: 배열 길이를
constexpr로 명시적으로 표시하여 코드베이스에서 위험한 가변 길이 배열 (VLA)의 사용을 삭제했습니다 (crrev.com/c/5738737, 버그: 349656479). 이전에 간접적으로 가져온 필수<unordered_map>헤더가 포함되었습니다 (crrev.com/c/5792881). - 아키텍처: 정체된 마이그레이션을
//services/network/public/cpp/server로 되돌리고//net/server내에서 로직을 다시 중앙 집중화하여 일관된 업데이트를 보장함으로써WebSocketEncoder구현의 포크를 해제했습니다 (crrev.com/c/5768214, 버그: 40205564).
ChromeDriver 128
새로운 기능
- 기능:
unhandledPromptBehavior기능에 사전 사용을 허용하여 표준 기능 구조와 일치시켰습니다. 하지만 아직 매퍼에서 완전히 존중하지는 않습니다 (crrev.com/c/5692204, crrev.com/c/5682934, 버그: 42323841). - 시작: ChromeDriver에
--ignore-explicit-port명령줄 인수가 추가되었습니다. 이 임시 해결 방법은 ChromeDriver가 명시적으로 제공된 포트를 무시하고 대신 사용 가능한 포트를 찾아 바인딩하도록 강제하여 웹 플랫폼 테스트 실행 중에 TCP 포트 경합을 해결합니다 (M132 이후 삭제 예정) (crrev.com/c/5724574, crrev.com/c/5703976, 버그: 42323836).
버그 수정
- 센서:
setSensorOverrideReadingsCDP 명령어가 값을 반환하지 않으므로 (crrev.com/c/5703589)SendCommandAndGetResult()대신SendCommand()을 사용하도록ExecuteUpdateVirtualSensor명령어를 수정했습니다. - FedCM: 대화상자가 실제로 예상될 때
NoSuchDialog가 반환된다고 더 이상 어설션하지 않아 대화상자가 너무 빨리 표시되는 경우 실패를 방지하여 FedCM ChromeDriver 테스트의 경합 상태를 수정했습니다 (crrev.com/c/5713515, 버그: 346530330). - 테스트: 기본 문제 (crbug.com/40233722)가 수정된 후 Mac에서 WebAuthn 가상 인증자 테스트를 다시 사용 설정했습니다 (crrev.com/c/5635806, 버그: 329130177).
- 오류 메시지:
execute/async명령어의 오류 메시지에 있는 오타를 수정했습니다 (crrev.com/c/5697913).
내부 변경사항 및 리팩터링
- BiDi: BiDi 매퍼 종속성을 업그레이드하여 업스트림
chromium-bidi프로젝트에서 최신 프로토콜 기능, 버그 수정, WPT 기대치 업데이트를 가져왔습니다 (crrev.com/c/5717956, crrev.com/c/5644823, crrev.com/c/5630727, crrev.com/c/5615110, crrev.com/c/5614670, 버그: 4226, 버그: 347863537, 버그: 324436866). - 지원 중단된
GrowableIOBuffer::StartOfBuffer메서드의 사용을span로 대체하여 확인되지 않은 포인터를 제거함으로써 메모리 안전성을 개선했습니다 (crrev.com/c/5706088, 버그: 329476354). - 메모리 안전성을 개선하기 위해
WebSocketFrameParser의Decode메서드를 Spanified했습니다 (crrev.com/c/5722108, 버그: 354307327). - 사용되지 않는 Abseil 헤더를 삭제하고
std::optional로 이전하여absl::optional의 남은 잔여물을 정리했습니다 (crrev.com/c/5691505, 버그: 40242125). - 알 수 없는 모든 타겟 유형 (
shared_storage_worklet포함)을 오류로 처리하는 대신WebViewInfo::kOther로 처리하도록 ChromeDriver가 변경되었습니다. 이를 통해 Chrome은 WPT를 즉시 중단하지 않고도 새로운 타겟 유형을 도입할 수 있습니다 (crrev.com/c/5680542, crrev.com/c/5679146, Bug: 42323839). linux-builder-perf빌더의 설치 프로그램 타겟을 추가하여 bisect 보관 파일의 심볼이 삭제된 바이너리를 생성하고, 다양한additional_compile_targets를 허용하도록 pinpoint 빌더를 구성했습니다 (crrev.com/c/5668198, 버그: 344643694).- 성능 빌드 중에 ChromeDriver 위치를 찾아
crossbench에 전달하도록run_performance_tests.py를 업데이트했습니다 (crrev.com/c/5624538, 버그: 338629299). crossbench종속 항목을 롤했습니다 (crrev.com/c/5681849).- Mac에서
FedCmSpecificTest.testClickErrorMoreDetails및FedCmSpecificTest.testClickErrorGotIt를 불안정으로 표시했습니다 (crrev.com/c/5704320, crrev.com/c/5677564, 버그: 352821422, 버그: 346530330). - 불안정한
BidiTest.testFocusInFirstTab테스트를 사용 중지했습니다 (crrev.com/c/5676686, 버그: 350916212).
ChromeDriver 127
버그 수정
- 안정성: DevTools 클라이언트가 다른 명령어를 적극적으로 처리하는 동안
target.detachFromTarget명령어 (또는target.detachedFromTarget이벤트)가 수신될 때 발생하는 ChromeDriver 비정상 종료를 수정하여WebView및DevToolsClient객체의 조기 해제를 방지했습니다 (crrev.com/c/5527584, 버그: 339773537). - 안정성: 명령어가 실행되는 동안 웹 뷰가 분리되면
Switch To Window명령어가 '알 수 없는 오류'를 잘못 반환할 수 있는 문제가 수정되었습니다. 이제 '웹 뷰를 찾을 수 없음' 내부 오류가 올바르게 무시되어 타겟 창이 실제로 닫힌 경우 표준 '이러한 창 없음' 응답이 표시됩니다 (crrev.com/c/5583730, 버그: 338616700). - 안정성: 내부 WebView 목록을 업데이트하는 동안 ChromeDriver가 타겟 분리를 허용하도록 했습니다. 업데이트 중에 타겟이 분리되면 ChromeDriver가 이제 비표준 오류를 반환하는 대신 재시도하여 창이 빠르게 생성되고 소멸되는 환경에서 불안정성을 줄입니다 (crrev.com/c/5565103, Bug: 338616700, Bug: 4771).
- 탐색: 요소를 검색하는 동안 원격 엔드에서 감지한 탐색을 기다리는 로직이 ChromeDriver에 추가되었습니다. 이렇게 하면 탐색이 요소 찾기 작업과 일치할 때 ChromeDriver가 비표준 오류를 반환하거나
DCHECK로 비정상 종료되는 것을 방지할 수 있습니다 (crrev.com/c/5563113, crrev.com/c/5563420 되돌리기, crrev.com/c/5562089 다시 착륙, 버그: 4771). - BiDi: 세션 생성 중에 ChromeDriver와 BiDiMapper 간의 경합 상태가 수정되었습니다. 이제 ChromeDriver는
browsingContext.getTree명령어가 비어 있지 않은 목록을 반환할 때까지 기다린 후 NewSession 명령어를 종료하여 새로 생성된 기본 탭이 올바르게 등록되도록 합니다 (crrev.com/c/5575497, 버그: 341048786, 버그: 1503101). - BiDi: 첫 번째 사용자 탭에 포커스를 명시적으로 부여하여 세션 생성 후 포커스가 활성 사용자 탭 대신 BiDiMapper 백그라운드 탭에 유지되는 문제를 수정했습니다 (crrev.com/c/5594070, 버그: 341048786, 버그: 1503101).
- BiDi: 사용자가 프롬프트를 열 때 CDP 명령어가 무기한으로 멈추는 것을 방지하기 위해 BiDi 명령 (예:
browsingContext.close)을 처리할 때 ChromeDriver가 타겟 연결을 시도하지 않도록 하여 이미 연결된 BiDi 레이어 (crrev.com/c/5541915, crrev.com/c/5539818 되돌리기, crrev.com/c/5522393 다시 실행, 버그: 4758)에 처리를 완전히 위임했습니다. - FedCM: 대화상자가 잘못 닫힌 것으로 표시되는
fedcm-loginhint.https.htmlWPT 테스트 실패를 수정했습니다. 이제selectAccount작업이 실제로 성공한 경우에만 상태가 업데이트됩니다 (crrev.com/c/5398379, 버그: 331237776). - 테스트: 문자가
kExtendedASCIIStart경계에 정확히 도달할 때 JSON 파싱 중DCHECK실패가 수정되었습니다 (crrev.com/c/5565276, 버그: 40284755). - 테스트: iframe 요소를 스크롤 원점으로 사용하고 포인터 이동 입력을 정수로 반올림하여
scrollend-event-fires-to-iframe-window.htmlWPT 테스트를 수정했습니다. 이렇게 하면 소수점 터치 위치로 인해 ChromeDriver 오류가 발생하는 것을 방지할 수 있습니다 (crrev.com/c/5570150, 버그: 340956654). - 테스트:
run_py_tests.py가 브라우저 바이너리를 찾지 못할 때 시도된 경로를 인쇄하여 ChromeDriver 통합 테스트의 진단 개선 (crrev.com/c/5604204, 버그: 4781)
내부 변경사항 및 리팩터링
- BiDi: 최신 프로토콜 업데이트 및 버그 수정사항을 반영하여 BiDi 매퍼 종속 항목을 업데이트했습니다 (crrev.com/c/5614670, crrev.com/c/5593796, crrev.com/c/5537892, crrev.com/c/5471839, 버그: 4226).
NOTREACHED()를 엄격하게[[noreturn]]로 만들기 위해chrome/디렉터리에서NOTREACHED()사용을NOTREACHED_IN_MIGRATION()로 대체했습니다 (crrev.com/c/5539004, 버그: 40580068).- 배포 요구사항을 준수하기 위해
licenses.py도구를 사용하여 ChromeDriver용THIRD_PARTY_NOTICES.txt생성을 사용 설정했습니다 (crrev.com/c/5596355, 버그: 4777). - Chromium의 WPT 적용 범위가
headless_shell+ ChromeDriver로 완전히 전환됨에 따라content_shell에 대한run_wpt_tests.py지원이 삭제되었습니다 (crrev.com/c/5589930). 기능에 영향을 주지 않고 이 변경사항을 수용하기 위해wptrunner스위치를 임베더별로 재구성했습니다 (crrev.com/c/5589793, 버그: 338412391). JavaScriptDialogManager에서DevToolsClientImpl로 이동하여 JavaScript 대화상자 감지 및 처리 로직을 통합하여 별도의 관리자 클래스를 없애 테스트와 추론을 간소화했습니다 (crrev.com/c/5545630, 버그: 4757).- 불안정성으로 인해 Mac에서
PureBidiTest.testBrowsingContextTreeIsNotEmpty를 사용 중지했습니다 (crrev.com/c/5588665, 버그: 343891977). - 최근 매퍼 업데이트 (crrev.com/c/5615110, 버그: 4226, 버그: 324436866)를 고려하여 BiDi WPT 기대치를 업데이트했습니다.
- 코드 적용 범위를 늘리기 위해
WebView::SendBidiCommand및BidiTracker의 단위 테스트가 추가되었습니다 (crrev.com/c/5588400, 버그: 341048786, 버그: 1503101).
ChromeDriver 126
새로운 기능
- BiDi: WebDriver BiDi 세션을 위해 브라우저를 실행할 때
--disable-background-timer-throttling스위치를 제공하도록 ChromeDriver를 업데이트하여 백그라운드 탭이 제한되지 않도록 했습니다 (crrev.com/c/5515013, 버그: 4762). - BiDi: 상세 로깅이 필요한 경우 디버그 메시지 (
sendDebugMessage)를 전송하도록 BiDi 매퍼 지원을 추가했습니다. ChromeDriver는 이러한 이벤트를bidi messages로 표시하여 파싱하지만 현재BidiTracker는 이를 무시합니다 (crrev.com/c/5465782, 버그: 4753). - 클래식:
beforeunload대화상자 (알림)의 자동 수락을 구현하여 클래식 세션에 표시되지 않아야 한다고 규정하는 WebDriver 표준을 준수했습니다 (crrev.com/c/5517510, 버그: 4757).
버그 수정
- 클래식: 요소 검색 로직에서 중복된 최대 시도 제한을 삭제했습니다. 이제 검색은 암시적 시간 제한에 의해서만 제한되므로 작업이 조기에 실패하고 비표준
NoSuchExecutionContext오류를 잘못 반환하는 시나리오가 방지됩니다 (crrev.com/c/5478668, 버그: 4379). - 클래식: 검색 요청에서 잘못된 위치 전략을 사용하는 경우 ChromeDriver가
invalid selector오류 대신javascript error로 응답하는 회귀 문제가 수정되었습니다 (crrev.com/c/5490662, 버그: 4743). - 클래식: 이러한 작업은 Android 브라우저에서 지원되지 않으므로 (crrev.com/c/5490224, 버그: 4689) Android의 창 명령어 (최대화, 최소화, 전체 화면)가 진행되는 대신 표준을 준수하는
unsupported operation오류를 반환하도록 했습니다. - 클래식: ChromeDriver가
kChromeNotReachable내부 오류 코드를 반환하지 않도록 수정했습니다. 이제 HTTP 클라이언트가 브라우저에 연결할 수 없는 경우 표준kSessionNotCreated오류를 올바르게 반환합니다 (crrev.com/c/5476390, 버그: 4379). - 클래식: 창 명령어를 실행할 때 비표준
kNoSuchExecutionContext오류를 반환하지 않도록 ChromeDriver를 수정했습니다 (crrev.com/c/5483606, 버그: 4379). - 클래식: 지원되는 오류 코드 목록에서 사용되지 않고 지원되지 않는
kForbidden오류 코드를 삭제했습니다 (crrev.com/c/5476927, 버그: 4379). - BiDi: 전용 매퍼 탭을 닫기 전에 사용자에게 메시지를 표시하도록 ChromeDriver를 업데이트하여 업스트림
chromium-bidi변경사항 (crrev.com/c/5508600, 버그: 4761)과 일치시켰습니다.
내부 변경사항 및 리팩터링
- BiDi: BiDi 매퍼 종속 항목을 업데이트하여 업스트림
chromium-bidi프로젝트의 최신 기능과 버그 수정사항을 가져왔습니다 (crrev.com/c/5490428, crrev.com/c/5471839, crrev.com/c/5509316, crrev.com/c/5458234, 버그: 4226). (참고: 매퍼 범프는 가드너에 의해 잠시 되돌려졌다가 다시 적용되었습니다 (crrev.com/c/5374839, crrev.com/c/5374366)). //chrome에서base::StringPiece사용을std::string_view로 대체했습니다 (crrev.com/c/5467746, 버그: 40506050).//chrome에서std::to_string()사용을 삭제하고base::NumberToString()또는base::FormatNumber()로 대체했습니다 (crrev.com/c/5505593, 버그: 335672557).- Chrome DevTools 프로토콜에 대한 보호되지 않은 원격 액세스가 너무 위험한 것으로 간주되어 이전 헤드리스 모드에서
--remote-debugging-address스위치 지원이 삭제되었습니다 (crrev.com/c/5512634, 버그: 327558594). - ChromeDriver를 제외하고
//chrome에서 Fuchsia 빌드 규칙이 삭제되었습니다 (crrev.com/c/5473870, 버그: 41481724). - 코드베이스 전반에서 기존
TODO(crbug.com/...)참조를 새 문제 추적기 ID 형식 (TODO(b/...))으로 이전했습니다(crrev.com/c/5492605, crrev.com/c/5486477, crrev.com/c/5461380, 버그: 321899722). - 복잡한 기본 버그로 인해 Mac에서 WebAuthn(인증자) 테스트를 사용 중지하여 봇을 macOS 14로 업그레이드하는 것을 차단 해제했습니다(crrev.com/c/5525435, crrev.com/c/5518820, 버그: 329130177).
chromedriver_py_tests - ChromeDriver와 Content Shell을 함께 사용하여 WPT를 실행하는 데 어려움이 있어
content_shell의 WPT 빌더가 사용 중지되었습니다 (crrev.com/c/5512439, 버그: 40214293). - 뒤로 탐색을 위해
test_driver.action_sequence()을 통해Shift+Tab를 사용하도록focus-navigationWPT를 업데이트하는 변경사항이 다시 적용되었습니다. Shift 키에 잘못된 키 코드 (E008대신E050)가 사용된focus-utils.js의 버그를 수정했습니다 (crrev.com/c/5467843, crrev.com/c/5466531 되돌리기, crrev.com/c/5463903 다시 적용, 버그: 40597271). - 성능 빌드 타겟에
crossbench및chromedriver추가 (crrev.com/c/5521874, 버그: 338627700)
ChromeDriver 125
새로운 기능
- 기기 자세: 기기 자세 사양의 자동화 섹션을 지원하는 기기 자세 관리를 위한 ChromeDriver 명령어가 추가되었습니다. 이를 통해 확장 프로그램 명령어를 통해 하드웨어 설정 기기 자세를 재정의하고 재정의를 삭제할 수 있습니다 (crrev.com/c/5437993, 버그: 330376761).
버그 수정
- BiDi: 수신되는 BiDi 명령
id의 중간 저장소를Double에서base::Value로 변경했습니다. 이를 통해 JSON 직렬화 후 예기치 않은 후행 소수점이나 분수 부분이 없이id이 응답에 정확하게 에코됩니다 (crrev.com/c/5444225, 버그: 4676). - FedCM: IDP가 준비된 후 ID 어설션 엔드포인트에서 CORS를 사용 설정하도록 변경사항을 다시 적용했습니다 (crrev.com/c/5440132, crrev.com/c/5381316 되돌리기, crrev.com/c/5370086 다시 적용, 버그: 40284123).
- FedCM:
selectAccount명령어가 성공한 경우에만 대화상자가 닫힌 것으로 표시되도록 하여 대화상자가 잘못 닫힌 것으로 표시되는 버그를 수정했습니다. 이를 통해 예상되는 계정 선택기 없이selectAccount가 호출될 때 발생하는 테스트 실패가 해결됩니다 (crrev.com/c/5398379, 버그: 331237776). 계정 선택기가 이 버그를 트리거하지 않도록 방지하지 않을 때fedcm_get_and_select_first_account호출을 방지했습니다 (crrev.com/c/5398800). - 테스트: 작업 시퀀스를 결합하고 기본 프레임의 문서를
pointerUp작업의 출처로 사용하여popover-light-dismiss.htmlWPT 테스트의 실패를 수정했습니다. 이렇게 하면 ChromeDriver가 프레임 간에 동시pointerUp이벤트를 잘못 전송하는 것을 방지할 수 있습니다 (crrev.com/c/5402096, 버그: 325981758). - 테스트:
wptrunner가--enable-chrome-logs사용 시 작성된 브라우저 로그를 포함한stderr출력을crash_log대신stderr아티팩트로 올바르게 전달하도록 수정하고 브라우저 스택 트레이스가 포함된 하네스 오류를crash_log로 이동했습니다(crrev.com/c/5437023, 버그: 41494889). - 테스트: ChromeDriver 프로세스별로 출력을 그룹화하여 브라우저 로그를 올바른 테스트 아티팩트로 라우팅하도록
wptrunner를 수정하여 병렬 테스트 실행 중에 인터리브 및 고아 로그가 발생하는 것을 방지했습니다 (crrev.com/c/5320681, 버그: 41494889).
내부 변경사항 및 리팩터링
- BiDi: 최신 프로토콜 개선사항과 버그 수정사항을 통합하여 BiDi 매퍼 종속 항목을 업데이트했습니다 (crrev.com/c/5433300, crrev.com/c/5393442, 버그: 4226). (참고: 이전 범프 crrev.com/c/5374366이 crrev.com/c/5374839에서 되돌려졌으며 불안정한 테스트가 사용 중지되고 라이선스가 업데이트된 후 다시 적용되었습니다(crrev.com/c/5374914).
- 진단: Chrome의
StackTrace를 ChromeDriver 예외에 연결했습니다. 페이지/탭 비정상 종료 (예: Mac의 연결되지 않은 포인터)로 인해 세션이 삭제될 때 오류 메시지에 브라우저 스택 트레이스가 표시되어 디버그 가능성이 크게 개선됩니다 (crrev.com/c/5374371, Bug: 330009945). - 테스트: Mac (특히
mac-arm64)에서 불안정한testTakeLargeElementViewportScreenshot통합 테스트를 일시적으로 사용 중지했습니다(crrev.com/c/5447515, 버그: 333826980). - 테스트: 테스트 환경 (CEL)에서 ChromeDriver 실행 인수를 Selenium 4 이상 구문과 일치하도록 업데이트했습니다 (crrev.com/c/5448812, 버그: 308885357).
- 테스트: 각 WPT 테스트를 실행하는 데 사용된 정확한
chrome명령줄을chromedriver로그에서command이라는 ResultDB 아티팩트로 추출했습니다. 이를 통해run_blink_wptserve.py를 사용한 수동 디버깅이 용이해집니다 (crrev.com/c/5441189, 버그: 41494889). - 종속 항목:
selenium-atoms종속 항목 목록에서Closure을 삭제하여 ChromeDriver의 서드 파티 공지사항에서 삭제했습니다 (crrev.com/c/5424804, 버그: 4226). - 종속 항목: 기본 저장소에서
dynamic_annotations의 사용하지 않는 종속 항목이 삭제되었습니다 (crrev.com/c/3398908, 버그: 1282422). - 서식: 문제가 있는 Windows 헤더에 새
clang-format구성을 적용했습니다 (crrev.com/c/5367127, 버그: 329138753).
ChromeDriver 124
새로운 기능
- BiDi: 소스 매퍼가 이제 CIPD에서 축소되지 않은 상태로 다운로드되므로 (crrev.com/c/5310075, 버그: 4226) ChromeDriver에 삽입하기 전에
BiDiMapper스크립트를 축소하는 빌드 단계를 추가했습니다. - WebAuthn: 클라이언트가 WebAuthn 사용자 인증 정보의 백업 플래그를 업데이트할 수 있도록
SetCredentialProperties명령어를 추가했습니다 (crrev.com/c/5296389, 버그: 40945430). - WebAuthn: '가상 인증자 추가' 명령어에
defaultBackupEligibility및defaultBackupState를 추가하고 '사용자 인증 정보 추가' 명령어에backupEligibility및backupState를 추가하여 WebDriver를 통해 WebAuthn 백업 플래그를 노출했습니다 (crrev.com/c/5297117, 버그: 40945430). - 테스트: ChromeDriver Python 통합 테스트에
--failfast명령줄 인수를 지원하여 디버깅을 지원하기 위해 첫 번째 오류에서 테스트 실행을 중지했습니다 (crrev.com/c/5374546). - 테스트:
testdriver-vendor.jsAPI를 통해SetRPHRegistrationModeWebDriver 명령에 콘텐츠 셸 지원이 추가되었습니다 (crrev.com/c/5205730, 버그: 1359103).
버그 수정
- 안정성:
ChromeImpl::SetWindowBounds에서 폴링 및 대기 루프 본문 내로 시간 제한 만료 확인을 이동했습니다. 이를 통해 부하가 높은 상황에서 첫 번째 루프 반복이 발생하기 전에 시간 초과가 만료될 수 있는 문제가 수정됩니다 (crrev.com/c/5366899, 버그: 4642). - 성능: 창 경계가 아직 원하는 상태에 도달하지 않은 경우에만 지수 백오프 대기를 적용하여
ChromeImpl::SetWindowBounds의 대기 시간을 최소화하여 WPT 설정 지연 시간 감소 (crrev.com/c/5366457, 버그: 4642) - 시작:
content_shell의 데이터 디렉터리를 지정할 때--data-path대신--user-data-dir를 사용하도록 ChromeDriver를 업데이트하여 활성 DevTools 포트를 읽는 방식과 일치시켰습니다 (crrev.com/c/5226609, 버그: 1295373).
내부 변경사항 및 리팩터링
- BiDi: 최신 프로토콜 수정사항과 기능을 반영하도록 BiDi 매퍼 종속성을 업데이트했습니다 (crrev.com/c/5374366, crrev.com/c/5349491, crrev.com/c/5317650, 버그: 4226). (참고: 테스트 실패로 인해 범프가 잠시 되돌려졌다가 다시 적용되었습니다(crrev.com/c/5374839, crrev.com/c/5368680, crrev.com/c/5319423)).
absl::optional이 유형 별칭으로 전환됨에 따라 (crrev.com/c/5296147, 버그: 1500249) 코드베이스 전체에서absl::optional사용을std::optional으로 대체했습니다.std::list,std::unordered_set,base::flat_set,std::stack,std::queue을 비롯한 추가 표준 컨테이너로MiraclePtr(raw_ptr) 적용 범위가 확장되었습니다 (crrev.com/c/5306923, 버그: 325302189).base::numerics바이트 변환 또는BigEndianWriter(이제base::span허용)을 사용하도록WriteBigEndian()를 변환하여 빅 엔디안 바이트를 쓸 때 안전성을 개선했습니다 (crrev.com/c/5202348, 버그: 1490484).- ChromeDriver를 사용하여
content_shell로 웹 플랫폼 테스트 (WPT)를 실행하도록 전환했습니다 (업스트림 버그 수정이 대기 중인 가상 테스트 및 reftest 제외) (crrev.com/c/5347371, 버그: 40214293). - 기존의 모든 일반 센서 웹 테스트를 JS/Mojo 모의 대신
test_driver.js및 가상 센서를 사용하도록 변환하여 일반 센서 사양의 새로운 자동화 섹션과 일치시켰습니다 (crrev.com/c/4770867, 버그: 1278377, 버그: 1471996). append_notices.py를 추가하여BiDiMapper종속 항목의 저작자 표시를 생성하고licenses.py호출을 업데이트하여 서드 파티 공지사항에selenium-atomsREADME를 엄격하게 사용함으로써 라이선스 생성을 개선했습니다 (crrev.com/c/5350601, crrev.com/c/5339957, 버그 4729, 버그 4735).
ChromeDriver 123
새로운 기능
- FedCM: 자동화 인터페이스에 모달 뷰 지원을 추가하는 등 단일 계정 버튼 흐름을 위한 모달 대화상자를 표시합니다 (crrev.com/c/5231438, 버그: 1518356).
- FedCM: FedCM 대화상자 내에서 링크를 여는 ChromeDriver 지원을 구현하여 자동화 단순성을 위해 버튼으로 처리했습니다 (crrev.com/c/5225543, 버그: 1513520).
- 센서: 최근 방향 센서 사양 업데이트를 준수하기 위해 4원수 대신 오일러 각도 (알파-베타-감마)를 읽도록 WebDriver 가상 센서 명령어를 수정했습니다. 내부 CDP 및 서비스 레이어는 변환 단계를 통해 사원수를 계속 사용합니다 (crrev.com/c/5229177, 버그: 1506995, 버그: 1520912, 버그: 1520919).
버그 수정
- 클래식: 스크립트를 통해 다른 프레임에서 노드를 반환할 때
StaleElementReference오류가 잘못 발생하는 문제를 수정했습니다. 이제 WebDriver 표준 (crrev.com/c/5222746, 버그: 4668)을 준수하기 위해JavaScriptError가 올바르게 반환됩니다. - 테스트: 터치 드래그가 창 경계 외부로 확장되어 Chrome/ChromeDriver에서 실패하는 오버스크롤 이벤트 테스트를 수정했습니다. 이제 드래그가 올바르게 제한됩니다 (crrev.com/c/5297676, 버그: 40832230).
- 테스트: 불필요하게 프로미스를 생성하지 않도록
open-close.https.htmlMIDI 테스트를 수정하여 ChromeDriver가 테스트에 실패하게 하는 처리되지 않은 프로미스 거부를 방지했습니다 (crrev.com/c/5239869, 버그: 1499775). - 테스트:
test_driver.set_permission(...)가null또는WindowProxy대신false를 잘못 전달하여 ChromeDriver를 혼동시키는wpt_internal/system-wake-lock/idlharness*테스트의 권한 세트를 수정했습니다 (crrev.com/c/5271087, 버그: 40287920).
내부 변경사항 및 리팩터링
- BiDi: BiDi 매퍼 종속 항목을 업데이트하여 최신 수정사항과 기능을 가져왔습니다 (crrev.com/c/5205452, crrev.com/c/5255321, crrev.com/c/5238148, crrev.com/c/5237125, 버그: 4226). (참고: 빌드 실패로 인해 범프가 잠시 되돌려졌다가 다시 적용되었습니다(crrev.com/c/5238855)).
ChromeImpl및DevToolsClientImpl에서 기본 클래스에서 파생 클래스로의 안전하지 않은 정적 캐스팅을 제거하여 ChromeDriver 코드 상태를 개선하고 잠재적인 정의되지 않은 동작을 방지했습니다 (crrev.com/c/5277062, crrev.com/c/5272562, 버그: 4702).WebViewImpl에서 안전하지 않은 캐스트가 삭제되었습니다 (crrev.com/c/5272230, 버그: 4702).- 지원 중단된
base::Base64Encode()형식이 삭제되었으며, out 매개변수를 사용하는 대신 변형을 반환하는 최신std::string로 이전되었습니다 (crrev.com/c/5179900, crrev.com/c/5246585, Bug: 1486214). - 일관성을 위해
<>대신""를 사용하도록base/...의 모든#include지시어를 업데이트했습니다 (crrev.com/c/5237376, 버그: 1500249). chrome/test/의 모든DIR_METADATA파일을 Buganizer로 이전했습니다 (crrev.com/c/5284119, 버그: 1518875).- stderr가 이미 stdout으로 리디렉션되므로 (crrev.com/c/5282721) 불필요한
chromedriver --log-path=-스위치를 삭제하여-vvv를 전달할 때 wptrunner가 로컬-파일을 생성하지 못하도록 했습니다. - 회귀가 발생할 때 테스트 결과를 요약하도록 wptrunner가 개선되었습니다. 요약 출력에 하위 테스트 결과와 ChromeDriver 스택 트레이스가 직접 포함됩니다 (crrev.com/c/5238662, 버그: 1521922).
run_py_tests.py에--remote-chromedriver-port매개변수를 도입하여 ChromeDriver 통합 테스트의 디버깅을 간소화하여 디버거에서 실행되는 기존 인스턴스에 연결할 수 있도록 했습니다 (crrev.com/c/5237254, 버그: 4693).- 컴파일러가 올바른 크기를 추론할 수 있도록 2개 인수
base::HexEncode()및RandBytes()호출을 방지하여 코드를 단순화했습니다 (crrev.com/c/5241357).
ChromeDriver 122
버그 수정
- BiDi:
loaderId를 포함하도록 딥 노드 직렬화가 업데이트되어 ChromeDriver와 BiDi 매퍼가 과도한 라운드 트립 없이 노드를 적절하게 참조하고 역참조할 수 있습니다 (crrev.com/c/5116240, 버그: 1420968). - 기능: 시작 시 즉시 BiDi 매퍼에
acceptInsecureCerts기능을 전달하도록 ChromeDriver를 업데이트하여 기능이 너무 늦게 적용될 수 있는 경합 상태를 방지했습니다 (crrev.com/c/5125711, 버그: 4643). - 클래식:
<frame_id>.<loader_id>.<backend_node_id>형식을 사용하도록 요소 참조 생성을 재설계했습니다. 이를 통해 ChromeDriver는 프레임 탐색 및 DOM 업데이트 전반에서 유효한 요소 참조, 알 수 없는 요소 참조, 오래된 요소 참조를 명확하게 구분할 수 있습니다 (crrev.com/c/5094519, 버그: 4379). - 클래식: ChromeDriver가 연결되기 전에 새로 생성된 타겟이 자체적으로 닫히는 경우 (예: 경합 상태)
window/handles명령어가 '이러한 창 없음' 오류와 함께 실패할 수 있는 문제가 수정되었습니다 (crrev.com/c/5147409, 버그: 1506833). - FedCM: FedCM 대화상자가 닫힐 때 알리도록 내부 이벤트 리스너를 추가하여 대화상자가 외부에서 닫힌 경우 (예:
AbortController.abort를 통해)dialogtype명령어가 오래된 데이터를 반환하지 않도록 했습니다(crrev.com/c/5067504, 버그: 1506292). - FedCM: 이제 FedCM 사양에서 승인되었으므로
ClickDialogButton명령어에서 공급업체 접두사를 삭제했습니다 (crrev.com/c/5092527, 버그: 1499341).
내부 변경사항 및 리팩터링
- BiDi: BiDi 매퍼 종속성을 최신 버전으로 업데이트했습니다 (crrev.com/c/5205452, 버그: 4226).
DevToolsClientImpl에서 이미 타겟별로 처리하므로 (crrev.com/c/5088789, 버그: 4600) 모든DevToolsEventListener에서 전송되는 중복Page.enable호출을 삭제하여 ChromeDriver 및 Chrome DevTools 프로토콜 (CDP) 트래픽을 줄였습니다.- 프로토콜 모드에서 테스트 실행은 현재 ChromeDriver 통합이 진행 중이므로 완전히 지원되지 않기 때문에 (crrev.com/c/5225148, 버그: 1474702)
content_shell의 모든 Wptrunner 빌더를 실험적 상태로 변경했습니다. content_shell에window.test_driver_internal.get_computed_role가 필요한 테스트를 건너뛰었습니다. 아직 구현되지 않아TypeError실패를 방지합니다 (crrev.com/c/5189678, 버그: 1517744).OZONE_PLATFORM_*대신 플랫폼 독립IS_OZONE_{X11, WAYLAND}플래그를 사용하도록 리팩터링이 다시 적용되었습니다 (crrev.com/c/5086329, 버그: 1500494).selenium-atoms종속 항목을 최신 버전 (crrev.com/c/5110808, 버그: 4662)으로 업데이트했습니다.- 포인터 이동 입력을 반올림하고, 스크롤에
origin파라미터를 적용하고, 근사치 어설션 (assert_approx_equals)을 사용하여 분수 스크롤/오프셋 불일치를 처리하여 전체 Chrome 바이너리에 대해 실행할 때 SnapEvents 테스트의 로직을 수정했습니다 (crrev.com/c/5097343). - 형식 문자열이 컴파일 시간 상수가 아닌 경우
StringPrintf()와 구분하기 위해StringPrintfNonConstexpr()도우미가 추가되었습니다 (crrev.com/c/4950568, Bug: 1371963). chromium::import!Rust 매크로 이스케이프가 생성된 GN 타겟 이름의 충돌을 방지하기 위해 주입 함수를 사용하도록 했습니다 (crrev.com/c/5132119, 버그: 1512174).- 생성자와 소멸자 (crrev.com/c/5113843)에 조기 반환을 추가하여
ScopedTempDirWithRetry구현을 정리했습니다.
ChromeDriver 121
새로운 기능
- 테스트: 빌드 봇에서 표준 Chrome 브라우저 외에
chrome-headless-shell에 대해 ChromeDriver 통합 테스트 (chromedriver_py_test)를 실행하는 지원이 추가되었습니다. 여기에는--browser-name매개변수를 기반으로 브라우저 바이너리를 검색하고 특정 테스트 세트를 조건부로 실행하는 기능이 포함됩니다 (crrev.com/c/4995189, crrev.com/c/4989442, 버그: 4358).
버그 수정
- 안정성:
KeyboardLayoutEngineManager::SetKeyboardLayoutEngine에서DCHECK이 발생하여 ChromeDriver가 비정상 종료되는 것을 방지하기 위해 기본KeyboardLayoutEngine을StubKeyboardLayoutEngine로 초기화했습니다 (crrev.com/c/5017859, 버그: 4625). - 안정성: 클라이언트가 이미 동일한 연결을 닫도록 요청한 후 세션 스레드가 연결을 닫도록 요청하는 경우 ChromeDriver가 비정상 종료될 수 있는 불안정성 문제가 수정되었습니다 (crrev.com/c/4994636, 버그: 4606).
- 리소스 관리: ChromeDriver 명령어로 예외가 발생하더라도 브라우저 프로세스가 종료되도록 하여 ChromeDriver 통합 테스트 (
RemoteBrowserTest)에서 리소스 누수가 수정되었습니다 (crrev.com/c/5009554, 버그: 4614). - 리소스 관리: ChromeDriver 프로세스에서 버려진 브라우저 프로세스를 감지하고 종료하는 로직이 ChromeDriver 통합 테스트에 구현되었습니다 (crrev.com/c/5014093, 버그: 4617).
- 시작: 브라우저 이름이
chrome-headless-shell일 때 브라우저 명령줄에data:,인수를 추가하여chrome-headless-shell가 빈 타겟 목록을 반환하여 세션 생성을 방해하는 문제를 수정했습니다 (crrev.com/c/5010392, crrev.com/c/5009535, 버그: 4615, 버그: 4358). - FedCM: FedCM 대화상자가 닫힐 때 알리는 새 이벤트를 추가하여 대화상자가 외부에서 닫힌 경우 (예:
AbortController.abort를 통해)dialogtype및 기타 명령어가 오래된 데이터를 반환하지 않도록 했습니다(crrev.com/c/5067504, 버그: 1506292). - 테스트: Windows에서
chrome-headless-shell에 대해 이전에 사용 중지되었던 모든 ChromeDriver 통합 테스트를 수정하고 다시 사용 설정했습니다 (crrev.com/c/5027594, 버그: 4358). - 테스트: WebDriver 표준에 맞게
testElementRegionTest에서 지나치게 엄격한 어설션을 약화하여 브라우저 렌더링 특이사항으로 인해 발생하는 불안정성을 해결했습니다 (crrev.com/c/5017865, 버그: 4526).
내부 변경사항 및 리팩터링
- BiDi: BiDi 매퍼 종속 항목이 업데이트되었습니다 (crrev.com/c/4994305, 버그: 4226).
- 버그로 인해
IS_OZONE_{X11, WAYLAND}대신OZONE_PLATFORM_*를 사용하도록 되돌렸습니다 (crrev.com/c/5086571, crrev.com/c/5083096 되돌리기, 버그: 1500494). - 지원 중단된
base::Passed대신base::BindLambdaForTesting을 사용하도록commands_unittest.cc의 코드를 이전했습니다 (crrev.com/c/5078589, 버그: 1326449). session.new를 리팩터링하여 상용구 기능 처리 (예:testName,binary,browserName)를 전용 메서드로 추출하고 명령어가 기존 명령어와 유사하게 기능을 준수하도록 했습니다 (crrev.com/c/5004665, crrev.com/c/5001510, 버그: 4358, 버그: 4610).- 지원 중단된
base/strings/string_piece_forward.h헤더 사용이 삭제되었습니다 (crrev.com/c/5008994, 버그: 691162). - 소유 사례에
net::IOBufferWithSize을 사용하여net::IOBuffer을 소유하지 않는 클래스로 전환할 준비를 했습니다 (crrev.com/c/4996470, 버그: 1493389). - 문자열에 바이너리 값을 저장하지 않기 위해
base::RandBytesAsVector()도입 및 활용 (crrev.com/c/5018451) - LUCI 분석 면제로 인해 녹색 빌드가 발생하지 않도록 Mac에서 일관되게 실패하는 여러 Python 통합 테스트를 사용 중지했습니다 (crrev.com/c/4998771, 버그: 1486604, 버그: 1486520, 버그: 1486474, 버그: 1481915).
- Linux try 빌더에서 WPT 스위트 이름 지정 규칙을 표준화하기 위해
webdriver_tests_suite(및wpt_tests_suite)를chrome_wpt_tests로 이름을 바꿨습니다 (crrev.com/c/5014293, 버그: 1474702). ConfirmIdpLoginFedCM 웹 드라이버 명령어를DialogButton매개변수를 허용하는 더 확장 가능한ClickDialogButton명령어로 용도 변경했습니다 (crrev.com/c/5003255, 버그: 1499341).- 드라이버 유형 파싱 개선, 네트워크 스텁, iOS 지원 등 다양한 수정사항과 기능이 포함된
crossbench종속 항목이 업데이트되었습니다 (crrev.com/c/5009937). - IWYU 규정 준수를 위해
chrome_finder.h에 누락된#include <string>가 추가되었습니다 (crrev.com/c/4994605, 버그: 957519).
ChromeDriver 120
새로운 기능
- BiDi:
session.new및session.end명령어 지원이 추가되어 사용자가 BiDi 명령어를 통해 직접 세션을 만들고 종료할 수 있습니다 (crrev.com/c/4941941, 버그: 4496). - BiDi:
session.statusPureBiDi 명령 지원이 추가되어 사용자가 세션에 바인딩되지 않은 WebSocket 연결을 설정하고 세션 상태를 검색할 수 있습니다 (crrev.com/c/4938596, 버그: 4496). (crrev.com/c/4922097에서 이전 되돌리기 후 다시 적용됨) - BiDi: BiDi 매퍼 종속 항목을 업데이트하고 새롭고 간소화된 매퍼 실행 프로세스 (crrev.com/c/4952609, 버그: 4226)와 정렬했습니다.
- 센서:
browser_protocol.pdl및 CDP 레이어 (에뮬레이션 도메인)에서 가상 센서 명령어를 구현하여 일반 센서 사양의 자동화 섹션 (crrev.com/c/4770864, 버그: 1278377)을 지원합니다. - 센서: 가상 센서 관리를 위한 ChromeDriver 확장 프로그램 명령어를 추가하여 WebDriver 매개변수를 새로운 CDP 호출로 변환했습니다 (crrev.com/c/4770866, 버그: 1278377).
- 센서:
testdriver.js을 통해 가상 센서를 조작하는content_shell코드 경로를 추가하여 웹 테스트를 위해 ChromeDriver를 완전히 우회했습니다 (crrev.com/c/4770865, 버그: 1278377). - 추적 감소: 이탈 추적 감소 (DIPS)를 위한 ChromeDriver 지원이 추가되어
nav-tracking-mitigations사양 (crrev.com/c/4873672, 버그: 1474656)의 자동화가 가능해졌습니다. (참고: crrev.com/c/4938394에서 Mac 테스트 실패로 인해 일시적으로 되돌렸습니다.)
버그 수정
- 시작: ChromeDriver에 헤드리스 셸 검색이 추가되어 기능을 통해 요청되고 명시적 경로가 제공되지 않는 경우
chrome-headless-shell바이너리를 검색할 수 있습니다 (crrev.com/c/4987262, 버그: 4358). (crrev.com/c/4984449에서 이전 되돌리기 후 다시 적용) - WebSockets: WebSocket 종료 핸드셰이크에 대한 부분 지원을 구현하여 원격 엔드에서 수신된 경우 ChromeDriver가
CLOSE프레임으로 응답하도록 했습니다 (crrev.com/c/4931500, 버그: 4499). - 권한: 공급업체 빌드 (예: Microsoft Teams)에서 이를 사용 중지하여 macOS 권한 메시지가 테스트 자동화를 중단하지 않도록 할 수 있도록
options.disclaim_responsibility를 빌드 플래그로 노출했습니다 (crrev.com/c/4929495, 버그: 1223643). - C++ 표준 준수: 범위 검사를 추가하여 범위를 벗어난 double을 int로 변환할 때 UBSan에서 포착한 정의되지 않은 동작 (UB)을 수정했습니다 (crrev.com/c/4980055, 버그: 1394755).
- FedCM: 이전 헤더 구문 지원을 삭제하여 표준
login-status-http구문 준수 (crrev.com/c/4957073, 버그: 1381501)
내부 변경사항 및 리팩터링
window.frameElement을 오래된 참조로 처리하는 것과 관련된 ChromeDriver의 동작을 확인하기 위해testReturnFrameElement통합 테스트를 추가했습니다 (crrev.com/c/4983549, 버그: 4477).- ChromeDriver가 브라우저 바이너리를 찾으려고 시도하는 특정 경로를 기록하도록 하여 로깅이 개선되었습니다 (crrev.com/c/4976116, 버그: 4539).
- 다양한
base::Time함수의 이름을 더 설명이 포함된 이름으로 변경했습니다 (예:FromDoubleT()에서FromSecondsSinceUnixEpoch()로) (crrev.com/c/4956111). - 불필요한 문자열 복사 및 길이가 0인 할당을 방지하기 위해
net::StringIOBuffer생성자 및IOBuffer인스턴스화를 리팩터링했습니다 (crrev.com/c/4938384, crrev.com/c/4959174). - 해당하는 경우
base::StrCat를+로 대체하고base::AppendHexEncodedByte()를 활용하여 문자열 처리를 정리했습니다 (crrev.com/c/4963465, crrev.com/c/4977165). - 명확성을 위해
//chrome*테스트 전반에서DIR_SOURCE_ROOT의 이름을DIR_SRC_TEST_DATA_ROOT으로 바꿨습니다 (crrev.com/c/4916045, 버그: 1264897). - Mac 빌더에서 불안정한
PureBidiTest테스트를 사용 중지했습니다 (crrev.com/c/4983555, 버그: 1496826).
ChromeDriver 119
새로운 기능
- BiDi: 원격 함수 호출 중에 원격 엔드에서 반환된 약한 로컬 객체 참조를 해결하는 지원을 구현했습니다 (crrev.com/c/4886760, 버그: 4536).
- FedCM: IDP 로그인 상태 API 오리진 트라이얼을 지원하기 위해 공급업체 접두사가 지정된
confirmidpsignin명령어를 추가했습니다 (crrev.com/c/4811725, 버그: 1451884).
버그 수정
- 모바일 에뮬레이션: 클라이언트 힌트가 없는 사전 정의된 기기 (예: 이전 구성)가 적절한 기본값으로 채워져 손상되는 문제를 수정했습니다 (crrev.com/c/4887254, 버그: 4550).
- 클래식:
Map및Set객체의 직렬화를 수정했습니다. 이제length속성이 없으므로Collection이 아닌Object로 올바르게 직렬화됩니다 (crrev.com/c/4881378, 버그: 4031). - 클래식: 테스트 중에 항상 호환되는 최신 버전의 ChromeDriver를 다운로드하고 사용하는 로직을 복원하여 호환성 문제가 발생하는 경우에만 특정 버전으로 대체합니다 (crrev.com/c/4779613, crrev.com/c/4778973 되돌림).
- FedCM: 최신 FedCM 사양 논의 (crrev.com/c/4901302, 버그: 1451884)에 맞게
Signin를Login(confirmidplogin)로 이름을 바꿔 브라우저 자동화 명령어를 표준화했습니다. - 테스트: 테스트 실행 중에 IDP 로그인 상태 API를 명시적으로 사용 설정하여 서드 파티 쿠키가 사용 중지된 경우 실패하는 FedCM 테스트를 수정했습니다 (crrev.com/c/4889802, 버그: 1484833).
- 테스트: 예정된 Chromium URL 표준 시행 변경사항 (crrev.com/c/4845589, 버그: 1416013)을 준수하기 위해 테스트 러너에서 잘못된 URL 자리표시자
~NOTFOUND를^NOTFOUND로 대체했습니다.
내부 변경사항 및 리팩터링
- BiDi: BiDi 매퍼 종속 항목을 버전 0.4.27로 업데이트하여 최신 수정사항과 기능을 가져왔습니다 (crrev.com/c/4862031, crrev.com/c/4890322).
- 안전성과 편의성을 개선하기 위해
//url의 여러 포인터/길이 API를std::string_view으로 대체했습니다 (crrev.com/c/4897456). - BiDi 프로토콜 (crrev.com/c/4889644)에서 기본적으로 제공하는 심층 직렬화 옵션 (
serializationOptions.serialization: deep)을 사용하도록generateWebDriverValue유틸리티를 전환했습니다. - 오래된 요소 참조로 검색하면 '오래된 요소 참조' 오류가 올바르게 반환되는지 확인하는 통합 테스트를 추가했습니다 (crrev.com/c/4886793, 버그: 4440).
call_function.js의 코드 스타일 형식이 개선되었습니다 (crrev.com/c/4882511, 버그: 4031).- 사용자가 WebSocket을 통해 연결할 때 파이프가 지원되며 안정성과 보안을 개선하기 위해 권장된다는 점을 명시적으로 알려 사용자 의견을 개선했습니다 (crrev.com/c/4882626, 버그: 3480).
webdriver_tests_suite테스트를 위해results.html를 보관하도록 WPT 모음 구성을 업데이트하여 결과를 볼 수 있는 더 나은 UI를 제공했습니다 (crrev.com/c/4873223).- WebView WebContents를 표시하고 DevTools 유형을
other대신popup_page로 설정하여 WebView와의 DevTools 통합을 수정했습니다 (crrev.com/c/4842093). - 일관성을 위해 WPT 빌드 타겟
chrome_wpt를chrome_wpt_tests로 이름을 변경하고 중복된webdriver_wpt_tests타겟을 삭제했습니다 (crrev.com/c/4847474, 버그: 1474702). - 지원 중단된
optparse라이브러리에서argparse로run_py_tests.py가 이전되었습니다 (crrev.com/c/4849411, 버그: 4557).
ChromeDriver 118
새로운 기능
- 통합 테스트: ChromeDriver용 C++ 통합 테스트를 도입하여 실제 CDP 트래픽에 대해 특정 클래스를 테스트할 수 있으므로 단위 테스트와 Python 통합 테스트 간의 격차를 해소했습니다 (crrev.com/c/4707855, 버그: 4528).
- Crossbench: 새로운 전력 벤치마크 스토리, 향상된 플랫폼 및 기기 지원, 디버깅 개선, 다양한 수정사항 등 여러 개선사항이 적용된
crossbench종속 항목이 업데이트되었습니다 (crrev.com/c/4803743).
버그 수정
- 기능: 기본 구성에서 반환된 기능에
debuggerAddress가 누락되는 문제를 수정했습니다. 이제 Selenium의 CDP 기반 BiDi 통신을 지원하기 위해 올바르게 반환됩니다 (crrev.com/c/4789068, 버그: 4533). - 기능: ChromeDriver가 WebDriver 사양 (crrev.com/c/4797735, 버그: 4548)에 따라 표준
platformName값 (예: 'linux', 'windows', 'mac')을 반환하도록 했습니다.
내부 변경사항 및 리팩터링
- 안전성 향상을 위해
MockSocket에서 원시 포인터보다base::span<>를 선호하도록 코드를 이전했습니다 (crrev.com/c/4832086). - 자동 정리 (crrev.com/c/4773481)를 통해
base::raw_ptr및base::raw_ref의 지원 중단된 사용이 비정규화된 형식raw_ptr및raw_ref로 대체되었습니다. - Windows 안정화/베타 채널에서 비정상 종료를 일으키는 최신 ChromeDriver를 항상 사용하도록 하는 변경사항을 일시적으로 되돌렸습니다 (crrev.com/c/4778973, crrev.com/c/4777430 되돌림).
pointer_touch.py에서 디버그 전용 실패를 억제하고 차단된 프레임의 브라우저 측 포커스 확인을 구현하는 등 WPT (웹 플랫폼 테스트) 구성을 조정했습니다 (crrev.com/c/4844810, crrev.com/c/4572517).- IWYU 규정 준수를 위해
client_hints.h에 누락된#include <vector>추가 (crrev.com/c/4767547) - Apple 관련 기본 유형 (
ScopedTypeRef,ScopedCFTypeRef,scoped_nsautorelease_pool)을base::apple::네임스페이스로 이전하여 Crashpad용 임시 전달 헤더를 남겼습니다 (crrev.com/c/4799213, crrev.com/c/4790744, crrev.com/c/4790741, crrev.com/c/4784010).
ChromeDriver 117
새로운 기능
- 파이프 통신: 지원되는 모든 플랫폼(Windows 포함)에서 ChromeDriver와 Chrome 간의 기본 통신 모드가 WebSockets에서 파이프(
--remote-debugging-in-pipe및--remote-debugging-out-pipe)로 변경되었습니다(crrev.com/c/4634299, crrev.com/c/4628834, crrev.com/c/4635378, 버그: 3480). - BiDi: BiDi 매퍼 종속 항목이 업데이트되었습니다 (crrev.com/c/4670516, 버그: 4226).
버그 수정
- 안정성: ChromeDriver가 비정상 종료되어 테스트 실행 중에
ConnectionRefused오류가 발생하는 null 포인터 액세스를 수정했습니다 (crrev.com/c/4675633, 버그: 1457101). - 탐색: 탐색 중에 Chrome의
NoSuchExecutionContext및NoSuchWindow오류가 균일하게 처리되지 않는 문제를 수정했습니다. 이제 두 오류 모두 작업을 다시 시도하도록 올바르게 매핑됩니다 (crrev.com/c/4667156, 버그: 4459). - 모바일 에뮬레이션:
clientHints.mobile의 추론 로직을 수정했습니다. 이제 Android의userAgent에서 올바르게 추론되며 다른 플랫폼에서는 기본값이 false로 설정되어 태블릿이 모바일로 잘못 보고되는 문제가 수정되었습니다 (crrev.com/c/4649348, 버그: 4243). - 세션 생성: 실패 시 표준
SessionNotCreated오류 코드를 올바르게 반환하도록 세션 생성을 업데이트하여 W3C WebDriver 사양 (crrev.com/c/4638223, 버그: 4379)을 엄격하게 준수합니다. 참고: 일부 특정 코드 경로에는 다른 오류 코드가 필요하므로 이 변경사항은 이후에 되돌려졌습니다 (crrev.com/c/4651188).
내부 변경사항 및 리팩터링
- ChromeDriver가 이제 Chrome 출시 프로세스에 완전히 통합되어 Chrome for Testing 인프라를 통해 제공되므로 수동 ChromeDriver 출시 프로세스 스크립트가 삭제되었습니다 (crrev.com/c/4520687, 버그: 4142).
- 맞춤
run_webdriver_tests.py대신 공식wptrunner하네스를 사용하도록 WPT (Web Platform Tests) 인프라를 이전하여 실행 속도와 안정성을 크게 개선하고 테스트 간에 ChromeDriver가 다시 생성되어 비정상 종료를 격리하도록 했습니다 (crrev.com/c/4723147, crrev.com/c/4676070, crrev.com/c/4639168). - 파이프로의 전환을 지원하고,
DevToolsHttpClient와의 결합을 완화하고, WebSocket 로직을 전용 브랜치로 이동하기 위해ChromeLauncher및 관련 클래스를 광범위하게 리팩터링했습니다 (crrev.com/c/4632801, crrev.com/c/4674345). - 혼동을 야기하는
BrowserInfo.is_headless필드의 이름을 명확성을 위해BrowserInfo.is_headless_shell으로 바꿈 (crrev.com/c/4650452, 버그: 4358). - 코드베이스 전반에서 지원 중단된 다양한
base::Value메서드를 최신base::Value::Dict동등 항목 (예:FindDouble(),Set(),size())으로 대체했습니다 (crrev.com/c/4258936, crrev.com/c/4336805, crrev.com/c/4461067).112.0.5603.0, 113.0.5653.0, 114.0.5733.0 - 더 안전한 기본 문자열 유틸리티를 위해
[w]ctype.h사용을 삭제하고base::expected용 새 기능을 구현했습니다 (crrev.com/c/4749459, crrev.com/c/4755226). - FedCM WPT를 위해
TestDriver에서get_fedcm_dialog_title및select_fedcm_account자동화 명령어를 구현했습니다 (crrev.com/c/4618303). - 현재 작업 디렉터리와 관계없이 올바르게 작동하도록 BiDi 매퍼 빌드 스크립트가 업데이트되었습니다 (crrev.com/c/4670550).
- macOS 빌드에서 ARC (자동 참조 카운트)를 사용하도록
/chrome/test/chromedriver파일을 변환하여 필요한 상용구 추가 (crrev.com/c/4663602) - 자동 고무 도장 커밋을 통해 기본적으로 파이프 통신을 사용 중지하려고 시도했지만, 변경사항은 이전에 도입된 핵심 기본 파이프 동작 (crrev.com/c/4683947)을 변경하지 않고 구성만 수정했습니다.
ChromeDriver 116
새로운 기능
- FedCM: 클라이언트가 ChromeDriver가 FedCM 명령어를 실행하고 오류를 포착하지 않고도 지원하는지 확인할 수 있는 새로운 기능이 추가되었습니다 (crrev.com/c/4624924, 버그: 1356159).
- 테스트: 성능 및 불안정성에 미치는 영향을 평가하기 위해
wptrunner에서 ChromeDriver를 통해 실행되는 testharness 테스트의 테스트 창 재사용을 사용 설정했습니다 (crrev.com/c/4515180, 버그: 1394572).
버그 수정
- C++ 표준 준수: 형식 문자열에서 범위가 지정된 열거형 (enum class)을 직접 잘못 사용하여 발생하는 정의되지 않은 동작을 수정하여 새로운 Clang 컴파일러 경고를 해결했습니다 (crrev.com/c/4628112, 버그: 1456289).
- FedCM:
setdelayenabled이 올바르게 작동하지 못하도록 하는 특이 사례를 수정하여 테스트 불안정성의 잠재적 원인을 해결했습니다 (crrev.com/c/4606064, 버그: 1453412).
내부 변경사항 및 리팩터링
- BiDi: BiDi 매퍼 종속 항목을 업데이트하고 기본적으로 'main'에서 최신 버전을 가져오도록 빌드 스크립트를 업데이트했습니다 (crrev.com/c/4615087, crrev.com/c/4615791, 버그: 4226).
- ChromeDriver가 UTF-8 인코딩을 명시적으로 사용하여 모든 파일을 열고 쓰도록 전환했습니다 (crrev.com/c/4614522).
DevToolsHttpClient에 대한 종속 항목을 없애기 위해ChromeImpl를 리팩터링하고 WebSocket 대신 파이프를 통해 통신하기 위해SyncWebSocketFactory및BrowserInfo사용을 줄였습니다 (crrev.com/c/4571690, crrev.com/c/4571199, 버그: 3480).- 폐쇄형 프레임의 지원 중단된 '기본 모드'가 삭제되었으며, 새로운 기능 플래그를 사용 설정하도록 관련 테스트가 업데이트되어 FLEDGE 광고로의 이전이 계속됩니다 (crrev.com/c/4558645).
- 일반
WaitForCondition어설션을assertTrue로 대체하여 타임아웃이 발생하는 시점을 명확하게 나타내 FedCM 테스트를 개선했습니다 (crrev.com/c/4590211). linux-rel단위 테스트에서 알려진 불안정한 매달린raw_ptr경고를 표시했습니다 (crrev.com/c/4598070).- BiDi 매퍼의 OWNERS 파일이 업데이트되었습니다 (crrev.com/c/4614518).
ChromeDriver 115
새로운 기능
- 모바일 에뮬레이션: 모바일 에뮬레이션에서 사용자 에이전트 클라이언트 힌트 지원을 구현하여 ChromeDriver가 기능 및 사전 설정에서 클라이언트 힌트를 파싱하고 Chrome에 전달할 수 있도록 했습니다 (crrev.com/c/4498667, crrev.com/c/4466129, 버그: 4243).
- 모바일 에뮬레이션: 사용자 에이전트에서
%s형식 문자열을 대체할 때 ChromeDriver 버전 대신 호스트 브라우저의 메이저 버전을 사용하도록 모바일 에뮬레이션 사전 설정을 업데이트했습니다 (crrev.com/c/4502850, 버그: 4243). - 설정: 지정된 채널의 특정 ChromeDriver 버전을 다운로드하는 지원이 추가되어 ChromeDriver가 호스트와 다른 플랫폼 (예: Android/WebView)에서 실행되는 자동화 시나리오가 개선되었습니다 (crrev.com/c/4550281).116.0.5791.0
버그 수정
- 클래식: 노드 확인에 실패하면 표준
NoSuchElement오류 대신UnknownError이 잘못 반환되는 문제를 수정했습니다 (crrev.com/c/4508952, 버그: 4440). - 모바일 에뮬레이션:
userAgent문자열에 'Mobile'이 포함된 경우clientHints.mobile플래그가 true여야 함을 강제 적용하기 위해 모바일 에뮬레이션 사전 설정에 더 엄격한 어설션을 추가했습니다(crrev.com/c/4507142, 버그: 4243). - 모바일 에뮬레이션: 지원 중단된
Page도메인과 동일한 항목 대신Emulation.setDeviceMetricsOverrideCDP 명령어를 사용하도록DeviceMetrics재정의가 이전되었습니다 (crrev.com/c/4502614, 버그: 4243).
내부 변경사항 및 리팩터링
- BiDi: BiDi 매퍼 종속 항목을 업데이트하여 심층 직렬화 기능을 사용 설정했습니다 (crrev.com/c/4535936, crrev.com/c/4512195).
- ChromeDriver가 파이프를 통해 통신하도록 이전하기 위해 지원 중단된
Connect메서드를DevToolsClient에서 삭제했습니다 (crrev.com/c/4521485, 버그: 3480). base::Value보다base::Value::Dict를 선호하도록 코드베이스를 이전하고FindStringKey(),SetKey(),SetByDottedPath()과 같은 지원 중단된 메서드를 대체했습니다 (crrev.com/c/4529788, crrev.com/c/4522701, crrev.com/c/4515800, crrev.com/c/4507150).- 더 안전한 유형 변환을 위해
[w]ctype.h대신string_util.h함수를 사용하도록 전환했습니다 (crrev.com/c/4529187). - 스크립트와 Chrome이 다른 위치에서 실행될 때 일관성을 유지하도록 절대 경로를 사용하도록 시드 파일 로드 로직이 변경되었습니다 (crrev.com/c/4504656).
web_view.h에서 사용하지 않는CallAsyncFunction()메서드를 삭제했습니다 (crrev.com/c/4518363, 버그: 3376).- 스타일 가이드 환경설정 (crrev.com/c/4476651)에 따라
base::raw_ptr의 이름을raw_ptr로 자동 변경했습니다.
ChromeDriver 114
새로운 기능
- 클래식: 향후 클라이언트 힌트 및 UserAgent 재정의를 위한 기반을 마련하기 위해
MobileDevice정보를MobileEmulationOverrideManager에 전달했습니다 (crrev.com/c/4447524). - 테스트: ChromeDriver 테스트 고정 요소가 추가되었습니다 (crrev.com/c/4459939).
버그 수정
- 헤드리스: 스크립트된 인쇄 미리보기 요청 (예:
window.print())을 무시하여 새로운 헤드리스 모드에서 비정상 종료를 수정하고 이전 헤드리스 모드와 동작을 정렬했습니다 (crrev.com/c/4436313, 버그: 4385). - 기능: ChromeDriver 기능의 이동 후 사용 버그가 수정되었습니다 (crrev.com/c/4462094, 버그: 4243).
- DevTools: DevTools 연결이 끊어질 때 비정상 종료를 방지하기 위해
DevToolsClientImpl::SendCommandInternal에서DCHECK를 삭제했습니다. 이는 불변식 위반이 아니기 때문입니다 (crrev.com/c/4370486, 버그: 4385).
내부 변경사항 및 리팩터링
- BiDi: BiDi 매퍼 종속 항목이 업데이트되었습니다 (crrev.com/c/4418727).
WebViewImpl및 성능 로거 테스트에서 소유되지 않은 참조와 로컬 소멸을 적절하게 관리하여 단위 테스트 실행 중에 발생하는 여러 개의 매달린 포인터 경고를 해결했습니다 (crrev.com/c/4374824, crrev.com/c/4368179).- 코드베이스를 이전하여 새로운
base::Valuev2 API를 사용하고 지원 중단된 메서드(예:Value::SetPath(),Value::SetStringPath(),base::ListValue)를 대체했습니다(crrev.com/c/4452309, crrev.com/c/4431420, crrev.com/c/4422897, crrev.com/c/4377520). - 핵심 기본 라이브러리 이름 변경 (crrev.com/c/4455083)에 맞추기 위해
base::GUID의 모든 사용을base::Uuid로 대체했습니다. - 코드를 단축하고,
expected에 모나드 연산을 사용하고, 데드 코드를 삭제하고, 스타일 위반을 수정하는 등 다양한 코드 정리 작업을 실행했습니다 (crrev.com/c/4475368, crrev.com/c/4464199). - 지원 중단된
src속성 대신config속성을 사용하도록 격리된 프레임 관련 테스트를 업데이트했습니다 (crrev.com/c/4382231). - 효과적이지 않은
ShadowDOMV0사용을 삭제했습니다 (crrev.com/c/4388302). - 리베이스를 허용하기 위해 Skia PDF 수정사항 (
SK_IGNORE_PDF_EOF_NEWLINE_FIX) 플래그 추가를 되돌렸습니다 (crrev.com/c/4401451). - ChromeDriver 테스트 스크립트의 소유자를 업데이트하고 pinpoint 전용으로 구성 JSON을 생성하도록 조정했습니다 (crrev.com/c/4437492, crrev.com/c/4298554).
- IWYU 빌드 문제를 수정하기 위해
web_view_impl.cc의std::strlen에 누락된 include (<cstring>)가 추가되었습니다 (crrev.com/c/4376772). - 사용하지 않는 테스트 파일 (
orientation_test.html)이 삭제되었습니다(crrev.com/c/4335668).
ChromeDriver 113.0.5672.63
Chrome 버전 113 지원
- 문제 4205 해결: 클래식과 BiDi의 객체 ID가 동일함[Pri-1]
- 문제 4302 해결: ExecuteGetWindowHandles에서 매퍼가 첫 번째 탭에 있다고 가정하지 않음[Pri-1]
- 문제 4356 해결: Chrome 110에서 환경설정 값 'download.default_directory'를 활용하지 않음[Pri-1]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 113.0.5672.24
Chrome 버전 113 지원
- 문제 4205 해결: 클래식과 BiDi의 객체 ID가 동일함[Pri-1]
- 문제 4302 해결: ExecuteGetWindowHandles에서 매퍼가 첫 번째 탭에 있다고 가정하지 않음[Pri-1]
- 문제 4356 해결: Chrome 110에서 환경설정 값 'download.default_directory'를 활용하지 않음[Pri-1]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 112.0.5615.49
Chrome 버전 112 지원
- 문제 3517 해결: 헤드리스가 아닌 기기에서 인쇄 기능 사용 설정[Pri-]
- 문제 4419 해결: chromedriver 사용 시 속도계의 오버헤드가 큼[Pri-3]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 112.0.5615.28
Chrome 버전 112 지원
- 문제 4357 해결: --headless 및 --user-data-dir 옵션이 있는 Chromedriver 버전 110.0.5481.77 세션 문제 [Pri-1]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 111.0.5563.64
Chrome 버전 111 지원
- 문제 4216 해결: 맞춤 BiDiMapper로 ChromeDriver 실행 [Pri-]
- 문제 4300 해결: 창 핸들이 기존 버전과 BiDi 간에 상호 운용 가능함[Pri-]
- 문제 4325 해결: call_function.js의 jsonSerialize에서 toJSON 처리가 표준에서 벗어남 [Pri-]
- 문제 4330 해결: DevToolsClientImpl::AddListener에서 DCHECK 실패 [Pri-]
- 문제 4357 해결: --headless 및 --user-data-dir 옵션이 있는 ChromeDriver 세션 문제 [Pri-1]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 111.0.5563.41
Chrome 버전 111 지원
- 문제 4357 해결: --headless 및 --user-data-dir 옵션이 있는 ChromeDriver 세션 문제 [Pri-1]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 111.0.5563.19
Chrome 버전 111 지원
- 문제 4216 해결: 맞춤 BiDiMapper로 ChromeDriver 실행 [Pri-]
- 문제 4300 해결: 창 핸들이 기존 버전과 BiDi 간에 상호 운용 가능함[Pri-]
- 문제 4325 해결: call_function.js의 jsonSerialize에서 toJSON 처리가 표준에서 벗어남 [Pri-]
- 문제 4330 해결: DevToolsClientImpl::AddListener에서 DCHECK 실패 [Pri-]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 110.0.5481.77
Chrome 버전 110 지원
- 문제 4193 해결: Android 13에서 새 세션을 시작하지 못함[Pri-]
- 문제 4272 해결: WebSocket은 code=0을 FIN의 표시로 처리해야 함[Pri-]
- 문제 4276 해결: ChromeDriver의 연결 문제 수정[Pri-]
- 문제 4295 해결:
"webSocketUrl": true가 적용된 ChromeDriver가 레이스 상태임[Pri-] - 문제 4297 해결: ChromeDriver Bidi가 잘못 직렬화됨[Pri-]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 110.0.5481.30
Chrome 버전 110 지원
- 문제 4193 해결: Android 13에서 새 세션을 시작하지 못함[Pri-]
- 문제 4272 해결: WebSocket은 code=0을 FIN의 표시로 처리해야 함[Pri-]
- 문제 4276 해결: ChromeDriver의 연결 문제 수정[Pri-]
- 문제 4295 해결:
"webSocketUrl": true가 적용된 ChromeDriver가 레이스 상태임[Pri-] - 문제 4297 해결: ChromeDriver Bidi가 잘못 직렬화됨[Pri-]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 109.0.5414.74
Chrome 버전 109 지원
- 문제 4179 해결: 양방향 세션이 여러 연결을 지원해야 함[Pri-]
- 문제 4203 해결: 크레딧 정보 개선[Pri-]
- 문제 4263 해결: Meta+A에서 비정상 종료 [Pri-]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 109.0.5414.25
Chrome 버전 109 지원
- 문제 4179 해결: 양방향 세션이 여러 연결을 지원해야 함[Pri-]
- 문제 4203 해결: 크레딧 정보 개선[Pri-]
- 문제 4263 해결: Meta+A에서 비정상 종료 [Pri-]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 108.0.5359.71
Chrome 버전 108 지원자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 108.0.5359.22
Chrome 버전 108 지원
- 문제 4204 해결: 실패하는 WPT test_top_level_and_one_child 수정[Pri-]
- 문제 4215 해결: chromedriver_mac64_m1 빌드를 chromedriver_mac_arm64로 이름 변경 [Pri-]
- 문제 4221 해결: 클릭 명령어로 브라우저를 닫을 때 비정상 종료됨[Pri-]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 107.0.5304.62
Chrome 버전 107 지원
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 107.0.5304.18
Chrome 버전 107 지원
- 문제 4180 해결: BiDiMapper가 시작되었다는 알림을 받을 때까지 BiDi 명령 처리를 금지함 [Pri-]
- 문제 4198 해결: ChromeDriver BiDi가 BiDiMapper가 항상 첫 번째 탭에 있다고 가정해서는 안 됨[Pri-]
- 문제 4207 해결: WPT 실행 시 WebDriver 오류 [Pri-1]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 106.0.5249.61
Chrome 버전 106 지원
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 106.0.5249.21
Chrome 버전 106 지원
- 문제 4016 해결: ChromeDriver에 기본 BiDi 지원 추가 (매퍼 기반) [Pri-1]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 105.0.5195.52
Chrome 버전 105 지원
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 105.0.5195.19
지원되는 Chrome 버전
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 104.0.5112.79
Chrome 버전 104 지원
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 104.0.5112.29
Chrome 버전 104 지원
- 문제 4121 해결: WebDriver 명령어가 '예상치 못한 명령 응답'으로 인해 실패하는 경우가 있음[Pri-1]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 104.0.5112.20
Chrome 버전 104 지원
- 문제 4121 해결: WebDriver 명령어가 '예상치 못한 명령 응답'으로 인해 실패하는 경우가 있음[Pri-1]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 103.0.5060.134
Chrome 버전 103 지원
- 문제 4048 해결: 타겟 프레임 분리됨[Pri-]
- 문제 4121 해결: WebDriver 명령어가 '예상치 못한 명령 응답'으로 인해 실패하는 경우가 있음[Pri-1]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 103.0.5060.53
Chrome 버전 103 지원
- 문제 4048 해결: 타겟 프레임 분리됨[Pri-]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 103.0.5060.24
Chrome 버전 103 지원
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 102.0.5005.61
Chrome 버전 102 지원
- 문제 1309282 해결: chromedriver가 다중 값 스위치를 지원하지 않음[Pri-1]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 102.0.5005.27
Chrome 버전 102 지원
- 문제 1309282 해결: chromedriver가 다중 값 스위치를 지원하지 않음[Pri-1]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 101.0.4951.41
Chrome 버전 101 지원
- 문제 4046 해결: 빈 분리 프레임을 추가할 때 DCHECK 발생 [Pri-]
- 문제 4080 해결: 중첩 프레임으로 전환 실패[Pri-]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 101.0.4951.15
Chrome 버전 101 지원
- 문제 4046 해결: 빈 분리 프레임을 추가할 때 DCHECK 발생 [Pri-]
- 문제 4080 해결: 중첩 프레임으로 전환 실패[Pri-]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 100.0.4896.60
Chrome 버전 100 지원
- 문제 4002 해결: 펜스 처리된 프레임 지원[Pri-]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 100.0.4896.20
Chrome 버전 100 지원
- 문제 4002 해결: 펜스 처리된 프레임 지원[Pri-]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 99.0.4844.51
Chrome 버전 99 지원
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 99.0.4844.35
Chrome 버전 99 지원
- 되돌림 문제 2269 해결: BMP가 아닌 문자 (U+FFFF 이상의 코드 포인트)를 사용할 수 없음[Pri-3]
- chromium:1295243 문제 해결: ChromeDriver sendKeys 회귀 [Pri-1]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 99.0.4844.17
Chrome 버전 99 지원
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 98.0.4758.102
Chrome 버전 98 지원
- 문제 3933 해결: 뷰포트 가장자리를 클릭하면 오류 없이 비효율적임 [Pri-]
- 되돌림 문제 2269 해결: BMP가 아닌 문자 (U+FFFF 이상의 코드 포인트)를 사용할 수 없음[Pri-3]
- chromium:1295243 문제 해결: ChromeDriver sendKeys 회귀 [Pri-1]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 98.0.4758.80
Chrome 버전 98 지원
- 문제 3933 해결: 뷰포트 가장자리를 클릭하면 오류 없이 비효율적임 [Pri-]
- 문제 2269 해결: BMP가 아닌 문자 (U+FFFF 이상의 코드 포인트)를 사용할 수 없음[Pri-3]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 98.0.4758.48
Chrome 버전 98 지원
- 문제 3933 해결: 뷰포트 가장자리를 클릭하면 오류 없이 비효율적임 [Pri-]
- 문제 2269 해결: BMP가 아닌 문자 (U+FFFF 이상의 코드 포인트)를 사용할 수 없음[Pri-3]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 97.0.4692.71
Chrome 버전 97 지원
- 문제 3878 해결: 요소 클릭 시 소수점 이하 요소 좌표 처리 개선[Pri-]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 97.0.4692.36
Chrome 버전 97 지원
- 문제 3878 해결: 요소 클릭 시 소수점 이하 요소 좌표 처리 개선[Pri-]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 97.0.4692.20
Chrome 버전 97 지원
- 문제 3878 해결: 요소 클릭 시 소수점 이하 요소 좌표 처리 개선[Pri-]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 96.0.4664.45
Chrome 버전 96 지원
- 문제 3445 해결: 섀도우 루트 내 iframe의 요소에 액세스할 수 없음[Pri-3]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 96.0.4664.35
Chrome 버전 96 지원
- 문제 3445 해결: 섀도우 루트 내 iframe의 요소에 액세스할 수 없음[Pri-3]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 96.0.4664.18
Chrome 버전 96 지원
- 문제 3445 해결: 섀도우 루트 내 iframe의 요소에 액세스할 수 없음[Pri-3]
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 95.0.4638.69
Chrome 버전 95 지원
- 문제 3857 해결: 호스트 헤더 또는 출처 헤더가 지정되었으며 허용 목록 또는 localhost에 없음[Pri-1]
--allowed-origins인수 추가
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 95.0.4638.54
Chrome 버전 95 지원
- 문제 3857 해결: 호스트 헤더 또는 출처 헤더가 지정되었으며 허용 목록 또는 localhost에 없음[Pri-1]
--allowed-origins인수 추가
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 95.0.4638.17
Chrome 버전 95 지원
- 문제 3857 해결: 호스트 헤더 또는 출처 헤더가 지정되었으며 허용 목록 또는 localhost에 없음[Pri-1]
--allowed-origins인수 추가
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 95.0.4638.10
Chrome 버전 95 지원
- 문제 3857 해결: 호스트 헤더 또는 출처 헤더가 지정되었으며 허용 목록 또는 localhost에 없음[Pri-1]
--allowed-origins인수 추가
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 94.0.4606.113
Chrome 버전 94 지원
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 94.0.4606.61
Chrome 버전 94 지원
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 94.0.4606.41
Chrome 버전 94 지원
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 93.0.4577.63
Chrome 버전 93 지원
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 93.0.4577.15
Chrome 버전 93 지원
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 92.0.4515.107
Chrome 버전 92 지원
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 92.0.4515.43
Chrome 버전 92 지원
- 문제 3389 해결: ChromeDriver 요청의 호스트 유효성 검사
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 91.0.4472.101
Chrome 버전 91 지원
- 문제 1205107 해결: 웹 애플리케이션의 필드에 대한 속성 값을 가져올 수 없음
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 91.0.4472.19
Chrome 버전 91 지원
- 문제 3744 해결: 링크 탐색 후 SendKeys() 및 Click()이 자동으로 실패함
- 문제 3746 해결: 속성 엔드포인트가 값을 잘못 업데이트함
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 90.0.4430.24
Chrome 버전 90 지원
- 문제 3708 해결: Shadow DOM의 요소에 대해 GetElementLocation의 inView가 실패함
- 문제 3721 해결: 사용 설정된 경우 서비스 워커의 성능 로그 수집
- 문제 3731 해결: OnePlus와 같은 비표준 Android OS에서 AdbImpl::GetPidByName이 올바르게 작동하지 않음
- 문제 3733 해결: localhost의 도메인에서 심각한 오류 발생
- 문제 3734 해결: 잘못된 도메인에 쿠키를 설정하려고 하면 드라이버에서 오류가 발생해야 함
- 문제 3743 해결: 호출 함수 리팩터링 및 요소 삭제 문제 수정
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 89.0.4389.23
Chrome 버전 89 지원
- 문제 3667 해결: 렌더러로부터 메시지 수신 시간 초과
- 문제 3675 해결: GetElementLocation에서 불리언을 배열로 잘못 처리하는 inView 메서드 사용
- 문제 3682 해결: GetElementRegion이 표시 영역에서 부분적으로 벗어난 요소에 대해 잘못된 크기를 반환함
- 문제 3690 해결: 확장 프로그램이 chrome.windows API를 사용하는 경우 ChromeDriver가 실패함
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 88.0.4324.96
Chrome 버전 88 지원
- 문제 3641 해결: Chrome 베타 v87 및 chromedriver v(87/86)에서 브라우저 창이 포커스되지 않으면 페이지가 로드/렌더링되지 않음
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 88.0.4324.27
Chrome 버전 88 지원
- 문제 3611 해결: 프로트랙터의
getText()출력이<element>.innerText과 다름 - 문제 3625 해결: 요소 스크린샷 호환성 개선
- 문제 3628 해결: 경로에 다른 URL이 포함된 URL과 함께 오래된 요소 참조 및 잘못된 URL이 다시 보고됨
- 문제 3631 해결:
webauthn:extension:largeBlob기능 지원 추가 - 문제 3635 해결: Chromedriver 86 -
chromedriver.quit()이 언로드 이벤트를 제대로 전달하지 않는 것으로 보임 - 문제 3649 해결: 헤드리스 모드를 사용하는 경우 Windows 10에서 선택한 텍스트를 클립보드에 복사할 수 없음
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 87.0.4280.88
Chrome 버전 87 지원
- 문제 3641 해결: Chrome 베타 v87 및 chromedriver v(87/86)에서 브라우저 창이 포커스되지 않으면 페이지가 로드/렌더링되지 않음
- 문제 3657 해결: 스크린샷 백그라운드 브라우저가 시간 초과됨
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 87.0.4280.20
Chrome 버전 87 지원
- 문제 2421 해결: Android adb-server에서 이전 포트 포워딩 채널 삭제
- 문제 3474 해결: 에뮬레이트된 모바일 기기 목록을 업데이트해야 함
- 문제 3507 해결: '계산된 역할 가져오기' 구현
- 문제 3508: '계산된 라벨 가져오기' 구현
- 문제 3584 해결: ChromeDriver 명령줄 옵션 --whitelisted-ips 이름 변경
- 문제 3588: 양방향 WebSocket 연결 해결
- 문제 3594 해결: OOPIF가 기본 페이지보다 먼저 로드되면 탐색이 조기에 완료됨
- 문제 3598 해결: webview_devtools_remote 소켓으로 전달되는 devtools 포트의 명령줄 옵션
- 문제 3608 해결: Chromedriver debuggerAddress가 ipv6를 지원하지 않음
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 86.0.4240.22
Chrome 버전 86 지원
- 문제 3370 해결: Chrome을 정상적으로 종료하지 않으면 쿠키가 SQLite 지속성 파일에 올바르게 저장되지 않음
- 문제 3401 해결: Get Element Location JS가 요소의 표시된 중심을 찾지 못함
- 문제 3462 해결: sendKeys의 경우 MAC에서 CMD 키가 작동하지 않음
- 문제 3541 해결: 클라이언트와 ChromeDriver 간 로그 개선
- 문제 3559 해결: ChromeDriver가 호환되지 않는다고 보고할 때 Chrome 버전 출력
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 85.0.4183.87
Chrome 버전 85 지원
- 문제 3578 해결: Chrome 85에서는 알림 대화상자가 열려 있을 때 더 이상 창과의 원활한 상호작용을 허용하지 않음
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 85.0.4183.83
Chrome 버전 85 지원
- 문제 3577 해결: ChromeDriver 85에서 변경된 Chrome 디렉터리 (C:\Program Files)를 감지하지 못함
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 85.0.4183.38
Chrome 버전 85 지원
- 문제 3214 해결: ChromeDriver78: sendkeys가 contenteditable로 텍스트 선택을 재설정함
- 문제 3376 해결: ChromeDriver에서 LaunchApp 명령어 삭제
- 문제 3432 해결: 페이지 로드가 완료된 시점을
NavigationTracker가 감지하지 못하는 경우가 있음 - 문제 3481 해결: w3c 사양에 따른 새 인쇄 엔드포인트
- 문제 3488 해결: 프록시가 잘못 구성된 경우 driver.get에서 오류가 발생하지 않음
- 문제 3502 해결:
document.hasFocus()를 사용하여 요소에 포커스가 있는지 확인 - 문제 3515 해결: selenium.common.exceptions.WebDriverException: Message: unknown error: bad inspector message
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 84.0.4147.30
Chrome 버전 84 지원
- 문제 3420 해결: 인쇄 창으로 전환한 후 chromedriver가 응답하지 않음
- 문제 3421 해결: 드라이버가 스타일 없이 키릴 문자를 반환함
- 문제 3422 해결: GetElementText가 프로토타입 1.6.0.3에서 중단됨
- 문제 3434 해결: '브라우저' 로그에서 'assert' 메시지를 가져올 수 없음
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 83.0.4103.39
Chrome 버전 83 지원
- prototype.js와 올바르게 작동하도록 Chromedriver가 업데이트되었습니다.
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 83.0.4103.14
Chrome 버전 83 지원
- 문제 1778 해결: ChromeDriver에서 launchApp 지원 중단
- 문제 2520 해결: Chrome이 응답하지 않을 때 InitSession이 무한정 대기할 수 있음
- 문제 3120 해결: 새 탭에서 헤드리스 모드 다운로드
- 문제 3234 해결: 하위 문자열 앞에 세미콜론이 있는지 확인
- 문제 3240 해결: ExecuteGetElementRect가 GET_SIZE에서 반환된 상태를 확인하지 않음
- 문제 3331 해결:
get_cookies()메서드가 double 유형의 'expiry' 키를 반환하지만 w3c 모드에서는 int64여야 함 - 해결된 문제 3332: 다시 시도 시간 초과가 심각한 것으로 로깅됨
- 문제 3339 해결: Chromedriver가 코드 null, 신호 SIGTRAP으로 예기치 않게 종료됨
- 문제 3351 해결: 보안 고려사항 메시지 개선
- 문제 3352 해결: 색상 요소의 SendKeys 지원
- 문제 3353 해결: 프레임 컨텍스트가 삭제된 후에도 대기 중인 탐색이 계속됨
- 문제 3375 해결: 일부 사이트에서 getPageSource 시 Chromedriver v80이 멈춤
- 문제 3383 해결: Windows의 ChromeDriver 80 이상이 특정 요소 또는 클릭 명령어에서 종료되거나 멈추는 것으로 보임
- 해결된 문제 3399: wasThrown 검사 삭제
ChromeDriver 81.0.4044.138
Chrome 버전 81 지원
- prototype.js와 올바르게 작동하도록 Chromedriver가 업데이트되었습니다.
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 81.0.4044.69
Chrome 버전 81 지원
- 수정됨: 일부 사이트에서 getPageSource를 실행할 때 Chromedriver가 비정상 종료됨
- 해결됨: 특정 요소 또는 클릭 명령어에서 ChromeDriver가 비정상 종료됩니다.
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 81.0.4044.20
Chrome 버전 81 지원
- HTML 요소의 위치를 가져오려고 할 때 발생하는 오류가 수정되었습니다.
- Get Cookie 및 Add Cookie 명령어가 이제 프레임에 따라 달라집니다.
- 표준 JavaScript 객체를 재정의하는 사이트에서 발생하는 일부 문제가 해결되었습니다.
- ChromeDriver는 타겟 닫힘 메시지를 수신한 후 로드가 완료될 때까지 계속 기다립니다.
- 이제 Chromedriver가 시간 제한에 대해 사양을 준수하는 오류 코드를 반환합니다.
- 해결됨: NewSession 명령어에서 ChromeDriver의 응답 시간이 예기치 않게 느림
- 이제 10분을 초과하는 사용자 정의 제한 시간이 지원됩니다.
- 해결됨: IPv4와 IPv6 불일치로 인해 ChromeDriver가 DevTools에 연결할 수 없음
- Linux에서 Chrome 바이너리의 검색 순서가 복원되었습니다.
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 80.0.3987.106
Chrome 버전 80 지원
- Linux에서 Chrome 바이너리의 검색 순서 복원
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 80.0.3987.16
Chrome 버전 80 지원
- 프록시를 사용할 때 고정 로드 페이지가 중단되는 문제를 수정했습니다.
- 이제 Chromedriver가 현재 프레임이 로드될 때까지 기다립니다.
- ChromeDriver 로그에는 드라이버에서 사용한 포트가 포함됩니다.
- w3c 모드에 SetGeoLocation을 사용 설정했습니다.
- UnexpectedAlertOpen 상태의 누락된 알림 텍스트가 추가되었습니다.
- CRX2 확장 프로그램이 로드될 때 메시지가 개선되었습니다.
- ExecuteGetPageSource의 잠재적 경합 상태가 수정되었습니다.
- acceptInsecureCerts 기능이 true인 경우 ChromeDriver는 --ignore-certificate-errors 플래그를 추가합니다.
- 해당 실행 컨텍스트가 없는 경우의 오류 메시지 및 반환 상태 업데이트
- 해결됨: 대기 중인 탐색을 기다리는 동안 ChromeDriver가 무기한 차단될 수 있음
- AddCookie 및 GetCookie에 SameSite 속성이 추가되었습니다.
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 79.0.3945.36
Chrome 버전 79 지원
버전 79.0.3945.16에 비해 다음과 같은 변경사항이 포함되어 있습니다.
- 요소 좌표가 잘못 계산되는 문제 수정
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 79.0.3945.16
Chrome 버전 79 지원
- 명령어 실행 중에 트리거된 JavaScript 알림으로 인해 ChromeDriver가 비정상 종료되는 문제 수정
- 스크린샷을 찍는 동안 알림이 발생하면 Chromedriver가 잠기는 버그가 수정되었습니다.
- Chrome 실행 명령에서 --ignore-certificate-errors 삭제
- Win10에서 플랫폼 및 platformName을 Windows로 변경
- 'enable-automation'이 제외된 경우 정의되지 않은 window.navigator.webdriver 수정
- WPT 테스트 'test_not_editable_inputs[hidden]' 수정
- 헤드리스 모드 사용 시 '요소를 클릭할 수 없음' 문제 수정
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 78.0.3904.105
Chrome 버전 78 지원
버전 78.0.3904.70에 비해 다음과 같은 변경사항이 포함되어 있습니다. * 요소 좌표의 잘못된 계산 수정
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 78.0.3904.70
Chrome 버전 78 지원
버전 78.0.3904.11에 비해 다음 변경사항이 포함되어 있습니다.
- 여러 문제가 신고되어 Retina 디스플레이의 스크린샷 크기를 조정하는 변경사항을 되돌림
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 78.0.3904.11
Chrome 버전 78 지원
- JavaScript 객체 직렬화의 여러 문제가 해결되었습니다.
- Android용 Chrome의 기능 일치 버그 수정
- 권한 자동화 구현
- Retina 디스플레이에서 스크린샷 크기가 수정됨
- 일부 시나리오에서 페이지 로드 시간 제한이 수정되었습니다.
- platformName 기능 매칭 개선
- 포인터를 드롭다운 목록 옵션으로 이동하는 중에 반환되는 오류 코드가 수정됨
- 헤드리스 모드에서 다운로드에 영향을 미치는 문제 수정
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 77.0.3865.40
Chrome 버전 77 지원
버전 77.0.3865.10에 비해 다음과 같은 변경사항이 포함되어 있습니다.
- JavaScript 객체 직렬화 및 역직렬화의 두 가지 버그 수정
- 기능 일치 시 platformName: android 처리 수정
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 77.0.3865.10
Chrome 버전 77 지원
- Actions API 구현의 여러 문제가 수정되었습니다.
- JavaScript 코드 실행 및 결과 처리 개선
- OSS 모드에서 본문이 비어 있는 POST 요청을 잘못 거부하는 버그가 수정됨
- 더 강력한 탐색 추적기
- 적극적인 페이지 로드 전략 지원
- W3C WebDriver 사양에서 새 창 명령어 추가
- 헤드리스 모드에서 파일 다운로드 저장 지원
- CRX3 확장 프로그램 로드 지원 추가
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 76.0.3809.126
Chrome 버전 76 지원
버전 76.0.3809.68에 비해 다음과 같은 변경사항이 포함되어 있습니다.
- JavaScript 객체 직렬화 및 역직렬화의 두 가지 버그 수정
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 76.0.3809.68
Chrome 버전 76 지원
버전 76.0.3809.25에 비해 다음과 같은 변경사항이 포함되어 있습니다.
- JavaScript 객체에서 순환 참조를 감지하는 버그 수정
- 특정 유형의 JavaScript 오류가 발생할 때 ChromeDriver가 비정상 종료되는 버그가 수정되었습니다.
- 작업 API가 Shadow DOM 내부의 요소와 상호작용하지 못하는 버그를 수정했습니다.
- 작업 API 명령어 간에 특수키 상태를 추적하는 버그 수정
- 작업 API 명령어 간 포인터 위치 추적의 버그 수정
- 'W3C 모드에서 W3C 표준이 아닌 명령어를 호출할 수 없음' 오류가 발생하면 로그 파일에 저장
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 76.0.3809.25
Chrome 버전 76 지원
버전 76.0.3809.12에 비해 다음과 같은 변경사항이 포함되어 있습니다.
- OSS 모드에서 본문이 비어 있는 POST 요청을 잘못 거부하는 버그가 수정됨
- Chrome 로그를 가져오기 위한 새 엔드포인트 추가
- W3C 모드에서 표시 여부 명령의 엔드포인트 추가
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 76.0.3809.12
Chrome 버전 76 지원
- Actions API 구현 완료
- 스크립트 시간 제한 처리의 사양 준수 개선
- 실행 스크립트 명령의 결과 직렬화 개선
- 요소를 뷰로 스크롤할 때 발생하는 문제 수정
- WebDriver 사양에 정의된 취소 키 처리 추가
- 처리되지 않은 알림 오류 응답 처리 수정
<details>요소 처리 수정- 스위치 이름에 선택적 선행 대시를 허용하도록 excludeSwitches 옵션 업데이트
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 75.0.3770.140
Chrome 버전 75 지원
버전 75.0.3770.90에 비해 다음과 같은 변경사항이 포함되어 있습니다.
- 일부 유형의 JavaScript 오류가 발생할 때 ChromeDriver가 비정상 종료되는 버그가 수정되었습니다.
- 작업 간에 특수키 상태를 유지하는 버그 수정
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 75.0.3770.90
Chrome 버전 75 지원
버전 75.0.3770.8에 비해 다음과 같은 변경사항이 포함되어 있습니다.
- OSS 모드에서 본문이 비어 있는 POST 요청을 잘못 거부하는 버그가 수정됨
- Chrome 로그를 가져오는 새 엔드포인트 추가
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 75.0.3770.8
Chrome 버전 75 지원
가장 눈에 띄는 변경사항은 이제 ChromeDriver가 기본적으로 W3C 표준 호환 모드로 실행된다는 것입니다. 기타 변경사항은 다음과 같습니다.
- 요소 삭제 중에 blur 이벤트가 두 번 발생하던 버그가 수정되었습니다.
- W3C 표준에 따라 기능 loggingPrefs를 goog:loggingPrefs로 이름 변경
- W3C 모드에서 오류 처리 수정
- 도메인 이름에 선행 점이 없는 쿠키 생성 올바르게 처리
- 스크립트 시간 제한에 null 허용
- 'multiple' 속성이 있는 파일 입력에 대한 요소 Send Keys 명령어 수정
- 활성 요소가 없는 경우 '해당 요소 없음' 오류를 반환하도록 활성 요소 가져오기 명령어가 수정됨
- 잘못된 URL로 이동하여 '잘못된 인수' 오류를 반환하도록 수정
- 잘못된 세션 ID가 수신될 때 HTTP 상태 코드 수정
- 입력 매개변수가 누락되었거나 형식이 잘못된 경우 오류 응답 수정
- 줄 중심 JavaScript 주석을 처리하도록 스크립트 실행 명령어 수정
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 74.0.3729.6
Chrome 버전 74 지원
- Windows에서 예기치 않은 debug.log 파일을 생성하는 버그가 수정되었습니다.
- SVG 문서 내에서 마우스 클릭 및 드래그 앤 드롭 수정
- ChromeDriver의 응답에 cache-control 헤더 추가
- 클릭이 다른 요소에 의해 가로채질 때 오류 유형 수정
- /dev/shm이 없는 Linux 기기에서 ChromeDriver가 실패하는 버그가 수정되었습니다.
- 일부 유형의 더블클릭 이벤트 수정
- 세션 가져오기 명령어가 수정됨
- 프레임으로 전환 명령어의 오류 확인 수정
- 페이지 소스 가져오기 명령어 수정
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 73.0.3683.68
Chrome 버전 73 지원
- Windows에서 예기치 않은 debug.log 파일을 생성하는 버그가 수정되었습니다.
- 일부 시나리오에서 스크립트 실행 명령어에서 반환되는 오류 코드가 수정됨
- ChromeDriver의 응답에 cache-control 헤더 추가
- HTTP 서버가 기본적으로 연결을 유지하도록 설정
- 사용자 프롬프트를 올바르게 처리하도록 창 닫기 명령어가 수정됨
- 사용 중지된 요소에 키를 전송하는 중에 반환되는 오류 코드 수정
- 제한 시간 값 처리의 사양 준수 개선
- 쿠키 추가 명령어의 사양 준수 개선
- HTTP 서버 수신 대기열 길이 증가
- v0 섀도우 DOM에서 요소 표시 여부 명령어가 수정되었습니다.
- 로그 파일에 요소 지우기 명령어 동작 변경에 관한 경고 추가
- document.all을 JSON 형식으로 올바르게 변환하도록 스크립트 실행 명령어 수정
- 잘못된 요소 참조 처리 개선
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 2.46
Chrome v71~73 지원
- 일부 시나리오에서 스크립트 실행 명령어에서 반환되는 오류 코드가 수정됨
- HTTP 서버가 기본적으로 연결을 유지하도록 설정
- 사용자 프롬프트를 올바르게 처리하도록 창 닫기 명령어가 수정됨
- 사용 중지된 요소에 키를 전송하는 중에 반환되는 오류 코드 수정
- 제한 시간 값 처리의 사양 준수 개선
- 쿠키 추가 명령어의 사양 준수 개선
- 프레임으로 전환 명령어의 사양 준수 개선
- HTTP 서버 수신 대기열 길이 증가
- v0 섀도우 DOM에서 요소 표시 여부 명령어 수정
- 고정 요소 더블클릭 명령
- 로그 파일에 요소 지우기 명령어 동작 변경에 관한 경고 추가
- document.all을 JSON 형식으로 올바르게 변환하도록 스크립트 실행 명령어 수정
- 잘못된 요소 참조 처리 개선
자세한 내용은 출시 노트를 참고하세요.
ChromeDriver 2.45
Chrome v70~72 지원
- 새 세션이 사양을 준수하지 않는 문제 수정
- Chrome과 ChromeDriver 버전이 호환되지 않는 경우 ChromeDriver가 Chrome을 실행하지 않아야 함
- 잘못된 로케이터가 사용될 때 요소 찾기 명령어가 잘못된 오류 코드를 반환하는 문제 수정
- 일부 ChromeDriver 상태 코드가 잘못된 문제 수정
- WebViewImpl::DispatchTouchEventsForMouseEvents 내 JS의 컴파일 오류 수정
- 고정 창 크기 명령어는 사용자 프롬프트를 처리해야 함
- ChromeDriver가 Chrome 옵션 'user-data-dir='을 사용하여 Chrome을 올바르게 시작하지 않는 문제 수정
- 고정 상태 명령어가 사양을 준수하지 않음
- strictFileInteractability 지원 추가 수정
ChromeDriver 2.44
Chrome v69~71 지원
- Mac에서 WindowMaximize 수정
- 창 핸들 호출의 잘못된 '알림 열기 오류' 수정
- 고정 요소 보내기 키가 W3C 모드에서 'text' 속성을 가져와야 함
- 요소 사용 설정 여부가 사양에 따라 처리되지 않는 XML 특수 사례 수정
- Get Element CSS Value의 XML 특수 사례가 사양에 따라 처리되지 않는 문제 수정
- 잘못된 입력을 확인해야 하는 창 사각형 설정 수정
- 처리되지 않은 새로운 프롬프트 동작 모드 지원 수정
ChromeDriver 2.43
Chrome v69~71 지원
변경사항은 다음과 같습니다.
- 프록시 구성 파싱이 표준을 준수하지 않는 문제 수정
- 앱 실행 명령어가 불안정함이 수정됨
- iframe 내부 요소의 스크린샷이 잘못 촬영되는 문제 수정
- ChromeDriver가 원격 연결을 통한 창 크기 조절을 지원하도록 추가됨
- Clear 요소에서 오류 코드가 처리되지 않는 문제 수정
- 요소가 표시될 때까지 기다리지 않는 문제 수정
- 요소 속성 가져오기가 구현되지 않음 수정
- 고정된 프레임 전환이 사양을 준수하지 않음
- 실행 비동기 스크립트가 사양 준수 오류 코드를 반환하지 않는 문제 수정
- 실행 스크립트가 사양 준수 오류 코드를 반환하지 않는 문제 수정
- ExecuteGet의 오류 코드가 사양을 준수하지 않는 문제 수정
- '알림 텍스트 보내기'가 사양을 준수하는 오류 코드를 반환하지 않는 문제 수정
- input type="date"의 clear()가 요소가 사용자 수정 가능하지 않은 것처럼 작동하는 문제 수정
- 수동으로 열린 탭의 창 핸들을 가져오는 Chromedriver 수정
- chromedriver의 새 로그 파일 추가 또는 시작 허용 수정
- 플래그가 firstMatch에 있는 경우 새 세션에서 w3c 모드가 호출되지 않는 문제 수정
ChromeDriver 2.42
Chrome v68~70 지원
변경사항은 다음과 같습니다.
- 모바일 에뮬레이션에서 ClickElement 수정
- IPv4로 허용된 IP 수정
- Mac OS에서 허용 목록에 추가된 IP 플래그로 ChromeDriver 시작 문제 수정
- W3C 이전 형식과 W3C 형식을 모두 허용하도록 SetTimeout 수정
- 요소 스크린샷 가져오기 수정
- ChromeDriver가 시스템 경로에서도 Chrome 바이너리를 찾는 문제 수정
- 창 최대화 및 전체 화면 수정
- 로그 재생 기능을 구현했습니다. ( Android 및 원격 브라우저에서는 아직 작동하지 않음)
- 일부 오류 코드가 W3C 표준을 준수하지 않는 문제 수정
- 여러 인수가 제대로 처리되지 않는 console.log 수정
- GetElementRect에서 double을 허용해야 하는 문제 수정
- 터치 에뮬레이션 수정
ChromeDriver 2.41
Chrome v67~69 지원
변경사항은 다음과 같습니다.
- ChromeDriver가 'whitelisted-ips' 옵션으로 실행될 때 발생하는 문제 수정
- 원격 디버깅 포트가 기능에 반환됨
- Android에서 창 크기 가져오기 구현
- 데스크톱 Chrome 실행 오류 메시지가 개선됨
- Chrome 바이너리를 시작할 수 없는 경우 ChromeDriver가 빠르게 실패함
- 창 닫기 반환 값이 사양을 준수함