Chrome 147

안정화 버전 출시일: 2026년 4월 7일

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

CSS 및 UI

요소 범위 뷰 전환

임의의 HTML 요소에서 element.startViewTransition()를 노출합니다. 이 요소는 전환의 범위를 설정합니다. 즉, 전환 의사 요소는 상위 클립과 변환의 영향을 받으며 별도의 요소에 대한 여러 전환이 동시에 실행될 수 있습니다.

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

CSS contrast-color()

이 함수는 접근성을 위한 대비 요구사항을 충족하는 데 도움이 됩니다.

색상 값이 필요한 CSS의 어느 곳에서나 contrast-color() 함수를 사용할 수 있습니다. 색상 값 인수를 사용하고 색상 인수와 가장 높은 대비를 제공하는 'black' 또는 'white'를 반환합니다.

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

타임라인 이름이 지정된 범위 scroll

이 기능은 기존 entry, exit, cover, contain 세트에 scroll 범위를 추가하여 뷰 타임라인의 명명된 범위 세트를 확장합니다.

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

CSS border-shape 속성

CSS border-shape 속성을 사용하면 다각형, 원, shape()과 같은 임의의 모양으로 직사각형이 아닌 테두리를 만들 수 있습니다.

border-shapeclip-path와 동일한 모양을 허용하지만 근본적으로 다릅니다. border-shape는 테두리의 모양을 정의하고, 테두리를 꾸미고, 내부만 클리핑합니다.

border-shape에는 두 가지 변형이 있습니다. 하나는 도형을 획으로 표시하고 다른 하나는 두 도형 사이를 채웁니다.

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

CSSPseudoElement 인터페이스

CSSPseudoElement 인터페이스는 JavaScript의 의사 요소를 나타냅니다.

CSSPseudoElementElement.pseudo(type)에서 반환되며, 여기서 type은 현재 ::after, ::before 또는 ::marker입니다. CSSPseudoElement는 의사 요소를 나타내는 프록시 객체입니다. 가상 요소와 달리 CSSPseudoElement는 항상 존재합니다.

CSSPseudoElement에는 다음과 같은 속성과 메서드가 있습니다.

  • type 속성은 의사 요소의 유형을 나타내는 문자열입니다.
  • element 속성은 의사 요소의 최종 원본 요소입니다.
  • parent 속성은 의사 요소의 원본 요소입니다 (중첩된 의사 요소의 경우 Element 또는 CSSPseudoElement).
  • pseudo(type) 메서드는 중첩된 가상 요소를 가져옵니다.

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

이벤트의 가상 타겟

이제 특정 이벤트에는 .pseudoTarget가 포함됩니다. 이는 CSSPseudoElement (상호작용이 의사 요소와 관련된 경우) 또는 null입니다.

이렇게 하면 이벤트 출처에 관한 더 구체적인 정보를 제공할 수 있습니다. 예를 들어 최종 원본 요소 (Event.target)뿐만 아니라 ::after 의사 요소도 클릭되었음을 나타냅니다. Event.target는 변경되지 않으므로 이벤트에는 의사 요소 상호작용에 관한 추가 정보만 있습니다.

이벤트는 UIEvent, AnimationEvent, TransitionEvent입니다.

mouseover, mouseout, mouseenter, mouseleavepointer* 대응 항목은 아직 지원되지 않습니다.

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

*-width*-style 속성 분리

Chrome 147은 border-width, outline-width, column-rule-width 속성의 동작에 관한 업데이트된 CSS 사양에 맞춰 조정됩니다. 이전에는 해당 border-style, outline-style 또는 column-rule-stylenone 또는 hidden로 설정된 경우 지정된 값과 관계없이 이러한 속성의 계산된 너비가 강제로 0px로 설정되었습니다.

이번 변경으로 border-width, outline-width, column-rule-width의 계산된 값은 *-style 속성과 관계없이 항상 작성자가 지정한 값을 반영합니다. 또한 outline-widthcolumn-rule-width의 확인된 값 (getComputedStyle()에서 반환됨)도 지정된 값을 반영합니다.

이번 변경으로 Chrome의 동작은 이미 이를 구현한 Firefox 및 WebKit의 방식과 일치하게 됩니다.

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

SVG <textPath> 요소에서 path 속성 지원

이 변경사항은 SVG <textPath> 요소에서 path 속성을 지원하도록 추가합니다. 이를 통해 개발자는 SVG 경로 데이터를 사용하여 텍스트 경로 지오메트리를 인라인으로 정의할 수 있으며 별도로 정의된 <path> 요소의 필요성이 줄어듭니다.

<textPath> 요소는 다음 규칙을 사용하여 텍스트 경로 지오메트리를 확인합니다.

  1. pathhref가 모두 있는 경우 path 속성에서 지오메트리가 확인됩니다.
  2. path 속성만 있고 성공적으로 파싱되면 인라인 경로 정의가 사용됩니다.
  3. path 속성이 없거나 파싱에 실패하고 href 속성이 제공되면 참조된 <path> 요소가 대체로 사용됩니다.
  4. 기존 href 전용 동작은 변경 없이 유지됩니다.

이 구현은 <textPath>path 속성에 관한 SVG 2 사양의 정의를 따릅니다. 해결 동작이 다른 브라우저 엔진과 일치하므로 상호 운용성과 표준 준수가 개선됩니다. 참고: <textPath>pathhref가 모두 지정된 경우 이제 SVG 2 사양에 따라 path가 우선 적용됩니다.

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

기기

WebXR 평면 감지

WebXR Plane Detection API를 사용하면 사이트에서 사용자의 환경에서 감지된 평면 집합을 가져올 수 있습니다. 이렇게 하면 개발자가 해야 하는 작업이 줄어들고 깊이 감지 WebXR 기능을 사용하는 것보다 더 강력합니다. 예를 들어 물체에 의해 가려진 벽과 같은 평면은 시스템이 벽의 경계를 인식하는 경우 여전히 완전히 표현될 수 있습니다. 깊이 지도는 벽을 보여주지만 벽 앞에 있는 물체로 인해 벽이 끊어져 벽의 전체 범위가 가려질 수 있습니다. 또한 기기가 이러한 라벨을 인식하고 사전 정의된 카테고리에 적합한 경우 시맨틱 라벨링 정보가 노출되어 세상에 관한 더 나은 지식을 제공합니다.

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

DOM

JSON 및 스타일 모듈 유형을 <link rel="modulepreload"> 대상으로 지원합니다. <link rel="modulepreload">는 이미 Chromium에서 지원되지만 (Chromestatus 기능 참고) 현재는 스크립트와 유사한 모듈 스크립트의 사전 로드만 지원합니다. 이 기능은 JSON 및 CSS 모듈 스크립트가 Chromium의 다른 곳에서는 지원되지만 <link rel="modulepreload"> 대상으로 지원되지 않기 때문에 발생하는 기능 격차를 해결합니다. <link rel="modulepreload" as="style" href="...">로 스타일 모듈을, <link rel="modulepreload" as="json" href="...">로 JSON 모듈을 미리 로드할 수 있습니다.

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

XSLT가 아닌 시나리오를 위한 Rust의 XML 파싱

XSLT 처리가 필요하지 않은 시나리오를 위해 Rust XML 파서를 구현합니다.

Rust XML 파서는 XML 파싱에서 메모리 손상 버그를 제거하여 보안을 개선합니다. libxml2 (C로 작성됨)의 사용을 안전한 대안으로 대체합니다.

XSLT가 지원 중단됩니다. 이 프로세스가 계속되는 동안 XSLT가 필요하지 않은 시나리오에서 안전한 Rust XML 파싱을 이미 사용할 수 있습니다.

버그 #466303347 추적 | ChromeStatus.com 항목

그래픽

WebXR 레이어

WebXR 레이어를 사용하면 몰입형 콘텐츠를 더 효율적으로 그릴 수 있습니다.

기본 색상 및 깊이 텍스처와 텍스처 배열을 지원할 뿐만 아니라 시스템 컴포지터가 관리하는 다양한 레이어 유형 (JavaScript와 반대)도 지원합니다.

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

자바스크립트

Math.sumPrecise

JavaScript에서 여러 값을 합산하는 메서드를 추가하는 TC39 제안을 구현합니다.

단순 합계보다 더 정확한 알고리즘을 사용하여 반복 가능한 항목의 값 합계를 반환하는 반복 가능한 항목을 사용하는 Math.sumPrecise 메서드를 추가합니다.

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

네트워크 / 연결

속성 Request.isReloadNavigation

읽기 전용 불리언 속성 isReloadNavigation를 Fetch API의 Request 인터페이스에 추가합니다. 이 속성은 현재 탐색 요청이 사용자 트리거 새로고침으로 시작되었는지 여부를 나타냅니다 (예: 새로고침 버튼, location.reload() 또는 history.go(0) 사용). 이 신호는 주로 서비스 워커의 FetchEvent 내에서 Request 객체에 노출됩니다.

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

성능

기기 메모리 API 한도 업데이트

기기 메모리 API의 가능한 값의 새로운 집합으로 업데이트:

  • Android: 1, 2, 4, 8
  • 기타: 2, 4, 8, 16, 32 이러한 값은 오래된 이전 값인 0.25, 0.5, 1, 2, 4, 8을 대체합니다.

이렇게 하면 이러한 값이 설정된 이후 기기 기능이 개선되었으므로 하단에서 지문 채취 위험이 줄어듭니다. 또한 개발자가 요청한 대로 고급 기기의 더 나은 사용과 세분화가 가능합니다. 자세한 내용은 기기 메모리 문제를 참고하세요.

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

로컬 네트워크 액세스 (LNA)

LNA에 관한 자세한 내용은 로컬 네트워크 액세스를 참고하세요.

서비스 워커의 로컬 네트워크 액세스 제한 WindowClient.navigate()

웹사이트가 로컬 네트워크 및 로컬 기기에 일방적으로 요청을 보내는 것을 방지하기 위해 최근에 로컬 네트워크 액세스 (LNA) 제한이 추가되었습니다. 이러한 제한사항은 서비스 워커가 시작한 가져오기 요청에 추가되었지만 서비스 워커가 WindowClient.navigate()를 통해 실행하는 탐색에는 추가되지 않았습니다.

이번 출시에서는 WindowClient.navigate() 호출에 LNA 제한을 추가하여 이 격차를 해소합니다. WindowClient를 탐색의 이니시에이터로 사용하여 탐색이 LNA 요청인지 확인합니다.

이는 탐색되는 WindowClient이 하위 프레임인 경우에만 적용됩니다. Chrome은 현재 기본 프레임 탐색에 LNA 제한을 적용하지 않습니다.

ChromeStatus.com 항목

WebTransport의 로컬 네트워크 액세스 제한

권한 메시지를 통해 관리되는 WebTransport를 사용하여 사용자의 로컬 네트워크로 요청을 보내는 기능을 제한합니다.

로컬 네트워크 요청은 공개 웹사이트에서 로컬 IP 주소나 루프백으로 전송되는 요청, 또는 로컬 웹사이트 (예: 인트라넷)에서 루프백으로 전송되는 모든 요청을 의미합니다. 웹사이트가 이러한 요청을 실행하는 기능을 수행하기 전에 권한을 요구하도록 제한하면 사이트가 이러한 요청을 통해 사용자의 로컬 네트워크를 지문으로 식별할 가능성이 줄어듭니다.

이 권한은 보안 컨텍스트로 제한됩니다.

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

WebSocket의 로컬 네트워크 액세스 제한

로컬 네트워크 액세스 (LNA) 제한이 WebSocket을 포함하도록 확장됩니다. 이제 로컬 주소에 대한 WebSockets 연결이 권한 프롬프트를 트리거합니다.

모든 현재 LNA 엔터프라이즈 정책은 LNA WebSockets 제한 (LocalNetworkAccessAllowedForUrls, LocalNetworkAccessBlockedForUrls, LocalNetworkAccessRestrictionsTemporaryOptOut)에 계속 적용됩니다.

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

분리형 웹 앱(IWA)

Web Printing API

이 API를 사용하면 분리형 웹 앱에서 프린터 관련 기능을 더 깊이 통합할 수 있습니다.

이 API는 분리형 웹 앱만 타겟팅하며 분리형 웹 앱 프로세스를 따릅니다.

이 API는 개발자가 로컬 프린터를 쿼리하고, 가장 적합한 프린터에 인쇄 작업을 제출하고, 인쇄 작업 옵션과 상태를 관리할 수 있는 JavaScript 메서드 집합을 제공합니다. 이러한 개념을 나타내기 위해 인터넷 인쇄 프로토콜 (IPP) 사양의 속성 이름과 의미 체계를 사용합니다.

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

오리진 트라이얼

교차 출처 iframe 사전 렌더링

선택 응답 헤더를 사용하여 교차 출처 iframe을 사전 렌더링합니다.

이제 브라우저는 최상위 프레임의 HTTP 응답에 Supports-Loading-Mode: prerender-cross-origin-frames가 포함된 경우 모든 교차 출처 프레임을 사전 렌더링합니다.

오리진 트라이얼 | 버그 #440387014 추적 | ChromeStatus.com 항목 | 사양

자동 완성 이벤트

자동 완성은 매일 수백만 명의 사용자의 불편함을 줄여주는 핵심 웹 기능입니다. 하지만 여러 구현에서 동적 양식과 함께 자동 완성이 안정적으로 작동하도록 하려면 상당한 노력이 필요합니다.

이 기능은 개발자가 자동 완성된 데이터에 맞게 양식을 수정하고 수정이 완료되면 브라우저에 알릴 수 있는 autofill 이벤트를 추가합니다.

오리진 트라이얼 | 버그 추적 #466333215 | ChromeStatus.com 항목 | 사양

WebNN

WebNN을 사용하면 웹 애플리케이션과 프레임워크가 머신러닝을 위한 기본 운영체제 서비스와 사용자 컴퓨터에서 사용할 수 있는 기본 하드웨어 기능을 활용할 수 있습니다. 이를 통해 웹에서 일관되고 효율적이며 안정적인 ML 환경을 구현할 수 있습니다.

오리진 트라이얼 | 버그 #40206287 추적 | ChromeStatus.com 항목 | 사양

지원 중단 및 삭제

SVG 생성을 위한 인라인 XSLT 삭제

특수하게 제작된 XML 파일에는 일반 XML 데이터를 SVG 파일로 변환하는 XSL 스타일시트가 포함될 수 있습니다.

예를 들어 gist.github.com을 참고하세요.

이는 최근 도입된 사용 카운터 XSLPIInSVGImage (UseCounter ID 5777) 및 XSLPIInSVGStandaloneDoc (UseCounter ID 5778)에 따라 웹에서 사실상 존재하지 않는 것으로 간주되는 XSLT 처리의 특수한 사례입니다. XSLT가 완전히 단계적으로 중단되기 전에 이를 지원 중단하고 삭제하고자 합니다.

이는 Rust 기반 XML 파서의 실험적 테스트와 동기화되어 출시됩니다. Chrome 147에서 즉시 100% 로 배포되지는 않습니다.

버그 #482223009 추적 | ChromeStatus.com 항목