월간 크롬 이슈 리포트 2022년 9월호


들어가며

프런트엔드 개발의 가장 큰 디펜던시인 크롬 브라우저의 주요 이슈를 Chrome Platform Status의 Roadmap과 한 달간 blink-dev 활동 요약을 기준으로 정리하여 공유한다.

💡M은 Milestone을 의미하며, M105은 105버전을 의미한다.

💡 웹 플랫폼 관련 이슈 위주로 다루며, 서비스에 영향이 크다고 판단되는 부분은 목차에 📌를 표시한다.

💡 표준화에 대한 웹 개발자의 의견은 Chrome Platform Status에 쓰인 내용을 그대로 인용했다.

목차

  1. M105

    • 비보안 컨텍스트에서의 WebSQL 지원 중단 및 제거
    • 고정된 요소에서 오버스크롤 방지
    • 📌 <custom-ident>에서 CSS default 키워드 사용 제한(제거)
    • 제스처 스크롤 DOM 이벤트 제거
  2. M106

    • 📌 쿠키의 domain 속성에 비 아스키 문자 지원 중단
    • window.PERSISTENT 할당 타입 지원 중단
    • HTTP/2 푸시 제거
    • CSS 'ic' 길이 단위 추가
    • 하위 리소스 SignedExchange prefetching에서 CORS 강제
    • Intl.NumberFormat v3 API
    • 직렬 포트 BYOB(Bring your own buffer) 리더 지원
    • -webkit-hyphenate-character CSS 프로퍼티 접두사 없이 지원
    • WebCodecs dequeue 이벤트
  3. M107

    • CSS grid-template 속성 보간
    • form 요소의 rel 속성
  4. Dev Trial

    • 📌 사용자 에이전트 문자열 축소(5단계)
  5. Origin Trial

    • 📌 DOM 타이머를 포함한 타이머들을 125Hz로 조정
  6. 지원 중단 및 제거 예정

    • Expect-CT(Certificate Transparency) HTTP 헤더 지원 중단
    • navigateEvent.restoreScroll() 제거
    • navigateEvent.transitionWhile() 제거
    • Event.path 지원 중단
    • 📌 document.domain setter 지원 중단
    • Web Payment API의 connect-src CSP(Content Security Policy) 정책 무시 기능 지원 중단
    • PaymentInstruments 지원 중단 및 제거
    • 컨텍스트 보안을 위한 공개 웹 사이트의 하위 리소스에 대한 "사설 네트워크 요청" 제한
    • "canmakepayment" 이벤트에서의 판매자 식별자 지원 중단

버전별 이슈 리스트

1. M105

비보안 컨텍스트에서의 WebSQL 지원 중단 및 제거

이슈

Web SQL Database 표준은 2009년 4월에 처음 제안되어 2010년 11월에 폐기되었다. Gecko는 이 기능을 구현하지 않았고 Webkit은 2019년부터 이 기능을 더 이상 지원하지 않는다. W3C는 웹 데이터베이스가 필요하면 Web Storage 또는 Indexed Database를 사용하라고 권장한다.

비보안 컨텍스트는 보안 컨텍스트가 아닌 컨텍스트를 말한다.

표준화

상기 제안에 대한 타 브라우저의 의견은 다음과 같다.

  • Firefox: 해당 없음
  • Safari: 배포 됨
  • 웹 개발자: 의견 없음

References

고정된 요소에서 오버스크롤 방지

이슈

사용자가 오버스크롤 시 페이지의 고정된 요소를 포함한 모든 요소가 응답해 이동한다. 오버스크롤 중 고정된 요소가 이동하는 것을 방지한다.

표준화

상기 제안에 대한 타 브라우저의 의견은 다음과 같다.

  • Firefox: 의견 없음
  • Safari: 의견 없음
  • 웹 개발자: 의견 없음

References

📌 <custom-ident>에서 CSS default 키워드 사용 제한(제거)

이슈

CSS에서 CSS 프로퍼티 값으로 사용하는(또는 앞으로 사용할 가능성이 있는) 키워드는 커스텀 식별자로 사용되어서는 안된다.

만약 이런 키워드를 커스텀 식별자로 사용할 수 있다면, 키워드를 모든 CSS 프로퍼티 값으로 추가하거나 커스텀 식별자를 허용하는 특정 CSS 프로퍼티 값으로 추가하여 콘텐츠를 손상시킬 수 있다.

표준화

상기 제안에 대한 타 브라우저의 의견은 다음과 같다.

References

제스처 스크롤 DOM 이벤트 제거

이슈

제스처 스크롤 DOM 이벤트인 'gesturescrollstart', 'gesturescrollupdate', 'gesturescrollend'는 비표준 API이다. 크롬 플러그인에서 사용하기 위해 추가되었으나, 의도하지 않았을 때도 발생하는 문제가 있다. 현재 이 API들은 전혀 동작하지 않는다.

표준화

상기 제안에 대한 타 브라우저의 의견은 다음과 같다.

  • Firefox: 해당 없음
  • Safari: 해당 없음
  • 웹 개발자: 의견 없음

References

2. M106

📌 쿠키의 domain 속성에 비 아스키 문자 지원 중단

이슈

RFC6265bis의 최신 사양에 맞춰 "domain" 속성에 아스키 문자가 아닌 글자가 포함된 쿠키를 거부한다. 예를 들어 Domain=éxample.com인 쿠키를 거부한다.

표준화

상기 제안에 대한 타 브라우저의 의견은 다음과 같다.

References

window.PERSISTENT 할당 타입 지원 중단

이슈

requestFileSystem()에 대해 window.PERSISTENT 할당 타입 지원을 중단한다.

표준화

상기 제안에 대한 타 브라우저의 의견은 다음과 같다.

  • Firefox: 의견 없음
  • Safari: 의견 없음
  • 웹 개발자: 의견 없음

References

HTTP/2 푸시 제거

이슈

서버에서 보낸 HTTP/2 푸시 스트림을 수신하고 메모리에 보관하며 사용하는 기능을 제거한다. 모든 HTTP/2 연결 시작 시 SETTINGS_ENABLE_PUSH = 0을 전송해서 HTTP/2 푸시 스트림을 전송하지 않도록 요청한다.

표준화

상기 제안에 대한 타 브라우저의 의견은 다음과 같다.

  • Firefox: 의견 없음
  • Safari: 의견 없음
  • 웹 개발자: 의견 없음

References

CSS 'ic' 길이 단위 추가

이슈

'水' (CJK water ideograph, U+6C34) 글자의 측정 값을 기준으로 상대적인 값을 표현하기 위한 CSS 길이 단위를 추가한다. CJK 글꼴의 전각 문자에 맞게 요소의 크기를 조정할 수 있다.

표준화

상기 제안에 대한 타 브라우저의 의견은 다음과 같다.

References

하위 리소스 SignedExchange prefetching에서 CORS 강제

이슈

교차 출처에서 prefetch된 하위 리소스 SignedExchanges에는 적절한 Access-Control-Allow-Origin 헤더가 있어야 한다. 해당 하위 리소스에 no-cors 모드를 사용하는 것은 좋은 선택이 아니다. 원칙적으로 새로운 기능은 no-cors를 사용해서는 안된다. 또한 ORB(Opaque Response Blocking)가 완전히 활성화되면 no-cors prefetch가 차단된다.

표준화

상기 제안에 대한 타 브라우저의 의견은 다음과 같다.

  • Firefox: 의견 없음
  • Safari: 의견 없음
  • 웹 개발자: 의견 없음

References

Intl.NumberFormat v3 API

이슈

기존 Intl.NumberFormat을 확장하는 새로운 TC39 ECMA402 3단계 제안으로 다음과 같은 새로운 기능들이 추가되었다.

  1. 숫자 범위를 포맷하기 위한 3개의 새로운 기능을 추가한다. formatRange, formatRangeToParts, selectRange
  2. 그룹 열거형
  3. 새로운 반올림/정밀(Precision) 옵션
  4. 반올림 우선순위
  5. 문자열을 십진수로 해석
  6. 반올림 모드
  7. Sign Display Negative(signDisplay: "negative" 옵션이 추가됨)

표준화

상기 제안에 대한 타 브라우저의 의견은 다음과 같다.

References

직렬 포트 BYOB(Bring your own buffer) 리더 지원

이슈

직렬 포트에서 제공하는 ReadableStream의 기본 데이터 소스를 읽기 가능한 바이트 스트림으로 업데이트한다. 개발자는 getReader({ mode: 'byob' })를 호출하여 BYOB 리더에 대한 지원을 감지할 수 있다. 이를 통해 개발자는 잠재적으로 메모리 부담을 줄일 수 있을 뿐만 아니라 스트림이 제공된 버퍼에 있는 공간보다 더 많은 공간을 반환할 수 없기 때문에 수신되는 데이터의 양을 제어할 수 있다.

데모

표준화

상기 제안에 대한 타 브라우저의 의견은 다음과 같다.

References

-webkit-hyphenate-character CSS 프로퍼티 접두사 없이 지원

이슈

-webkit-hyphenate-character 뿐만 아니라 접두사 없는 hyphenate-character도 지원한다.

데모

표준화

상기 제안에 대한 타 브라우저의 의견은 다음과 같다.

References

WebCodecs dequeue 이벤트

이슈

오디오 및 비디오 인코더, 디코더 인터페이스에 "dequeue"라는 이벤트를 추가한다.

dequeue 이벤트는 향상된 API 사용성을 제공하며 최근의 사양 변경사항을 준수한다.

표준화

상기 제안에 대한 타 브라우저의 의견은 다음과 같다.

  • Firefox: 긍정적
  • Safari: 의견 없음
  • 웹 개발자: 매우 긍정적

References

3. M107 (dev)

CSS grid-template 속성 보간

이슈

CSS 그리드에서 grid-template-columnsgrid-template-rows 속성을 통해 개발자는 각 라인 이름을 정의하고 그리드 열과 행의 크기를 추적할 수 있다. 이런 속성에 대한 보간을 지원하면 그리드 레이아웃이 애니메이션이나 트랜지션의 중간에 끊기지 않고 원활하게 전환될 수 있다.

표준화

상기 제안에 대한 타 브라우저의 의견은 다음과 같다.

  • Firefox: 의견 없음
  • Safari: 의견 없음
  • 웹 개발자: 의견 없음

References

form 요소의 rel 속성

이슈

form 요소에 "rel" 속성을 추가하여 rel=noopener가 있는 form 요소로 탐색되는 웹 사이트에 window.opener가 없는 것을 방지하고 참조자 헤더가 rel=noreferrer와 함께 전송되지 않도록 할 수 있다.

표준화

상기 제안에 대한 타 브라우저의 의견은 다음과 같다.

References

4. Dev Trial

📌 사용자 에이전트 문자열 축소(5단계)

이슈

User-Agent 문자열을 수정할 때마다 컨텐츠가 이전 문자열의 형식에 의존하고 있을 위험이 있다. navigator.userAgent, navigator.appVersion, navigator.platform API 뿐만 아니라 User-Agent 헤더 필드에서 사용 가능한 정보를 단계적으로 줄이고 있으며 총 7단계 중 현재 5단계에 접어들 예정이다. 5단계에서는 축소된 데스크탑 UA 문자열 및 관련 JavaScript API(navigator.userAgent, navigator.appVersion, navigator.platform)의 배포를 시작한다. 배포되면 축소된 UA 문자열이 데스크탑 운영체제의 모든 페이지 로드에 적용된다.

작업이 완료되면 User-Agent 문자열에서만 브라우저 메이저 버전, 플랫폼명을 안정적으로 얻을 수 있으며 데스크탑과 모바일을 구분할 수 있다. User-Agent 문자열을 사용하고 있다면 User Agent Client Hints API로의 마이그레이션을 권장한다.

표준화

상기 제안에 대한 타 브라우저의 의견은 다음과 같다.

  • Firefox: 배포 됨
  • Safari: 배포 됨
  • 웹 개발자: 다양한 의견

References

5. Origin Trial

📌 DOM 타이머를 포함한 타이머들을 125Hz로 조정

이슈

모든 타이머는 지연 시간이 경과하는 즉시가 아니라 8ms가 지나야(125Hz) 실행된다. 이 문제는 DOM 타이머에 영향을 미친다. 전경(foreground) 페이지에서 지연 시간이 경과하는 즉시 8ms 후에 DOM 타이머를 실행한다. 배경(background) 페이지에서 DOM 타이머는 1초(1Hz) 후에 실행되거나 더 적은 빈도인 5분 후에 실행된다.

125Hz 이상으로 실행되는 DOM 타이머는 대부분의 경우에 더 나은 사용자 경험을 제공하고 리소스를 덜 소비하는 API로 대체할 수 있다.

표준화

상기 제안에 대한 타 브라우저의 의견은 다음과 같다.

  • Firefox: 의견 없음
  • Safari: 의견 없음
  • 웹 개발자: 의견 없음

References

6. 지원 중단 및 제거 예정

Expect-CT(Certificate Transparency) HTTP 헤더 지원 중단

이슈

Expect-CT(Certificate Transparency)는 기본적으로 시행되기 전 웹 사이트가 인증서 투명성(CT) 시행을 선택할 수 있도록 허용한 HTTP 헤더다.

이제 크롬은 모든 공공 웹사이트에서 CT를 필요로 하기 때문에 더이상 Expect-CT에 대한 보안 가치가 없다. Expect-CT를 구현한 브라우저는 없으므로 Expect-CT를 제거하는 것은 상호 운용성에 문제가 되지 않는다.

M107(10/25 배포 예정)에 적용될 예정이다.

표준화

상기 제안에 대한 타 브라우저의 의견은 다음과 같다.

  • Firefox: 의견 없음
  • Safari: 의견 없음
  • 웹 개발자: 의견 없음

References

이슈

restoreScroll()navigationEvent.scroll()로 대체된다. scroll()은 개발자가 순회가 아닌 탐색에 대한 스크롤 타이밍을 제어할 수 있다는 점을 제외하면 동일하게 동작한다.

M108(11/29 배포 예정)에 적용될 예정이다.

표준화

상기 제안에 대한 타 브라우저의 의견은 다음과 같다.

  • Firefox: 의견 없음
  • Safari: 의견 없음
  • 웹 개발자: 긍정적

References

이슈

navigateEvent.transitionWhile()은 탐색을 가로채서 동일한 문서의 탐색으로 변환한 다음, 제공된 프라미스를 사용하여 새로운 탐색이 완료되는 동안 브라우저와 웹 애플리케이션의 다른 부분에 전환 단계에 있다는 신호를 보낸다.

설계 결함이 보고되어 navigateEvent.transitionWhile()navigationEvent.intercept()로 대체된다. transitionWhile()의 동일한 기본 기능에 대해 보다 유용한 API를 제공하기 위해 intercept()가 도입되었다.

M108(11/29 배포 예정)에 적용될 예정이다.

표준화

상기 제안에 대한 타 브라우저의 의견은 다음과 같다.

  • Firefox: 의견 없음
  • Safari: 의견 없음
  • 웹 개발자: 긍정적

References

Event.path 지원 중단

이슈

Event.path는 리스너가 호출될 객체의 배열인 이벤트의 경로를 반환하는 비표준 API다. 크롬에서만 지원되므로 웹 호환성 문제가 발생한다. 웹 개발자는 동일한 결과를 반환하는 표준 API인 Event.composedPath()로 변경해야한다.

M109(23년 1/10 배포 예정)에 적용될 예정이다.

표준화

상기 제안에 대한 타 브라우저의 의견은 다음과 같다.

  • Firefox: 의견 없음
  • Safari: 의견 없음
  • 웹 개발자: 긍정적

References

📌 document.domain setter 지원 중단

이슈

document.domain setter를 사용하면 개발자가 동일 출처 정책을 완화하여 크롬에서 관리하는 기본적인 보안 경계를 복잡하게 만든다. 또한 크롬의 프로세스 모델에 대한 post-Spectre 도입을 방해한다. Origin-keyed agent clusters를 통해 옵트인 해야하며 지원을 중단한다. setter는 남지만 출처가 변경되지 않는다.

크롬의 threat model에서는 프로세스를 유일한 방어 가능한 보안 경계로 간주해야한다. 이를 위해서는 출처를 프로세스에 맞추는 것이 가장 중요하다.

다른 출처 간의 비동기 메시지를 보내기 위해서는 document.domain 대신 window.postMessage를 사용하기를 권장한다. M106에 적용 예정이었으나 적용이 연기되어 M109(23년 1/10 배포 예정)에 적용될 예정이다.

데모

표준화

상기 제안에 대한 타 브라우저의 의견은 다음과 같다.

References

Web Payment API의 connect-src CSP(Content Security Policy) 정책 무시 기능 지원 중단

이슈

manifest를 가져올 때 Web Payment API가 connect-src CSP(Content Security Policy) 정책을 무시할 수 있는 기능을 지원 중단한다.

M110(23년 2/7 배포 예정)에 적용될 예정이다.

표준화

상기 제안에 대한 타 브라우저의 의견은 다음과 같다.

  • Firefox: 해당사항 없음
  • Safari: 해당사항 없음
  • 웹 개발자: 의견 없음

References

PaymentInstruments 지원 중단 및 제거

이슈

PaymentInstrumentsnon-JIT의 결제 앱 설치를 지원하는 웹 API이다. 일부 개인정보 유출의 문제가 있으며 다른 브라우저에서 배포되지 않았다. 또한 지나치게 강력한 특성을 고려하여 이 API를 지원 중단하고 제거한다.

M111(23년 3/7 배포 예정)에 적용될 예정이다.

표준화

상기 제안에 대한 타 브라우저의 의견은 다음과 같다.

  • Firefox: 의견 없음
  • Safari: 의견 없음
  • 웹 개발자: 의견 없음

References

컨텍스트 보안을 위한 공개 웹 사이트의 하위 리소스에 대한 "사설 네트워크 요청" 제한

이슈

공개 웹 사이트의 하위 리소스에 대한 사설 네트워크 요청은 보안 컨텍스트에서만 시작할 수 있어야 한다. 예를 들어 인터넷에서 인트라넷으로의 요청, 인터넷에서 루프백으로의 요청이 있다. 현재(M103) Origin Trial 중에 있으며, M113(23년 5/2 배포 예정)에 적용될 예정이다.

표준화

상기 제안에 대한 타 브라우저의 의견은 다음과 같다.

References

"canmakepayment" 이벤트에서의 판매자 식별자 지원 중단

이슈

"canmakepayment" 서비스 워커 이벤트는 사용자가 설치된 결제 앱에 등록된 카드가 있는지 여부를 판매자에게 알려준다. 판매자의 출처와 임의의 데이터를 결제 앱 출처에서 서비스 워커에게 조용히 전달한다.

사용자의 프라이버시를 보장하기 위해 "canmakepayment" 서비스 워커 이벤트에서 판매자의 출처 및 임의의 데이터를 제거해야한다.

M114(23년 5/30 배포 예정)에 적용될 예정이다.

표준화

상기 제안에 대한 타 브라우저의 의견은 다음과 같다.

  • Firefox: 의견 없음
  • Safari: 의견 없음
  • 웹 개발자: 의견 없음

References

임재언2022.09.28
Back to list