Chrome 135 베타

게시일: 2025년 3월 5일

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

CSS 및 UI

이 출시에서는 새로운 CSS 및 UI 기능 13개가 추가되었습니다.

앵커 위치 지정 시 스크롤 오프셋 기억

기억된 스크롤 오프셋 개념을 지원합니다. 배치된 요소에 기본 앵커가 있고 한쪽 가장자리에서 이 앵커에 연결되고 다른 쪽 가장자리에서 원래 포함 블록에 연결된 경우 요소 크기를 조절할 때 스크롤 오프셋이 고려됩니다. 즉, 문서가 지정된 스크롤 오프셋으로 스크롤될 때 고정된 요소에 position-area를 사용하여 모든 표시 공간을 사용할 수 있습니다. 문서가 스크롤될 때마다 레이아웃 (요소 크기 조절)을 방지하기 위해 브라우저는 항상 현재 스크롤 오프셋을 사용하는 대신 저장된 스크롤 오프셋을 사용합니다. 저장된 스크롤 오프셋은 앵커 재계산 지점에서 업데이트됩니다. 앵커 재계산 지점은 배치된 요소가 처음 표시되는 위치이거나 다른 위치 옵션(position-try-fallbacks)이 선택된 경우입니다.

CSS 비활성

요소를 비활성화하면 요소에 포커스를 맞추거나, 수정하거나, 선택하거나, 페이지 내 검색을 통해 검색할 수 있는지 여부에 영향을 미칩니다. 접근성 트리에 표시되는지 여부에도 영향을 미칩니다. interactivity 속성은 요소와 그 평면 트리 자손 (텍스트 행 포함)이 비활성 상태인지 여부를 지정합니다. interactivity 속성은 auto 또는 inert 두 값 중 하나를 허용합니다.

논리적 오버플로 속성

overflow-inlineoverflow-block CSS 속성을 사용하면 쓰기 모드를 기준으로 인라인 및 블록 방향에서 오버플로를 설정할 수 있습니다. 가로 쓰기 모드에서는 overflow-inlineoverflow-x에 매핑되고 세로 쓰기 모드에서는 overflow-y에 매핑됩니다.

부호 관련 함수 ​abs()sign()는 인수의 부호와 관련된 다양한 함수를 계산합니다.

dynamic-range-limit 속성

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

shape() 함수

shape() 함수를 사용하면 clip-path 속성에서 반응형 자유 형식 도형을 사용할 수 있습니다. 이를 통해 path()의 명령어와 동일한 일련의 명령어를 정의할 수 있습니다. 그러나 이 명령어는 반응형 단위 (예: % 또는 vw)와 맞춤 속성과 같은 모든 CSS 값을 허용합니다.

::column 의사 요소

생성된 프래그먼트에 제한된 스타일 집합을 적용할 수 있는 ::column 가상 요소입니다. 특히 레이아웃에 영향을 미치지 않으므로 레이아웃 후에 적용할 수 있는 스타일로 제한됩니다.

::scroll-button() 가상 요소

양방향 스크롤 버튼을 가상 요소로 만들 수 있습니다. 예를 들면 다음과 같습니다.

.scroller {
  overflow: auto;
}

.scroller::scroll-button(inline-start) {
  content: "<";
}

.scroller::scroll-button(inline-end) {
  content: ">";
}

포커스를 받을 수 있어야 하며 버튼처럼 동작해야 합니다 (UA 스타일 포함). 활성화되면 지정된 방향으로 일정 거리 스크롤이 실행되어야 합니다. 해당 방향으로 스크롤할 수 없는 경우 사용 중지되고(:disabled 스타일 적용) 그렇지 않으면 사용 설정되고 (:enabled 스타일 적용) 선택기를 사용하면 block-start, block-end, inline-start, inline-end의 4가지 논리적 방향과 up, down, left, right의 4가지 실제 방향으로 버튼을 정의할 수 있습니다.

::scroll-marker::scroll-marker-group

스크롤 컨테이너에 ::scroll-marker::scroll-marker-group를 추가합니다. 이러한 가상 요소를 사용하면 스크롤 컨테이너 내의 모든 연결된 항목에 포커스를 설정할 수 있는 마커 집합을 만들 수 있습니다.

중첩된 가상 요소 스타일 지정

다른 가상 요소 내에 중첩된 가상 요소의 스타일 지정을 사용 설정합니다. 지금까지 ::before::marker::after::marker에 대한 지원이 정의되었으며 향후 ::column::scroll-marker도 지원될 예정입니다.

사용자의 탐색 기록 유출을 방지하기 위해 앵커 요소는 이전에 이 최상위 사이트 및 프레임 출처에서 클릭된 경우에만 :visited 스타일로 지정됩니다. 이전에 이 사이트와 프레임에서 클릭된 링크에 대해서만 스타일을 지정하면 더 이상 사이트에 사용자에 관한 새로운 정보를 제공하지 않으므로 :visited 링크 스타일 지정 정보를 얻기 위해 개발된 여러 측면 채널 공격은 이제 더 이상 사용되지 않습니다.

자체 링크에는 예외가 있습니다. 사이트 자체 페이지로 연결되는 링크는 이전에 이 정확한 최상위 사이트 및 프레임 출처에서 클릭되지 않았더라도 :visited 스타일로 지정할 수 있습니다. 이 예외는 최상위 프레임과 동일한 출처인 최상위 프레임 또는 하위 프레임에서만 사용 설정됩니다. 사이트는 사용자가 방문한 하위 페이지를 이미 알고 있으므로 새로운 정보가 노출되지 않아 개인 정보 보호 이점이 계속 유지됩니다. 이는 사용자 환경을 개선하기 위해 커뮤니티에서 요청한 예외입니다.

보간 진행률 함수 표기법: CSS *progress() 함수

progress(), media-progress(), container-progress() 함수 표기는 주어진 값 (진행률 값)이 한 값 (진행률 시작 값)에서 다른 값 (진행률 종료 값)까지의 비례 거리를 나타냅니다. 이를 통해 수학 함수, 미디어 기능, 컨테이너 기능에서 각각 진행률 비율을 그릴 수 있습니다.

safe-area-max-inset-* 변수

이제 Chrome은 safe-area-inset 환경 변수 외에도 이러한 변수의 max-area-safe-inset-* 변형도 지원합니다. 동적 인셋과 달리 최대 인셋은 변경되지 않으며 최대한 안전한 영역 인셋을 나타냅니다.

이러한 값은 성능이 우수한 전체 화면 웹 환경을 빌드할 때 필요합니다.

Web API

Web Speech API에 MediaStreamTrack 지원 추가

Web Speech API에 MediaStreamTrack 지원을 추가합니다. Web Speech API는 개발자가 음성 인식 및 합성을 웹페이지에 통합할 수 있는 웹 표준 API입니다. 현재 Web Speech API는 사용자의 기본 마이크를 오디오 입력으로 사용합니다. MediaStreamTrack 지원을 통해 웹사이트는 Web Speech API를 사용하여 원격 오디오 트랙을 비롯한 다른 오디오 소스에 자막을 추가할 수 있습니다.

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

저장용량 파티셔닝의 연장으로, 이 기능은 저장용량 키 (최상위 사이트, 프레임 출처, has-cross-site-ancestor 불리언)별로 Blob URL 액세스의 파티셔닝을 구현합니다. 단, 프레임 출처로만 파티셔닝된 상태로 유지되는 최상위 탐색은 예외입니다.

스크립트용 CSP require-sri-for

require-sri-for 디렉티브를 사용하면 특정 유형의 모든 리소스에 무결성 검사가 필요하다고 어설션할 수 있습니다. 이러한 유형의 리소스를 무결성 메타데이터 없이 로드하려고 하면 로드가 실패하고 CSP 위반 보고서가 트리거됩니다. 이 인텐트는 이 지시문의 "script" 값을 다룹니다.

서비스 워커 클라이언트를 만들고 srcdoc iframe의 서비스 워커 컨트롤러를 상속

Srcdoc 컨텍스트 문서는 현재 서비스 워커 클라이언트가 아니며 상위 요소의 서비스 워커에 적용되지 않습니다. 이로 인해 약간의 불일치가 발생합니다(예: 리소스 타이밍은 이러한 문서가 로드하는 URL을 보고하지만 서비스 워커는 이를 가로채지 않음). 이는 srcdoc iframe의 서비스 워커 클라이언트를 만들고 상위 요소의 서비스 워커 컨트롤러를 상속받도록 하여 불일치를 수정하는 것을 목표로 합니다.

캡처된 포인터에 클릭 이벤트 전달

pointerup 이벤트가 전달되는 동안 포인터가 캡처되면 click 이벤트는 UI 이벤트 사양에 따라 pointerdownpointerup 이벤트의 가장 가까운 공통 조상 대신 캡처된 대상에 전달됩니다. 캡처되지 않은 포인터의 경우 click 대상은 변경되지 않습니다.

Float16Array

Float16Array 유형 배열을 추가합니다. 숫자 값은 Float16Array 인스턴스에 쓸 때 IEEE fp16으로 반올림됩니다.

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

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

HSTS 추적 방지

HSTS 캐시를 통한 서드 파티의 사용자 추적을 완화합니다.

이 기능은 최상위 탐색의 HSTS 업그레이드만 허용하고 하위 리소스 요청의 HSTS 업그레이드는 차단합니다. 이렇게 하면 서드 파티 사이트에서 HSTS 캐시를 사용하여 웹에서 사용자를 추적하는 것이 불가능해집니다.

호출자 명령어: commandcommandfor 속성

<button> 요소의 commandcommandfor 속성을 사용하면 버튼에 더 접근하기 쉽고 선언적인 방식으로 동작을 할당하는 동시에 버그를 줄이고 상호작용에 필요한 JavaScript의 양을 단순화할 수 있습니다. commandforcommand 속성이 있는 버튼은 클릭, 터치 또는 키 누르기로 실행될 때 commandfor에서 참조하는 요소에 CommandEvent를 전달하며, 대화상자 및 팝오버 열기와 같은 일부 기본 동작을 실행합니다.

브라우저가 대기 중인 푸시 결제에 관해 등록된 결제 클라이언트에게 알림을 보내야 한다는 힌트로 <link rel="facilitated-payment" href="..."> 지원을 추가합니다.

NavigateEvent sourceElement 속성

요소 (예: 링크 클릭 또는 양식 제출)에 의해 탐색이 시작되면 NavigateEventsourceElement 속성이 시작 요소를 반환합니다.

NotRestoredReasons API 이유 이름 변경

NotRestoredReasons API는 표준화된 이름에 맞게 일부 이유 텍스트를 변경하고 있습니다. 이러한 이유를 모니터링하는 개발자는 이유 텍스트가 변경된 것을 볼 수 있습니다.

기기 내 Web Speech API

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

서비스 워커 클라이언트 URL이 history.pushState 변경사항을 무시함

history.pushState() 및 기타 유사한 기록 API를 사용하여 문서 URL 변경사항을 무시하도록 서비스 워커 Client.url 속성을 수정합니다. Client.url 속성은 이러한 변경사항을 무시하는 HTML 문서의 생성 URL이 되도록 설계되었습니다.

SVGAElementrelrelList 속성 지원

SVG 2.0의 SVGAElement 인터페이스를 사용하면 HTML 앵커 요소와 유사하게 <a> 요소를 조작할 수 있습니다. relrelList 속성을 지원하면 개발자의 보안 및 개인 정보 보호가 강화됩니다. HTML 앵커 요소와의 이러한 정렬은 웹 기술 전반에서 일관성과 사용 편의성을 보장합니다.

RTC 인코딩된 프레임의 타임스탬프

이 기능은 RTCPeerConnection을 통해 전송된 WebRTC 인코딩된 프레임에 있는 일부 타임스탬프를 웹에 노출하는 것으로 구성됩니다. 문제의 타임스탬프는 다음과 같습니다.

  • 캡처 타임스탬프: 프레임이 처음 캡처된 시점의 타임스탬프입니다.
  • 수신 타임스탬프: 프레임이 수신된 시점의 타임스탬프입니다.

'loaded' 및 'total'에 double 유형을 사용하도록 ProgressEvent를 업데이트합니다.

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

fetchLater API

fetchLater() API는 지연된 가져오기를 요청하는 JavaScript API로, 특히 페이지 수명 주기가 끝날 때 더 안정적인 비콘을 설정하는 데 유용합니다. 문서에서 호출되면 지연된 요청은 브라우저에 의해 PENDING 상태로 대기열에 추가되며 다음 조건 중 가장 먼저 충족되는 조건에 의해 호출됩니다.

문서가 삭제됩니다. 사용자가 지정한 시간 후 개인 정보 보호를 위해 남은 시간이 얼마든지 문서가 bfcache에 들어가면 모든 대기 중인 요청이 플러시됩니다. 브라우저가 전송 시기가 되었음을 결정합니다.

API는 지연된 요청이 전송되었는지 여부를 알리기 위해 업데이트될 수 있는 불리언 필드 activated가 포함된 FetchLaterResult를 반환합니다. 전송에 성공하면 본문과 헤더를 비롯한 전체 응답이 브라우저에서 무시됩니다.

API 사용자의 관점에서는 정확한 전송 시간이 알 수 없습니다.

새로운 오리진 트라이얼

Chrome 135에서는 다음과 같은 새로운 출처 무료 체험판을 선택할 수 있습니다.

관심분야 호출자

이 기능은 <button><a> 요소에 interesttarget 속성을 추가합니다. interesttarget 속성은 요소에 '관심' 동작을 추가합니다. 즉, 사용자가 요소에 '관심을 보일 때' 대상 요소에서 작업이 트리거됩니다. 작업에는 팝오버 표시와 같은 작업이 포함될 수 있습니다. 사용자 에이전트는 마우스로 요소 위로 마우스를 가져가거나, 키보드에서 특수 핫키를 누르거나, 터치 스크린에서 요소를 길게 누르는 등의 메서드를 사용하여 사용자가 요소에 '관심을 보일' 때를 감지합니다. 관심이 표시되거나 사라지면 타겟에서 InterestEvent이 실행되며, 팝오버의 경우 기본 작업인 팝오버 표시 및 숨기기가 실행됩니다.

서명 기반 무결성

이 기능은 웹 개발자에게 종속 항목의 출처를 확인하는 메커니즘을 제공하여 사이트의 종속 항목에 대한 신뢰의 기술적 기반을 만듭니다. 간단히 말해 서버는 Ed25519 키 쌍으로 응답에 서명할 수 있으며 웹 개발자는 사용자 에이전트가 특정 공개 키를 사용하여 서명을 확인하도록 요구할 수 있습니다. 이렇게 하면 콘텐츠 보안 정책에서 제공하는 URL 기반 검사와 하위 요소 무결성의 콘텐츠 기반 검사를 보완하는 데 도움이 됩니다.

지원 중단 및 삭제

이 버전의 Chrome에서는 아래에 나열된 지원 중단 및 삭제가 적용됩니다. ChromeStatus.com에서 예정된 지원 중단, 현재 지원 중단, 이전 삭제 목록을 확인하세요.

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

국제 언어 정보의 getter 지원 중단

Intl Locale Info API는 주 데이터 (한 주의 첫째 날, 주말 시작일, 주말 종료일, 첫 번째 주의 최소 일수)와 해당 언어에서 사용되는 텍스트 방향 시간 주기 같은 언어 정보를 노출하여 Intl.Locale 객체를 개선하는 3단계 ECMAScript TC39 제안서입니다. Chrome은 Chrome 99에서 구현을 출시했지만, 여러 getter를 함수로 이동하도록 제안서가 변경되었습니다. 지원 중단된 getter를 삭제하고 이름이 변경된 함수를 다시 실행해야 합니다.

이 Chrome 출시에서는 세 가지 기능이 삭제됩니다.

지원 중단된 navigator.xr.supportsSession 메서드 삭제

navigator.xr.supportsSession는 TAG로부터 API 형식에 관한 의견을 받은 후 2019년 9월에 WebXR 사양에서 navigator.xr.isSessionSupported 메서드로 대체되었습니다. 이후 Chrome에서 지원 중단된 것으로 표시되어 개발자를 업데이트된 API로 리디렉션하는 콘솔 경고가 표시됩니다. 이 호출의 사용 빈도는 매우 낮으며 WebXR 콘텐츠를 빌드하는 데 사용되는 모든 주요 프레임워크가 최신 호출을 사용하도록 업데이트된 것으로 확인되었습니다.

NavigateEvent canTransition 속성 삭제

Chrome 108에서 NavigateEventtransitionWhile() 메서드와 canTransition 속성이 새로운 intercept() 메서드와 canIntercept 속성으로 대체되었습니다. 이때 transitionWhile() 메서드가 삭제되었습니다. 하지만 canTransition 속성을 삭제하는 것을 잊어버렸습니다. 대신 canIntercept의 별칭으로 그대로 두었습니다. Chrome 135에서는 이 문제를 수정하고 canTransition를 삭제할 예정입니다. canTransition의 모든 사용은 동작이 변경되지 않고 canIntercept로 대체할 수 있습니다.

WebGPU 한도 maxInterStageShaderComponents 삭제

다음과 같은 요인으로 인해 maxInterStageShaderComponents 한도가 삭제됩니다.

  • maxInterStageShaderVariables 중복: 이 한도는 이미 셰이더 단계 간에 전달되는 데이터의 양을 제어하는 유사한 목적으로 사용됩니다.
  • 사소한 불일치: 두 한도가 계산되는 방식에는 약간의 차이가 있지만 이러한 차이는 사소하며 maxInterStageShaderVariables limit 내에서 효과적으로 관리할 수 있습니다.
  • 간소화: maxInterStageShaderComponents를 삭제하면 셰이더 인터페이스가 간소화되고 개발자의 복잡성이 줄어듭니다. 두 가지 별도의 한도를 관리하는 대신 (둘 다 동시에 적용되지만 미묘한 차이가 있음) 더 적절한 이름을 지정하고 포괄적인 maxInterStageShaderVariables에 집중할 수 있습니다.