Chrome 138

안정화 버전 출시일: 2025년 6월 24일

별도로 명시되지 않는 한 다음 변경사항은 Android, ChromeOS, Linux, macOS, Windows용 Chrome 138 안정화 채널 버전에 적용됩니다.

CSS 및 UI

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

abs(A) 함수는 하나의 계산 A를 포함하며 입력과 동일한 유형으로 A의 절대값을 반환합니다. A의 숫자 값이 양수 또는 0⁺인 경우 A를 다시 반환하고, 그렇지 않은 경우 -1 * A를 반환합니다.

sign(A) 함수는 계산 A를 하나 포함하며, A의 숫자 값이 음수이면 -1을, 양수이면 +1을, 0⁺이면 0⁺을, 0⁻이면 0⁻을 반환합니다. 반환 유형은 입력 계산 유형과 일치하는 <number>입니다.

MDN 문서:abs() | 버그 추적 #40253181 | ChromeStatus.com 항목 | 사양

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

progress() 함수 표기법은 두 계산 (진행률 시작 값과 진행률 종료 값) 사이의 한 계산(진행률 값) 위치를 나타내는 <number> 값을 반환합니다. progress() 함수는 수학 함수입니다.

버그 #40944203 추적 | ChromeStatus.com 항목 | 사양

CSS sibling-index()sibling-count()

sibling-index()sibling-count() 함수는 CSS 속성 값에서 정수로 사용하여 형제 간의 위치 또는 총 형제 수를 기준으로 요소를 스타일 지정할 수 있습니다. 이러한 함수는 정수 값으로 직접 사용할 수 있지만 calc() 표현식 내에서 사용하는 것이 더 흥미롭습니다.

버그 #40282719 추적 | ChromeStatus.com 항목 | 사양

CSS stretch 크기 조정 키워드

요소가 포함 블록의 사용 가능한 공간을 정확하게 채우도록 허용하는 CSS 크기 조정 속성 (예: widthheight)의 키워드입니다. 결과 크기가 box-sizing로 표시된 상자 대신 요소의 여백 상자에 적용된다는 점을 제외하면 '100%'와 유사합니다. 이 키워드를 사용하면 요소가 여백을 유지하면서도 최대한 커질 수 있습니다. -webkit-fill-available의 접두사가 없는 버전입니다.

버그 #41253915 추적 | ChromeStatus.com 항목 | 사양

OS 수준 글꼴 크기를 위한 CSS env 변수

사용자가 선호하는 글꼴 크기를 CSS에 노출합니다. 이 기능이 없으면 페이지에서 사용자가 운영체제의 환경설정을 사용하여 선호하는 글꼴 크기를 변경했는지 감지하는 것이 실용적이지 않습니다. 이 CSS 환경 변수는 사용자가 선택한 비율을 반영합니다.

버그 #397737223 추적 | ChromeStatus.com 항목 | 사양

기기

Android의 블루투스를 통한 웹 시리얼

이 기능을 사용하면 웹페이지와 웹 앱이 Android 기기에서 블루투스를 통해 직렬 포트에 연결될 수 있습니다.

이제 Android용 Chrome에서 블루투스 RFCOMM을 통한 Web Serial API를 지원합니다. 다른 플랫폼의 기존 엔터프라이즈 정책 (DefaultSerialGuardSetting, SerialAllowAllPortsForUrls, SerialAllowUsbDevicesForUrls, SerialAskForUrls, SerialBlockedForUrls)은 Android의 future_on 상태에서 사용 설정됩니다. 기능이 사용 설정된 후에는 SerialAllowUsbDevicesForUrls를 제외한 모든 정책이 사용 설정됩니다. SerialAllowUsbDevicesForUrls는 Android에서 유선 직렬 포트에 대한 시스템 수준 지원을 제공하게 되면 향후 출시에서 사용 설정됩니다.

버그 #375245353 추적 | ChromeStatus.com 항목 | 사양

Viewport Segments Enumeration API

Viewport Segments API를 사용하면 개발자가 폴더블 기기를 타겟팅하도록 웹 레이아웃을 조정할 수 있습니다. 표시 영역 세그먼트는 논리적으로 분리된 표시 영역의 위치와 크기를 정의합니다. 뷰포트 세그먼트는 뷰포트가 구분선 역할을 하는 하나 이상의 하드웨어 기능 (예: 별도 디스플레이 간의 폴드 또는 힌지)으로 분할될 때 생성됩니다. 세그먼트는 개발자가 논리적으로 별개로 취급할 수 있는 뷰포트 영역입니다.

버그 #1039050 추적 | ChromeStatus.com 항목 | 사양

자바스크립트

QuotaExceededErrorDOMException 파생 인터페이스로 업데이트

이전에는 웹 플랫폼에서 할당량을 초과한 시점을 알려주려고 할 때 특정 name 속성이 QuotaExceededError로 설정된 DOMException를 사용했습니다. 하지만 이렇게 하면 추가 정보를 전달할 수 없습니다.

이렇게 하면 내장 DOMException 이름 목록에서 'QuotaExceededError'가 삭제되고 대신 내장 DOMException 목록에서 클래스 이름 QuotaExceededError이 생성되며 추가 선택적 속성 quotarequested이 있습니다. 'QuotaExceededError' DOMException를 발생시키는 사양의 모든 인스턴스가 QuotaExceededError를 발생시키도록 업그레이드할 것을 제안합니다. 현재 이러한 사양은 quotarequested 속성을 기본값인 null로 유지하지만, 사용 사례에 유용하고 개인 정보 유출이 아닌 경우 결국 해당 데이터를 포함하도록 업그레이드될 수 있습니다.

ChromeStatus.com 항목 | 사양

Web API

Translator API

웹페이지에 언어 번역 기능을 제공하는 JavaScript API입니다. 사용자에게 언어 번역을 제공하는 브라우저가 점점 늘어나고 있으며, 이러한 번역 기능은 웹 개발자에게도 유용할 수 있습니다. 특히 브라우저의 기본 제공 번역 기능을 사용할 수 없는 경우에 유용합니다. 엔터프라이즈 정책 (GenAILocalFoundationalModelSettings)을 사용하면 기본 모델 다운로드를 사용 중지할 수 있으며, 이 경우 해당 API는 사용할 수 없게 됩니다.

MDN 문서 | 버그 #322229993 추적 | ChromeStatus.com 항목 | 사양

Language Detector API

텍스트의 언어를 감지하고 신뢰도 수준도 함께 제공하는 JavaScript API입니다.

번역을 보완하는 데 있어 언어 감지는 매우 중요한 요소입니다. 예를 들어 알 수 없는 언어로 된 사용자의 입력 데이터를 지정된 도착어로 번역하는 등, 번역 기능과 함께 활용할 수 있습니다. 오늘날 많은 브라우저가 이미 언어 감지 기능을 갖추고 있으며, Google은 번역 API를 보완하는 JavaScript API를 통해 웹 개발자에게 이러한 기능을 제공하고자 합니다. 엔터프라이즈 정책 (GenAILocalFoundationalModelSettings)을 사용하면 기본 모델 다운로드를 사용 중지할 수 있으며, 이 경우 해당 API는 사용할 수 없게 됩니다.

MDN 문서 | ChromeStatus.com 항목 | 사양

Summarizer API

Summarizer API는 입력 텍스트의 요약을 생성하는 JavaScript API로, AI 언어 모델을 기반으로 합니다. 브라우저와 운영체제가 언어 모델에 액세스해야 하는 경우가 점점 늘고 있습니다. 이 내장 모델을 공개함으로써 모든 웹사이트는 자체적으로 수 기가바이트에 달하는 언어 모델을 다운로드하거나 입력 텍스트를 서드 파티 API로 전송할 필요가 없어집니다. 특히 summarizer API는 다양한 사용 사례 (GitHub)의 입력을 요약하기 위해 언어 모델과 상호작용하는 높은 수준의 API를 공개하며, 이는 특정 언어 모델에 종속되지 않는 방식입니다. 엔터프라이즈 정책(GenAILocalFoundationalModelSettings)을 사용하면 기본 모델 다운로드를 사용 중지할 수 있으며, 이 경우 해당 API는 사용할 수 없게 됩니다.

MDN 문서 | 버그 #351744634 추적 | ChromeStatus.com 항목 | 사양

직렬화 시 속성에서 <> 이스케이프

직렬화 시 속성 값에서 <>을 이스케이프합니다.

이렇게 하면 속성 값이 직렬화되고 다시 파싱된 후 시작 태그 토큰으로 해석될 때 발생하는 변이 XSS 공격의 위험이 완화됩니다.

ChromeStatus.com 항목 | 사양

비정상 종료 보고 API: is_top_levelvisibility_state

이 기능은 비정상 종료 보고서의 기본 보고 엔드포인트로 전송되는 비정상 종료 보고 API 본문에 is_top_levelvisibility_state 문자열 필드를 추가합니다.

ChromeStatus.com 항목 | 사양

재구독 시 pushsubscriptionchange 이벤트 실행

푸시 구독이 과거에 있었지만 권한 변경 (허용에서 거부/기본값으로)으로 인해 취소된 출처에 알림 권한이 다시 부여되면 서비스 워커에서 pushsubscriptionchange 이벤트를 발생시킵니다.

이벤트는 빈 oldSubscription 및 newSubscription으로 실행됩니다.

버그 #407523313 추적 | ChromeStatus.com 항목 | 사양

멀티미디어

WebCodecs에 동영상 프레임 방향 메타데이터 지원 추가

개발자가 방향이 있는 프레임 소스 (예: Android 카메라, 특정 미디어)를 사용할 수 있도록 WebCodecs의 다양한 동영상 관련 인터페이스에 rotation: intflip: bool 값을 도입합니다.

VideoFrame 인터페이스는 임의 회전 및 뒤집기로 VideoFrames를 만들고 VideoFrame 객체에서 이 정보에 액세스하는 기능을 확장합니다.

VideoDecoderConfig 객체는 디코딩된 VideoFrame 객체에서 자동으로 방출되는 회전 및 뒤집기 필드를 획득합니다.

VideoEncoder 클래스는 encode()에서 EncodedVideoChunkMetadata의 일부로 내보내진 VideoDecoderConfig로 회전 및 반전 정보를 전달하는 메커니즘을 획득합니다. encode()가 방향이 다른 프레임으로 호출되면 심각하지 않은 예외가 발생합니다. configure()은 허용된 방향을 재설정하는 데 사용할 수 있습니다.

버그 #40243431 추적 | ChromeStatus.com 항목 | 사양

성능

prefetchCacheprerenderCacheClear-Site-Dataheader에 추가

개발자가 사전 렌더링 및 사전 가져오기 캐시를 타겟팅하여 삭제할 수 있도록 지원하는 Clear-Site-Data 헤더의 두 가지 새로운 값: "prefetchCache""prerenderCache"

추적 버그 #398149359 | ChromeStatus.com 항목 | 사양

추측 규칙: target_hint 필드

이를 통해 개발자가 target_hint 필드를 지정할 수 있도록 추측 규칙 구문이 확장됩니다.

이 필드는 사전 렌더링된 페이지가 최종적으로 활성화될 탐색 가능한 타겟을 나타내는 힌트를 제공합니다. 예를 들어 _blank가 힌트로 지정되면 window.open()으로 열린 탐색 가능한 페이지에 대해 사전 렌더링된 페이지가 활성화될 수 있습니다. 이 필드는 프리패치에는 영향을 미치지 않습니다.

사양에서는 이 필드가 탐색 가능한 타겟 이름 또는 키워드로 유효한 문자열을 값으로 허용하지만 이 출시에서는 "_self" 또는 "_blank" 문자열 중 하나만 지원합니다. 힌트를 지정하지 않으면 "_self"을 지정한 것과 같이 처리됩니다.

버그 #40234240 추적 | ChromeStatus.com 항목 | 사양

보안

스크립트 무결성 정책

하위 리소스 무결성 (SRI)을 사용하면 개발자가 로드하려는 애셋이 실제로 로드되는 애셋인지 확인할 수 있습니다. 하지만 개발자가 모든 스크립트가 SRI를 사용하여 검증되었는지 확인할 수 있는 방법은 현재 없습니다.

Integrity-Policy 헤더를 사용하면 개발자가 특정 유형의 모든 리소스가 무결성 검사를 받아야 한다고 어설션할 수 있습니다. 무결성 메타데이터 없이 해당 유형의 리소스를 로드하려고 하면 시도가 실패하고 위반 보고서가 트리거됩니다.

ChromeStatus.com 항목 | 사양

서비스 워커

Speculation Rules Prefetch에 대한 ServiceWorker 지원

이 기능을 사용하면 ServiceWorker가 제어하는 미리 가져오기, 즉 Service Worker가 제어하는 URL에 대한 추측 규칙 미리 가져오기가 사용 설정됩니다. 이전에는 제어 서비스 워커가 감지되면 미리 가져오기가 취소되었으므로 미리 가져오기 타겟으로의 후속 탐색은 미리 가져오기되지 않은 경로에서 제공되었습니다. 이 기능을 사용하면 미리 가져오기 요청이 서비스 워커의 가져오기 핸들러를 통과하고 서비스 워커 인터셉션이 포함된 응답이 미리 가져오기 캐시에 캐시되어 후속 탐색이 미리 가져오기 캐시에서 제공됩니다. 엔터프라이즈 정책 PrefetchWithServiceWorkerEnabled를 사용하여 이 기능을 제어하세요.

버그 #40947546 추적 | ChromeStatus.com 항목 | 사양

지원 중단 및 삭제

WebGPU: GPUAdapter isFallbackAdapter 속성 지원 중단

GPUAdapterInfo isFallbackAdapter 불리언 속성과 중복되는 WebGPU의 GPUAdapter isFallbackAdapter 불리언 속성이 지원 중단됩니다.

대체 어댑터 지원이 아직 어떤 브라우저에도 구현되지 않아 isFallbackAdapter 속성이 모두 거짓 값을 일관되게 반환하므로 이번 삭제는 사소한 호환성 문제입니다.

버그 #409259074 추적 | ChromeStatus.com 항목 | 사양

미디어 소스 확장 프로그램의 비동기 범위 삭제 지원 중단

미디어 소스 표준은 오래전에 비동기 범위 삭제와 관련된 모호하게 정의된 동작을 허용하지 않도록 변경되었습니다.

  • SourceBuffer.abort()은 더 이상 SourceBuffer.remove() 작업을 중단하지 않습니다.
  • MediaSource.duration 설정은 더 이상 현재 버퍼링된 미디어를 자를 수 없습니다.

이제 두 경우 모두 예외가 발생합니다.

Safari와 Firefox는 오랫동안 이 동작을 제공해 왔으며 Chromium은 이전 동작이 남아 있는 마지막 브라우저입니다. 카운터를 사용하여 페이지 로드의 약 0.001%~0.005% 가 지원 중단된 동작에 도달하는 것을 보여줍니다. 사이트에 이 문제가 발생하면 재생이 중단될 수 있습니다.

삭제를 취소하는 abort() 사용이 증가하고 있으므로 호환되지 않는 사용이 더 많이 표시되기 전에 이 지원 중단을 해결하는 것이 좋습니다.

버그 #40474569 추적 | ChromeStatus.com 항목 | 사양