게시일: 2025년 3월 5일
별도로 명시되지 않는 한 다음 변경사항은 Android, ChromeOS, Linux, macOS, Windows용 최신 Chrome 베타 채널 출시에 적용됩니다. 여기에 나열된 기능에 관해 자세히 알아보려면 제공된 링크 또는 ChromeStatus.com의 목록을 참고하세요. Chrome 135는 2025년 3월 5일 기준으로 베타 버전입니다. 데스크톱용은 Google.com에서, Android용은 Google Play 스토어에서 최신 버전을 다운로드할 수 있습니다.
CSS 및 UI
이번 출시에는 13개의 새로운 CSS 및 UI 기능이 추가되었습니다.
앵커 위치 기억된 스크롤 오프셋
_기억된 스크롤 오프셋_ 개념에 대한 지원을 추가합니다. 위치가 지정된 요소에 기본 앵커가 있고 한쪽 가장자리에 이 앵커에 연결되어 있으며 다른 쪽 가장자리에 원래 포함된 블록에 연결되어 있는 경우 요소의 크기를 조정할 때 스크롤 오프셋이 고려됩니다. 즉, 문서가 특정 스크롤 오프셋에서 스크롤될 때 고정된 요소에 모든 표시 공간 (position-area 사용)을 사용할 수 있습니다. 문서가 스크롤될 때마다 레이아웃 (요소 크기 조절)을 방지하기 위해 브라우저는 항상 현재 스크롤 오프셋을 사용하는 대신 기억된 스크롤 오프셋을 사용합니다. 기억된 스크롤 오프셋은 위치가 지정된 요소가 처음 표시되는 위치 또는 다른 위치 옵션(position-try-fallbacks)이 선택된 경우인 앵커
재계산 지점에서 업데이트됩니다.
CSS 비활성
요소를 비활성 상태로 만들면 페이지 내 검색에서 포커스를 맞추고, 수정하고, 선택하고, 검색할 수 있는지 여부에 영향을 미칩니다. 또한 접근성 트리에 표시되는지 여부에도 영향을 미칩니다. interactivity 속성은 요소와 평면 트리 하위 요소 (텍스트 실행 포함)가 비활성 상태인지 여부를 지정합니다. interactivity 속성은 auto 또는 inert의 두 값 중 하나를 허용합니다.
논리적 오버플로 속성
overflow-inline 및 overflow-block CSS 속성을 사용하면 쓰기 모드를 기준으로 인라인 및 블록 방향으로 오버플로를 설정할 수 있습니다. 가로 쓰기 모드에서 overflow-inline은 overflow-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로 스타일이 지정됩니다. 선택기를 사용하면 4가지 논리적 방향(block-start, block-end, inline-start, inline-end)과 4가지 물리적 방향 (up, down, left, right)으로 버튼을 정의할 수 있습니다.
::scroll-marker 및 ::scroll-marker-group
스크롤 컨테이너에 ::scroll-marker 및 ::scroll-marker-group을 추가합니다.
이러한 유사 요소를 사용하면 스크롤 컨테이너 내의 연결된 모든 항목에 포커스를 맞출 수 있는 마커 집합을 만들 수 있습니다.
중첩된 유사 요소 스타일 지정
다른 유사 요소 내에 중첩된 유사 요소의 스타일을 지정할 수 있습니다.
지금까지 ::before::marker 및 ::after::marker에 대한 지원이 정의되었으며 향후 ::column::scroll-marker가 지원될 예정입니다.
:visited 링크 기록 파티셔닝
사용자의 방문 기록 유출을 방지하기 위해 앵커 요소는 이전에 이 최상위 사이트 및 프레임 출처에서 클릭된 경우에만 :visited 스타일로 지정됩니다. 이전에 이 사이트와 프레임에서 클릭된 링크에 대해서만 스타일을 지정하면 더 이상 사이트에 사용자에 관한 새로운 정보를 제공하지 않으므로 :visited 링크 스타일 지정 정보를 얻기 위해 개발된 여러 부채널 공격은 이제 더 이상 유용하지 않습니다.
자체 링크는 예외입니다. 사이트 자체 페이지로 연결되는 링크는 이전에 이 정확한 최상위 사이트 및 프레임 출처에서 클릭되지 않았더라도 :visited 스타일로 지정할 수 있습니다. 이 예외는 최상위 프레임과 동일한 출처인 최상위 프레임 또는 하위 프레임에서만 사용 설정됩니다. 사이트에서 사용자가 방문한 하위 페이지를 이미 알고 있으므로 새로운 정보가 노출되지 않기 때문에 개인 정보 보호 이점은 여전히 달성됩니다. 이는 사용자 환경을 개선하기 위해 커뮤니티에서 요청한 예외입니다.
보간 진행률 함수 표기법: CSS *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 이벤트가 디스패치되는 동안 포인터가 캡처되면 UI 이벤트 사양에 따라 pointerdown 및 pointerup 이벤트의 가장 가까운 공통 상위 요소 대신 캡처된 타겟에 click 이벤트가 디스패치됩니다. 캡처되지 않은 포인터의 경우 click 타겟은 변경되지 않습니다.
Float16Array
Float16Array 유형화된 배열을 추가합니다. 숫자 값은 Float16Array 인스턴스에 쓸 때 IEEE fp16으로 반올림됩니다.
탐색 시작자를 HTTP 캐시 파티션 키에 통합
최상위 탐색과 관련된 교차 사이트 유출 공격을 완화하기 위해 Chrome의 HTTP 캐시 키 지정 체계가 is-cross-site-main-frame-navigation 불리언을 포함하도록 업데이트되었습니다. 특히 공격자가 특정 페이지로의 최상위 탐색을 시작한 다음 로드 타이밍을 통해 민감한 정보를 추론하기 위해 페이지에서 로드되는 것으로 알려진 리소스로 이동할 수 있는 교차 사이트 공격을 방지합니다. 이 변경사항은 악성 사이트에서 탐색을 사용하여 사용자가 이전에 특정 사이트를 방문했는지 추론하는 것을 방지하여 개인 정보 보호를 개선합니다.
HSTS 추적 방지
HSTS 캐시를 통해 서드 파티의 사용자 추적을 완화합니다.
이 기능은 최상위 탐색의 HSTS 업그레이드만 허용하고 하위 리소스 요청의 HSTS 업그레이드는 차단합니다. 이렇게 하면 서드 파티 사이트에서 HSTS 캐시를 사용하여 웹에서 사용자를 추적하는 것이 불가능해집니다.
호출자 명령어: command 및 commandfor 속성
command 및 commandfor 속성을 사용하면 버그를 줄이고 상호작용에 필요한 JavaScript의 양을 간소화하면서 <button> 요소의 버튼에 동작을 더 접근성 있고 선언적인 방식으로 할당할 수 있습니다.
및 command 속성이 있는 버튼은 클릭, 터치 또는
키 누름으로 실행될 때 CommandEvent에서 참조하는 요소에 commandfor를 디스패치하며 대화상자 및 팝오버 열기와 같은 기본 동작이 있습니다.commandfor
푸시 결제를 지원하도록 rel="facilitated-payment" 연결
브라우저가 등록된 결제 클라이언트에 보류 중인 푸시
결제를 알리도록 하는 힌트로 <link rel="facilitated-payment" href="...">에 대한 지원을 추가합니다.
NavigateEvent sourceElement 속성
탐색이 요소 (즉, 링크 클릭 또는 양식 제출)에 의해 시작되면 NavigateEvent의 sourceElement 속성이 시작 요소를 반환합니다.
NotRestoredReasons API 이유 이름 변경
NotRestoredReasons API는 표준화된 이름에 맞게 일부 이유 텍스트를 변경합니다. 이러한 이유를 모니터링하는 개발자는 이유 텍스트가 변경된 것을 확인할 수 있습니다.
기기 내 Web Speech API
서비스 워커 클라이언트 URL에서 history.pushState 변경사항 무시
history.pushState() 및 기타 유사한 기록 API를 사용하여 문서 URL 변경사항을 무시하도록 서비스 워커 Client.url 속성을 수정합니다. Client.url 속성은 이러한 변경사항을 무시하는 HTML 문서의 생성 URL이 되도록 설계되었습니다.
SVGAElement의 rel 및 relList 속성 지원
SVG 2.0의 SVGAElement 인터페이스를 사용하면 HTML 앵커 요소와 유사하게 <a> 요소
를 조작할 수 있습니다. rel 및 relList 속성을 지원하면 개발자의 보안 및 개인 정보 보호가 강화됩니다. HTML 앵커 요소와의 이러한 정렬은 웹 기술 전반에서 일관성과 사용 편의성을 보장합니다.
RTC 인코딩된 프레임의 타임스탬프
이 기능은 RTCPeerConnection을 통해 전송되는 WebRTC 인코딩된 프레임에 있는 일부 타임스탬프를 웹에 노출하는 것으로 구성됩니다. 문제의 타임스탬프는 다음과 같습니다.
- 캡처 타임스탬프: 프레임이 원래 캡처된 타임스탬프
- 타임스탬프 수신: 프레임이 수신된 타임스탬프
'loaded' 및 'total'에 double 유형을 사용하도록 ProgressEvent 업데이트
ProgressEvent에는 진행률을 나타내는 loaded 및 total 속성이 있으며 이제 유형은 unsigned long long입니다. 이 기능을 사용하면 이러한 두 속성의 유형이 double로 변경되어 개발자가 값을 더 효과적으로 제어할 수 있습니다. 예를 들어 이제 개발자는 total이 1이고 loaded가 0에서 1로 점진적으로 증가하는 ProgressEvent를 만들 수 있습니다. 이는 max 속성이 생략된 경우 <progress> HTML
요소의 기본 동작과 일치합니다.
fetchLater API
fetchLater() API는 지연된 가져오기를 요청하는 JavaScript API로, 특히 페이지 수명 종료 시 더 안정적인 비콘에 유용합니다.
문서에서 호출되면 지연된 요청이 브라우저에 의해 보류 중 상태로 대기열에 추가되며 다음 조건 중 가장 빠른 조건에 의해 호출됩니다.
문서가 삭제됩니다. 사용자가 지정한 시간 후 개인 정보 보호를 위해 남은 시간과 관계없이 문서가 bfcache에 들어가면 보류 중인 모든 요청이 플러시됩니다. 브라우저에서 전송할 시간이라고 판단합니다.
API는 지연된 요청이 전송되었는지 여부를 나타내도록 업데이트할 수 있는 불리언 필드 activated가 포함된 FetchLaterResult를 반환합니다. 전송에 성공하면 본문과 헤더를 비롯한 전체 응답이 브라우저에서 무시됩니다.
API 사용자의 관점에서 정확한 전송 시간은 알 수 없습니다.
새 오리진 트라이얼
Chrome 135에서는 다음 새 오리진 트라이얼을 선택할 수 있습니다.
관심 호출자
이 기능은 interesttarget 속성을 <button> 및 <a>
요소에 추가합니다. interesttarget 속성은 요소에 '관심' 동작을 추가하여 사용자가 요소에 '관심을 보일' 때 타겟 요소에서 작업이 트리거되도록 합니다. 작업에는 팝오버 표시와 같은 작업이 포함될 수 있습니다. 사용자 에이전트는 마우스로 요소 위로 마우스를 가져가거나, 키보드에서 특수 단축키를 누르거나, 터치스크린에서 요소를 길게 누르는 등의 방법을 사용하여 사용자가 요소에 '관심을 보이는' 시점을 감지합니다.
관심이 표시되거나 사라지면 타겟에서 InterestEvent가 실행되며, 팝오버의 경우 팝오버를 표시하고 숨기는 기본 작업이 있습니다.
서명 기반 무결성
이 기능은 웹 개발자에게 의존하는 리소스의 출처를 확인할 수 있는 메커니즘을 제공하여 사이트 종속 항목에 대한 신뢰의 기술적 기반을 만듭니다. 간단히 말해 서버는 Ed25519 키 쌍으로 응답에 서명할 수 있으며 웹 개발자는 사용자 에이전트가 특정 공개 키를 사용하여 서명을 확인하도록 요구할 수 있습니다. 이는 한편으로는 콘텐츠 보안 정책에서 제공하는 URL 기반 검사와 다른 한편으로는 하위 리소스 무결성의 콘텐츠 기반 검사에 유용한 추가 기능을 제공합니다.
지원 중단 및 삭제
이 버전의 Chrome에는 아래에 나열된 지원 중단 및 삭제가 도입되었습니다. 계획된 지원 중단, 현재 지원 중단, 이전 삭제 목록은 ChromeStatus.com을 참고하세요.
이 Chrome 출시에서는 한 가지 기능이 지원 중단됩니다.
Intl Locale Info의 getter 지원 중단
Intl Locale Info API는 주 데이터 (한 주의 첫째 날, 주말 시작일, 주말 종료일, 첫 번째 주의 최소 일수)와 해당 언어에서 사용되는 텍스트 방향 시간 주기 같은 언어 정보를 노출하여 Intl.Locale 객체를 개선하는 3단계 ECMAScript TC39 제안서입니다. Chrome은 Chrome 99에서 구현을 완료했지만 제안이 변경되어 여러 getter가 함수로 이동했습니다. Google에서 지원 중단된 getter를 삭제하고 이름이 변경된 함수를 다시 실행해야 합니다.
이 Chrome 출시에서는 세 가지 기능이 삭제됩니다.
지원 중단된 navigator.xr.supportsSession 메서드 삭제
2019년 9월에 TAG로부터 API 형태에 관한 의견을 받은 후 WebXR 사양에서 navigator.xr.supportsSession이 navigator.xr.isSessionSupported 메서드로 대체되었습니다. 이후 Chrome에서 지원 중단됨으로 표시되어 개발자를 업데이트된 API로 리디렉션하는 콘솔 경고가 표시됩니다. 호출 사용량이 매우 적으며 WebXR 콘텐츠를 빌드하는 데 사용되는 모든 주요 프레임워크가 최신 호출을 사용하도록 업데이트된 것으로 확인되었습니다.
NavigateEvent canTransition 속성 삭제
Chrome 108에서는 NavigateEvent의 transitionWhile() 메서드와 canTransition 속성이 새 intercept() 메서드와 canIntercept 속성으로 대체되었습니다. 당시 transitionWhile() 메서드가 삭제되었습니다. 그러나 canTransition 속성을 삭제하는 것을 잊었습니다. 대신 canIntercept의 별칭으로 남겨 두었습니다. Chrome 135에서는 이 문제를 해결하고 canTransition을 삭제합니다. canTransition의 모든 사용은 동작 변경 없이 canIntercept로 대체할 수 있습니다.
WebGPU 한도 maxInterStageShaderComponents 삭제
maxInterStageShaderComponents 한도는 다음과 같은 여러 요인으로 인해 삭제됩니다.
maxInterStageShaderVariables와의 중복: 이 한도는 이미 셰이더 단계 간에 전달되는 데이터의 양을 제어하는 유사한 용도로 사용됩니다.- 사소한 불일치: 두 한도가 계산되는 방식에는 약간의 차이가 있지만 이러한 차이는 사소하며
maxInterStageShaderVariables limit내에서 효과적으로 관리할 수 있습니다. - 간소화:
maxInterStageShaderComponents를 삭제하면 셰이더 인터페이스가 간소화되고 개발자의 복잡성이 줄어듭니다. 동시에 적용되지만 미묘한 차이가 있는 두 개의 별도 한도를 관리하는 대신 더 적절한 이름과 포괄적인maxInterStageShaderVariables에 집중할 수 있습니다.