Fix Paystack Fullscreen permission policy for Inline iframes.
Deploy Ladill POS / deploy (push) Successful in 1m4s

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:20 +00:00
parent ec8fe8611f
commit 2c763cf46a
4 changed files with 164 additions and 21 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);