Chrome 136 베타

게시일: 2025년 4월 3일

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

CSS 및 UI

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

CSS dynamic-range-limit 속성

페이지에서 HDR 콘텐츠의 최대 밝기를 제한할 수 있습니다.

필기체 스크립트에서 글자 간격 무시

이 기능은 글자 간격이 단어를 끊지 않도록 사양에 따라 개발자가 지정한 경우에도 필기체 스크립트의 글자 간격 설정을 무시하는 로직을 추가합니다.

사용자의 방문 기록 유출을 방지하기 위해 앵커 요소는 이전에 이 최상위 사이트 및 프레임 출처에서 클릭된 경우에만 :visited 스타일로 지정됩니다.

이전에 이 사이트와 프레임에서 클릭된 링크에 대해서만 스타일을 지정하면 :visited 링크 스타일 지정 정보를 얻기 위해 개발된 여러 부채널 공격은 이제 더 이상 유용하지 않습니다. 더 이상 사이트에 사용자에 관한 새로운 정보를 제공하지 않습니다.

:visited 링크의 개인 정보 보호에 관한 이러한 개선사항에 대해 자세히 알아보세요.

string attr() 유형의 이름을 raw-string으로 변경

CSS 작업 그룹은 string attr() 유형을 raw-string으로 바꾸기로 결정했습니다.

따라서 Chrome은 attr() 구문을 변경하여 이제 attr(data-foo string)attr(data-foo raw-string)이 됩니다.

유형에 구애받지 않는 var() 대체

var() 함수의 대체 부분은 참조되는 맞춤 속성의 유형에 대해 유효성을 검사하지 않습니다.

접두사가 없는 print-color-adjust

print-color-adjust 속성을 사용하면 인쇄된 웹페이지의 색상을 조정할 수 있습니다. 표준화된 이름이 지정된 Chrome의 이미 지원되는 -webkit-print-color-adjust와 동일합니다. -webkit 접두사가 붙은 버전은 삭제되지 않습니다.

Web API

AudioContext 중단된 상태

AudioContextState"interrupted" 상태를 추가합니다. 이 새로운 상태를 사용하면 UA가 이러한 시나리오에서 재생을 일시중지하고 웹 애플리케이션이 적절하게 응답할 수 있습니다.

Blob URL 파티셔닝: 가져오기/탐색

저장용량 파티셔닝의 연장으로, 저장용량 키 (최상위 사이트, 프레임 출처, has-cross-site-ancestor 불리언)별로 Blob URL 액세스의 파티셔닝을 구현합니다. 단, 프레임 출처로만 파티셔닝된 상태로 유지되는 최상위 탐색은 예외입니다. 이 동작은 현재 Firefox와 Safari에서 구현한 것과 유사하며 Blob URL 사용을 저장용량 파티셔닝의 일부로 다른 저장용량 API에서 사용하는 파티셔닝 스키마와 일치시킵니다.

또한 상응하는 사이트가 탐색을 실행하는 최상위 사이트의 크로스 사이트인 Blob URL에 대한 렌더러에서 시작한 최상위 탐색에 이제 noopener가 적용됩니다. 이를 통해 Chrome에서도 Safari와 유사하게 동작하게 됩니다. 관련 사양은 이러한 변경사항을 반영하도록 업데이트되었습니다.

응답하지 않는 웹페이지의 비정상 종료 보고서에 있는 호출 스택

이 기능은 JavaScript 코드가 무한 루프 또는 기타 매우 긴 계산을 실행하여 웹페이지가 응답하지 않게 될 때 JavaScript 호출 스택을 캡처합니다. 이를 통해 개발자는 응답하지 않는 원인을 파악할 수 있습니다. 이유가 응답하지 않는 경우 JavaScript 호출 스택이 비정상 종료 보고 API에 포함됩니다.

캡처된 Surface Control API

캡처된 Surface Control API를 사용하면 웹 애플리케이션이 휠 이벤트를 캡처된 탭으로 전달하고 캡처된 탭의 확대/축소 수준을 읽고 변경할 수 있습니다.

CapturedSurfaceResolution

화면 공유 중에 캡처된 표면의 픽셀 비율을 노출합니다. 이 기능을 사용하면 애플리케이션이 시스템 리소스를 절약하거나 캡처된 표면의 실제 및 논리적 해상도에 따라 품질 및 대역폭 절충안을 조정할 수 있습니다.

캡처된 포인터에 클릭 이벤트 디스패치

pointerup 이벤트가 디스패치되는 동안 포인터가 캡처되면 UI 이벤트 사양에 따라 pointerdownpointerup 이벤트의 가장 가까운 공통 상위 요소 대신 캡처된 타겟에 click 이벤트가 디스패치됩니다. 캡처되지 않은 포인터의 경우 click 타겟은 변경되지 않습니다.

매직 주석이 포함된 명시적 컴파일 힌트

JavaScript 파일에서 적극적으로 파싱하고 컴파일해야 하는 함수에 관한 정보를 연결할 수 있습니다. 이 정보는 매직 주석으로 인코딩됩니다.

FedCM 업데이트: 여러 IdP 지원, 패시브 모드에서 '다른 계정 추가' 기능 삭제

이 업데이트를 통해 FedCM은 동일한 대화상자에 여러 ID 공급업체를 표시할 수 있습니다. 이를 통해 개발자는 사용자에게 지원되는 모든 ID 공급업체를 편리하게 표시할 수 있습니다. 먼저 모든 프로바이더가 동일한 get() 호출에 있는 간단한 사례를 해결할 계획입니다. 또한 FedCM 패시브 모드에서 '다른 계정 추가' 기능에 대한 지원을 삭제합니다. 이 기능을 사용하면 선택기에서 다른 IdP 계정과 함께 '다른 계정 사용' 버튼을 표시할 수 있지만, 이 기능은 현재 사용되지 않으며 UX 대화에서 이 기능을 지원하면 흐름이 더 복잡해질 뿐 큰 이점이 없다고 판단했습니다. 이 기능은 FedCM 활성 모드에서 계속 작동합니다.

Fluent 스크롤 막대

이 기능은 Windows 11 Fluent 디자인 언어에 맞게 Windows 및 Linux의 Chrome 스크롤 막대 (오버레이 및 비오버레이)를 현대화합니다. 비오버레이 Fluent 스크롤 막대는 Linux 및 Windows에서 기본적으로 사용 설정됩니다. Chrome의 Linux 스크롤 막대 디자인은 이전부터 Windows에 제공되는 스크롤 막대와 일치했으므로 이 변경사항은 Linux에도 적용됩니다.

WebRTC의 H265 (HEVC) 코덱 지원

Chrome 136부터 HEVC는 WebRTC에서 지원되는 코덱으로 VP8, H.264, VP9, AV1에 합류합니다. MediaCapabilities API를 사용하여 지원을 쿼리할 수 있습니다.

이 최신 코덱은 VP8 및 H264와 같은 이전 세대 코덱에 비해 압축 효율성이 높고 (비트 전송률당 품질이 높음) 10년 이상 강력한 하드웨어 지원을 제공합니다. 이는 배터리 수명 증가 및 성능 문제 위험 감소로 이어지며, 기본 하드웨어 인코더의 성능에 따라 하드웨어 VP9 또는 AV1 인코더를 사용할 수 없는 경우 시각적 환경을 개선하는 경우가 많습니다.

MediaRecorder의 H26x 코덱 지원 업데이트

이제 MediaRecorder API는 HEVC 인코딩을 지원하고 hvc1.* 코덱 문자열을 도입하며 MP4에서 가변 해상도 동영상을 지원하는 새 코덱 (hev1.*avc3.*)을 추가합니다. HEVC 플랫폼 인코딩 지원은 Chrome 130의 WebCodecs에 추가되었습니다. 후속 조치로 Chromium의 MediaRecorder API에 지원이 추가되었습니다. 이제 API는 다양한 HEVC 및 H.264 MIME 유형 사양으로 MP4 및 Matroska 멀티플렉서 유형을 모두 지원합니다. HEVC 인코딩은 사용자의 기기 및 운영체제에서 필요한 기능을 제공하는 경우에만 지원됩니다.

Chrome Enterprise의 IP 주소 로깅 및 보고

Chrome Enterprise는 보안 모니터링 및 사고 대응 기능을 개선하기 위해 로컬 및 원격 IP 주소를 수집 및 보고하며, 해당 IP 주소를 보안 조사 로그 (SIT)로 전송합니다. 또한 Chrome Enterprise는 관리자가 원하는 경우 Chrome Enterprise 보고 커넥터를 사용하여 퍼스트 파티 및 서드 파티 SIEM 제공업체에 IP 주소를 전송할 수 있습니다. 이 기능은 Chrome Enterprise Core 고객에게 제공됩니다.

탐색 이니시에이터를 HTTP 캐시 파티션 키에 통합

Chrome의 HTTP 캐시 키 지정 스키마가 업데이트되어 최상위 탐색과 관련된 크로스 사이트 유출 공격을 완화하기 위해 is-cross-site-main-frame-navigation 불리언이 포함됩니다. 특히 공격자가 특정 페이지로의 최상위 탐색을 시작한 다음 페이지에서 로드되는 것으로 알려진 리소스로 이동하여 로드 타이밍에서 민감한 정보를 추론할 수 있는 크로스 사이트 공격을 방지합니다. 또한 이 변경사항은 악성 사이트가 탐색을 사용하여 사용자가 이전에 특정 사이트를 방문했는지 추론하지 못하도록 하여 개인 정보 보호를 개선합니다.

CanvasTextDrawingStyles의 언어 지원

<canvas> DOM 요소는 모든 DOM 요소와 마찬가지로 글꼴에 언어별 글리프가 있는 경우 글꼴 선택에 언어별 처리를 정의하는 데 사용되는 lang 속성을 허용합니다. 브라우저는 이 속성을 준수합니다. 그러나 OffscreenCanvas가 생성되면 언어 정보를 설정할 방법이 없으므로 오프스크린 캔버스가 출력이 사용되는 캔버스와 다른 렌더링 결과를 생성하는 상태가 발생할 수 있습니다. 이 기능은 텍스트 그리기 및 측정항목의 언어를 직접 제어할 수 있도록 CanvasTextDrawingStyleslang IDL 속성을 추가합니다.

iframe의 권한 정책 보고서

'잠재적 권한 정책 위반'이라는 새로운 위반 유형을 도입합니다. 이 유형은 권한 정책 (보고 전용 정책 포함)과 iframe에 설정된 allow 속성만 확인하여 적용된 권한 정책과 iframe에 전파된 권한 간의 충돌을 감지합니다.

예측 가능한 보고된 스토리지 한도

무제한 저장용량 권한이 없는 사이트의 경우 StorageManager의 Estimate API에서 예측 가능한 스토리지 한도를 보고합니다. 사용 가능한 저장공간이 일반 모드보다 시크릿 모드에서 훨씬 적으므로 보고된 스토리지 한도를 통해 사용자의 탐색 모드를 감지할 수 있습니다.

Private Aggregation API: 집계 오류 보고

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

RegExp.escape

RegExp.escape 는 문자열을 가져와 정규 표현식 내에서 패턴으로 사용할 수 있는 이스케이프된 버전을 반환하는 정적 메서드입니다. 예를 들면 다음과 같습니다.

const str = prompt("Please enter a string");
const escaped = RegExp.escape(str);
const re = new RegExp(escaped, 'g'); // handles reg exp special tokens with the replacement.

console.log(ourLongText.replace(re));

추측 규칙: 태그 필드

개발자가 추측 규칙에 태그 field를 추가할 수 있습니다. 이 선택적 필드는 추측 규칙의 소스를 추적하는 데 사용할 수 있습니다. 예를 들어 중간 서버에서 다르게 처리합니다. 추측과 연결된 모든 태그는 Sec-Speculation-Tags 헤더와 함께 전송됩니다.

Storage Access API의 엄격한 동일 출처 정책

동일 출처 정책을 엄격하게 준수하도록 Storage Access API 시맨틱을 조정합니다. 즉, 프레임에서 document.requestStorageAccess()를 사용하면 기본적으로 사이트가 아닌 iframe의 출처에 대한 요청에만 쿠키가 연결됩니다. CookiesAllowedForUrls 정책 또는 스토리지 액세스 헤더는 계속해서 크로스 사이트 쿠키를 차단 해제하는 데 사용할 수 있습니다.

loadedtotal double 유형을 사용하도록 ProgressEvent 업데이트

ProgressEvent에는 진행을 나타내는 loadedtotal 속성이 있으며 이제 유형이 unsigned long long입니다. 이 기능을 사용하면 이 두 속성의 유형이 double로 변경되어 개발자가 값을 더 세부적으로 제어할 수 있습니다. 예를 들어 이제 개발자는 total이 1이고 loaded가 0에서 1로 점진적으로 증가하는 ProgressEvent를 만들 수 있습니다. 이는 max 속성이 생략된 경우 <progress> HTML 요소의 기본 동작과 일치합니다.

getCharNumAtPosition, isPointInFill, isPointInStrokeDOMPointInit 사용

이 변경사항은 getCharNumAtPosition, isPointInFill, isPointInStrokeSVGPoint에 대한 DOMPointInit 사용 측면에서 Chromium 코드를 SVGGeometryElementSVGPathElement의 최신 W3C 사양과 일치시킵니다.

웹 인증 조건부 만들기 (패스키 업그레이드)

WebAuthn 조건부 만들기 요청을 사용하면 웹사이트에서 기존 비밀번호 사용자 인증 정보를 패스키로 업그레이드할 수 있습니다.

WebGPU: GPUAdapterInfo isFallbackAdapter 속성

GPUAdapterInfo isFallbackAdapter 불리언 속성은 더 넓은 호환성, 더 예측 가능한 동작 또는 개선된 개인 정보 보호를 위해 어댑터에 상당한 성능 제한이 있는지 나타냅니다. 대체 어댑터는 일부 시스템에 없을 수도 있습니다.

새 오리진 트라이얼

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

오디오 출력 기기 API: setDefaultSinkId()

이 기능은 최상위 프레임에서 하위 프레임에서 사용하는 기본 오디오 출력 기기를 변경할 수 있도록 MediaDevices에 setDefaultSinkId()를 추가합니다.

웹 애플리케이션이 바이모달 성능 타이밍을 이해하도록 허용

웹 애플리케이션은 웹 애플리케이션의 제어 범위를 벗어난 요인으로 인해 페이지 로드 성능에서 바이모달 분포를 겪을 수 있습니다. 예를 들면 다음과 같습니다.

  • 사용자 에이전트가 처음 실행될 때('콜드 스타트' 시나리오) 시스템의 리소스를 두고 경쟁하는 많은 비용이 많이 드는 초기화 작업을 실행해야 합니다.
  • 브라우저 확장 프로그램은 웹사이트의 성능에 영향을 줄 수 있습니다. 예를 들어 일부 확장 프로그램은 방문하는 모든 페이지에서 추가 코드를 실행하여 CPU 사용량을 늘리고 응답 시간을 느리게 만들 수 있습니다.
  • 머신이 집약적인 작업을 실행하는 데 바쁜 경우 웹페이지 로드가 느려질 수 있습니다.

이러한 시나리오에서 웹 앱이 로드하려고 시도하는 콘텐츠는 시스템에서 발생하는 다른 작업과 경쟁합니다. 따라서 웹 애플리케이션 자체에 성능 문제가 있는지 아니면 외부 요인으로 인해 성능 문제가 있는지 감지하기가 어렵습니다.

PerformanceNavigationTiming 객체의 새 confidence 필드를 사용하면 개발자가 탐색 타이밍이 웹 애플리케이션을 대표하는지 파악할 수 있습니다.

기기 바인딩 세션 사용자 인증 정보

웹사이트에서 세션을 단일 기기에 안전하게 결합하는 방법입니다.

서버에서 기기에 안전하게 결합된 세션을 사용할 수 있습니다. 브라우저는 서버에서 요청한 대로 비공개 키 소유 증명을 사용하여 세션을 주기적으로 갱신합니다.

캔버스 텍스트 렌더링 구현 업데이트

CanvasRenderingContext2D 및 OffscreenCanvasRenderingContext2D의 measureText(), fillText(), strokeText()의 내부가 RTL 텍스트와 캐싱을 더 잘 지원하는 새로운 구현으로 대체되었습니다. 성능 및 BIDI 텍스트 출력에 영향을 줄 수 있으므로 이 오리진 트라이얼을 사용하면 텍스트가 많은 캔버스 애플리케이션에서 새 구현을 사용해 보고 발생할 수 있는 문제를 신고할 수 있습니다.

지원 중단 및 삭제

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

이 Chrome 출시 버전에서는 두 가지 기능이 지원 중단됩니다.

Intl Locale Info의 getter 지원 중단

Intl Locale Info API는 주 데이터 (한 주의 첫째 날, 주말 시작일, 주말 종료일, 첫 번째 주의 최소 일수)와 해당 언어에서 사용되는 텍스트 방향 시간 주기 같은 언어 정보를 노출하여 Intl.Locale 객체를 개선하는 3단계 ECMAScript TC39 제안서입니다. 이 변경사항은 출시 이후 사양 변경에서 지원 중단된 일부 getter를 삭제합니다.

HTMLFencedFrameElement.canLoadOpaqueURL() 삭제

canLoadOpaqueURL() 은 2023년에 navigator.canLoadAdAuctionFencedFrame()으로 대체되었으며, 이를 호출하면 개발자에게 새 API를 가리키는 지원 중단 콘솔 경고가 표시되었습니다. 이 함수를 HTMLFencedFrameElement에 연결하는 것은 의미가 없으며 대신 다른 분리 프레임 및 광고 입찰 메서드가 포함된 navigator 객체에 연결해야 합니다.