Chrome 139 베타

게시일: 2025년 6월 25일

별도로 명시되지 않는 한 다음 변경사항은 Android, ChromeOS, Linux, macOS, Windows용 최신 Chrome 베타 채널 출시에 적용됩니다. 여기에 나열된 기능에 대해 자세히 알아보려면 제공된 링크 또는 ChromeStatus.com의 목록을 참고하세요. Chrome 139는 2025년 6월 25일 기준으로 베타 버전입니다. 데스크톱용 최신 버전은 Google.com에서 다운로드하고 Android용 최신 버전은 Google Play 스토어에서 다운로드할 수 있습니다.

CSS

이 출시 버전에는 6가지 새로운 CSS 및 UI 기능이 추가되었습니다.

var()attr() 단락 회로

대체 항목이 사용되지 않으면 var()attr() 함수는 대체 항목에서 주기를 찾지 않고 평가합니다. --green--blue가 있으므로 다음 CSS가 작동합니다.

--green: green;
--blue: blue;
--a: var(--green, var(--b));
--b: var(--blue, var(--a));

CSS caret-animation 속성

Chrome은 이미 caret-color 속성의 애니메이션을 지원했지만 애니메이션 처리 시 캐럿의 기본 깜박임 동작이 애니메이션을 방해했습니다. CSS caret-animation 속성에는 automanual이라는 두 가지 가능한 값이 있습니다. 여기서 auto는 브라우저 기본값 (깜박임)을 의미하고 manual은 웹 개발자가 캐럿 애니메이션을 제어함을 의미합니다. 또한 이 속성을 사용하면 사용자가 사용자 스타일시트를 사용하여 깜박임을 사용 중지할 수 있습니다.

모서리 모양

모서리의 모양 또는 곡률을 지정하여 기존 border-radius 위에 모서리 스타일을 지정할 수 있습니다. 이렇게 하면 스쿼클, 노치, 스쿱과 같은 모양을 만들고 모양 간에 애니메이션을 적용할 수 있습니다. Amit Sheen의 this post에서 자세히 알아보세요.

초기 전환 값으로 전환할 때 전환을 계속 실행합니다.

전환 관련 속성이 변경되면 새로 시작된 전환에만 영향을 미칩니다. 즉, 전환 속성을 변경하는 경우 활성 전환 애니메이션이 있는 속성도 변경하지 않으면 이러한 전환 애니메이션은 이전에 지정된 기간, 이징 등으로 계속됩니다. 전환 속성이 'none'으로 설정된 경우 전환 기간만 변경하더라도 Blink는 전환을 잘못 취소했습니다. 이 기능을 사용하면 Blink가 WebKit 및 Gecko와 일관되게 활성 전환을 계속 실행할 수 있습니다. 단, 속성 값이 변경되어 새 전환 업데이트가 트리거될 때까지는 계속 실행됩니다.

CSS 맞춤 함수

맞춤 함수는 맞춤 속성과 비슷하지만 단일 고정 값을 반환하는 대신 다른 맞춤 속성, 매개변수, 조건문을 기반으로 값을 반환합니다.

@function --negate(--value) {
result: calc(var(--value) * -1);
}

div {
--gap: 1em;
margin-top: --negate(var(--gap));
}

중첩된 <svg> 요소에서 widthheight를 프레젠테이션 속성으로 지원

SVG 마크업과 CSS를 모두 통해 중첩된 <svg> 요소에서 widthheight를 프레젠테이션 속성으로 적용하는 것을 지원합니다. 이중 접근 방식을 사용하면 복잡한 디자인 내에서 SVG 요소를 더 효율적으로 관리하고 스타일을 지정할 수 있어 유연성이 더욱 향상됩니다.

Web API

웹 앱 매니페스트: 업데이트 자격 요건 지정, 아이콘 URL은 Cache-Control: immutable

매니페스트 사양에서 업데이트 자격 요건 알고리즘을 지정합니다. 이렇게 하면 업데이트 프로세스가 더 결정론적이고 예측 가능해지므로 개발자가 기존 설치에 업데이트 적용 여부 및 시기를 더 세부적으로 제어할 수 있으며, 현재 사용자 에이전트가 네트워크 리소스 낭비를 방지하기 위해 구현해야 하는 '업데이트 확인 제한'을 삭제할 수 있습니다.

WebXR 깊이 감지 성능 개선

깊이 버퍼의 생성 또는 소비 성능을 개선하기 위해 WebXR 세션 내에서 깊이 감지 기능의 동작을 맞춤설정하는 여러 가지 새로운 메커니즘을 노출합니다. 노출되는 주요 메커니즘은 다음과 같습니다. 원시 또는 부드러운 깊이 버퍼를 요청하는 기능, 런타임이 깊이 버퍼 제공을 중지하거나 재개하도록 요청하는 기능, 사용자 에이전트가 매 프레임마다 불필요한 재투영을 실행하지 않도록 사용자의 뷰와 정확히 일치하지 않는 깊이 버퍼를 노출하는 기능.

JavaScript DOM API에서 더 많은 문자 허용

HTML 파서는 항상 (또는 오랫동안) 요소와 속성이 다양한 유효한 문자와 이름을 가질 수 있도록 허용했지만 동일한 요소와 속성을 만드는 JavaScript DOM API는 더 엄격하며 파서와 일치하지 않습니다. 이 변경사항은 HTML 파서와 일치하도록 JavaScript DOM API의 유효성 검사를 완화합니다.

request-close 호출자 명령어

대화상자 요소는 다양한 메커니즘을 통해 닫을 수 있지만 개발자는 때때로 닫기를 방지할 수 있는 기능을 원합니다. 이를 위해 대화상자는 취소 이벤트를 실행합니다. 원래는 닫기 요청 (예: Esc 키 누르기)을 통해서만 실행되었지만 최근에는 취소 이벤트도 실행하는 requestClose() JS 함수가 추가되었습니다. request-close 명령어는 선언적 호출자 명령어 API에 새로운 기능을 제공합니다.

WebGPU: BC 및 ASTC 압축 형식의 3D 텍스처 지원

texture-compression-bc-sliced-3dtexture-compression-astc-sliced-3d WebGPU 기능은 각각 BC 및 ASTC 압축 형식의 3D 텍스처 지원을 추가합니다.

보안 결제 확인: 브라우저 바인딩 키

보안 결제 확인 어설션 및 사용자 인증 정보 생성에 추가 암호화 서명을 추가합니다. 상응하는 비공개 키는 기기 간에 동기화되지 않습니다. 이를 통해 웹 개발자는 결제 거래의 기기 바인딩 요구사항을 충족할 수 있습니다.

보안 결제 확인: UX 새로고침

Android Chrome의 SPC 대화상자에 대한 UX 요소를 업데이트합니다. UX 프레젠테이션 외에도 다음이 추가됩니다.

  • 판매자가 표시될 결제와 관련된 결제 법인 로고의 선택적 목록을 제공할 수 있습니다.
  • 사용자가 SPC 없이 거래를 계속할지 또는 거래를 취소할지에 따라 판매자에게 다른 출력 상태를 반환합니다.
  • 텍스트가 두 줄에 표시되도록 결제 수단에 새 결제 세부정보 라벨 필드를 추가합니다.

WebGPU core-features-and-limits

core-features-and-limits 기능은 WebGPU 어댑터와 기기가 사양의 핵심 기능과 제한사항을 지원함을 나타냅니다.

스크롤 고정 우선순위 후보 수정

현재 스크롤 고정 알고리즘은 앵커 타겟으로 사용할 수 있는 경우 우선순위 후보를 선택합니다. 우선순위 후보는 현재 포커스가 맞춰진 수정 가능한 요소와 페이지 내 검색 강조표시입니다. 콘텐츠가 화면 밖에서 변경된 포커스가 맞춰진 큰 contenteditable 요소가 있는 경우 (결과적으로 커서가 이동됨) 최적의 사용자 환경이 발생할 수 있습니다. 이 수정사항은 알고리즘을 변경합니다. 우선순위 후보를 앵커로 선택하는 대신 후보를 앵커로 가장 깊은 화면 요소가 선택되는 일반 앵커 선택 알고리즘의 범위 또는 루트로 사용합니다.

SVG <script> 요소의 async 속성 지원

SVG 2.0의 SVGScriptElement 인터페이스는 HTMLScriptElement와 유사한 async 속성을 도입합니다. 이 속성을 사용하면 스크립트를 비동기식으로 실행하여 SVG를 사용하는 웹 애플리케이션의 성능과 응답성을 개선할 수 있습니다.

기기 내 웹 음성 API

이 기능은 기기 내 음성 인식 지원을 웹 음성 API에 추가하여 웹사이트에서 오디오나 스크립트 작성된 음성이 처리되도록 서드 파티 서비스로 전송되지 않도록 할 수 있습니다. 웹사이트는 특정 언어의 기기 내 음성 인식 사용 가능 여부를 쿼리하고, 사용자에게 기기 내 음성 인식에 필요한 리소스를 설치하라는 메시지를 표시하고, 필요에 따라 기기 내 음성 인식 또는 클라우드 기반 음성 인식을 선택할 수 있습니다.

브라우징 컨텍스트 그룹을 전환하는 크로스 사이트 탐색의 window.name 삭제

window.name 속성 값은 현재 브라우징 컨텍스트 그룹을 전환하는 탐색이 있는 경우에도 탭의 수명 동안 유지되므로 정보가 유출될 수 있으며 추적 벡터로 사용될 수 있습니다. window.name 속성을 삭제하면 이 문제가 해결됩니다. 이름으로 브라우징 컨텍스트를 조회하는 것은 이미 다른 브라우징 컨텍스트 그룹에 있는 경우 작동하지 않으므로 이름이 실제로 유용하지 않으므로 위험이 낮은 변경사항입니다.

엔터프라이즈 정책: ClearWindowNameCrossSiteBrowsing (Chrome 142에서 작동하지 않음)

웹 앱 범위 확장 프로그램

웹 앱이 범위를 다른 출처로 확장할 수 있도록 하는 "scope_extensions" 웹 앱 매니페스트 필드를 추가합니다.

이렇게 하면 여러 하위 도메인과 최상위 도메인을 제어하는 사이트를 단일 웹 앱으로 표시할 수 있습니다. 나열된 출처가 .well-known/web-app-origin-association 구성 파일을 사용하여 웹 앱과의 연결을 확인해야 합니다.

사양을 준수하는 JSON MIME 유형 감지

이제 Chromium은 WHATWG mimesniff 사양에 정의된 모든 유효한 JSON MIME 유형을 인식합니다. 여기에는 기존의 application/jsontext/json 외에도 하위 유형이 +json으로 끝나는 모든 MIME 유형이 포함됩니다. 이 변경사항은 JSON 감지에 의존하는 웹 API 및 기능이 웹 플랫폼 표준 및 다른 브라우저와 일관되게 동작하도록 합니다. 이 변경사항의 주요 동기는 이전에 유효한 JSON MIME 유형(예: text/html+jsonimage/svg+json)이 모듈로 로드되지 않는 JSON 모듈 가져오기 동작을 수정하는 것입니다.

Private Aggregation API: 집계 오류 보고

Private Aggregation API를 사용할 때 발생할 수 있는 다양한 오류 조건이 있습니다. 예를 들어 개인 정보 보호 예산이 소진되어 더 이상 히스토그램 기여를 방지할 수 있습니다. 이 기능을 사용하면 개발자가 특정 유형의 오류가 발생한 경우에만 전송해야 하는 히스토그램 기여를 등록할 수 있습니다. 이 기능은 오류 조건의 빈도를 측정하고 관련 개발자가 지정한 측정기준 (예: 배포된 코드 버전)으로 이러한 측정을 분할하는 것을 지원합니다. 오류 자체가 크로스 사이트 정보일 수 있으므로 서드 파티 쿠키가 없는 사용자에게 페이지에 오류를 노출할 수 없습니다. 대신 이 기능은 집계 서비스를 통해 기존의 집계된 노이즈 보고 파이프라인을 재사용합니다.

Reporting API: 비정상 종료 보고만 수신하도록 지정

이 기능을 사용하면 개발자가 crash-reporting이라는 엔드포인트를 지정하여 비정상 종료 보고서만 수신할 수 있습니다. 기본적으로 비정상 종료 보고서는 비정상 종료 보고서 외에도 여러 종류의 보고서를 수신하는 default 엔드포인트로 전송됩니다. 개발자는 default 엔드포인트 대신 비정상 종료 보고서를 전송할 수 있도록 crash-reporting이라는 잘 알려진 엔드포인트에 별도의 URL을 제공할 수 있습니다.

Accept-Language 헤더 정보에서 디지털 지문 감소

HTTP 요청 및 navigator.languages에서 Accept-Language 헤더 값 문자열이 노출하는 정보의 양을 줄입니다. Accept-Language 헤더가 있는 모든 HTTP 요청에서 사용자가 선호하는 언어의 전체 목록을 전송하는 대신 이제 Accept-Language 헤더에서 사용자가 가장 선호하는 언어를 전송합니다. 호환성 위험을 최소화하기 위해 초기 출시에서는 HTTP 헤더의 정보를 줄입니다. 향후 관련 navigator.languages JavaScript getter를 줄일 예정입니다.

CSP에 의해 차단된 worker를 발생시키는 대신 오류 이벤트 실행

현재 Chrome은 콘텐츠 보안 정책 (CSP)에 의해 차단되면 Worker 및 SharedWorker 생성자에서 SecurityError를 발생시킵니다. 사양에서는 CSP를 가져오기의 일부로 확인하고 스크립트가 new Worker(url) 또는 new SharedWorker(url)를 실행할 때 예외를 발생시키는 대신 오류 이벤트를 비동기식으로 실행해야 합니다. 이 변경사항은 Chrome 사양을 준수하도록 합니다. 생성자 중에 발생하지 않고 오류 이벤트를 비동기식으로 실행합니다.

RTC 인코딩된 프레임의 오디오 수준

RTCPeerConnection으로 전송되고 WebRTC 인코딩된 변환을 사용하여 노출되는 인코딩된 프레임의 오디오 수준을 웹에 노출합니다.

새 오리진 트라이얼

Chrome 139에서는 다음 새 오리진 트라이얼을 선택할 수 있습니다.

Prompt API

Prompt API는 텍스트, 이미지, 오디오 입력을 사용하여 AI 언어 모델과 상호작용하도록 설계되었습니다. 이 기능은 이미지 설명 생성 및 시각적 검색부터 오디오 스크립트 작성, 소리 활동 분류, 특정 지침에 따른 텍스트 생성, 텍스트에서 정보 또는 유용한 정보 추출에 이르기까지 다양한 사용 사례를 지원합니다. 또한 구조화된 출력을 지원하여 응답이 사전 정의된 형식(일반적으로 JSON 스키마로 표현됨)을 준수하도록 보장합니다. 이를 통해 응답 적합성을 높이고 표준화된 출력 형식이 필요한 다운스트림 애플리케이션과의 원활한 통합을 지원합니다. 이 API는 Chrome 확장 프로그램에서도 노출됩니다. 이 오리진 트라이얼은 웹에 노출하기 위한 것입니다.

전체 프레임 속도 렌더링 차단 속성

차단 속성에 새 렌더링 차단 토큰 full-frame-rate를 추가하는 것이 좋습니다. 렌더러가 full-frame-rate 토큰으로 차단되면 렌더러는 로드를 위해 더 많은 리소스를 예약할 수 있도록 더 낮은 프레임 속도로 작동합니다.

WebGPU 호환성 모드

OpenGL 및 Direct3D11과 같은 이전 그래픽 API를 실행할 수 있는 WebGPU API의 선택적이고 약간 제한된 하위 집합을 추가합니다. 이 모드를 선택하고 제약 조건을 준수하면 개발자는 WebGPU 애플리케이션의 도달범위를 핵심 WebGPU에 필요한 최신 명시적 그래픽 API가 없는 많은 이전 기기로 확장할 수 있습니다. 간단한 애플리케이션의 경우 유일하게 필요한 변경 사항은 "compatibility" featureLevel을 호출할 때 지정하는 것입니다. requestAdapter. 더 고급 애플리케이션의 경우 모드의 제한사항을 수용하기 위해 일부 수정이 필요할 수 있습니다. 호환성 모드는 하위 집합이므로 결과 애플리케이션도 유효한 WebGPU Core 애플리케이션이며 호환성 모드를 지원하지 않는 사용자 에이전트에서도 실행됩니다.

지원 중단 및 삭제

이 Chrome 버전에는 아래에 나열된 지원 중단 및 삭제가 도입되었습니다. 계획된 지원 중단, 현재 지원 중단, 이전 삭제 목록은 ChromeStatus.com을 참고하세요.

이 Chrome 출시 버전에서는 두 가지 기능이 삭제되었습니다.

macOS 11 지원 삭제

Chrome 138은 macOS 11을 지원하는 마지막 버전입니다. Chrome 139부터는 Apple과의 지원 기간이 종료되었으므로 macOS 11이 지원되지 않습니다. 보안 유지를 위해서는 지원되는 운영체제에서 실행하는 것이 필수적입니다. macOS 11을 실행하는 Mac에서는 Chrome이 계속 작동하며, 경고 정보 표시줄이 표시되지만 더 이상 업데이트되지 않습니다. 사용자가 Chrome을 업데이트하려면 지원되는 macOS 버전으로 컴퓨터를 업데이트해야 합니다. Chrome 139 이상을 새로 설치하려면 macOS 12 이상이 필요합니다.

HTML에서 ISO-2022-JP 문자 집합의 자동 감지 삭제

ISO-2022-JP의 문자 집합 자동 감지와 관련된 알려진 보안 문제 가 있습니다. 사용량이 매우 적고 Safari에서 ISO-2022-JP의 자동 감지를 지원하지 않으므로 Chrome은 보안 문제를 해결하기 위해 지원을 삭제합니다.