새로운 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 플로우가 작동하도록 설정해야 할 것이 있을까요?
Falco
(Falco)
6월 1, 2021, 6:00오후
2
이 문제는 조만간 수정할 예정입니다. 임베드 요청이 허용되는지 확인하기 위해 리퍼러를 사용하고 있었지만, 최근 브라우저의 변경 사항으로 인해 이 영역에 대한 우리의 많은 가정이 깨졌습니다.
빠른 답변 감사합니다. 그 사이 이 문제를 우회할 수 있는 방법이 있을까요? 예를 들어 임베딩 사이트에 커스텀 JS를 구현하는 것 같은 방식으로요?
Falco
(Falco)
6월 1, 2021, 6:23오후
4
/admin/customize/embedding의 설정은 무엇인가요?
꽤 기본적인 것 같네요…
동작은 하지만, 첫 번째 게시글이 로드되는 데 시간이 오래 걸리고, 자주 자동으로 새로고침되지 않습니다. 그 후에는 “토론 시작” 또는 실제 답변이 표시됩니다.
설정:
사용자 이름: benscheirman
삽입할 최대 게시글 수: 100
제목에서 제거할 정규식: “- NSScreencast$”
잘라내기: 예
가져온 주제는 답변이 있을 때까지 비공개로 유지: 아니오
Falco
(Falco)
6월 1, 2021, 6:44오후
6
정확히 우리가 겪고 있는 버그입니다. 이는 브라우저가 iFrame 내에서 에 있는 태그를 이용한 새로고침을 처리하는 방식에 관한 특이한 동작 때문에 발생하는데, 이 태그는 CSP를 활성화하기 위해 Extract inline JS on embedded comments - Pull Request #6645%EC%97%90%EC%84%9C - discourse/discourse - GitHub 도입해야 했습니다.
따라서 댓글이 있는 블로그 게시물을 처음 방문하는 사용자는 임베드를 보려면 새로고침을 해야 하며, 이후 방문부터는 정상적으로 동작합니다. 이미 수정안이 제안되어 있으며, 몇 주 내에 병합할 예정입니다.
이 문제에 대해 후속 조사를 하고 싶었습니다. 해당 수정 사항이 병합되었는지 확인해 주실 수 있을까요? 아직 병합되지 않았다면, 추적할 수 있도록 PR 링크를 여기에 남겨 주시겠어요?