다운로드

이전 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_unittestFindElement(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::LoggingSettingsbase/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를 삽입하고 스레드를 다시 시작해야 하는 경우를 수용하기 위해 ThreadRestartable 옵션을 추가했습니다 (crrev.com/c/7696887, 버그: 40881604).
  • 메모리 안전: 파일 전체 #pragma allow_unsafe_bufferschrome/ 전반의 세부 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 디코딩 모드와 함수 이름을 변경하여 DecodeURLModeDecodeUrlMode로, 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).

내부 변경사항 및 리팩터링

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, 모델, 모바일 필드)과 일치하도록 업데이트하여 testClientHintsDeviceNameIPhoneXtestClientHintsDeviceNameIPad의 실패를 수정했습니다.

내부 변경사항 및 리팩터링

  • 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를 사용하는 BodyAsStringCallbackSimpleURLLoader 사용의 기존 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::LoggingSettingsbase/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): PipeBuilderPipeConnection 단위 테스트에서 WriteToPipeWriteToPipeNoBestEffortbase::span를 허용하도록 이전하여 안전하지 않은 버퍼 사용을 수정했습니다 (crrev.com/c/7090293, 버그: 455758227). 파일 전체 #pragma allow_unsafe_bufferschrome/ 전반의 상세 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).
  • 테스트: 더 안정적인 동기화를 위해 WaitForCondition API를 활용하여 불안정한 Android ChromeDriver 터치 테스트를 수정했습니다 (crrev.com/c/6978928, 버그: 42321861).
  • DSE 사전 로드: --disable-features=Prewarm 스위치를 통해 ChromeDriver에서 Prewarm 기능을 기본적으로 사용 중지하여 사전 로드된 페이지가 테스트 실행 및 타겟 검색을 방해하지 않도록 했습니다 (crrev.com/c/7007072, 버그: 431928370).

내부 변경사항 및 리팩터링

  • C++ 표준: 스마트 포인터만 사용되는 //chrome 헤더에서 ref_counted.hscoped_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::Readbase::JSONReader::ReadAndReturnValueWithError에서 규정을 준수하지 않는 JSON 파싱 옵션 (예: 주석 허용)을 명시적으로 선택해야 합니다 (crrev.com/c/6990988, crrev.com/c/6980533, 버그: 446188265). 수동 범위 지정 노력에 따라 파일 전체 #pragma allow_unsafe_buffers pragma가 삭제되었습니다 (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/test GN 파일 자동 형식 지정 (crrev.com/c/6789277, 버그: 40760278)
  • FedCM: 계정 대화상자를 표시해야 하는지 동기식으로 확인하기 위해 IdentityDialogControllerShouldShowAccountsPassiveDialog 함수를 도입하여 비동기 검사 및 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/6808537crrev.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).

내부 변경사항 및 리팩터링

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를 실행할 때 localStateprefs 기능 지원이 추가되었습니다. 이는 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::OnReadDuringHandshakeWebSocket::OnReadDuringOpen의 확인되지 않은 포인터를 base::span로 대체하여 unsafe-buffer-usage 경고를 해결했습니다 (crrev.com/c/6557346, 버그: 354307328). 다른 이전 후 더 이상 필요하지 않은 chrome/test/chromedriver 전반의 불필요한 #pragma allow_unsafe_buffers pragma가 삭제되었습니다 (crrev.com/c/6503154, Bug: 414858406).
  • C++ 표준: chrome/ 헤더에서 불필요한 #include "url/gurl.h"#include <queue> 지시문을 삭제하고 컴파일 시간을 개선하기 위해 적절한 위치에 사전 선언을 추가했습니다 (crrev.com/c/6578272, crrev.com/c/6570349, 버그: 40318405).
  • API 이전: RSAPrivateKeycrypto::PrivateKey로, SHA256HashStringcrypto::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.getWindowForTarget API를 구현했습니다 (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).

내부 변경사항 및 리팩터링

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++ 표준: ResultCodeIsNormalResultCode()에서 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로 이전했습니다.

내부 변경사항 및 리팩터링

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:blankdocumentURL!=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 통합 테스트에 repeatretry-limit 명령줄 매개변수 지원을 추가하여 표준 isolated-script-test-repeatisolated-script-test-launcher-retry-limit 인수 (crrev.com/c/5938195, 버그: 374681919)에 매핑했습니다. 로컬에서 실행되는 테스트 (비 CI)의 기본 retry-limit가 0으로 변경되었습니다 (crrev.com/c/5953326, 버그: 374681919).
  • WebSockets: EmbeddedTestServerWebSocketConnection 및 관련 클래스를 구현하여 WebSocket 관련 테스트가 SpawnedTestServer에서 이전할 수 있도록 했습니다. 여기에는 프로토콜에 따른 프레이밍과 간소화된 핸들러 등록이 포함됩니다 (crrev.com/c/5849732, 버그: 40812029).

버그 수정

  • 안정성: 클릭 명령으로 인해 브라우저가 닫힐 수 있는 ChromeDriver 비정상 종료 문제를 이전 리팩터링에서 도입된 kTargetDetached 오류 상태를 적절하게 처리하여 수정했습니다 (crrev.com/c/5934524, 버그: 42323264).
  • 안정성: 경합 상태를 해결하여 Mac ARM64에서 testClickNavigateRemoteToLocal 통합 테스트 중 간헐적으로 발생하는 비정상 종료 문제를 수정했습니다 (crrev.com/c/5975526, 버그: 375971185).
  • 탐색: 문서가 활성 상태에서 전환되는 동안 (진행 중인 탐색을 나타냄) Page.getNavigationHistory가 호출되면 이전에 실패했던 GoBackGoForward 명령어를 수정했습니다. 이제 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 Atoms CLEAR 함수의 '잘못된 요소 상태'와 같은 표준 오류가 사용자에게 정확하게 전파됩니다(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

새로운 기능

버그 수정

내부 변경사항 및 리팩터링

  • 메모리 안전성 (스팬화): 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

새로운 기능

내부 변경사항 및 리팩터링

  • 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에서 되돌려졌습니다.)

내부 변경사항 및 리팩터링

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).

버그 수정

  • 센서: setSensorOverrideReadings CDP 명령어가 값을 반환하지 않으므로 (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).

내부 변경사항 및 리팩터링

ChromeDriver 127

버그 수정

  • 안정성: DevTools 클라이언트가 다른 명령어를 적극적으로 처리하는 동안 target.detachFromTarget 명령어 (또는 target.detachedFromTarget 이벤트)가 수신될 때 발생하는 ChromeDriver 비정상 종료를 수정하여 WebViewDevToolsClient 객체의 조기 해제를 방지했습니다 (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.html WPT 테스트 실패를 수정했습니다. 이제 selectAccount 작업이 실제로 성공한 경우에만 상태가 업데이트됩니다 (crrev.com/c/5398379, 버그: 331237776).
  • 테스트: 문자가 kExtendedASCIIStart 경계에 정확히 도달할 때 JSON 파싱 중 DCHECK 실패가 수정되었습니다 (crrev.com/c/5565276, 버그: 40284755).
  • 테스트: iframe 요소를 스크롤 원점으로 사용하고 포인터 이동 입력을 정수로 반올림하여 scrollend-event-fires-to-iframe-window.html WPT 테스트를 수정했습니다. 이렇게 하면 소수점 터치 위치로 인해 ChromeDriver 오류가 발생하는 것을 방지할 수 있습니다 (crrev.com/c/5570150, 버그: 340956654).
  • 테스트: run_py_tests.py가 브라우저 바이너리를 찾지 못할 때 시도된 경로를 인쇄하여 ChromeDriver 통합 테스트의 진단 개선 (crrev.com/c/5604204, 버그: 4781)

내부 변경사항 및 리팩터링

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)과 일치시켰습니다.

내부 변경사항 및 리팩터링

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.html WPT 테스트의 실패를 수정했습니다. 이렇게 하면 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/5374366crrev.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: '가상 인증자 추가' 명령어에 defaultBackupEligibilitydefaultBackupState를 추가하고 '사용자 인증 정보 추가' 명령어에 backupEligibilitybackupState를 추가하여 WebDriver를 통해 WebAuthn 백업 플래그를 노출했습니다 (crrev.com/c/5297117, 버그: 40945430).
  • 테스트: ChromeDriver Python 통합 테스트에 --failfast 명령줄 인수를 지원하여 디버깅을 지원하기 위해 첫 번째 오류에서 테스트 실행을 중지했습니다 (crrev.com/c/5374546).
  • 테스트: testdriver-vendor.js API를 통해 SetRPHRegistrationMode WebDriver 명령에 콘텐츠 셸 지원이 추가되었습니다 (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).

내부 변경사항 및 리팩터링

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.html MIDI 테스트를 수정하여 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)).
  • ChromeImplDevToolsClientImpl에서 기본 클래스에서 파생 클래스로의 안전하지 않은 정적 캐스팅을 제거하여 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_shellwindow.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가 비정상 종료되는 것을 방지하기 위해 기본 KeyboardLayoutEngineStubKeyboardLayoutEngine로 초기화했습니다 (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).

내부 변경사항 및 리팩터링

ChromeDriver 120

새로운 기능

  • BiDi: session.newsession.end 명령어 지원이 추가되어 사용자가 BiDi 명령어를 통해 직접 세션을 만들고 종료할 수 있습니다 (crrev.com/c/4941941, 버그: 4496).
  • BiDi: session.status PureBiDi 명령 지원이 추가되어 사용자가 세션에 바인딩되지 않은 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).
  • 클래식: MapSet 객체의 직렬화를 수정했습니다. 이제 length 속성이 없으므로 Collection이 아닌 Object로 올바르게 직렬화됩니다 (crrev.com/c/4881378, 버그: 4031).
  • 클래식: 테스트 중에 항상 호환되는 최신 버전의 ChromeDriver를 다운로드하고 사용하는 로직을 복원하여 호환성 문제가 발생하는 경우에만 특정 버전으로 대체합니다 (crrev.com/c/4779613, crrev.com/c/4778973 되돌림).
  • FedCM: 최신 FedCM 사양 논의 (crrev.com/c/4901302, 버그: 1451884)에 맞게 SigninLogin (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_wptchrome_wpt_tests로 이름을 변경하고 중복된 webdriver_wpt_tests 타겟을 삭제했습니다 (crrev.com/c/4847474, 버그: 1474702).
  • 지원 중단된 optparse 라이브러리에서 argparserun_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_ptrbase::raw_ref의 지원 중단된 사용이 비정규화된 형식 raw_ptrraw_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

새로운 기능

버그 수정

  • 안정성: ChromeDriver가 비정상 종료되어 테스트 실행 중에 ConnectionRefused 오류가 발생하는 null 포인터 액세스를 수정했습니다 (crrev.com/c/4675633, 버그: 1457101).
  • 탐색: 탐색 중에 Chrome의 NoSuchExecutionContextNoSuchWindow 오류가 균일하게 처리되지 않는 문제를 수정했습니다. 이제 두 오류 모두 작업을 다시 시도하도록 올바르게 매핑됩니다 (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_titleselect_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 대신 파이프를 통해 통신하기 위해 SyncWebSocketFactoryBrowserInfo 사용을 줄였습니다 (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.setDeviceMetricsOverride CDP 명령어를 사용하도록 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::Value v2 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.ccstd::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가 빠르게 실패함
  • 창 닫기 반환 값이 사양을 준수함