مساعدة مع التضمين: غير قادر على نشر رسالة إلى [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، لا تظهر هذه الرسالة.

هل هناك شيء أحتاج إلى إعداده لجعل تدفق postMessage هذا يعمل في Safari؟

هذا شيء سنقوم بإصلاحه قريبًا. نحن نعتمد على عنوان المرجع (referer) لطلبات التضمين للتحقق مما إذا كانت مسموحة، لكن التغييرات الأخيرة في المتصفحات كسرت العديد من افتراضاتنا في هذا المجال.

:+1: شكراً لك على الرد السريع. هل هناك أي شيء يمكنني فعله في هذه الأثناء لتجاوز هذه المشكلة؟ أي على سبيل المثال، تطبيق كود JavaScript مخصص على موقع التضمين؟

ما هي الإعدادات في /admin/customize/embedding؟

يبدو الأمر بسيطًا جدًا…

إنه يعمل، لكن المنشور الأول يستغرق وقتًا طويلاً للتحميل وغالبًا لا يتم تحديثه تلقائيًا. بعد ذلك، يمكنني رؤية “بدء النقاش” أو الردود الفعلية.

الإعدادات:

اسم المستخدم: benscheirman
الحد الأقصى للمنشورات المضمنة: 100
التعبير النمطي لقص العنوان: “- NSScreencast$”

الاختصار: نعم
المواضيع المستوردة ستكون غير مدرجة حتى يتم الرد عليها: لا

هذا هو الخطأ بالضبط الذي نواجهه، ويحدث بسبب مشكلة غريبة في المتصفحات تتعلق بكيفية تعاملها مع التحديث داخل إطار مضمن (iFrame) باستخدام وسم في الرأس، وهو ما اضطررنا إلى إدخاله في https://github.com/discourse/discourse/pull/6645 لتمكين سياسة المحتوى الآمن (CSP).

لذلك، سيتوجب على أول شخص يزور منشورًا مدونًا يحتوي على تعليقات أن يقوم بتحديثه يدويًا لرؤية المحتوى المضمن، بينما ستعمل جميع الزيارات اللاحقة بشكل صحيح. لدينا بالفعل إصلاح مقترح لهذا الأمر وسنقوم بدمجه خلال بضعة أسابيع.

أردت أن أتابع هذا الأمر وأرى ما إذا تم دمج هذا الإصلاح. وإذا لم يكن كذلك، هل يمكنك ربط طلب السحب (PR) هنا حتى أتمكن من تتبعه؟

https://github.com/discourse/discourse/pull/13756