Fix Paystack Fullscreen permission policy for Inline iframes.
Deploy Ladill Mini / deploy (push) Successful in 44s

Pre-set allow=fullscreen on Paystack iframes before navigation (createElement
hook + MutationObserver on allow/src/id), re-apply if Paystack overwrites
allow, and send Permissions-Policy HTTP headers so checkout.paystack.com can
use fullscreen inside the in-app sheet.
This commit is contained in:
isaacclad
2026-07-21 22:17:14 +00:00
parent 4291d95518
commit bd8764523c
5 changed files with 166 additions and 22 deletions
@@ -33,6 +33,11 @@ class ResponsivePaystackSheetTest extends TestCase
$this->assertStringContainsString('Complete payment on this screen', $html);
$this->assertStringContainsString('not in a separate browser', $html);
$this->assertStringContainsString('items-end justify-center md:items-center', $html);
// Cross-origin checkout needs fullscreen delegated on the iframe + parent policy.
$this->assertStringContainsString('ensurePaystackIframePermissions', $html);
$this->assertStringContainsString('installIframeAllowHook', $html);
$this->assertStringContainsString('fullscreen *', $html);
$this->assertStringContainsString("attributeFilter: ['allow', 'src', 'id', 'name']", $html);
// Must not push Paystack to a separate browser as the primary path.
$this->assertStringNotContainsString('Continue to Paystack', $html);
$this->assertStringNotContainsString('window.open(', $html);