개인 정보 보호 및 보안을 개선하기 위해 서드 파티 iframe의 Web Share API 호출은 이제 명시적으로 허용해야 합니다.
이 도움말에서는 Web Share API의 잠재적 브레이킹 체인지를 다룹니다. 이 변경사항은 이미 Firefox에 적용되었으며 버전 110부터 Chrome에 적용될 예정이며 Safari에도 곧 적용될 예정입니다.
Web Share API를 사용하면 텍스트, URL 또는 파일을 공유할 수 있습니다. 가장 간단한 형태의 공유 코드는 다음과 같습니다.
try {
await navigator.share({
title: 'Title',
text: 'Text',
url: location.href,
});
} catch (err) {
console.error(`${err.name}: ${err.message}`);
}
서드 파티 iframe에서 공유 작업이 발생해야 하는 경우 최근 사양 변경사항에 따라 작업을 명시적으로 허용해야 합니다. <iframe>
태그에 web-share
값을 갖는 allow
속성을 추가하여 이 작업을 실행합니다. 이는 삽입 사이트가 삽입된 서드 파티 iframe이 공유 작업을 트리거하도록 허용한다는 것을 브라우저에 알립니다.
<!DOCTYPE html>
<html lang="en">
<body>
<h1>Web Share in third-party iframes</h1>
<!-- The embedding page is hosted on https://example.com/index.html. -->
<iframe allow="web-share" src="https://third-party.example.com/iframe.html"></iframe>
</body>
</html>
GitHub의 데모에서 이 기능을 직접 확인하고 소스 코드를 볼 수 있습니다.
속성을 제공하지 않으면 NotAllowedError
오류가 발생하며 Failed to execute 'share' on 'Navigator': Permission denied
메시지가 표시됩니다. 이 제한사항은 모든 브라우저 공급업체가 사용자의 개인 정보 보호 및 보안을 개선하고 악의적인 행위자(예: 악성 광고)가 예기치 않은 공유 작업을 트리거하는 것을 방지하기 위해 동의했습니다.