Chrome 60의 지원 중단 및 삭제

Joe Medley
Joe Medley

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

보안

이제 crypto.subtle에 안전한 출처가 필요함

Chrome 37부터 지원된 Web Crypto API는 항상 안전하지 않은 출처에서 작동했습니다. Chrome의 오랜 정책인 강력한 기능을 위해 안전한 출처를 우선하기 때문에 crypto.subtle은 안전한 출처에서만 표시되지 않습니다.

삭제 의도 | Chromium 버그

콘텐츠에서 시작된 데이터 URL로의 상단 프레임 탐색 삭제

기술에 익숙하지 않은 브라우저 사용자에게는 익숙하지 않기 때문에 스푸핑 및 피싱 공격에 data: 스킴이 사용되는 경우가 점점 늘어나고 있습니다. 이를 방지하기 위해 웹페이지가 상단 프레임에서 data: URL을 로드하지 못하도록 차단하고 있습니다. 이는 <a> 태그, window.open, window.location 및 유사한 메커니즘에 적용됩니다. data: 스키마는 페이지에서 로드한 리소스에 계속 작동합니다.

이 기능은 Chrome 58에서 지원 중단되었으며 이제 삭제되었습니다.

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

일부 blob에 대해 navigator.sendBeacon() 일시적으로 사용 중지

navigator.sendBeacon() 함수는 Chrome 39부터 사용할 수 있습니다. 원래 구현된 대로 함수의 data 인수에는 유형이 CORS 허용 목록에 없는 임의의 blob이 포함될 수 있습니다. 아직 이를 악용하려는 시도가 없었지만 잠재적인 보안 위협이라고 생각합니다. 합당한 즉각적인 해결 방법이 없으므로 일시적으로 유형이 CORS 안전 목록에 없는 blob에서는 더 이상 sendBeacon()를 호출할 수 없습니다.

이 변경사항은 Chrome 60에 구현되었지만 이후 Chrome 59로 다시 병합되었습니다.

Chromium 버그

CSS

섀도 피어싱 하위 요소 결합자가 하위 요소 결합자처럼 작동하도록 만들기

CSS 범위 지정 모듈 1단계의 일부인 그림자 관통 자손 조합자 (>>>)는 그림자 트리 내에 표시되더라도 특정 조상 요소의 하위 요소와 일치하도록 설계되었습니다. 여기에는 몇 가지 제한사항이 있었습니다. 첫째, 사양에 따라 querySelector()와 같은 JavaScript 호출에서만 사용할 수 있으며 스타일시트에서는 작동하지 않았습니다. 더 중요한 점은 브라우저 공급업체가 Shadow DOM의 1개 수준 이상에서 작동하도록 할 수 없었다는 것입니다.

따라서 Shadow DOM v1을 비롯한 관련 사양에서 자손 조합자가 삭제되었습니다. Chromium에서 이 선택기를 삭제하여 웹페이지를 중단시키는 대신 그림자 관통 하위 요소 컴비네이터의 별칭을 하위 요소 컴비네이터로 지정하기로 했습니다. 원래 동작은 Chrome 45에서 지원 중단되었습니다. 이 새로운 동작은 Chrome 61에서 구현됩니다.

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

자바스크립트

RTCPeerConnection.getStreamById() 지원 중단 및 삭제

거의 2년 전 getStreamById()WebRTC 사양에서 삭제되었습니다. 다른 대부분의 브라우저는 이미 구현에서 이를 삭제했습니다. 이 함수는 거의 사용되지 않는 것으로 보이지만, getStreamById()가 여전히 지원되는 Safari 를 제외한 Edge 및 WebKit 기반 브라우저와의 상호 운용성 위험이 약간 있는 것으로 보입니다. 대체 구현이 필요한 개발자는 아래의 삭제 의도에서 코드 예시를 확인할 수 있습니다.

Chrome 62에서 삭제됩니다.

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

SVGPathElement.getPathSegAtLength 지원 중단

2년 넘게 전부터 getPathSegAtLength()SVG 사양에서 삭제되었습니다. httparchive에 이 메서드의 검색 결과가 몇 개 밖에 없으므로 Chrome 60에서 지원 중단됩니다. 10월 초 또는 중순에 출시될 Chrome 62에서 지원 중단될 예정입니다.

지원 중단 의도 | Chromestatus 추적기 | Chromium 버그

getContextAttributes()를 플래그 뒤로 이동

getContextAttributes() 함수는 2013년부터 CanvasRenderingContext2D에서 지원되었습니다. 그러나 이 기능은 표준의 일부가 아니었으며 그 이후로 표준의 일부가 되지 않았습니다. --enable-experimental-canvas-features 명령줄 플래그 뒤에 구현되어야 했지만 실수로 구현되지 않았습니다. Chrome 60에서는 이 간과사항이 수정되었습니다. 이 메서드를 사용하는 사용자를 보여주는 데이터가 없으므로 이 변경사항은 안전하다고 생각됩니다.

Chromium 버그

Headers.prototype.getAll() 삭제

Headers.prototype.getAll() 함수는 최신 버전의 가져오기 사양에 따라 삭제됩니다.

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

indexedDB.webkitGetDatabaseNames() 삭제

이 기능은 Chrome에서 Indexed DB가 비교적 새롭고 접두사가 유행했을 때 추가되었습니다. API는 출처의 기존 데이터베이스 이름 목록을 비동기식으로 반환하며 이는 충분히 합리적으로 보였습니다.

안타깝게도 결과가 반환되는 즉시 더 이상 사용되지 않을 수 있으므로 이 디자인은 심각한 애플리케이션 로직이 아닌 로깅에만 사용할 수 있습니다. GitHub 문제는 다른 접근 방식이 필요한 대안에 관한 이전 논의의 추적/링크입니다. 개발자의 관심이 끊임없이 이어졌지만, 교차 브라우저 진행 상황은 부족하여 라이브러리 작성자가 이 문제를 해결했습니다.

이 기능이 필요한 개발자는 자체 솔루션을 개발해야 합니다. 예를 들어 Dexie.js와 같은 라이브러리는 데이터베이스 이름을 추적하는 또 다른 데이터베이스인 전역 테이블을 사용합니다.

이 기능은 Chrome 58에서 지원 중단되었으며 이제 삭제되었습니다.

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

WEBKIT_KEYFRAMES_RULE 및 WEBKIT_KEYFRAME_RULE 삭제

비표준 WEBKIT_KEYFRAMES_RULEWEBKIT_KEYFRAME_RULE 상수가 CSS 규칙에서 삭제되었습니다. 개발자는 대신 KEYFRAMES_RULEKEYFRAME_RULE를 사용해야 합니다.

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

사용자 인터페이스

beforeunload 대화상자에 사용자 동작 필요

Chrome 60부터 beforeunload 대화상자는 이를 표시하려는 프레임이 사용자 동작 또는 사용자 상호작용을 수신했거나 삽입된 프레임이 이러한 동작을 수신한 경우에만 표시됩니다. 명확히 말씀드리자면 이는 beforeunload 이벤트 전달에 관한 변경사항이 아닙니다. 대화상자가 표시되는지 여부만 변경됩니다.

beforeunload 대화상자는 앱 모달 대화상자입니다. 따라서 본질적으로 사용자에게 비우호적입니다. 즉, 사용자의 결정에 의문을 제기하여 사용자 탐색에 응답합니다. 이 기능을 긍정적인 방향으로 사용할 수도 있습니다. 예를 들어 탐색으로 인해 데이터가 손실될 때 사용자에게 경고하는 데 자주 사용됩니다.

페이지에서 beforeunload 대화상자의 텍스트를 제공하는 기능은 얼마 전에 삭제되었지만 beforeunload 대화상자는 악용의 벡터로 남아 있습니다. 특히 beforeunload 대화상자는 자동재생 오디오와 위협적인 텍스트가 Chromium에서 제공하는 '이 페이지를 나가시겠습니까?' 메시지가 우려스러워지는 맥락을 제공하는 사기 웹사이트의 요소입니다.

beforeunload 대화상자를 적절하게 사용하는 경우에만 허용하고자 합니다. 대화상자를 잘 사용하는 방법은 사용자가 손실될 수 있는 상태가 있는 경우입니다. 사용자가 페이지와 상호작용하지 않은 경우 손실될 수 있는 상태가 없으므로 이 경우 대화상자를 숨겨도 사용자 데이터가 손실되지 않습니다.