임베드 문제: [discourse]에 메시지를 게시할 수 없습니다. 수신자의 출처가 [mydomain]입니다

새로운 Discourse를 설정했고, 다른 사이트의 페이지에 댓글을 임베드하려고 합니다.

Safari에서 이 코드를 실행하면 JavaScript 콘솔에 다음과 같은 오류가 표시됩니다:

Unrecognized Content-Security-Policy directive 'worker-src'.

임베드 페이지에는 약 30초 동안 "토론 로딩 중…"이라는 메시지가 표시됩니다.

그 후 콘솔에 다음과 같은 메시지가 보입니다:

Unrecognized Content-Security-Policy directive 'worker-src'.
Unrecognized Content-Security-Policy directive 'worker-src'.
Unable to post message to https://forum.nsscreencast.com. Recipient has origin https://nsscreencast.com.

이는 콘텐츠가 로드된 후 iframe의 크기를 자동으로 조정하기 위한 것인 것으로 추정됩니다. Chromium 기반 브라우저에서 실행하면 이 오류가 발생하지 않습니다.

Safari에서 이 postMessage 플로우가 작동하도록 설정해야 할 것이 있을까요?

이 문제는 조만간 수정할 예정입니다. 임베드 요청이 허용되는지 확인하기 위해 리퍼러를 사용하고 있었지만, 최근 브라우저의 변경 사항으로 인해 이 영역에 대한 우리의 많은 가정이 깨졌습니다.

:+1: 빠른 답변 감사합니다. 그 사이 이 문제를 우회할 수 있는 방법이 있을까요? 예를 들어 임베딩 사이트에 커스텀 JS를 구현하는 것 같은 방식으로요?

/admin/customize/embedding의 설정은 무엇인가요?

꽤 기본적인 것 같네요…

동작은 하지만, 첫 번째 게시글이 로드되는 데 시간이 오래 걸리고, 자주 자동으로 새로고침되지 않습니다. 그 후에는 “토론 시작” 또는 실제 답변이 표시됩니다.

설정:

사용자 이름: benscheirman
삽입할 최대 게시글 수: 100
제목에서 제거할 정규식: “- NSScreencast$”

잘라내기: 예
가져온 주제는 답변이 있을 때까지 비공개로 유지: 아니오

정확히 우리가 겪고 있는 버그입니다. 이는 브라우저가 iFrame 내에서 에 있는 태그를 이용한 새로고침을 처리하는 방식에 관한 특이한 동작 때문에 발생하는데, 이 태그는 CSP를 활성화하기 위해 Extract inline JS on embedded comments - Pull Request #6645%EC%97%90%EC%84%9C - discourse/discourse - GitHub 도입해야 했습니다.

따라서 댓글이 있는 블로그 게시물을 처음 방문하는 사용자는 임베드를 보려면 새로고침을 해야 하며, 이후 방문부터는 정상적으로 동작합니다. 이미 수정안이 제안되어 있으며, 몇 주 내에 병합할 예정입니다.

이 문제에 대해 후속 조사를 하고 싶었습니다. 해당 수정 사항이 병합되었는지 확인해 주실 수 있을까요? 아직 병합되지 않았다면, 추적할 수 있도록 PR 링크를 여기에 남겨 주시겠어요?