Chrome 57의 API 지원 중단 및 삭제

Joe Medley
Joe Medley

거의 모든 버전의 Chrome에서 제품, 성능, 웹 플랫폼 기능에 대한 상당한 수의 업데이트와 개선사항이 적용됩니다. 이 도움말에서는 2월 초 현재 베타 버전인 Chrome 57의 지원 중단 및 삭제에 대해 설명합니다. 이 목록은 언제든지 변경될 수 있습니다.

BluetoothDevice.uuids 속성 삭제

Web Bluetooth API를 현재 사양에 맞추기 위해 BluetoothDevice.uuids 속성이 삭제됩니다. device.getPrimaryServices()를 호출하여 허용된 모든 GATT 서비스를 가져올 수 있습니다.

Chromium 버그

키 생성 요소 삭제

Chrome 49부터 <keygen>의 기본 동작은 이 페이지에 권한이 부여되지 않은 한 빈 문자열을 반환하는 것이었습니다. IE/Edge는 <keygen>를 지원하지 않으며 <keygen>를 지원한다는 공개 신호를 표시하지 않았습니다. Firefox는 이미 사용자 동작 뒤에 <keygen>를 게이트하지만 공개적으로 <keygen> 삭제를 지원합니다. Safari는 <keygen>를 제공하며 지속적인 지원에 관한 공개적인 견해를 밝히지 않았습니다. Chrome 57에서는 이 요소가 삭제됩니다.

삭제 의도 | Chromestatus 추적기 | Chromium 버그

접두사가 있는 리소스 타이밍 버퍼 관리 API 삭제

두 메서드와 이벤트 핸들러인 webkitClearResourceTimings(), webkitSetResourceTimingBufferSize(), onwebkitresourcetimingbufferfull는 지원 중단되었으며 공급업체별입니다. 이러한 API의 표준 버전은 Chrome 46부터 지원되었으며, 이 버전에서도 접두사가 있는 함수가 지원 중단되었습니다. 이러한 기능은 원래 WebKit에서 구현되었지만 Safari에서는 사용 설정되지 않았습니다. Firefox, IE 10 이상, Edge에는 접두사가 없는 API 버전만 있습니다. 따라서 WebKit 버전이 삭제됩니다.

삭제 의도 | Chromestatus 추적기 | Chromium 버그

MessageEvent 사용을 위해 ServiceWorkerMessageEvent 삭제

HTML 사양은 source 속성의 유형으로 ServiceWorker를 허용하도록 MessageEvent를 확장했습니다. client.postMessage() 및 맞춤 메시지 이벤트 생성이 ServiceWorkerMessageEvent 대신 MessageEvent를 사용하도록 변경되었습니다. ServiceWorkerMessageEvent가 삭제되었습니다.

삭제 의도 | Chromestatus 추적기 | Chromium 버그

webkit 접두사가 있는 IndexedDB 전역 별칭 삭제

IndexedDB 진입점 및 전역 생성자는 Chrome 11쯤에 webkit 접두사로 노출되었습니다. 접두사가 없는 버전은 Chrome 24에서 추가되었으며 접두사가 있는 버전은 Chrome 38에서 지원 중단되었습니다. 다음 인터페이스가 영향을 받습니다.

  • webkitIndexedDB (기본 진입점)
  • webkitIDBKeyRange (호출할 수 없는 전역 생성자이지만 유용한 정적 메서드가 있음)
  • webkitIDBCursor
  • webkitIDBDatabase
  • webkitIDBFactory
  • webkitIDBIndex
  • webkitIDBObjectStore
  • webkitIDBRequest
  • webkitIDBTransaction (호출 불가능한 전역 생성자)

삭제 의도 | Chromestatus 추적기 | Chromium 버그

WebAudio: 접두사가 있는 AudioContext 및 OfflineAudioContext 삭제

Chrome은 2011년 중반부터 AudioContext를 비롯한 WebAudio를 지원해 왔습니다. 다음 해에 OfflineAudioContext가 추가되었습니다. 표준 인터페이스가 지원된 기간과 Google의 접두사 기능 삭제라는 장기 목표를 고려하여 이러한 인터페이스의 접두사 버전은 2014년 말부터 지원 중단되었으며 이제 삭제됩니다.

삭제 의도 | Chromestatus 추적기 | Chromium 버그

webkitCancelRequestAnimationFrame 지원 중단 및 삭제

webkitCancelRequestAnimationFrame() 메서드는 더 이상 사용되지 않는 공급업체별 API이며 Chromium에서는 오래 전부터 표준 cancelAnimationFrame()가 지원되었습니다. 따라서 webkit 버전이 삭제됩니다.

삭제 의도 | Chromestatus 추적기 | Chromium 버그

usemap 속성에 대소문자를 구분하지 않는 일치 지원 중단

usemap 속성은 이전에 대소문자 구분되지 않는 것으로 정의되었습니다. 안타깝게도 이를 구현하는 것이 너무 복잡하여 어떤 브라우저도 이를 올바르게 구현하지 못했습니다. 연구에 따르면 이러한 복잡한 알고리즘은 필요하지 않으며 ASCII 대소문자 구분 불리게 일치시키는 것조차 필요하지 않습니다.

따라서 대소문자를 구분하는 일치가 적용되도록 사양이 업데이트되었습니다. 이전 동작은 Chrome 57에서 지원 중단되었으며 Chrome 58에서 삭제될 예정입니다.

삭제 의도 | Chromestatus 추적기 | Chromium 버그

서비스 워커에서 FileReaderSync 지원 중단

서비스 워커 사양에는 항상 서비스 워커를 차단하지 않기 위해 '모든 유형의 동기식 요청은 서비스 워커 내에서 시작되어서는 안 됩니다'라는 (비규범적) 메모가 있었습니다. 서비스 워커를 차단하면 제어된 페이지의 모든 네트워크 요청이 차단됩니다. 안타깝게도 FileReaderSync API는 오랫동안 서비스 워커에서 사용할 수 있었습니다.

현재 Firefox와 Chrome만 서비스 워커에서 FileReaderSync를 노출합니다. 사양 논의에서 이 문제를 해결해야 한다는 Firefox의 동의가 있습니다. Chrome 59에서 삭제될 예정입니다.

삭제 의도 | Chromestatus 추적기 | Chromium 버그

HTMLEmbedElement 및 HTMLObjectElement의 기존 호출자 지원 중단

인터페이스에 기존 호출자가 있다는 것은 인스턴스를 함수로 호출할 수 있다는 의미입니다. 현재 HTMLEmbedElementHTMLObjectElement가 이 기능을 지원합니다. Chrome 57에서는 이 기능이 지원 중단되었습니다. 삭제 후(Chrome 58에서 예상됨) 호출하면 예외가 발생합니다.

이 변경사항으로 인해 Chrome이 최근 사양 변경사항을 준수하게 됩니다. 기존 동작은 Edge 또는 Safari에서 지원되지 않으며 Firefox에서 삭제됩니다.

삭제 의도 | Chromestatus 추적기 | Chromium 버그

'negotiate'의 RTCRtcpMuxPolicy 지원 중단

rtcpMuxPolicy는 Chrome에서 RTP/RTCP 멀티플렉싱 사용과 관련된 선호 정책을 지정하는 데 사용됩니다. Chrome 57에서는 다음과 같은 이유로 기본 rtcpMuxPolicy를 'require'로 변경하고 'negotiate'를 지원 중단했습니다.

  • 뮤싱되지 않은 RTCP는 추가 네트워크 리소스를 사용합니다.
  • 'negotiate'를 삭제하면 'RtpSender'/'RtpReceiver'에 전송이 하나만 있으므로 API 노출 영역이 더 간단해집니다.

Chrome 57에서는 'negotiate'가 지원 중단됩니다. 사용자에게 지원 중단 메시지가 표시되고 RTCPeerConnection는 계속 만들 수 있으므로 중단되지 않는 변경사항이라고 생각합니다. Chrome 63에서 삭제됩니다.

지원 중단 의도 | Chromium 버그

하위 리소스 요청에서 삽입된 사용자 인증 정보 지원 지원 중단

하위 리소스 요청에 사용자 인증 정보를 하드코딩하는 것은 보안 관점에서 문제가 됩니다. 과거에 해커가 사용자 인증 정보를 무차별 대입할 수 있었기 때문입니다. 이러한 위험은 내부 IP 범위 (라우터 등)에 도달하는 사용자 인증 정보가 있는 하위 리소스 요청의 경우 더욱 심각해집니다. 사용 빈도가 낮으므로 이 작은 보안 구멍을 닫는 것이 상당히 합리적입니다.

개발자는 기본/다이제스트 인증이 필요하지 않은 리소스를 삽입할 수 있으며 대신 쿠키 및 기타 세션 관리 메커니즘을 사용할 수 있습니다.

삭제 의도 | Chromestatus 추적기 | Chromium 버그