Chrome 80의 지원 중단 및 삭제

조 메들리
조 메들리

페이지 닫기에서 동기식 XMLHTTPRequest()를 허용하지 않음

이제 Chrome에서는 사용자가 페이지를 벗어나거나 닫을 때 페이지를 닫는 동안 XMLHTTPRequest()에 관한 동기 호출을 허용하지 않습니다. 이는 beforeunload, unload, pagehide, visibilitychange에 적용됩니다.

페이지가 로드 취소될 때 데이터가 서버로 전송되도록 하려면 sendBeacon() 또는 Fetch keep-alive을 사용하는 것이 좋습니다. 현재 기업 사용자는 AllowSyncXHRInPageDismissal 정책 플래그를 사용할 수 있고 개발자는 출처 체험판 플래그 allow-sync-xhr-in-page-dismissal를 사용하여 페이지 로드 취소 중에 동기식 XHR 요청을 허용할 수 있습니다. 이는 일시적인 '거부' 조치이며 Chrome 88에서는 이 플래그가 삭제될 예정입니다.

이와 대안에 관한 자세한 내용은 페이지 닫기 중 동기식 XMLHTTPRequest() 허용 안함을 참고하세요.

삭제 의도 | Chrome 플랫폼 상태 | Chromium 버그

FTP 지원 중단

현재 Chrome의 FTP 구현에서는 암호화된 연결 (FTPS)이나 프록시를 지원하지 않습니다. 브라우저의 FTP 사용량이 매우 적어서 기존 FTP 클라이언트를 개선하는 데 더 이상 투자할 수 없습니다. 또한 더욱 다양한 기능을 갖춘 FTP 클라이언트도 영향을 받는 모든 플랫폼에서 사용할 수 있습니다.

Chrome 72에서는 FTP를 통한 문서 하위 리소스 가져오기 및 최상위 FTP 리소스 렌더링 지원이 삭제되었습니다. 현재 FTP URL로 이동하면 리소스 유형에 따라 디렉터리 목록이나 다운로드가 표시됩니다. Chrome 74 이상에서 버그로 인해 HTTP 프록시를 통해 FTP URL에 액세스하는 기능이 지원 중단되었습니다. Google Chrome 76에서는 FTP 프록시 지원이 완전히 삭제되었습니다.

Chrome의 FTP 구현에서 나머지 기능은 디렉터리 목록을 표시하거나 암호화되지 않은 연결을 통해 리소스를 다운로드하는 것으로 제한됩니다.

지원 중단 타임라인은 잠정적으로 다음과 같이 설정됩니다.

Chrome 80 (2020년 2월 안정화 버전)

FTP는 엔터프라이즈가 아닌 클라이언트에서 기본적으로 사용 중지되어 있지만 --enable-ftp 또는 --enable-features=FtpProtocol 명령줄 플래그를 사용하여 사용 설정할 수 있습니다. 또는 chrome://flags에서 #enable-ftp 옵션을 사용하여 사용 설정할 수 있습니다.

Chrome 81 (2020년 3월 안정화 버전)

FTP는 모든 Chrome 설치에서 기본적으로 사용 중지되어 있지만 --enable-ftp 또는 --enable-features=FtpProtocol 명령줄 플래그를 사용하여 사용 설정할 수 있습니다.

Chrome 82 (2020년 4월 안정화 버전)

FTP 지원이 완전히 삭제됩니다.

삭제 의도 | Chrome 플랫폼 상태 | Chromium 버그

페이지 로드 취소 중 팝업 허용 허용 안함

로드 취소 중에 페이지에서 더 이상 window.open()를 사용하여 새 페이지를 열 수 없습니다. Chrome 팝업 차단기에서 이미 이를 금지했으나 이제는 팝업 차단기의 사용 설정 여부와 관계없이 금지됩니다.

기업은 AllowPopupsDuringPageUnload 정책 플래그를 사용하여 로드 취소 중 팝업을 허용할 수 있습니다. Chrome은 Chrome 82에서 이 플래그를 삭제할 예정입니다.

삭제 의도 | Chromestatus Tracker | Chromium 버그

출처가 깨끗하지 않은 ImageBitmap 직렬화 및 전송을 삭제했습니다.

이제 스크립트가 출처가 깨끗하지 않은 ImageBitmap을 직렬화하거나 전송하려고 하면 오류가 발생합니다. 비출처 클린 ImageBitmap은 CORS 로직으로 확인되지 않은 교차 출처 이미지의 데이터를 포함하는 이미지입니다.

삭제 의도 | Chrome 플랫폼 상태 | Chromium 버그

프로토콜 처리 시 보안 컨텍스트 필요

이제 registerProtocolHandler()unregisterProtocolHandler() 메서드에는 보안 컨텍스트가 필요합니다. 네트워크를 통해 잠재적으로 민감한 정보를 전송할 수 있도록 클라이언트 상태를 재구성할 수 있는 이러한 메서드입니다.

registerProtocolHandler() 메서드는 사용자가 동의한 후 프로토콜을 처리하도록 자신을 등록하는 메커니즘을 웹페이지에 제공합니다. 예를 들어 웹 기반 이메일 애플리케이션은 mailto: 스키마를 처리하도록 등록할 수 있습니다. 이에 상응하는 unregisterProtocolHandler() 메서드를 사용하면 사이트에서 프로토콜 처리 등록을 취소할 수 있습니다.

삭제 의도 | Chrome 플랫폼 상태 | Chromium 버그

웹 구성요소 v0 삭제됨

이제 Chrome에서 웹 구성요소 v0이 삭제됩니다. Web Components v1 API는 Chrome, Safari, Firefox, (곧) Edge에 제공되는 웹 플랫폼 표준입니다. 업그레이드에 관한 안내는 웹 구성요소 업데이트: v1 API로 업그레이드하기에 더 많은 시기를 참고하세요. 이제 다음 기능이 삭제되었습니다. 이번 지원 중단에는 아래 나열된 항목이 포함됩니다.

맞춤 요소

삭제 의도 | Chrome 플랫폼 상태 | Chromium 버그

HTML 가져오기

삭제 의도 | Chrome 플랫폼 상태 | Chromium 버그

Shadow DOM

삭제 의도 | Chrome 플랫폼 상태 | Chromium 버그

임의의 요소에 대해 -webkit-Appearanceance:button 삭제

-webkit-appearance:button<button><input> 버튼에서만 작동하도록 변경되었습니다. 지원되지 않는 요소에 button이 지정된 경우 요소의 모양이 기본 설정됩니다. 다른 모든 -webkit-appearance 키워드에는 이미 이러한 제한이 있습니다.

삭제 의도 | Chrome 플랫폼 상태 | Chromium 버그

지원 중단 정책

플랫폼을 양호한 상태로 유지하기 위해 Google은 과정을 진행한 웹 플랫폼에서 API를 삭제하는 경우가 있습니다. API가 삭제되는 이유는 다음과 같이 다양합니다.

  • 이 API는 최신 API로 대체되었습니다.
  • 다른 브라우저와의 일관성과 일관성을 높이기 위해 사양 변경사항을 반영하도록 업데이트되었습니다.
  • 다른 브라우저에서는 결코 결실을 맺지 못한 초기 실험이므로 웹 개발자의 지원 부담을 높일 수 있습니다.

이번 변경사항 중 일부는 극소수의 사이트에 영향을 미칠 것입니다. Google에서는 문제를 미리 완화할 수 있도록 개발자에게 사전 알림을 제공하여 사이트가 계속 실행되는 데 필요한 변경사항을 적용할 수 있도록 하고 있습니다.

Chrome에는 현재 다음과 같이 API 지원 중단 및 삭제 프로세스가 있습니다.

  • blink-dev 메일링 리스트에 공지합니다.
  • 페이지에서 사용량이 감지되면 Chrome DevTools 콘솔에서 경고를 설정하고 시간 척도를 제공합니다.
  • 기다렸다가 모니터링한 후 사용량이 감소하면 기능을 삭제합니다.

chromestatus.com에서 지원 중단된 필터 를 사용하여 지원 중단된 모든 기능의 목록을 확인할 수 있으며 삭제된 필터를 적용하여 삭제된 기능을 확인할 수 있습니다. 또한 이 게시물에서는 몇 가지 변경사항, 이유, 이전 경로도 요약해 보겠습니다.