Chrome 154 يتيح ضبط ارتفاع الـ iframe على محتواه بخاصية CSS واحدة وإذن من الصفحة المضمَّنة
المغزى: مشكلة عمرها سنوات لم يكن سببها نقص في CSS بل حماية للخصوصية، والحل نقل الإذن إلى صاحب المحتوى المضمَّن، فلا يتغير شيء في embeds الأطراف الثالثة حتى توافق بنفسها.
أضاف Chrome 154 خاصية باسم “Responsively-sized iframe”. وبحسب ملاحظات الإصدار، تتيح للمواقع أن تجعل عنصر الـ iframe في الصفحة الأم يأخذ حجم محتوى الصفحة المضمَّنة، فلا يظهر شريط تمرير داخلها.
والمشكلة التي تحلها قديمة. فمن يضمّن صفحة داخل صفحة يحصل غالبًا على أحد أمرين: مساحة فارغة، أو شريط تمرير داخلي. والسبب أن الصفحة الأم لا يُسمح لها بقياس ارتفاع محتوى صفحة من أصل مختلف، لأن الحجم نفسه معلومة، وقياسه نوع من التسريب.
ولهذا كان الحل المعتاد تعاونًا بين الصفحتين عبر JavaScript. فتقيس الصفحة الداخلية نفسها بـ ResizeObserver وترسل الارتفاع بـ postMessage، وتتحقق الصفحة الأم من الـ origin ثم تضبط الارتفاع. وهذا الحل يتعطل مع تغير العرض، ومع المحتوى الذي يتحمل متأخرًا، ومع أي طرف ثالث لا يرسل شيئًا.
وبحسب شرح المطور Ahmad Alfy المنشور في 9 أكتوبر 2026، يكفي الآن أن يُكتب على الـ iframe السطر frame-sizing: content-height، ويمكن جمعه مع max-height. وتقبل الخاصية أيضًا content-width وcontent-inline-size وcontent-block-size.
لكن الجزء الأهم هو الشرط. فالصفحة المضمَّنة هي التي تمنح الإذن، بوسم meta اسمه responsive-embedded-sizing تحدد فيه النطاقات المسموح لها بقياسها. ويجب أن يكون الوسم في الـ HTML الأولي، فإضافته لاحقًا عبر JavaScript لا تعمل. وإذا تغير المحتوى بعد التحميل، تستدعي الصفحة window.requestResize().
وبهذا ينتقل القرار إلى صاحب المحتوى. فالفرق التي تضمّن صفحاتها بنفسها تستطيع الاستغناء عن كود postMessage، أما embeds الأطراف الثالثة فلن يتغير فيها شيء حتى يضيف أصحابها الوسم.
والدعم حتى الآن في Chromium وحده، ولا يدعمها Firefox ولا Safari. ولذلك يبقى الحل الاحتياطي لازمًا، عبر @supports (frame-sizing: content-height) والتحقق من وجود requestResize في window.